/* 灾难沙盒 2.0 · 游戏页外观层（game-2）
 * 三款游戏页在自己的 style.css 之后加载本文件（再之前是 theme-2.css）：只改外观——颜色、字体、圆角、阴影、按钮手感，
 * 不改布局逻辑，也不碰三维画面。<html> 带 d2g 和 d2g-ts / d2g-eq / d2g-nu。
 * 规范（与首页一致）：
 *   - 浮层 = 深色玻璃（同 .d2-panel）：--ds-glass + 1px 浅描边 + 模糊；卡片、抽屉、引导、托盘由 ds-kit.js 按同一套令牌画。
 *   - 模式色：--ds-m 主色 / --ds-m-edge 按钮底边 / --ds-m-hi 深底上的文字 / --ds-m-soft 深底色衬 / --ds-m-fill 进度条。
 *     海啸、地震：破坏模式 = 攻（--d2-atk 暖色），防护模式 = 守（--d2-def 冷色）；
 *     核爆：强化观察 = --d2-nu，防护模式 = --d2-nu-def；不用星级色、不发光。
 *   - 状态只用 --d2-ok / --d2-warn / --d2-bad（提示按钮高亮 = warn）。字体 --d2-font，数字 --d2-font-num。
 *   - 主按钮（发动）：模式色实心 + 3px 底边，按下下沉；次级按钮：深底浅描边「芯片」，选中 = 模式色衬底 + 描边。
 *   - 分段（模式切换、强化 / 灾害等级）：深底凹槽，选中项模式色实心。 */

/* ---------- 模式变量与基础 ---------- */
.d2g body{
  --ds-m:var(--d2-def);--ds-m-edge:var(--d2-def-edge);--ds-m-hi:var(--d2-def-glow);--ds-m-soft:rgba(29,155,152,.22);
  --ds-m-glow:var(--d2-glow-def);--ds-m-fill:linear-gradient(90deg,var(--d2-def-edge),var(--d2-def) 55%,var(--d2-def-glow));
  --ds-glass:color-mix(in srgb,var(--d2-ink) 86%,transparent);--ds-gl:rgba(255,255,255,.1);--ds-gsh:0 6px 22px rgba(10,14,18,.24);
  --ds-chip:rgba(255,255,255,.07);--ds-chip-h:rgba(255,255,255,.12);--ds-chip-l:rgba(255,255,255,.14);
  --ds-dim:var(--d2-on-ink-2);--ds-dim2:#7e8790;
  font-family:var(--d2-font);-webkit-font-smoothing:antialiased;
}
.d2g-ts body[data-mode="destroy"],.d2g-eq body.ds-mode-destroy{
  --ds-m:var(--d2-atk);--ds-m-edge:var(--d2-atk-edge);--ds-m-hi:var(--d2-atk-glow);--ds-m-soft:rgba(236,122,47,.2);
  --ds-m-glow:var(--d2-glow-atk);--ds-m-fill:linear-gradient(90deg,var(--d2-atk-edge),var(--d2-atk) 55%,var(--d2-atk-glow));
}
.d2g-nu body{
  --ds-m:var(--d2-nu-def);--ds-m-edge:var(--d2-nu-def-edge);--ds-m-hi:#a9c4c1;--ds-m-soft:rgba(108,138,136,.24);
  --ds-m-glow:0 0 0 0 transparent;--ds-m-fill:linear-gradient(90deg,var(--d2-nu-def-edge),var(--d2-nu-def));
}
.d2g-nu.ds-pm-fortify body{
  --ds-m:var(--d2-nu);--ds-m-edge:var(--d2-nu-edge);--ds-m-hi:#cdbb9a;--ds-m-soft:rgba(156,138,108,.24);
  --ds-m-fill:linear-gradient(90deg,var(--d2-nu-edge),var(--d2-nu));
}
.d2g :is(button,a,input,select,summary):focus-visible{outline:2px solid var(--ds-m-hi);outline-offset:2px}

/* ---------- 深色玻璃（浮在三维画面上的所有面板 / 按钮） ---------- */
.d2g-ts .brand,.d2g-ts .ds-scene-btn,.d2g-ts .top-actions button,.d2g-ts .ds-mode,.d2g-ts .tag,.d2g-ts .ds-stats span,
.d2g-ts .ds-weak,.d2g-ts .ds-energy,.d2g-ts .ds-tiers-dock,.d2g-ts .ds-undo,.d2g-ts .ds-act,.d2g-ts .ds-build-bar,.d2g-ts .ds-slow,.d2g-ts .ds-hz-hint,
.d2g-eq .brand,.d2g-eq .dsq-scene-btn,.d2g-eq .header-right button,.d2g-eq header .ds-mode,.d2g-eq .live,.d2g-eq .telemetry,.d2g-eq .dsq-sub,
.d2g-eq .dsq-undo,.d2g-eq .ds-energy,.d2g-eq .ds-act,.d2g-eq #restore-ui,.d2g-eq .ds-pill,
.d2g-nu .view-actions button,.d2g-nu .ds-status,.d2g-nu .ds-live,.d2g-nu .ds-chip{
  background:var(--ds-glass);border:1px solid var(--ds-gl);box-shadow:var(--ds-gsh);color:var(--d2-on-ink);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color-scheme:dark;
}

/* 顶栏的胶囊：统一高度、圆角、字重 */
.d2g-ts .ds-scene-btn,.d2g-ts .top-actions button,.d2g-eq .dsq-scene-btn,.d2g-eq .header-right button,.d2g-nu .view-actions button{
  border-radius:var(--d2-r-md);font-weight:700;font-size:var(--d2-fs-sm);transition:background var(--d2-dur-2),transform var(--d2-dur-1) var(--d2-ease)}
.d2g-ts .ds-scene-btn:hover,.d2g-ts .top-actions button:hover,.d2g-eq .dsq-scene-btn:hover,.d2g-eq .header-right button:hover,.d2g-nu .view-actions button:hover{
  background:color-mix(in srgb,var(--d2-ink-3) 92%,transparent)}
.d2g-ts .ds-scene-btn span,.d2g-ts .ds-scene-btn em,.d2g-eq .dsq-scene-btn small,.d2g-eq .dsq-scene-btn i,.d2g-nu .view-actions .ds-scene-btn i{color:var(--ds-dim)}
.d2g-ts .ds-scene-btn b,.d2g-eq .dsq-scene-btn b,.d2g-nu .view-actions .ds-scene-btn b{color:#fff;font-weight:800;letter-spacing:.02em}
.d2g .dsk-more-btn{font-weight:800}

/* 品牌：玻璃胶囊 + 模式色圆章 */
.d2g-ts .brand,.d2g-eq .brand{height:44px;padding:0 16px 0 5px;border-radius:999px;gap:10px;font:800 16px/1.15 var(--d2-font);letter-spacing:.04em;color:#fff}
.d2g-ts .brand small,.d2g-eq .brand small{margin-top:3px;font:600 9px/1 var(--d2-font-mono);letter-spacing:.14em;color:var(--ds-dim)}
.d2g-ts .brand-icon,.d2g-eq .brand-mark{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:var(--ds-m);box-shadow:inset 0 -2px 0 var(--ds-m-edge);color:#fff;font:800 20px/1 var(--d2-font)}

/* ---------- 分段：模式切换 ---------- */
.d2g-ts .ds-mode,.d2g-eq header .ds-mode{display:flex;gap:3px;height:auto;padding:3px;border-radius:var(--d2-r-md)}
.d2g-ts .ds-mode button,.d2g-eq .ds-mode button,.d2g-nu .ds-mode-seg button{
  border:0;border-radius:calc(var(--d2-r-md) - 3px);background:transparent;color:var(--ds-dim);font:700 var(--d2-fs-sm)/1.2 var(--d2-font);
  box-shadow:none;transition:background var(--d2-dur-2),color var(--d2-dur-2)}
.d2g-ts .ds-mode button{min-height:36px;padding:0 14px}
.d2g-ts .ds-mode button:hover,.d2g-eq .ds-mode button:hover,.d2g-nu .ds-mode-seg button:hover{color:#fff;background:rgba(255,255,255,.06)}
.d2g-ts .ds-mode button[data-mode="destroy"][aria-pressed="true"],.d2g-eq .ds-mode button[data-mode="destroy"][aria-checked="true"]{
  background:var(--d2-atk);color:#fff;box-shadow:inset 0 -2px 0 var(--d2-atk-edge),var(--d2-sh-sm)}
.d2g-ts .ds-mode button[data-mode="protect"][aria-pressed="true"],.d2g-eq .ds-mode button[data-mode="protect"][aria-checked="true"]{
  background:var(--d2-def);color:#fff;box-shadow:inset 0 -2px 0 var(--d2-def-edge),var(--d2-sh-sm)}
.d2g-nu .ds-mode-seg button[data-pm="fortify"][aria-pressed="true"]{background:var(--d2-nu);color:#fff;box-shadow:inset 0 -2px 0 var(--d2-nu-edge)}
.d2g-nu .ds-mode-seg button[data-pm="defense"][aria-pressed="true"]{background:var(--d2-nu-def);color:#fff;box-shadow:inset 0 -2px 0 var(--d2-nu-def-edge)}

/* ---------- 分段：强化预设 / 灾害等级（无 低 中 高） ---------- */
.d2g-ts .ds-tiers button,.d2g-eq .ds-preset-row button,.d2g-nu .ds-lv-row button{
  border:0;border-radius:var(--d2-r-sm);background:var(--ds-chip);box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--d2-on-ink);
  font:800 var(--d2-fs-base)/1.1 var(--d2-font);transition:background var(--d2-dur-2),transform var(--d2-dur-1) var(--d2-ease)}
.d2g-ts .ds-tiers button:hover,.d2g-eq .ds-preset-row button:hover,.d2g-nu .ds-lv-row button:hover{background:var(--ds-chip-h);border:0}
.d2g-ts .ds-tiers button[aria-pressed="true"],.d2g-ts .ds-tiers button[data-tier="high"][aria-pressed="true"],
.d2g-eq .ds-preset-row button[aria-pressed="true"],.d2g-eq .ds-preset-row button[data-preset="high"][aria-pressed="true"],.d2g-eq .ds-haz .ds-preset-row button[aria-pressed="true"],
.d2g-nu .ds-lv-row button[aria-pressed="true"]{
  background:var(--ds-m);color:#fff;border:0;box-shadow:inset 0 -3px 0 var(--ds-m-edge)}
.d2g-eq .ds-preset-row button i,.d2g-nu .ds-lv-row button i{opacity:.55}
.d2g-eq .ds-preset-row button[aria-pressed="true"] i,.d2g-nu .ds-lv-row button[aria-pressed="true"] i{opacity:.95}

/* ---------- 主按钮：发动（召唤海啸 / 触发地震 / 核爆来临） ---------- */
.d2g-ts #summon,.d2g-eq #ds-go,.d2g-nu .ds-bar-actions .ds-launch,.d2g-nu #close-help.launch{
  border:0;background:var(--ds-m);color:#fff;box-shadow:inset 0 -3px 0 var(--ds-m-edge),var(--d2-sh-sm);border-radius:var(--d2-r-md);
  font:800 var(--d2-fs-md)/1.15 var(--d2-font);letter-spacing:.04em;filter:none;
  transition:transform var(--d2-dur-1) var(--d2-ease),box-shadow var(--d2-dur-2) var(--d2-ease),filter var(--d2-dur-2)}
.d2g-ts #summon:hover,.d2g-eq #ds-go:hover,.d2g-nu .ds-bar-actions .ds-launch:hover,.d2g-nu #close-help.launch:hover{
  background:var(--ds-m);filter:brightness(1.07);transform:translateY(-1px);box-shadow:inset 0 -3px 0 var(--ds-m-edge),var(--ds-m-glow)}
.d2g-ts #summon:active,.d2g-eq #ds-go:active,.d2g-nu .ds-bar-actions .ds-launch:active{transform:translateY(2px);box-shadow:inset 0 -1px 0 var(--ds-m-edge)}
.d2g-ts #summon:disabled,.d2g-ts #summon.ds-busy,.d2g-eq #ds-go:disabled,.d2g-nu .ds-bar-actions .ds-launch:disabled{opacity:.45;transform:none;filter:none}

/* ---------- 次级芯片按钮（深底） ---------- */
.d2g-ts .ds-src-btn,.d2g-ts .ds-dir-btn,.d2g-ts .ds-opts button,.d2g-ts #ds-build-exit,.d2g-ts #ds-en-end,
.d2g-eq #dsq-epi,.d2g-eq #dsq-slow,.d2g-eq #pause,.d2g-eq #ds-en-depth,.d2g-eq .dsq-sub-tools button,
.d2g-nu .ds-burst,.d2g-nu .ds-bar-actions button:not(.ds-launch),.d2g-nu .ds-sub button,.d2g-nu .control-dock button,.d2g-nu .ds-chip button{
  border:0;background:var(--ds-chip);box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--d2-on-ink);font-family:var(--d2-font);
  transition:background var(--d2-dur-2),color var(--d2-dur-2)}
.d2g-ts .ds-src-btn:hover,.d2g-ts .ds-dir-btn:hover,.d2g-ts .ds-opts button:hover,.d2g-ts #ds-build-exit:hover,.d2g-ts #ds-en-end:hover,
.d2g-eq #dsq-epi:hover,.d2g-eq #dsq-slow:hover,.d2g-eq #pause:hover,.d2g-eq #ds-en-depth:hover,.d2g-eq .dsq-sub-tools button:hover,
.d2g-nu .ds-burst:hover,.d2g-nu .ds-bar-actions button:not(.ds-launch):hover,.d2g-nu .ds-sub button:hover,.d2g-nu .control-dock button:hover{background:var(--ds-chip-h)}
.d2g-ts .ds-src-btn[aria-pressed="true"],.d2g-ts .ds-dir-btn[aria-pressed="true"],.d2g-ts .ds-opts button[aria-pressed="true"],
.d2g-eq #dsq-epi[aria-pressed="true"],.d2g-eq #dsq-slow[aria-pressed="true"],.d2g-eq .dsq-sub-tools button.selected,
.d2g-nu .ds-burst[aria-pressed="true"],.d2g-nu .ds-bar-actions button[aria-pressed="true"],.d2g-nu .ds-bar-actions button[aria-expanded="true"],
.d2g-nu .ds-sub button.active,.d2g-nu .ds-sub button[aria-pressed="true"]{
  background:var(--ds-m-soft);box-shadow:inset 0 0 0 1.5px var(--ds-m);color:var(--ds-m-hi);border-color:transparent}
.d2g-ts .ds-src-btn small,.d2g-ts .ds-dir-btn small{color:var(--ds-dim)}
.d2g-ts .ds-src-btn b,.d2g-ts .wave-symbol{font-family:var(--d2-font);font-weight:700}

/* 提示按钮：中性芯片；本轮没打好时高亮为提醒色 */
.d2g-ts #ds-en-hint,.d2g-eq #ds-en-hint,.d2g-eq .ds-hint-btn,.d2g-nu .ds-hint-row .ds-hint-btn{
  border:0;background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);color:#fff;font:700 var(--d2-fs-xs)/1 var(--d2-font);border-radius:999px}
.d2g-ts #ds-en-hint:hover,.d2g-eq #ds-en-hint:hover,.d2g-eq .ds-hint-btn:hover,.d2g-nu .ds-hint-row .ds-hint-btn:hover{background:rgba(255,255,255,.18)}
.d2g-eq #ds-en-hint.hot,.d2g-nu .ds-hint-row .ds-hint-btn.hot,.d2g-ts #ds-en-hint.hot{background:var(--d2-warn);color:var(--d2-ink);box-shadow:inset 0 -2px 0 #a8750f;animation:d2g-pulse 1.4s ease-in-out infinite}
@keyframes d2g-pulse{50%{box-shadow:inset 0 -2px 0 #a8750f,0 0 0 5px rgba(215,156,34,.28)}}

/* ---------- 进度条：破坏能量 / 可用当量 ---------- */
.d2g-ts .ds-en-bar,.d2g-eq .ds-en-bar{height:12px;border-radius:999px;background:rgba(255,255,255,.12);box-shadow:inset 0 1px 2px rgba(0,0,0,.35)}
.d2g-ts #ds-en-fill,.d2g-eq #ds-en-fill{background:var(--ds-m-fill);border-radius:999px}
.d2g-ts #ds-en-cost,.d2g-eq #ds-en-cost{background:repeating-linear-gradient(135deg,rgba(255,255,255,.8) 0 4px,rgba(255,255,255,.22) 4px 8px);opacity:1;border-left:0;animation:d2-blink 1.1s steps(2,start) infinite}
.d2g-eq #ds-en-cost.short{background:repeating-linear-gradient(135deg,rgba(255,255,255,.85) 0 4px,var(--d2-bad) 4px 8px)}
.d2g-eq .ds-en-bar em{background:rgba(255,255,255,.55)}
.d2g .ds-en-lab,.d2g-eq .ds-en-top b{color:var(--ds-m-hi);font:800 var(--d2-fs-sm)/1.2 var(--d2-font);letter-spacing:.02em}
@media (prefers-reduced-motion:reduce){.d2g-ts #ds-en-cost,.d2g-eq #ds-en-cost,.d2g #ds-en-hint.hot,.d2g .ds-hint-btn.hot{animation:none}}

/* ---------- 输入控件（深底） ---------- */
.d2g input[type="range"]{accent-color:var(--ds-m)}
.d2g-ts .ds-bsel,.d2g-ts .ds-row select,.d2g-eq #building,.d2g-eq .settings label select,.d2g-eq .dsq-opts select,
.d2g-nu .ds-sub select,.d2g-nu .ds-setup select,.d2g-nu .yield-row input{
  border:1px solid var(--ds-chip-l);border-radius:var(--d2-r-sm);background:var(--d2-ink-3);color:var(--d2-on-ink);color-scheme:dark}
.d2g :is(.ds-check,.check,.ds-settings label) input{accent-color:var(--ds-m)}

/* ---------- 吐司、命中提示 ---------- */
.d2g-ts #toast,.d2g-eq #toast{
  background:color-mix(in srgb,var(--d2-ink) 92%,transparent);color:var(--d2-on-ink);border-radius:999px;
  box-shadow:0 0 0 1px rgba(255,255,255,.08),var(--d2-sh-md);font:700 var(--d2-fs-sm)/1.5 var(--d2-font);padding:10px 20px}
.d2g-ts #ds-hit,.d2g-eq .ds-burst{
  background:var(--d2-atk);color:#fff;border-radius:var(--d2-r-lg);box-shadow:inset 0 -4px 0 var(--d2-atk-edge),var(--d2-glow-atk);
  font-family:var(--d2-font)}
.d2g-ts #ds-hit{font:900 20px/1.2 var(--d2-font);letter-spacing:.04em;border-radius:999px}
.d2g-ts #ds-hit[data-k="chain"],.d2g-eq .ds-burst.chain{background:var(--d2-ink);box-shadow:inset 0 0 0 2px var(--d2-atk),var(--d2-glow-atk)}
.d2g-ts #ds-hit[data-k="old"]{background:#7a4fc2;box-shadow:inset 0 -4px 0 #57359a,0 8px 28px rgba(122,79,194,.35)}
.d2g-eq .ds-burst b{font-weight:900;letter-spacing:.06em}

/* ---------- 弹窗（帮助） ---------- */
.d2g dialog{
  color-scheme:dark;background:var(--d2-ink-2);color:var(--d2-on-ink);border:1px solid var(--ds-gl);border-radius:var(--d2-r-lg);
  box-shadow:inset 0 4px 0 var(--ds-m),var(--d2-sh-lg);font-family:var(--d2-font)}
.d2g dialog::backdrop{background:rgba(10,14,18,.55);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.d2g dialog .eyebrow{font:600 var(--d2-fs-xs)/1.4 var(--d2-font-mono);letter-spacing:.14em;color:var(--ds-m-hi)}
.d2g dialog h2{font:900 22px/1.3 var(--d2-font);color:#fff;letter-spacing:.01em}
.d2g dialog p{color:var(--d2-on-ink-2);font-size:var(--d2-fs-sm);line-height:1.85}
.d2g dialog p b{color:#fff}
.d2g dialog small{color:var(--ds-dim2)}
.d2g dialog a{color:var(--ds-m-hi)}
.d2g dialog .close{color:var(--d2-on-ink-2);background:none;border:0;border-radius:var(--d2-r-sm)}
.d2g dialog .close:hover{background:rgba(255,255,255,.08);color:#fff}

/* ---------- 抽屉里的通用件 ---------- */
.d2g .dsk-drawer .scene-card{border:0;border-radius:var(--d2-r-sm);background:rgba(255,255,255,.05);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);color:var(--d2-on-ink);transition:background var(--d2-dur-2),box-shadow var(--d2-dur-2)}
.d2g .dsk-drawer .scene-card:hover{background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(255,255,255,.2);transform:none}
.d2g .dsk-drawer .scene-card[aria-pressed="true"],.d2g .dsk-drawer .scene-card.selected,.d2g .dsk-drawer .scene-card.active{
  background:var(--ds-m-soft);box-shadow:inset 0 0 0 2px var(--ds-m);color:#fff}
.d2g .dsk-drawer .scene-card span{font-weight:700}
.d2g .dsk-drawer :is(.scene-note,.ds-msec-note,.ds-preset-note,.parameter-note,.ds-setup-intro,#scene-index){color:var(--ds-dim)}

/* =====================================================================================================
   海啸
   ===================================================================================================== */
.d2g-ts body{background:var(--d2-paper-2)}
.d2g-ts .tag{height:30px;padding:0 12px;border-radius:999px;font-weight:700;color:var(--d2-on-ink-2);letter-spacing:.04em}
.d2g-ts .tag i{background:var(--ds-m-hi)}
.d2g-ts .top-actions #ds-challenge{background:var(--ds-m);border-color:transparent;color:#fff;box-shadow:inset 0 -3px 0 var(--ds-m-edge),var(--ds-gsh)}
.d2g-ts .top-actions #ds-challenge:hover{filter:brightness(1.07);background:var(--ds-m)}
.d2g-ts .ds-stats span{padding:5px 12px;color:var(--ds-dim);font-size:var(--d2-fs-xs);font-weight:600}
.d2g-ts .ds-stats b{color:#fff;font-family:var(--d2-font-num);font-weight:700}
.d2g-ts .ds-weak{border-radius:var(--d2-r-md);padding:10px 14px;font-size:var(--d2-fs-xs);box-shadow:inset 3px 0 0 var(--ds-m),var(--ds-gsh)}
.d2g-ts .ds-weak>b{font:800 var(--d2-fs-sm)/1.3 var(--d2-font);color:var(--ds-m-hi)}
.d2g-ts .ds-weak p{color:var(--d2-on-ink)}
.d2g-ts .ds-weak p.hit{color:var(--ds-dim2);text-decoration:line-through}
.d2g-ts .ds-weak p i{box-shadow:0 0 0 1.5px rgba(255,255,255,.85)}
.d2g-ts .ds-energy{border-radius:var(--d2-r-md);padding:8px 10px 8px 16px}
.d2g-ts .ds-en-t{color:var(--d2-star);font-size:10px}
.d2g-ts .ds-en-t::after{background:rgba(255,255,255,.7);box-shadow:none}
.d2g-ts .ds-en-num b{font:800 15px/1.1 var(--d2-font-num);color:#fff}
.d2g-ts .ds-en-num small{color:var(--ds-m-hi);font-weight:700}
.d2g-ts #ds-en-hint{min-height:32px;padding:0 14px}
.d2g-ts #ds-en-end{min-height:32px;border-radius:999px;font-weight:700}
.d2g-ts .ds-tiers-dock{border-radius:var(--d2-r-lg)}
.d2g-ts .ds-tiers-lab{color:var(--ds-m-hi);font:800 var(--d2-fs-sm)/1.2 var(--d2-font)}
.d2g-ts .ds-tiers-lab small{color:var(--ds-dim);font:600 10px/1.3 var(--d2-font)}
.d2g-ts .ds-undo{border-radius:var(--d2-r-lg);font-weight:700}
.d2g-ts .ds-undo:hover{background:color-mix(in srgb,var(--d2-ink-3) 92%,transparent)}
.d2g-ts .ds-act{border-radius:var(--d2-r-lg)}
.d2g-ts .ds-src-btn,.d2g-ts .ds-dir-btn{border-radius:var(--d2-r-sm)}
.d2g-ts .ds-src-btn span,.d2g-ts .ds-dir-btn span{font-weight:700}
.d2g-ts .ds-power label{color:var(--ds-dim);font-weight:600}
.d2g-ts .ds-power label span:last-child{color:#fff;font-family:var(--d2-font-num);font-weight:700}
.d2g-ts body[data-wave="big"] #power-label{color:var(--d2-warn)}
.d2g-ts body[data-wave="super"] #power-label{color:#ef7d72}
.d2g-ts #summon{padding:8px 22px 8px 16px}
.d2g-ts #summon>span:nth-child(2){font-size:var(--d2-fs-md);letter-spacing:.04em}
.d2g-ts #summon small{color:rgba(255,255,255,.82);font:600 10px/1.3 var(--d2-font);letter-spacing:.02em}
.d2g-ts .wave-symbol{font-size:26px}
.d2g-ts .ds-build-bar{font-weight:700}
.d2g-ts #ds-build-exit{border-radius:50%}
.d2g-ts .ds-bar-brush{color:var(--ds-dim)}
.d2g-ts .ds-slow{font-weight:700}
.d2g-ts .ds-slow[aria-pressed="true"]{background:var(--ds-m);color:#fff;border-color:transparent}
.d2g-ts .ds-hz-hint{color:#fff;font-weight:700}
.d2g-ts .ds-hz-hint b{background:var(--ds-m);color:#fff}
.d2g-ts #ds-hint-tip{background:var(--d2-ink);color:#fff;border-radius:var(--d2-r-xs);box-shadow:inset 0 -2px 0 var(--ds-m),var(--d2-sh-md)}
.d2g-ts #ds-hint-tip::after{border-top-color:var(--d2-ink)}
.d2g-ts body.ds-demo .ds-en-lab::after{color:#fff}
/* 场景抽屉、设置 */
.d2g-ts .ds-msec{border-top-color:rgba(255,255,255,.1)}
.d2g-ts .ds-msec h4{font:800 var(--d2-fs-base)/1.3 var(--d2-font);color:#fff;letter-spacing:0}
.d2g-ts .ds-msec h4 small{color:var(--ds-dim);font:500 var(--d2-fs-xs)/1.4 var(--d2-font)}
.d2g-ts .ds-tiers-pane button{min-height:44px}
.d2g-ts .ds-hz button{border:0;border-radius:var(--d2-r-sm);background:var(--ds-chip);box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--d2-on-ink);font-size:var(--d2-fs-xs)}
.d2g-ts .ds-hz button:hover{background:var(--ds-chip-h);box-shadow:inset 0 0 0 1.5px var(--ds-m)}
.d2g-ts .ds-hz button b{color:var(--ds-m-hi);font:800 var(--d2-fs-base)/1.2 var(--d2-font)}
.d2g-ts .ds-hz button em{color:var(--ds-dim)}
.d2g-ts .ds-chal-link{border:1.5px dashed var(--ds-m);color:var(--ds-m-hi);font-weight:700;border-radius:var(--d2-r-sm)}
.d2g-ts .ds-chal-link:hover{background:var(--ds-m-soft)}
.d2g-ts #ds-settings-pane h4{font:600 var(--d2-fs-xs)/1.4 var(--d2-font-mono);letter-spacing:.14em;color:var(--ds-m-hi)}
.d2g-ts .ds-row,.d2g-ts .ds-check{color:var(--d2-on-ink);font-size:var(--d2-fs-sm)}
.d2g-ts .ds-check small{color:var(--ds-dim)}
.d2g-ts .ds-detail dt{color:var(--ds-dim)}
.d2g-ts .ds-detail dd{color:#fff;font-family:var(--d2-font-num)}
.d2g-ts .ds-pane-acts button,.d2g-ts .ds-guide-again{border:0;border-radius:var(--d2-r-sm);background:var(--ds-chip);box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--d2-on-ink);font-weight:700}
.d2g-ts .ds-pane-acts button:hover,.d2g-ts .ds-guide-again:hover{background:var(--ds-chip-h)}
.d2g-ts .ds-guide-again{color:var(--ds-m-hi)}
.d2g-ts .scene-card svg{filter:drop-shadow(0 1px 0 rgba(0,0,0,.25))}
@media (max-width:1220px){.d2g-ts .ds-mode button{padding:0 12px}}
@media (max-width:760px){
  .d2g-ts .brand{display:none}
  .d2g-ts .ds-mode{height:auto}
  .d2g-ts .ds-mode button{min-height:36px;padding:0 12px}
  .d2g-ts .ds-energy{border-radius:var(--d2-r-md);padding:6px 8px 6px 12px}
  .d2g-ts .ds-weak{border-radius:var(--d2-r-sm)}
  .d2g-ts .ds-tiers-dock,.d2g-ts .ds-undo,.d2g-ts .ds-act{border-radius:var(--d2-r-md)}
  .d2g-ts #summon{padding:6px 14px 6px 10px}
  .d2g-ts #summon>span:nth-child(2){font-size:var(--d2-fs-base)}
  .d2g-ts #toast{border-radius:var(--d2-r-md)}
}

/* =====================================================================================================
   地震
   ===================================================================================================== */
.d2g-eq body{background:var(--d2-paper-2)}
/* 基础按钮：bundle 的裸 button 样式是浅色的，换成深底芯片（零特异度，具体规则仍可覆盖） */
:where(.d2g-eq) button{border-color:var(--ds-chip-l);background:var(--ds-chip);color:inherit}
:where(.d2g-eq) button:hover{background:var(--ds-chip-h)}
.d2g-eq header .ds-mode{margin:0;display:flex;grid-template-columns:none}
.d2g-eq header .ds-mode button{flex-direction:row;min-height:36px;padding:0 14px}
.d2g-eq header .ds-mode button b{font:inherit}
.d2g-eq header .ds-mode button small{display:none}
.d2g-eq .header-right #dsq-ch-btn{background:var(--ds-m);border-color:transparent;color:#fff;box-shadow:inset 0 -3px 0 var(--ds-m-edge),var(--ds-gsh)}
.d2g-eq .header-right #dsq-ch-btn:hover{filter:brightness(1.07);background:var(--ds-m)}
.d2g-eq .live{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:999px;font-weight:700;color:var(--d2-on-ink-2)}
.d2g-eq .ds-mode-destroy .live,.d2g-eq.d2g-eq body.ds-mode-destroy .live{color:var(--ds-m-hi)}
.d2g-eq .live i{background:var(--ds-m-hi)}
.d2g-eq .scene-heading .eyebrow{font:600 var(--d2-fs-xs)/1.4 var(--d2-font-mono);letter-spacing:.14em;color:var(--d2-text-2)}
.d2g-eq .scene-heading h2{font:900 26px/1.2 var(--d2-font);letter-spacing:.02em;color:var(--d2-text)}
.d2g-eq .scene-heading p{font-size:var(--d2-fs-xs);color:var(--d2-text-2);letter-spacing:.02em}
.d2g-eq .telemetry{border-radius:var(--d2-r-md);padding:12px 14px 8px}
.d2g-eq .signal-title{font:600 11px/1.4 var(--d2-font-num);color:var(--ds-dim)}
.d2g-eq .signal-title b{font:700 var(--d2-fs-xs)/1.4 var(--d2-font);color:var(--d2-on-ink)}
.d2g-eq .signal-title i{background:var(--ds-m-hi)}
.d2g-eq .signal-title i.active{background:var(--d2-bad)}
.d2g-eq .dsq-key strong,.d2g-eq .metrics strong{font-family:var(--d2-font-num);font-weight:700;color:#fff}
.d2g-eq .dsq-key strong.hot{color:#ef7d72}
.d2g-eq .dsq-key em,.d2g-eq .metrics em{font-family:var(--d2-font-num);color:var(--ds-dim)}
.d2g-eq .dsq-key span,.d2g-eq .metrics span{color:var(--ds-dim);font-size:10.5px}
.d2g-eq #dsq-data summary{color:var(--ds-dim);border-top-color:rgba(255,255,255,.1);font-weight:600}
.d2g-eq .failure-stats{color:var(--d2-warn)}
.d2g-eq #seismogram{background:rgba(255,255,255,.92);border-radius:var(--d2-r-xs)}
.d2g-eq .metrics{border-top-color:rgba(255,255,255,.1)}
.d2g-eq .legend,.d2g-eq .selection-title small,.d2g-eq .selection-detail,.d2g-eq .hydro-stats,.d2g-eq .zone-row,.d2g-eq #geo-legend,.d2g-eq .comparison-note{color:var(--ds-dim)}
.d2g-eq .selection-detail b,.d2g-eq .hydro-stats b,.d2g-eq .selection-title b{color:var(--d2-on-ink)}
.d2g-eq .hydro-stats,.d2g-eq #zone-stats{border-top-color:rgba(255,255,255,.1)}
.d2g-eq .zone-row .bar{background:rgba(255,255,255,.12)}
.d2g-eq .zone-row b{font-family:var(--d2-font-num)}
.d2g-eq .dsq-spent{color:var(--ds-m-hi)}
.d2g-eq .dsq-sub{border-radius:var(--d2-r-md)}
.d2g-eq .dsq-sub-tools button{min-height:34px;border-radius:var(--d2-r-xs);background:transparent;box-shadow:none}
.d2g-eq .dsq-sub-sep{background:rgba(255,255,255,.14)}
.d2g-eq .dsq-brush{color:var(--ds-dim)}
.d2g-eq .dsq-brush span{font-family:var(--d2-font-num)}
.d2g-eq .dsq-hint{background:color-mix(in srgb,var(--d2-ink) 94%,transparent);color:var(--d2-on-ink);border-radius:var(--d2-r-sm);box-shadow:inset 3px 0 0 var(--ds-m),var(--ds-gsh);font-size:var(--d2-fs-xs)}
.d2g-eq .dsk-tool.dsq-rec::after{background:var(--ds-m);color:#fff;font-weight:700;border-radius:999px}
.d2g-eq .dsq-undo{border-radius:var(--d2-r-lg);font-weight:700}
.d2g-eq .dsq-undo:hover{background:color-mix(in srgb,var(--d2-ink-3) 92%,transparent)}
.d2g-eq .dsq-trash{border-color:var(--d2-bad);background:color-mix(in srgb,var(--d2-bad) 22%,var(--d2-ink));color:#fff;border-radius:var(--d2-r-lg)}
.d2g-eq .dsq-trash.hot{background:var(--d2-bad)}
.d2g-eq .ds-energy{border-radius:var(--d2-r-lg);padding:9px 14px 8px}
.d2g-eq .ds-en-top{color:var(--ds-dim)}
.d2g-eq #ds-en-v{font:800 16px/1 var(--d2-font-num);color:#fff}
.d2g-eq #ds-en-depth{min-height:28px;border-radius:999px;font-size:var(--d2-fs-xs);font-weight:700}
.d2g-eq #ds-en-hint,.d2g-eq .ds-hint-btn{min-height:28px;padding:2px 12px}
.d2g-eq .ds-en-stars{color:var(--d2-star);font-size:15px}
.d2g-eq .ds-en-stars i{color:rgba(255,255,255,.18)}
.d2g-eq .ds-en-weak{color:var(--ds-dim)}
.d2g-eq .ds-en-weak span.ok{color:var(--ds-dim2)}
.d2g-eq .ds-act{border-radius:var(--d2-r-lg)}
.d2g-eq #dsq-epi{border-radius:var(--d2-r-sm);font-weight:700}
.d2g-eq .ds-act-mag b{font:800 28px/1 var(--d2-font-num);letter-spacing:0;color:var(--ds-m-hi)}
.d2g-eq .ds-act-mag span{color:var(--ds-dim);font-weight:600}
.d2g-eq .ds-act.hypo .ds-act-mag b,.d2g-eq .ds-act.hypo .ds-act-mag span{color:#ef7d72}
.d2g-eq #dsq-slow,.d2g-eq #pause{border-radius:var(--d2-r-sm);font-weight:700}
.d2g-eq #ds-go{padding:0 20px}
.d2g-eq .ds-act.hypo #ds-go{background:var(--ds-m-edge);box-shadow:inset 0 -3px 0 #7a3410}
.d2g-eq #ds-go.ds-short{background:var(--d2-ink-3);color:var(--d2-on-ink-2);box-shadow:inset 0 0 0 1px var(--ds-chip-l)}
.d2g-eq .ds-go-cost{background:rgba(0,0,0,.2);font:700 11px/1.3 var(--d2-font-num);padding:2px 7px}
.d2g-eq .ds-pill{border-radius:999px;font-weight:700}
.d2g-eq .ds-pill button{background:var(--ds-m);color:#fff;border:0}
.d2g-eq #restore-ui{border-radius:var(--d2-r-md);font-weight:700}
/* 叠在场景上的标签保持浅底，便于在沙盘上辨认；只统一字体 */
.d2g-eq .ds-weak-tag,.d2g-eq .ds-ref-tag{font-family:var(--d2-font);font-weight:700}
/* 报告卡顶部的结果条：破坏 = 攻色，防护 = 成功 / 失败状态色 */
.d2g-eq .ds-preset-res{border-radius:var(--d2-r-md);font:800 16px/1.35 var(--d2-font);background:linear-gradient(90deg,var(--d2-atk-edge),var(--d2-atk));box-shadow:inset 0 -3px 0 rgba(0,0,0,.18)}
.d2g-eq .ds-preset-res.held{background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
.d2g-eq body.ds-mode-protect .ds-preset-res{background:var(--d2-bad);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2)}
.d2g-eq body.ds-mode-protect .ds-preset-res.held{background:var(--d2-ok);box-shadow:inset 0 -3px 0 rgba(0,0,0,.2)}
.d2g-eq .ds-preset-res small{font-weight:600;opacity:.9}
.d2g-eq .ds-hint-card .dsk-note{color:var(--d2-on-ink);font-size:var(--d2-fs-base)}
/* 抽屉：场景、强化 / 灾害等级、设置 */
.d2g-eq .dsk-drawer .ds-mode{background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);border-radius:var(--d2-r-md)}
.d2g-eq .dsk-drawer .ds-mode button small{color:inherit;opacity:.8}
.d2g-eq .ds-preset{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1);border-radius:var(--d2-r-md);padding:12px 12px 10px}
.d2g-eq .ds-preset-h b{color:#fff;font-weight:800;font-size:var(--d2-fs-base)}
.d2g-eq .ds-preset-h span{color:var(--ds-dim)}
.d2g-eq .ds-preset-row button{min-height:46px}
.d2g-eq .dsq-settings .section-title{color:var(--d2-on-ink);font-weight:700}
.d2g-eq .dsq-settings .section-title>span{font:600 10px/1 var(--d2-font-mono);letter-spacing:.14em;color:var(--ds-dim)}
.d2g-eq .magnitude-row>strong{font:800 46px/1 var(--d2-font-num);letter-spacing:-.01em;color:var(--ds-m-hi)}
.d2g-eq .magnitude-row b{color:#fff;font-weight:700}
.d2g-eq .magnitude-row small,.d2g-eq .range-label,.d2g-eq .tiny{color:var(--ds-dim)}
.d2g-eq .magnitude-row.hypo>strong,.d2g-eq .magnitude-row.hypo b{color:#ef7d72}
.d2g-eq .mag-zones i{background:rgba(255,255,255,.16)}
.d2g-eq .mag-note{color:var(--d2-warn)}
.d2g-eq .presets button{font:700 12px var(--d2-font-num);border-radius:var(--d2-r-xs)}
.d2g-eq .presets button.active,.d2g-eq .presets button.hypo.active{background:var(--ds-m);border-color:transparent;color:#fff}
.d2g-eq .presets button.hypo{color:#ef7d72;border-color:rgba(239,125,114,.4)}
.d2g-eq .settings{border-top-color:rgba(255,255,255,.1)}
.d2g-eq .settings>label,.d2g-eq .check{color:var(--d2-on-ink)}
.d2g-eq .settings b{font-family:var(--d2-font-num);color:var(--ds-m-hi)}
.d2g-eq .model-note{color:var(--ds-dim2)}
.d2g-eq .dsq-help-acts button{border:0;box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--ds-m-hi);font-weight:700;border-radius:var(--d2-r-sm)}
@media (pointer:coarse){
  .d2g-eq input[type="range"]::-webkit-slider-runnable-track{background:linear-gradient(90deg,var(--ds-m) var(--fill),rgba(255,255,255,.2) var(--fill))}
  .d2g-eq input[type="range"]::-webkit-slider-thumb{border:3px solid var(--ds-m);background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.45)}
  .d2g-eq input[type="range"]::-moz-range-track{background:rgba(255,255,255,.2)}
  .d2g-eq input[type="range"]::-moz-range-progress{background:var(--ds-m)}
  .d2g-eq input[type="range"]::-moz-range-thumb{border-color:var(--ds-m);background:#fff}
}
@media (max-width:800px),(max-height:500px){
  .d2g-eq .brand{display:none}
  .d2g-eq header .ds-mode button{min-height:36px;padding:0 12px}
  .d2g-eq .telemetry{border-radius:var(--d2-r-sm)}
  .d2g-eq .dsq-key div::before{color:var(--ds-dim)}
  .d2g-eq .ds-energy,.d2g-eq .ds-act,.d2g-eq .dsq-undo{border-radius:var(--d2-r-md)}
  .d2g-eq #toast{border-radius:var(--d2-r-md)}
}

/* =====================================================================================================
   核爆（收敛：灰琥珀 / 灰青，无发光、无星级）
   ===================================================================================================== */
.d2g-nu body{background:var(--d2-ink);color:var(--d2-on-ink);color-scheme:dark}
.d2g-nu header{border-bottom-color:rgba(255,255,255,.08)}
.d2g-nu .brand{font:800 18px/1.15 var(--d2-font);letter-spacing:.04em;color:#fff}
.d2g-nu .brand small{font:600 9px/1 var(--d2-font-mono);letter-spacing:.14em;color:var(--ds-dim)}
.d2g-nu .brand-mark{transform:none;width:36px;height:36px;border:0;border-radius:var(--d2-r-sm);background:var(--d2-ink-3);box-shadow:inset 0 -2px 0 rgba(0,0,0,.35);color:#cdbb9a;font:700 22px/1 var(--d2-font)}
.d2g-nu .header-note{color:var(--ds-dim);letter-spacing:.06em}
.d2g-nu .header-note i,.d2g-nu .live-dot{background:var(--ds-m-hi)}
.d2g-nu .ds-mode-top{display:flex;gap:3px;padding:3px;margin-left:auto;border-radius:var(--d2-r-md);background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.d2g-nu .ds-mode-top button{min-height:34px;padding:0 14px;white-space:nowrap}
.d2g-nu .ds-mode-top button small{display:none}
.d2g-nu .ds-mode-top button b{font:inherit}
.d2g-nu .ds-mode-top+.header-note{margin-left:16px}
.d2g-nu .workspace{border:1px solid rgba(255,255,255,.08);border-radius:var(--d2-r-lg);box-shadow:var(--d2-sh-lg)}
.d2g-nu .ds-status{height:34px;padding:0 6px 0 12px;border-radius:999px;font-weight:700;color:var(--d2-on-ink)}
.d2g-nu .strike-count{border:0;border-radius:999px;background:rgba(255,255,255,.1);color:var(--d2-on-ink-2);font:700 11px/1.5 var(--d2-font);padding:2px 9px}
.d2g-nu .view-actions button{min-height:36px;border-radius:var(--d2-r-md)}
.d2g-nu .view-actions button[aria-expanded="true"]{background:var(--ds-m-soft);box-shadow:inset 0 0 0 1.5px var(--ds-m)}
.d2g-nu .scene-copy .eyebrow{font:600 10px/1.4 var(--d2-font-mono);letter-spacing:.14em;color:var(--d2-text-2)}
.d2g-nu .scene-copy h2{font:900 22px/1.25 var(--d2-font);letter-spacing:.02em;color:var(--d2-text)}
.d2g-nu .scene-copy p{font-size:var(--d2-fs-xs);color:var(--d2-text-2)}
.d2g-nu .annotation{font-family:var(--d2-font);font-weight:700}
.d2g-nu .compass{color:var(--d2-text-3)}
.d2g-nu .scene-caption{color:var(--d2-text-2);font-weight:600}
.d2g-nu .ds-live{padding:8px 12px;border-radius:var(--d2-r-md);color:var(--ds-dim);font-size:var(--d2-fs-xs)}
.d2g-nu .ds-live b{color:#fff;font-family:var(--d2-font-num);font-weight:700}
.d2g-nu .ds-live .ds-live-shield b{color:#8fcf95}
.d2g-nu .ds-live i{border-color:#8fcf95}
.d2g-nu .ds-live .ds-live-energy i{width:132px;height:10px;border:0;border-radius:999px;background:rgba(255,255,255,.14);box-shadow:inset 0 1px 2px rgba(0,0,0,.35)}
.d2g-nu .ds-live .ds-live-energy u{background:var(--ds-m-fill);border-radius:999px}
.d2g-nu .ds-live .ds-live-energy.low u{background:var(--d2-warn)}
/* The next strike's share of the allowance, striped at the end of what is left (same idea as the tsunami / earthquake energy bar). */
.d2g-nu .ds-live .ds-live-energy s{position:absolute;top:0;bottom:0;text-decoration:none;background:repeating-linear-gradient(135deg,rgba(255,255,255,.8) 0 4px,rgba(255,255,255,.22) 4px 8px);animation:d2-blink 1.1s steps(2,start) infinite;transition:left .3s,width .3s}
.d2g-nu .ds-live .ds-live-energy s.short{background:repeating-linear-gradient(135deg,rgba(255,255,255,.85) 0 4px,var(--d2-bad) 4px 8px)}
.d2g-nu .ds-live .ds-live-energy em{font-style:normal;margin-left:6px;color:var(--d2-on-ink-2,#c9cdd2);font-variant-numeric:tabular-nums}
.d2g-nu .ds-live .ds-live-energy em.short{color:var(--d2-bad)}
.d2g-nu .ds-live .ds-live-energy em:empty{display:none}
@media (max-width:760px){.d2g-nu .ds-live .ds-live-energy i{width:92px}}
@media (prefers-reduced-motion:reduce){.d2g-nu .ds-live .ds-live-energy s{animation:none}}
.d2g-nu .ds-live-pts.over b{color:var(--d2-warn)}
.d2g-nu .workspace.detonating .ds-live,.d2g-nu .workspace.detonating .ds-live b{color:var(--d2-on-ink)}
.d2g-nu .ds-chip{border-radius:999px;font-weight:700}
.d2g-nu .ds-chip button{border-radius:50%}
.d2g-nu .deck{background:var(--d2-ink-2);border-top:1px solid rgba(255,255,255,.08);color-scheme:dark}
.d2g-nu .workspace.detonating .deck{background:#141920}
.d2g-nu .control-dock,.d2g-nu .ds-sub{border:1px solid rgba(255,255,255,.08);border-radius:var(--d2-r-md);background:rgba(255,255,255,.04);color:var(--d2-on-ink)}
.d2g-nu .control-dock button{box-shadow:none;background:transparent}
.d2g-nu .control-dock .time,.d2g-nu .duration{font-family:var(--d2-font-num);color:var(--ds-dim)}
.d2g-nu .ds-sub-title{font:800 var(--d2-fs-sm)/1.2 var(--d2-font);color:var(--ds-m-hi)}
.d2g-nu .ds-sub button{border-radius:999px;font-weight:700}
.d2g-nu .ds-brush{border-left-color:rgba(255,255,255,.12);color:var(--ds-dim)}
.d2g-nu .ds-brush output{color:#fff;font-family:var(--d2-font-num)}
.d2g-nu #edit-note{color:var(--ds-dim)}
.d2g-nu .ds-tools .dsk-tray{background:rgba(255,255,255,.04);box-shadow:none;backdrop-filter:none}
.d2g-nu .dsk-tool[aria-pressed="true"] b{color:inherit}
.d2g-nu .ds-bar-yield label{color:var(--ds-dim);font-weight:700}
.d2g-nu .ds-bar-yield output{font:800 17px/1 var(--d2-font-num);color:var(--ds-m-hi)}
.d2g-nu .ds-bar-yield small{color:var(--ds-dim)}
.d2g-nu .ds-burst{border-radius:999px;font-weight:700}
.d2g-nu .ds-burst b{color:inherit;opacity:.8}
.d2g-nu .ds-bar-actions button:not(.ds-launch){border-radius:var(--d2-r-sm);font-weight:700}
.d2g-nu .ds-bar-actions .ds-launch{font-size:var(--d2-fs-base);letter-spacing:.1em}
.d2g-nu .ds-cost{background:var(--d2-ink);border:1px solid var(--ds-m-hi);color:var(--ds-m-hi);font:700 10.5px/1.5 var(--d2-font-num);box-shadow:var(--d2-sh-sm)}
.d2g-nu .ds-cost.over{border-color:var(--d2-warn);color:var(--d2-warn)}
.d2g-nu .observation{border-top-color:rgba(255,255,255,.08)}
.d2g-nu .observation summary .eyebrow{font:600 10px/1.4 var(--d2-font-mono);letter-spacing:.14em;color:var(--ds-dim)}
.d2g-nu .observation summary b{font:800 16px/1.3 var(--d2-font);color:#fff}
.d2g-nu .observation summary small,.d2g-nu .metric>span,.d2g-nu .metric small{color:var(--ds-dim)}
.d2g-nu .metric{border-left-color:rgba(255,255,255,.1)}
.d2g-nu .metric strong{font:800 20px/1.3 var(--d2-font);color:#cdbb9a}
.d2g-nu .science-note{color:var(--ds-dim2);border-top-color:rgba(255,255,255,.1)}
.d2g-nu footer{color:var(--ds-dim2)}
/* 抽屉 */
.d2g-nu .ds-setup-intro{color:var(--ds-dim)}
.d2g-nu .dsk-drawer .ds-mode-seg{border:0;border-radius:var(--d2-r-md);background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(255,255,255,.1)}
.d2g-nu .dsk-drawer .ds-mode-seg small{opacity:.8}
.d2g-nu .section-title h2{font:800 var(--d2-fs-base)/1.3 var(--d2-font);color:#fff}
.d2g-nu .section-title>span{font:600 10px/1 var(--d2-font-mono);letter-spacing:.14em;color:var(--ds-dim)}
.d2g-nu .section-title output{color:var(--ds-m-hi);font-family:var(--d2-font-num)}
.d2g-nu .ds-haz-info{color:var(--ds-dim)}
.d2g-nu .ds-haz-info b{color:#fff}
.d2g-nu .ds-fort-weak b{color:var(--d2-warn)}
.d2g-nu .ds-haz-go{border:0;border-radius:var(--d2-r-sm);background:var(--ds-m);color:#fff;font-weight:800;box-shadow:inset 0 -3px 0 var(--ds-m-edge)}
.d2g-nu .ds-haz-go:hover{filter:brightness(1.07)}
.d2g-nu .ds-hint-row .ds-hint-btn{border-radius:var(--d2-r-sm)}
.d2g-nu .yield-row label,.d2g-nu .yield-row span{color:var(--ds-dim)}
.d2g-nu .yield-presets button{border:0;border-radius:var(--d2-r-xs);background:var(--ds-chip);box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--d2-on-ink);font:700 12px var(--d2-font-num)}
.d2g-nu .yield-presets button.active{background:var(--ds-m-soft);box-shadow:inset 0 0 0 1.5px var(--ds-m);color:var(--ds-m-hi)}
.d2g-nu .quiet-note{color:var(--ds-dim2)}
.d2g-nu .ds-occl{background:rgba(143,207,149,.08);border-color:rgba(143,207,149,.3)}
.d2g-nu .ds-occl h4{font:800 var(--d2-fs-sm)/1.3 var(--d2-font);color:#8fcf95}
.d2g-nu .ds-settings{border-color:rgba(255,255,255,.1);background:rgba(255,255,255,.04)}
.d2g-nu .ds-settings label{color:var(--d2-on-ink)}
.d2g-nu .ds-settings small{color:var(--ds-dim)}
.d2g-nu .ds-settings button{border:0;box-shadow:inset 0 0 0 1px var(--ds-chip-l);background:var(--ds-chip);color:var(--ds-m-hi);font-weight:700}
.d2g-nu .dsk-more-menu{max-height:calc(100dvh - 80px)}
@media (pointer:coarse){
  .d2g-nu input[type="range"]::-webkit-slider-runnable-track{background:rgba(255,255,255,.2)}
  .d2g-nu input[type="range"]::-webkit-slider-thumb{background:var(--ds-m);border:3px solid #fff;box-shadow:0 1px 6px rgba(0,0,0,.45)}
  .d2g-nu input[type="range"]::-moz-range-track{background:rgba(255,255,255,.2)}
  .d2g-nu input[type="range"]::-moz-range-thumb{background:var(--ds-m);border-color:#fff}
}
.d2g-nu.ds-m .ds-bar{background:color-mix(in srgb,var(--d2-ink) 94%,transparent);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 -8px 28px rgba(10,14,18,.4);color:var(--d2-on-ink)}
.d2g-nu.ds-m header{border-bottom:0}
.d2g-nu.ds-m .ds-mode-top button{padding:0 10px;min-height:32px}
@media (max-width:420px){.d2g-nu.ds-m .ds-mode-top button{padding:0 8px;font-size:12px}}

/* ---------- 第一轮截图后的修正 ---------- */
.d2g-eq .brand,.d2g-eq .dsq-scene-btn,.d2g-eq header .ds-mode{flex:none}
.d2g-eq .dsq-scene-btn{flex:0 1 auto;min-width:0}
.d2g-eq header .ds-mode button{white-space:nowrap}
@media (max-width:1240px){.d2g-eq .live{display:none}}
@media (max-width:1220px){.d2g-eq .ds-mode-suf{display:none}}
.d2g-ts #toast,.d2g-eq #toast{border-radius:var(--d2-r-md)}
.d2g-eq #toast{width:max-content;max-width:min(520px,calc(100vw - 24px))}
.d2g-eq body.ds-mode-protect #ds-go.ds-short{background:var(--ds-m);color:#fff;box-shadow:inset 0 -3px 0 var(--ds-m-edge),var(--d2-sh-sm)}
.d2g-nu .brand{flex:0 1 auto;min-width:0;white-space:nowrap}
.d2g-nu .brand>span:last-child{overflow:hidden;text-overflow:ellipsis}
.d2g-nu .ds-mode-top{flex:none}
.d2g-nu.ds-m .brand{font-size:15px;gap:8px}
.d2g-nu.ds-m .brand-mark{width:30px;height:30px;font-size:18px}
/* 结果条（ds-kit report 的 result）：核爆收敛为浅色衬底 + 左侧色线 */
.d2g-nu .dsk-res--ok{background:rgba(63,143,85,.24);box-shadow:inset 3px 0 0 var(--d2-ok)}
.d2g-nu .dsk-res--bad{background:rgba(201,68,58,.22);box-shadow:inset 3px 0 0 var(--d2-bad)}

/* ---------- 遮挡修正（2026-10-24 第二轮） ---------- */
/* ① 地震手机：吐司放到数据卡 / 挑战 HUD 下方；用工具时再让开工具胶囊 */
@media (max-width:800px),(max-height:500px){
  .d2g-eq #toast{top:calc(112px + env(safe-area-inset-top))}
  .d2g-eq body:not([data-tool="orbit"]) #toast{top:calc(168px + env(safe-area-inset-top))}
  .d2g-eq body.dsq-ch:not([data-tool="orbit"]) #toast{top:calc(182px + env(safe-area-inset-top))}
}
@media (max-height:500px) and (min-width:501px){.d2g-eq #toast{top:calc(100px + env(safe-area-inset-top))}}
/* ① 核爆：吐司从操作区上方移到场景顶部（场景标题行下），不再压住道具托盘、时间轴 */
.d2g-nu .dsk-toast{bottom:auto;top:calc(var(--head-h) + 70px)}
.d2g-nu.ds-m .dsk-toast{bottom:auto;top:calc(env(safe-area-inset-top) + 112px)}
.d2g-nu.ds-land .dsk-toast{top:calc(env(safe-area-inset-top) + 60px)}
/* ② 海啸手机：薄弱点面板保持紧凑（每条一行），吐司排在它下面 */
@media (max-width:760px){
  .d2g-ts .ds-weak{padding:6px 10px;font-size:11px;line-height:1.45;border-radius:var(--d2-r-sm)}
  .d2g-ts .ds-weak p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
  .d2g-ts .ds-weak p i{flex:none}
  .d2g-ts body[data-mode="destroy"]:has(#ds-weak:not([hidden])) #toast{top:calc(166px + env(safe-area-inset-top))}
}
/* ③ 核爆桌面：矮屏（如 960×600、1280×600）操作区一屏内可见——沙盘最小高度放低、顶栏收窄 */
.d2g-nu .stage{height:clamp(240px,calc(100dvh - var(--chrome)),880px)}
@media (min-width:1500px){.d2g-nu .stage{height:clamp(240px,calc(100dvh - var(--chrome)),900px)}}
@media (max-height:700px){
  .d2g-nu:not(.ds-m) {--head-h:48px}
  .d2g-nu:not(.ds-m) main{padding-top:8px}
  .d2g-nu:not(.ds-m) .brand small{display:none}
}
/* 强化观察没有道具托盘，窄桌面的操作区只有一行：把省下的高度还给沙盘 */
@media (max-width:1180px){.d2g-nu.ds-pm-fortify:not(.ds-m):not(.embedded){--chrome:236px}}

/* ---------- 重新开始（主操作栏，发动按钮旁；三款共用） ----------
 * 模式色描边芯片：攻（破坏 / 强化观察）显示「重新开始」，守（防护模式、守护挑战）显示「重来」。
 * 有进度时第一下 .arm（提醒色「再点确认」）并在按钮上方弹出 .ds-rs-pop 确认气泡（防护模式另有「清空布置」）。
 * 桌面横排「↻ 文字」；手机竖排（图标在上、小字在下），与撤销 / 定位等图标按钮同一手感。 */
.d2g .ds-restart{
  flex:none;align-self:stretch;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 13px;
  border:0;border-radius:var(--d2-r-sm);background:var(--ds-m-soft);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--ds-m) 75%,transparent);
  color:var(--ds-m-hi);font:700 var(--d2-fs-sm)/1.1 var(--d2-font);letter-spacing:.02em;white-space:nowrap;cursor:pointer;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
  transition:background var(--d2-dur-2),box-shadow var(--d2-dur-2),color var(--d2-dur-2),transform var(--d2-dur-1) var(--d2-ease)}
.d2g .ds-restart b{font:800 19px/1 var(--d2-font);font-weight:800}
.d2g .ds-restart:hover{background:color-mix(in srgb,var(--ds-m) 32%,transparent)}
.d2g .ds-restart:active{transform:translateY(1px)}
.d2g .ds-restart:focus-visible{outline:2px solid var(--ds-m-hi);outline-offset:2px}
.d2g .ds-restart .ds-rs-a,
.d2g-ts body[data-mode="destroy"]:not(.ds-chal) .ds-restart .ds-rs-d,
.d2g-eq body.ds-mode-destroy:not(.dsq-ch) .ds-restart .ds-rs-d,
.d2g-nu.ds-pm-fortify .ds-restart .ds-rs-d{display:none}
.d2g-ts body[data-mode="destroy"]:not(.ds-chal) .ds-restart .ds-rs-a,
.d2g-eq body.ds-mode-destroy:not(.dsq-ch) .ds-restart .ds-rs-a,
.d2g-nu.ds-pm-fortify .ds-restart .ds-rs-a{display:inline}
.d2g .ds-restart.arm{background:color-mix(in srgb,var(--d2-warn) 26%,transparent);box-shadow:inset 0 0 0 1.5px var(--d2-warn);color:#ffd88a;animation:d2g-rs-arm 1s var(--d2-ease) infinite}
.d2g .ds-restart.arm span{display:none!important}
.d2g .ds-restart.arm::after{content:"再点确认"}
@keyframes d2g-rs-arm{50%{box-shadow:inset 0 0 0 1.5px var(--d2-warn),0 0 0 4px rgba(215,156,34,.26)}}
/* 各款：与同一排按钮等高、同一圆角 */
.d2g-ts .ds-act .ds-restart{min-height:54px}
.d2g-eq .ds-act .ds-restart{min-height:52px}
.d2g-nu .ds-bar-actions button.ds-restart{border:0;background:var(--ds-m-soft);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--ds-m) 80%,transparent);color:var(--ds-m-hi);font-size:var(--d2-fs-sm);font-weight:700}
.d2g-nu .ds-bar-actions button.ds-restart:hover{background:color-mix(in srgb,var(--ds-m) 34%,transparent)}
.d2g-nu .ds-bar-actions button.ds-restart.arm{background:color-mix(in srgb,var(--d2-warn) 26%,transparent);box-shadow:inset 0 0 0 1.5px var(--d2-warn);color:#ffd88a}
.d2g-nu .ds-bar-actions button.ds-restart b{font-size:18px;font-weight:800}
/* 手机：竖排小按钮；为它让出一格——海啸破坏模式收起来浪按钮和召唤按钮的图标，地震收起触发按钮的图标，核爆图标按钮收窄 */
@media (max-width:760px){
  .d2g-ts .ds-act .ds-restart{flex-direction:column;gap:3px;min-width:48px;min-height:46px;padding:0 4px;font-size:10.5px;letter-spacing:0}
  .d2g-ts .ds-act .ds-restart b{font-size:18px}
  .d2g-ts .ds-restart.arm::after{content:"再点确认";font-size:10px}
}
@media (max-width:440px){
  .d2g-ts body[data-mode="destroy"] .ds-act .ds-src-btn b,.d2g-ts body[data-mode="destroy"] .ds-act .ds-dir-btn b,.d2g-ts body[data-mode="destroy"] .ds-act .wave-symbol{display:none}
  .d2g-ts body[data-mode="destroy"] .ds-act .ds-src-btn,.d2g-ts body[data-mode="destroy"] .ds-act .ds-dir-btn{padding:2px 8px}
  .d2g-ts .ds-act .summon{padding-left:12px;padding-right:12px}
}
@media (max-width:800px),(max-height:500px){
  .d2g-eq .ds-act{gap:6px}
  .d2g-eq .ds-act .ds-restart{flex-direction:column;gap:3px;min-width:48px;min-height:50px;padding:0 4px;font-size:10.5px;letter-spacing:0}
  .d2g-eq .ds-act .ds-restart b{font-size:18px}
  .d2g-eq .ds-act .ds-go{padding:0 10px}
  .d2g-eq .ds-act .ds-go i{display:none}
}
.d2g-nu.ds-m .ds-bar-actions{gap:5px}
.d2g-nu.ds-m .ds-bar-actions button:not(.ds-launch){flex-basis:46px}
.d2g-nu.ds-m .ds-bar-actions button.ds-restart{flex-direction:column;gap:2px;padding:0;font-size:10px;letter-spacing:0}
.d2g-nu.ds-m .ds-bar-actions .ds-launch{letter-spacing:.04em;gap:6px}
@media (max-width:380px){.d2g-nu.ds-m .ds-bar-actions button:not(.ds-launch){flex-basis:44px}}
@media (min-width:600px){.d2g-nu.ds-m .ds-bar-actions button:not(.ds-launch){flex-basis:52px}}
/* 确认气泡：深色玻璃，箭头指向按钮；主按钮模式色实心，清空布置用失败色描边 */
.ds-rs-pop{
  position:fixed;z-index:54;box-sizing:border-box;width:max-content;max-width:min(300px,calc(100vw - 16px));padding:11px 12px 10px;
  border-radius:var(--d2-r-md,14px);background:var(--ds-glass,rgba(21,26,32,.94));box-shadow:inset 0 0 0 1px var(--ds-gl,rgba(255,255,255,.1)),var(--d2-sh-md,0 8px 24px rgba(0,0,0,.3));
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--d2-on-ink,#eef1f3);font:500 var(--d2-fs-sm,13px)/1.55 var(--d2-font,sans-serif);
  animation:d2g-rs-in var(--d2-dur-2,.2s) var(--d2-ease,ease) both}
.ds-rs-pop::after{content:"";position:absolute;left:var(--ax,50%);bottom:-12px;margin-left:-6px;border:6px solid transparent;border-top-color:color-mix(in srgb,var(--d2-ink,#151a20) 92%,transparent)}
.ds-rs-pop p{margin:0 0 9px}
.ds-rs-pop div{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.ds-rs-pop button{min-height:36px;padding:0 13px;border:0;border-radius:var(--d2-r-sm,10px);background:var(--ds-chip,rgba(255,255,255,.07));box-shadow:inset 0 0 0 1px var(--ds-chip-l,rgba(255,255,255,.14));
  color:var(--d2-on-ink,#eef1f3);font:700 var(--d2-fs-sm,13px)/1 var(--d2-font,sans-serif);cursor:pointer}
.ds-rs-pop button:hover{background:var(--ds-chip-h,rgba(255,255,255,.12))}
.ds-rs-pop button.go{background:var(--ds-m);color:#fff;box-shadow:inset 0 -3px 0 var(--ds-m-edge)}
.ds-rs-pop button.go:hover{filter:brightness(1.07)}
.ds-rs-pop button.clear{color:#ffb7ad;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--d2-bad,#c9443a) 75%,transparent)}
@media (pointer:coarse){.ds-rs-pop button{min-height:44px;padding:0 14px}}
@keyframes d2g-rs-in{from{transform:translateY(5px)}}
@media (prefers-reduced-motion:reduce){.d2g .ds-restart.arm,.ds-rs-pop{animation:none}}


/* ---------- 第三轮：三款统一的底栏组件 ----------
 * 底部控制区从左到右：本局档位 .ds-lv →（防护模式的道具托盘）→ 灾害参数 → 操作组 .ds-ops → 主按钮（最右）。
 * 本局档位：<div class="ds-lv" role="group" aria-label="强化档位"><span class="ds-lv-k">强化</span><button aria-pressed="true">无</button>…</div>
 *   破坏 / 强化观察 =「强化 无 低 中 高」，防护 =「灾害 自由 低 中 高」；选中项模式色实心，始终可见。
 * 操作组：<div class="ds-ops"> 依次 [撤销][重新开始][暂停][倍速][跳过]，每个 <button class="ds-op"><b>图标</b><span>文字</span></button>；
 *   .ds-op-run（暂停 / 倍速 / 跳过）始终占位，仅在 html.ds-running 或 html.ds-skipping 时显示并接受操作。
 *   桌面横排「图标 文字」，手机竖排（图标在上、小字在下）。高度三款统一：桌面 52px、手机 48px，与主按钮等高。重新开始沿用 .ds-restart 的模式色描边。
 * 倍速 .ds-spd：<b> 显示当前倍速（1× → 2× → 0.5× 循环），非 1× 为选中态。跳过 .ds-skip：.busy 时「37% 跳过中」，底色按 --p 填充。
 * 恢复视角 .ds-home：画布角落小圆钮，html.ds-cam-moved（转动或缩放过）时出现。 */
.d2g .ds-lv{flex:none;display:inline-flex;align-items:center;gap:3px;padding:4px;border-radius:var(--d2-r-md);
  background:var(--ds-glass);box-shadow:inset 0 0 0 1px var(--ds-gl),var(--ds-gsh);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.d2g .ds-lv[hidden]{display:none}
.d2g .ds-lv-k{display:grid;padding:0 8px 0 7px;font:800 var(--d2-fs-sm)/1.15 var(--d2-font);color:var(--ds-m-hi);white-space:nowrap;text-align:center}
.d2g .ds-lv-k small{font:600 10px/1.2 var(--d2-font);color:var(--ds-dim)}
.d2g .ds-lv button{min-width:42px;min-height:40px;padding:0 10px;border:0;border-radius:var(--d2-r-sm);background:var(--ds-chip);
  box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--d2-on-ink);font:800 var(--d2-fs-base)/1 var(--d2-font);cursor:pointer;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform var(--d2-dur-1) var(--d2-ease)}
/* 档位选中态不做颜色过渡：负载高、帧被拖慢时过渡会停在半途，出现「高被选中、低还亮着」 */
.d2g .ds-lv button:hover{background:var(--ds-chip-h)}
.d2g .ds-lv button:active{transform:translateY(1px)}
.d2g .ds-lv button[aria-pressed="true"]{background:var(--ds-m);color:#fff;box-shadow:inset 0 -3px 0 var(--ds-m-edge)}
.d2g .ds-lv button:focus-visible{outline:2px solid var(--ds-m-hi);outline-offset:2px}
.d2g .ds-lv button:disabled{opacity:.42;cursor:default}

.d2g .ds-ops{flex:none;display:flex;align-items:stretch;gap:6px}
.d2g .ds-op{flex:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:52px;padding:0 12px;
  border:0;border-radius:var(--d2-r-sm);background:var(--ds-chip);box-shadow:inset 0 0 0 1px var(--ds-chip-l);color:var(--d2-on-ink);
  font:700 var(--d2-fs-sm)/1.1 var(--d2-font);letter-spacing:.02em;white-space:nowrap;cursor:pointer;
  -webkit-tap-highlight-color:transparent;touch-action:manipulation;
  transition:background var(--d2-dur-2),box-shadow var(--d2-dur-2),color var(--d2-dur-2),transform var(--d2-dur-1) var(--d2-ease)}
.d2g .ds-op b{font:800 17px/1 var(--d2-font);min-width:1em;text-align:center}
.d2g .ds-op:hover{background:var(--ds-chip-h)}
.d2g .ds-op:active{transform:translateY(1px)}
.d2g .ds-op:focus-visible{outline:2px solid var(--ds-m-hi);outline-offset:2px}
.d2g .ds-op:disabled{opacity:.4;cursor:default;transform:none}
.d2g .ds-op-run{display:inline-flex;visibility:hidden;pointer-events:none}
.d2g.ds-running .ds-op-run,.d2g.ds-skipping .ds-op-run{visibility:visible;pointer-events:auto}
.d2g .ds-op.ds-spd b{flex:none;width:4ch;font:800 15px/1 var(--d2-font-num);font-variant-numeric:tabular-nums}
.d2g .ds-op.ds-spd[aria-pressed="true"]{background:var(--ds-m-soft);box-shadow:inset 0 0 0 1.5px var(--ds-m);color:var(--ds-m-hi)}
.d2g .ds-op.ds-skip{color:var(--ds-m-hi);box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--ds-m) 70%,transparent)}
.d2g .ds-op.ds-skip b{flex:none;width:4ch;font:800 14px/1 var(--d2-font-num);font-variant-numeric:tabular-nums}
.d2g .ds-op.ds-skip span{min-width:3em;text-align:center}
.d2g .ds-op.ds-skip.busy{cursor:progress;color:#fff;box-shadow:inset 0 0 0 1.5px var(--ds-m);
  background:linear-gradient(90deg,color-mix(in srgb,var(--ds-m) 80%,transparent) calc(var(--p,0) * 100%),var(--ds-chip) 0)}
.d2g .ds-op.ds-skip.busy b{font:800 14px/1 var(--d2-font-num);font-variant-numeric:tabular-nums}
@media (max-width:760px){
  .d2g .ds-ops{gap:5px}
  .d2g .ds-op{flex-direction:column;gap:3px;min-width:44px;min-height:48px;padding:0 4px;font-size:10.5px;letter-spacing:0}
  .d2g .ds-op b{font-size:17px}
  .d2g .ds-op.ds-spd b,.d2g .ds-op.ds-skip.busy b{font-size:14px}
  .d2g .ds-lv{padding:3px;gap:2px}
  .d2g .ds-lv-k{padding:0 6px 0 5px;font-size:12px}
  .d2g .ds-lv button{min-width:40px;min-height:40px;padding:0 8px;font-size:var(--d2-fs-sm)}
}

.d2g .ds-home{position:fixed;z-index:14;display:none;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;
  background:var(--ds-glass);box-shadow:inset 0 0 0 1px var(--ds-gl),var(--ds-gsh);color:var(--d2-on-ink);font:800 17px/1 var(--d2-font);cursor:pointer;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.d2g.ds-cam-moved .ds-home{display:inline-flex}
.d2g .ds-home:hover{background:color-mix(in srgb,var(--d2-ink-3) 92%,transparent)}
.d2g .ds-home:focus-visible{outline:2px solid var(--ds-m-hi);outline-offset:2px}
