/* 雪巷 · v27 组件样式（依赖 tokens.css）。命名：.ui-<组件>[-<部件>]，状态用 .is-* / [data-state]。
   覆盖旧 hud.css 的同名部件（顶部回忆条、交互提示、地名横幅、通知、加载页），并给 6 个玩法面板统一换皮。 */

/* ========== 0. 基础 ========== */
.hud-root{font-family:var(--font-ui);color:var(--c-ink);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
.hud-root svg.ui-icon{display:block;flex:none}
.ui-key{display:inline-grid;place-items:center;min-width:26px;height:26px;padding:0 7px;border-radius:var(--r-sm);border:var(--hair) solid rgba(247,240,227,.55);background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.03));box-shadow:0 1px 0 rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.12);font:500 12px/1 var(--font-ui);letter-spacing:.02em;color:var(--c-ink);white-space:nowrap}
.ui-key--sm{min-width:20px;height:20px;padding:0 5px;font-size:10.5px;border-radius:var(--r-xs)}
.ui-key--ghost{opacity:.6;box-shadow:none}
.ui-caption-sep{display:inline-block;width:1px;height:10px;background:var(--c-line-soft);margin:0 var(--s-2)}
.ui-rule{display:flex;align-items:center;justify-content:center;gap:var(--s-2);color:var(--c-accent)}
.ui-rule i{display:block;height:1px;width:56px;background:linear-gradient(90deg,transparent,var(--c-line-strong))}
.ui-rule i:last-child{background:linear-gradient(270deg,transparent,var(--c-line-strong))}
.ui-rule b{display:block;width:5px;height:5px;transform:rotate(45deg);border:1px solid var(--c-accent);background:transparent}
.ui-rule--short{width:40px;height:1px;margin:var(--s-3) auto;background:var(--c-line)}
.ui-chip{display:inline-flex;align-items:center;height:20px;padding:0 var(--s-2);border-radius:var(--r-pill);border:1px solid var(--c-line-soft);font-size:var(--fs-micro);letter-spacing:.12em;color:var(--c-ink-2)}
.ui-chip[data-status="active"]{border-color:var(--c-line-strong);color:var(--c-accent-ink)}
.ui-chip[data-status="done"]{color:var(--c-success);border-color:rgba(207,227,184,.4)}
.ui-chip[data-status="locked"]{color:var(--c-ink-3)}

/* 按钮：默认 / 悬停 / 按下 / 禁用 / 焦点 */
.ui-btn{display:inline-flex;align-items:center;gap:var(--s-2);height:34px;padding:0 var(--s-4);border-radius:var(--r-pill);border:1px solid var(--c-line);background:rgba(255,255,255,.04);color:var(--c-ink);font:500 var(--fs-body)/1 var(--font-ui);letter-spacing:.06em;cursor:pointer;pointer-events:auto;transition:background var(--t-fast) var(--ease-out),border-color var(--t-fast),transform var(--t-fast) var(--ease-out),opacity var(--t-fast)}
.ui-btn:hover{background:rgba(var(--c-accent-rgb),.12);border-color:var(--c-line-strong)}
.ui-btn:active{transform:translateY(1px);background:rgba(var(--c-accent-rgb),.2)}
.ui-btn:disabled{opacity:.4;cursor:default;transform:none;background:transparent}
.ui-journal-item:focus-visible,.ui-pause-item:focus-visible{outline:none;box-shadow:inset 0 0 0 1px var(--c-line)}
.ui-btn:focus-visible,.ui-seg-btn:focus-visible,.hud-icon-btn:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}
.ui-btn--primary{background:rgba(var(--c-accent-rgb),.16);border-color:var(--c-line-strong);color:var(--c-accent-ink)}
.ui-btn--primary:hover{background:rgba(var(--c-accent-rgb),.26)}
.ui-btn--ghost{border-color:transparent;background:transparent;color:var(--c-ink-2)}
.ui-btn--ghost:hover{color:var(--c-ink);background:rgba(255,255,255,.06);border-color:var(--c-line-soft)}

/* ========== 1. 顶部右侧：回忆条 + 图标按钮（覆盖 hud.css） ========== */
.hud-root .hud-top{position:absolute;top:var(--edge);right:var(--edge);display:flex;align-items:center;gap:var(--s-2);pointer-events:auto}
.hud-root .hud-memories{display:flex;align-items:center;gap:var(--s-3);height:36px;padding:0 var(--s-4) 0 var(--s-4);border-radius:var(--r-pill);background:var(--c-glass-soft);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);border:1px solid var(--c-line-soft);box-shadow:var(--shadow-1);cursor:pointer;transition:border-color var(--t-fast)}
.hud-root .hud-memories:hover{border-color:var(--c-line)}
.hud-root .hud-memory-label{font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-ink-2)}
.hud-root .hud-memory-dots{display:flex;gap:6px}
.hud-root .hud-diamond{position:relative;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;color:rgba(247,240,227,.32);background:none;border:none;transform:none;box-shadow:none;transition:color var(--t-base) var(--ease-out)}
.hud-root .hud-diamond::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px dashed rgba(247,240,227,.2)}
.hud-root .hud-diamond svg{width:11px;height:11px}
.hud-root .hud-diamond.on{color:var(--c-accent-ink)}
.hud-root .hud-diamond.on::before{border:1px solid var(--c-line-strong);background:radial-gradient(circle,rgba(var(--c-accent-rgb),.22),transparent 70%)}
.hud-root .hud-diamond.is-unlocking{animation:ui-slot-unlock 1.1s var(--ease-soft)}
@keyframes ui-slot-unlock{0%{transform:rotateY(0) scale(1)}40%{transform:rotateY(180deg) scale(1.5);color:#fff}100%{transform:rotateY(360deg) scale(1)}}
.hud-root .hud-memory-count{font:500 var(--fs-caption)/1 var(--font-ui);letter-spacing:.06em;color:var(--c-ink);font-variant-numeric:tabular-nums}
.hud-root .hud-memories.full .hud-memory-count{color:var(--c-accent-ink)}
.hud-root .hud-icon-btn{display:grid;place-items:center;width:36px;height:36px;padding:0;border-radius:50%;border:1px solid var(--c-line-soft);background:var(--c-glass-soft);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);color:var(--c-ink-2);cursor:pointer;box-shadow:var(--shadow-1);transition:color var(--t-fast),border-color var(--t-fast),background var(--t-fast),transform var(--t-fast) var(--ease-out)}
.hud-root .hud-icon-btn svg{width:18px;height:18px;stroke:none;fill:currentColor}
.hud-root .hud-icon-btn:hover{color:var(--c-accent-ink);border-color:var(--c-line)}
.hud-root .hud-icon-btn:active{transform:scale(.94)}
.hud-root .hud-controls{display:none!important}

/* ========== 2. 任务追踪器 v2（左上） ========== */
.ui-tracker{position:absolute;left:var(--edge);top:var(--edge);width:min(340px,calc(100vw - 300px));padding:var(--s-3) var(--s-6) var(--s-3) var(--s-4);border-radius:var(--r-md);background:linear-gradient(90deg,var(--c-glass) 0%,var(--c-glass) 62%,rgba(0,0,0,0) 100%);pointer-events:none;transition:opacity var(--t-slow) var(--ease-out),transform var(--t-base) var(--ease-out);text-shadow:var(--text-shadow)}
.ui-tracker::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:1px;background:linear-gradient(180deg,var(--c-line-strong),var(--c-line) 60%,transparent)}
.ui-tracker.is-idle{opacity:.62}
.ui-tracker.is-hidden{opacity:0;transform:translateX(calc(var(--dist) * -1))}
.ui-tracker.is-swap{animation:ui-tracker-swap var(--t-slow) var(--ease-out)}
@keyframes ui-tracker-swap{from{opacity:0;transform:translateX(calc(var(--dist) * -1.5))}to{opacity:1;transform:none}}
.ui-tracker-num{margin-right:-.2em}
.ui-tracker-head{display:flex;align-items:center;gap:var(--s-2);font:400 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-tracker-gem{width:6px;height:6px;flex:none;transform:rotate(45deg);background:var(--c-accent);box-shadow:0 0 8px var(--c-glow)}
.ui-tracker[data-kind="side"] .ui-tracker-gem{background:transparent;border:1px solid var(--c-accent)}
.ui-tracker-dot{width:3px;height:3px;border-radius:50%;background:var(--c-line-strong)}
.ui-tracker-title{letter-spacing:.2em;color:var(--c-ink-2)}
.ui-tracker-steps{position:relative;margin-top:var(--s-2);min-height:26px}
.ui-tracker-step{display:flex;align-items:baseline;gap:0;font:500 var(--fs-lead)/1.35 var(--font-story);letter-spacing:.05em;color:var(--c-ink);transition:opacity var(--t-base) var(--ease-out),transform var(--t-base) var(--ease-out)}
.ui-tracker-step.is-enter{position:absolute;left:0;right:0;top:0;opacity:0;transform:translateY(var(--dist))}
.ui-tracker-step.is-enter.is-in{opacity:1;transform:none;position:relative}
.ui-tracker-step.is-out{opacity:0;transform:translateY(calc(var(--dist) * -1));position:absolute;left:0;right:0;top:0}
.ui-tracker-check{position:relative;flex:none;width:0;height:12px;align-self:center;overflow:hidden;transition:width var(--t-base) var(--ease-out)}
.ui-tracker-check::after{content:"";position:absolute;left:3px;top:1px;width:4px;height:8px;border:solid var(--c-success);border-width:0 1.5px 1.5px 0;transform:rotate(45deg) scale(.4);opacity:0;transition:transform var(--t-base) var(--ease-soft),opacity var(--t-fast)}
.ui-tracker-text{position:relative;flex:0 1 auto;min-width:0}
.ui-tracker-text::after{content:"";position:absolute;left:0;top:55%;height:1px;width:0;background:rgba(247,240,227,.7);transition:width 400ms var(--ease-out)}
.ui-tracker-step.is-done .ui-tracker-check{width:14px;margin-right:6px}
.ui-tracker-step.is-done .ui-tracker-check::after{transform:rotate(45deg) scale(1);opacity:1}
.ui-tracker-step.is-done .ui-tracker-text{color:var(--c-ink-2)}
.ui-tracker-step.is-done .ui-tracker-text::after{width:100%}
.ui-tracker-count{flex:none;margin-left:auto;padding-left:var(--s-4);font:500 var(--fs-body)/1 var(--font-ui);font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--c-accent-ink)}
.ui-tracker-count.is-bump{animation:ui-bump 420ms var(--ease-soft)}
@keyframes ui-bump{40%{transform:scale(1.25)}}
.ui-tracker-meta{display:flex;align-items:center;gap:6px;margin-top:6px;font:400 var(--fs-caption)/1.4 var(--font-ui);letter-spacing:.06em;color:var(--c-ink-2)}
.ui-tracker-meta[data-empty="1"] .ui-tracker-meta-icon,.ui-tracker-meta[data-empty="1"] .ui-tracker-meta-text{display:none}
.ui-tracker-meta-icon{color:var(--c-accent);display:inline-grid}
.ui-tracker[data-state="away"] .ui-tracker-meta-text{color:var(--c-accent-ink)}
.ui-tracker-dist{margin-left:auto;padding-left:var(--s-2);font-variant-numeric:tabular-nums;color:var(--c-ink-2);letter-spacing:.08em}
.ui-tracker-dist:empty{display:none}
.ui-tracker-meta[data-empty="1"] .ui-tracker-dist{margin-left:0;padding-left:0}
.ui-tracker-next{margin-top:var(--s-2);padding-left:var(--s-3);position:relative;font:400 var(--fs-caption)/1.5 var(--font-ui);color:var(--c-ink-3);letter-spacing:.04em}
.ui-tracker-next::before{content:"";position:absolute;left:0;top:.62em;width:5px;height:1px;background:var(--c-ink-3)}
.ui-tracker-lock{display:flex;align-items:center;gap:6px;margin-top:var(--s-2);font-size:var(--fs-caption);color:var(--c-ink-2)}
.ui-tracker-lock em{font-style:normal;color:var(--c-ink-3)}
.ui-tracker-lock svg{color:var(--c-cool)}
.ui-tracker[data-state="locked"] .ui-tracker-step{color:var(--c-ink-2)}
.ui-tracker[data-state="locked"] .ui-tracker-gem{background:var(--c-cool);box-shadow:none}
.ui-tracker[data-state="done"] .ui-tracker-gem{background:var(--c-success)}
.ui-tracker-sides{margin-top:var(--s-3);padding-top:var(--s-2);border-top:1px solid var(--c-line-soft)}
.ui-tracker-side{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-caption);color:var(--c-ink-2);letter-spacing:.08em}
.ui-tracker-side::before{content:"";width:10px;border-top:1px dashed var(--c-ink-3)}

/* 屏幕外目标：边缘小菱形（朝向目标的细尖） */
.ui-edge{position:absolute;left:0;top:0;width:0;height:0;pointer-events:none;transition:opacity var(--t-base)}
.ui-edge-gem{position:absolute;left:-6px;top:-6px;width:12px;height:12px;transform:rotate(45deg);border:1px solid var(--c-accent);background:rgba(var(--c-accent-rgb),.35);box-shadow:0 0 10px var(--c-glow)}
.ui-edge-gem::after{content:"";position:absolute;left:50%;top:50%;width:18px;height:1px;background:linear-gradient(90deg,var(--c-accent),transparent);transform-origin:0 50%;transform:rotate(calc(var(--angle,0deg) - 45deg))}
.ui-edge-dist{position:absolute;left:12px;top:-7px;font:500 var(--fs-micro)/1 var(--font-ui);letter-spacing:.08em;color:var(--c-ink);text-shadow:var(--text-shadow);white-space:nowrap}

/* ========== 3. 交互提示（世界锚定：键帽 + 动词 + 名词；长按环形进度） ========== */
.hud-root .hud-prompt{position:absolute;left:0;top:0;right:auto;transform:translate(var(--px,72vw),var(--py,62vh));opacity:0;transition:opacity var(--t-base) var(--ease-out);pointer-events:none;will-change:transform}
.hud-root .hud-prompt.show{opacity:1}
.hud-root .hud-prompt.is-anchored .hud-prompt-list{transform:translate(-50%,-100%)}
.hud-root .hud-prompt-list{display:grid;gap:6px;justify-items:start;list-style:none;margin:0;padding:0}
.hud-root .hud-prompt-item{display:flex;align-items:center;gap:var(--s-3);padding:6px var(--s-4) 6px 6px;border-radius:var(--r-pill);background:var(--c-glass);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);border:1px solid var(--c-line-soft);box-shadow:var(--shadow-1);opacity:.7;white-space:nowrap;transform:translateY(var(--dist));animation:ui-prompt-in var(--t-base) var(--ease-out) forwards}
.hud-root .hud-prompt-item.on{opacity:1;border-color:var(--c-line)}
@keyframes ui-prompt-in{to{transform:none}}
.hud-root .hud-prompt-item .hud-key{position:relative;display:grid;place-items:center;width:28px;min-width:28px;height:28px;padding:0;border-radius:50%;border:1px solid rgba(247,240,227,.7);background:rgba(255,255,255,.08);box-shadow:none;font:600 12px/1 var(--font-ui);color:var(--c-ink)}
.hud-root .hud-prompt-item .hud-key.ghost{opacity:.5}
.hud-root .hud-prompt-verb{font:500 var(--fs-ui)/1 var(--font-story);letter-spacing:.12em;color:var(--c-ink)}
.hud-root .hud-prompt-dot{width:3px;height:3px;border-radius:50%;background:var(--c-line-strong);font-size:0;opacity:1}
.hud-root .hud-prompt-label{font:400 var(--fs-body)/1 var(--font-ui);letter-spacing:.08em;color:var(--c-accent-ink)}
.hud-root .hud-prompt-reason{display:none;font-size:var(--fs-micro);color:var(--c-ink-3);letter-spacing:.04em}
.hud-root .hud-prompt-item.is-disabled{opacity:.85}
.hud-root .hud-prompt-item.is-disabled .hud-key{border-color:var(--c-disabled);color:var(--c-disabled)}
.hud-root .hud-prompt-item.is-disabled .hud-prompt-verb,.hud-root .hud-prompt-item.is-disabled .hud-prompt-label{color:var(--c-ink-3)}
.hud-root .hud-prompt-item.is-disabled .hud-prompt-reason{display:inline;padding-left:var(--s-3);border-left:1px solid var(--c-line-soft)}
/* 锚定时：提示下方一根细线 + 小点，指向交互物 */
.hud-root .hud-prompt.is-anchored .hud-prompt-list::after{content:"";position:absolute;left:50%;top:100%;width:1px;height:16px;background:linear-gradient(var(--c-line-strong),transparent)}
.hud-root .hud-prompt.is-anchored .hud-prompt-list{position:relative}
.hud-root .hud-prompt.is-anchored .hud-prompt-list::before{content:"";position:absolute;left:calc(50% - 2px);top:calc(100% + 16px);width:4px;height:4px;border-radius:50%;background:var(--c-accent);box-shadow:0 0 6px var(--c-glow)}
.hud-root .hud-prompt.is-anchored .hud-prompt-list{padding-bottom:0}
.hud-root .hud-prompt.is-anchored[data-multi="1"] .hud-prompt-list::after,.hud-root .hud-prompt.is-anchored[data-multi="1"] .hud-prompt-list::before{display:none}
.hud-root .hud-prompt-item .hud-prompt-ring{position:absolute;inset:-4px;width:36px;height:36px;transform:rotate(-90deg);pointer-events:none}
.hud-root .hud-prompt-ring circle{fill:none;stroke:var(--c-accent);stroke-width:2;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:calc(100 - var(--hold,0) * 100)}
.hud-root .hud-prompt.press .hud-prompt-item.on{animation:ui-prompt-press 360ms var(--ease-out)}
@keyframes ui-prompt-press{30%{transform:scale(.96);background:rgba(var(--c-accent-rgb),.2)}}
.hud-root .hud-prompt.press .hud-key{animation:none}
.hud-root .hud-prompt[data-multi="1"]::after{content:"滚轮切换";position:absolute;left:var(--s-4);top:100%;margin-top:6px;font-size:var(--fs-micro);letter-spacing:.2em;color:var(--c-ink-3)}

/* ========== 4. 旁白 / 对话条 ========== */
.ui-caption{position:absolute;left:50%;bottom:9vh;transform:translateX(-50%);width:min(760px,86vw);padding:var(--s-4) var(--s-12);text-align:center;pointer-events:none;opacity:0;transition:opacity var(--t-slow) var(--ease-out)}
.ui-caption::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 50% 60% at 50% 50%,rgba(10,9,18,.5),transparent 72%);z-index:-1}
.ui-caption::after{content:"";position:absolute;left:18%;right:18%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--c-line),transparent)}
.ui-caption.is-in{opacity:1}
.ui-caption.is-out{opacity:0;transition-duration:var(--t-base)}
.ui-caption-speaker{margin-bottom:6px;font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-caption-line{margin:0;font:400 20px/var(--lh-story) var(--font-story);letter-spacing:var(--track-story);color:var(--c-ink);text-shadow:var(--text-shadow)}
:root[data-caption-size="large"] .ui-caption-line{font-size:24px}
.ui-caption-line.is-line-in{animation:ui-line-in 600ms var(--ease-out)}
@keyframes ui-line-in{from{opacity:0;transform:translateY(calc(var(--dist) * .6));filter:blur(2px)}to{opacity:1;transform:none;filter:none}}
.ui-caption-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:var(--s-3);font-size:var(--fs-micro);color:var(--c-ink-3);letter-spacing:.1em;opacity:.8}

/* ========== 5. 地名横幅（覆盖 hud.css .hud-banner） ========== */
.hud-root .hud-banner{position:absolute;left:50%;top:20%;transform:translateX(-50%);text-align:center;opacity:0;pointer-events:none;width:max-content;max-width:90vw}
.hud-root .hud-banner.show{animation:ui-banner-in 900ms var(--ease-out) forwards}
.hud-root .hud-banner.out{animation:ui-banner-out 700ms var(--ease-in) forwards}
@keyframes ui-banner-in{from{opacity:0;transform:translate(-50%,var(--dist))}to{opacity:1;transform:translate(-50%,0)}}
@keyframes ui-banner-out{from{opacity:1}to{opacity:0}}
.hud-root .hud-banner-name{font:500 var(--fs-display)/1.2 var(--font-story);letter-spacing:.32em;padding-left:.32em;color:var(--c-ink);text-shadow:var(--text-shadow),0 0 24px rgba(var(--c-accent-rgb),.25)}
.hud-root .hud-banner-line{display:flex;align-items:center;justify-content:center;gap:var(--s-2);margin:var(--s-2) auto 6px}
.hud-root .hud-banner-line i{display:block;width:72px;height:1px;background:linear-gradient(90deg,transparent,var(--c-line-strong));transform-origin:right;animation:ui-grow 900ms var(--ease-out) both}
.hud-root .hud-banner-line i:last-child{background:linear-gradient(270deg,transparent,var(--c-line-strong));transform-origin:left}
.hud-root .hud-banner-line b{display:block;width:5px;height:5px;transform:rotate(45deg);border:1px solid var(--c-accent);background:none}
@keyframes ui-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.hud-root .hud-banner-sub{font:400 var(--fs-caption)/1 var(--font-ui);letter-spacing:.42em;padding-left:.42em;color:var(--c-ink-2);text-shadow:var(--text-shadow)}

/* ========== 6. 通知（覆盖 hud.css .hud-toast） ========== */
.hud-root .hud-toast{position:absolute;left:50%;bottom:calc(9vh + 96px);transform:translate(-50%,var(--dist));display:flex;align-items:center;gap:var(--s-2);max-width:min(560px,80vw);padding:var(--s-2) var(--s-5);border-radius:var(--r-pill);background:var(--c-glass);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);border:1px solid var(--c-line-soft);box-shadow:var(--shadow-1);font:400 var(--fs-body)/1.5 var(--font-ui);letter-spacing:.04em;color:var(--c-ink);opacity:0;transition:opacity var(--t-base) var(--ease-out),transform var(--t-base) var(--ease-out);pointer-events:none}
.hud-root .hud-toast.show{opacity:1;transform:translate(-50%,0)}
.hud-root .hud-toast-gem{width:5px;height:5px;flex:none;transform:rotate(45deg);background:var(--c-accent);box-shadow:none;border:none}

/* ========== 7. 获得物品 ========== */
.ui-item{position:absolute;right:var(--edge);top:42%;display:flex;align-items:center;gap:var(--s-4);min-width:260px;max-width:340px;padding:var(--s-3) var(--s-5) var(--s-3) var(--s-3);border-radius:var(--r-lg);background:var(--c-glass);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);border:1px solid var(--c-line);box-shadow:var(--shadow-2);opacity:0;transform:translateX(calc(var(--dist) * 2));transition:opacity var(--t-base) var(--ease-out),transform var(--t-base) var(--ease-out);pointer-events:none}
.ui-item.is-in{opacity:1;transform:none}
.ui-item.is-out{opacity:0;transform:translateX(var(--dist));transition-timing-function:var(--ease-in)}
.ui-item-badge{display:grid;place-items:center;flex:none;width:52px;height:52px;border-radius:50%;color:var(--c-accent-ink);background:radial-gradient(circle at 50% 40%,rgba(var(--c-accent-rgb),.28),rgba(var(--c-accent-rgb),.06) 70%);border:1px solid var(--c-line-strong);box-shadow:0 0 18px var(--c-glow)}
.ui-item.is-in .ui-item-badge{animation:ui-badge 700ms var(--ease-soft)}
@keyframes ui-badge{from{transform:scale(.6) rotate(-12deg)}to{transform:none}}
.ui-item-kicker{font-size:var(--fs-micro);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-item-name{margin-top:2px;font:500 var(--fs-lead)/1.3 var(--font-story);letter-spacing:.08em}
.ui-item-desc{margin-top:2px;font-size:var(--fs-caption);line-height:1.5;color:var(--c-ink-2)}

/* ========== 8. 回忆碎片解锁 ========== */
.ui-mote{position:fixed;left:-7px;top:-7px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,#fff 0,rgba(var(--c-accent-rgb),.95) 35%,rgba(var(--c-accent-rgb),0) 72%);box-shadow:0 0 18px 6px rgba(var(--c-accent-rgb),.35);pointer-events:none;z-index:var(--z-card)}
.ui-memory-card{position:absolute;right:var(--edge);top:calc(var(--edge) + 48px);display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-5) var(--s-3) var(--s-3);border-radius:var(--r-lg);background:var(--c-glass);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);border:1px solid var(--c-line);box-shadow:var(--shadow-2);opacity:0;transform:translateY(calc(var(--dist) * -1));transition:opacity var(--t-base) var(--ease-out),transform var(--t-base) var(--ease-out);pointer-events:none;max-width:320px}
.ui-memory-card.is-in{opacity:1;transform:none}
.ui-memory-card-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;color:var(--c-accent-ink);border:1px solid var(--c-line-strong);background:rgba(var(--c-accent-rgb),.12)}
.ui-memory-card-kicker{font-size:var(--fs-micro);letter-spacing:.24em;color:var(--c-accent-ink)}
.ui-memory-card-name{margin-top:2px;font:500 var(--fs-lead)/1.3 var(--font-story);letter-spacing:.1em}
.ui-memory-card-line{margin-top:2px;font:400 var(--fs-body)/1.5 var(--font-story);color:var(--c-ink-2);letter-spacing:.04em}

/* ========== 9. 章节标题卡 ========== */
.ui-chapter-card{position:absolute;inset:0;z-index:var(--z-card);display:grid;place-items:center;background:radial-gradient(ellipse 70% 60% at 50% 48%,rgba(10,9,18,.42),rgba(10,9,18,.78) 100%);opacity:0;transition:opacity 900ms var(--ease-out);pointer-events:auto}
.ui-chapter-card.is-in{opacity:1}
.ui-chapter-card.is-out{opacity:0;transition:opacity 700ms var(--ease-in)}
.ui-chapter-card-inner{text-align:center;transform:translateY(var(--dist));transition:transform 1400ms var(--ease-out)}
.ui-chapter-card.is-in .ui-chapter-card-inner{transform:none}
.ui-chapter-card-num{font:400 var(--fs-caption)/1 var(--font-ui);letter-spacing:.6em;padding-left:.6em;color:var(--c-accent-ink)}
.ui-chapter-card .ui-rule{margin:var(--s-4) auto var(--s-5)}
.ui-chapter-card .ui-rule i{animation:ui-grow 1200ms var(--ease-out) both 200ms}
.ui-chapter-card-title{margin:0;font:500 var(--fs-hero)/1.15 var(--font-story);letter-spacing:.24em;padding-left:.24em;color:var(--c-ink);text-shadow:0 2px 24px rgba(0,0,0,.4)}
.ui-chapter-card-sub{margin:var(--s-4) 0 0;font:400 var(--fs-ui)/1.6 var(--font-story);letter-spacing:.2em;padding-left:.2em;color:var(--c-ink-2);opacity:0;animation:ui-fade-up 900ms var(--ease-out) forwards 500ms}
.ui-chapter-card-place{margin-top:var(--s-6);font-size:var(--fs-micro);letter-spacing:.42em;padding-left:.42em;color:var(--c-ink-3);opacity:0;animation:ui-fade-up 900ms var(--ease-out) forwards 800ms}
@keyframes ui-fade-up{from{opacity:0;transform:translateY(calc(var(--dist) * .75))}to{opacity:1;transform:none}}
.ui-chapter-dots{position:absolute;left:50%;bottom:12vh;transform:translateX(-50%);display:flex;gap:10px;margin:0;padding:0;list-style:none}
.ui-chapter-dots li{width:6px;height:6px;border-radius:50%;background:rgba(247,240,227,.28)}
.ui-chapter-dots li[data-kind="side"]{background:none;border:1px solid rgba(247,240,227,.32);box-sizing:border-box}
.ui-chapter-dots li[data-kind="side"]:first-of-type,.ui-chapter-dots li[data-kind="main"]+li[data-kind="side"]{margin-left:8px}
.ui-chapter-dots li.is-current{background:var(--c-accent);box-shadow:0 0 8px var(--c-glow);border-color:var(--c-accent)}
.ui-chapter-card-skip{position:absolute;right:var(--edge);bottom:var(--edge);display:flex;align-items:center;gap:6px;font-size:var(--fs-micro);letter-spacing:.12em;color:var(--c-ink-3)}

/* ========== 10. 章节完成卡 ========== */
.ui-complete{position:absolute;inset:0;z-index:var(--z-card);display:grid;place-items:center;background:var(--c-scrim);opacity:0;transition:opacity var(--t-base) var(--ease-out);pointer-events:auto}
.ui-complete.is-in{opacity:1}
.ui-complete-card{position:relative;width:min(420px,88vw);padding:var(--s-10) var(--s-8) var(--s-6);border-radius:var(--r-lg);text-align:center;background:var(--c-glass-strong);-webkit-backdrop-filter:var(--blur-2);backdrop-filter:var(--blur-2);border:1px solid var(--c-line);box-shadow:var(--shadow-2);transform:translateY(var(--dist)) scale(.98);transition:transform var(--t-slow) var(--ease-out)}
.ui-complete-card::before{content:"";position:absolute;inset:6px;border-radius:calc(var(--r-lg) - 4px);border:1px solid var(--c-line-soft);pointer-events:none}
.ui-complete.is-in .ui-complete-card{transform:none}
.ui-complete-seal{position:absolute;left:50%;top:0;transform:translate(-50%,-50%);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:var(--c-success);background:var(--c-glass-strong);border:1px solid rgba(207,227,184,.55);box-shadow:0 0 0 4px var(--c-glass-strong),0 0 16px rgba(207,227,184,.25)}
.ui-complete.is-in .ui-complete-seal{animation:ui-badge 800ms var(--ease-soft) 120ms both}
.ui-complete-head{font-size:var(--fs-micro);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-complete-title{margin:var(--s-2) 0 0;font:500 var(--fs-title)/1.3 var(--font-story);letter-spacing:.2em;padding-left:.2em}
.ui-complete-lines p{margin:0;font:400 var(--fs-ui)/var(--lh-story) var(--font-story);letter-spacing:.06em;color:var(--c-ink-2)}
.ui-complete-reward{display:grid;gap:6px;justify-items:center;margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--c-line-soft)}
.ui-complete-reward-row{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-body);color:var(--c-ink);letter-spacing:.06em}
.ui-complete-reward-row svg{color:var(--c-accent-ink)}
.ui-complete-reward-note{font-size:var(--fs-caption);color:var(--c-ink-3)}
.ui-complete-foot{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:var(--s-6);font-size:var(--fs-micro);letter-spacing:.12em;color:var(--c-ink-3)}

/* ========== 11. 任务日志 ========== */
.ui-journal,.ui-pause{position:absolute;inset:0;z-index:var(--z-overlay);display:grid;place-items:center;background:var(--c-scrim);-webkit-backdrop-filter:blur(6px) saturate(.7);backdrop-filter:blur(6px) saturate(.7);opacity:0;transition:opacity var(--t-base) var(--ease-out);pointer-events:auto}
:root[data-quality="low"] .ui-journal,:root[data-quality="low"] .ui-pause{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(10,9,18,.72)}
.ui-journal.is-in,.ui-pause.is-in{opacity:1}
.ui-journal-panel{display:grid;grid-template-rows:auto 1fr auto;width:min(920px,92vw);height:min(560px,86vh);border-radius:var(--r-lg);background:var(--c-glass-strong);-webkit-backdrop-filter:var(--blur-2);backdrop-filter:var(--blur-2);border:1px solid var(--c-line-soft);box-shadow:var(--shadow-2);overflow:hidden;transform:translateY(var(--dist));transition:transform var(--t-slow) var(--ease-out)}
.ui-journal.is-in .ui-journal-panel{transform:none}
.ui-journal-top{display:flex;align-items:center;justify-content:space-between;padding:var(--s-4) var(--s-6);border-bottom:1px solid var(--c-line-soft)}
.ui-journal-heading{display:flex;align-items:baseline;gap:var(--s-3);margin:0;font:500 var(--fs-title)/1 var(--font-story);letter-spacing:.2em;color:var(--c-ink)}
.ui-journal-heading svg{align-self:center;color:var(--c-accent-ink)}
.ui-journal-heading small{font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-ink-3)}
.ui-journal-body{display:grid;grid-template-columns:260px 1fr;min-height:0}
.ui-journal-nav{padding:var(--s-4) var(--s-3);border-right:1px solid var(--c-line-soft);overflow:auto}
.ui-journal-group{margin:var(--s-3) var(--s-3) var(--s-2);font-size:var(--fs-micro);letter-spacing:var(--track-label);color:var(--c-ink-3)}
.ui-journal-group:first-child{margin-top:0}
.ui-journal-item{position:relative;display:flex;align-items:center;gap:var(--s-3);width:100%;height:40px;padding:0 var(--s-3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--c-ink-2);font:inherit;text-align:left;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.ui-journal-item:hover{background:rgba(255,255,255,.05);color:var(--c-ink)}
.ui-journal-item.is-selected{background:rgba(var(--c-accent-rgb),.1);color:var(--c-ink)}
.ui-journal-item.is-selected::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--c-accent)}
.ui-journal-item-mark{display:grid;place-items:center;width:22px;height:22px;flex:none;border-radius:50%;border:1px solid var(--c-line-soft);color:var(--c-ink-2)}
.ui-journal-item[data-status="done"] .ui-journal-item-mark{color:var(--c-success);border-color:rgba(207,227,184,.4)}
.ui-journal-item[data-status="active"] .ui-journal-item-mark{color:var(--c-accent-ink);border-color:var(--c-line-strong)}
.ui-journal-item[data-status="locked"]{color:var(--c-ink-3)}
.ui-journal-item[data-status="locked"] .ui-journal-item-mark{color:var(--c-ink-3)}
.ui-journal-item-num{flex:none;width:42px;font-size:var(--fs-micro);letter-spacing:.14em;color:var(--c-ink-3)}
.ui-journal-item-title{flex:1;font:500 var(--fs-ui)/1 var(--font-story);letter-spacing:.12em}
.ui-journal-item-pin{width:6px;height:6px;transform:rotate(45deg);background:var(--c-accent);box-shadow:0 0 6px var(--c-glow)}
.ui-journal-detail{padding:var(--s-6) var(--s-8);overflow:auto}
.ui-journal-kicker{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-micro);letter-spacing:.24em;color:var(--c-accent-ink)}
.ui-journal-kicker i{width:16px;height:1px;background:var(--c-line)}
.ui-journal-kicker span:nth-child(3){color:var(--c-ink-3);letter-spacing:.16em}
.ui-journal-kicker .ui-chip{margin-left:auto}
.ui-journal-title{margin:var(--s-3) 0 0;font:500 var(--fs-display)/1.2 var(--font-story);letter-spacing:.2em;color:var(--c-ink)}
.ui-journal-sub{margin:var(--s-1) 0 0;font:400 var(--fs-body)/1.6 var(--font-ui);letter-spacing:.12em;color:var(--c-ink-2)}
.ui-journal-quote{position:relative;margin:var(--s-5) 0;padding:var(--s-1) 0 var(--s-1) var(--s-4);border-left:1px solid var(--c-line)}
.ui-journal-quote p{margin:0;font:400 var(--fs-ui)/var(--lh-story) var(--font-story);letter-spacing:.06em;color:var(--c-ink-2)}
.ui-journal-lock{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-body);color:var(--c-ink-2)}
.ui-journal-lock svg{color:var(--c-cool)}
.ui-journal-steps{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.ui-journal-step{position:relative;display:flex;align-items:center;gap:var(--s-3);min-height:34px;padding:0 var(--s-2);border-radius:var(--r-sm);font-size:var(--fs-ui);color:var(--c-ink-2)}
.ui-journal-step:not(:last-child)::after{content:"";position:absolute;left:calc(var(--s-2) + 7px);top:26px;height:16px;width:1px;background:var(--c-line-soft)}
.ui-journal-step-mark{display:grid;place-items:center;width:15px;height:15px;flex:none;border-radius:50%;border:1px solid var(--c-ink-3)}
.ui-journal-step[data-state="done"]{color:var(--c-ink-3)}
.ui-journal-step[data-state="done"] .ui-journal-step-text{text-decoration:line-through;text-decoration-color:rgba(247,240,227,.35)}
.ui-journal-step[data-state="done"] .ui-journal-step-mark{border-color:rgba(207,227,184,.6);color:var(--c-success)}
.ui-journal-step[data-state="current"]{color:var(--c-ink);background:rgba(var(--c-accent-rgb),.07)}
.ui-journal-step[data-state="current"] .ui-journal-step-mark{border-color:var(--c-accent);background:radial-gradient(circle,var(--c-accent) 0 3px,transparent 3.5px)}
.ui-journal-step-count{margin-left:auto;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--c-accent-ink)}
.ui-journal-reward{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-4);margin-top:var(--s-5);padding-top:var(--s-4);border-top:1px solid var(--c-line-soft);font-size:var(--fs-body);color:var(--c-ink-2)}
.ui-journal-reward span{display:inline-flex;align-items:center;gap:6px}
.ui-journal-reward svg{color:var(--c-accent-ink)}
.ui-journal-reward-label{font-size:var(--fs-micro);letter-spacing:var(--track-label);color:var(--c-ink-3)}
.ui-journal-actions{margin-top:var(--s-5)}
.ui-journal-tracking{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-caption);letter-spacing:.12em;color:var(--c-accent-ink)}
.ui-journal-memories{display:flex;align-items:center;gap:var(--s-4);padding:var(--s-3) var(--s-6);border-top:1px solid var(--c-line-soft);background:rgba(0,0,0,.12)}
.ui-journal-mem-label{font-size:var(--fs-micro);letter-spacing:var(--track-label);color:var(--c-ink-3)}
.ui-journal-memories ol{display:flex;gap:var(--s-2);flex:1;margin:0;padding:0;list-style:none}
.ui-journal-memories li{display:flex;align-items:center;gap:6px;height:28px;padding:0 var(--s-3) 0 var(--s-2);border-radius:var(--r-pill);border:1px dashed var(--c-line-soft);font-size:var(--fs-caption);color:var(--c-ink-3)}
.ui-journal-memories li.is-on{border-style:solid;border-color:var(--c-line);color:var(--c-ink);background:rgba(var(--c-accent-rgb),.08)}
.ui-journal-memories li.is-on svg{color:var(--c-accent-ink)}
.ui-journal-mem-count{font:500 var(--fs-lead)/1 var(--font-story);color:var(--c-accent-ink)}
.ui-journal-mem-count small{font-size:var(--fs-caption);color:var(--c-ink-3)}

/* ========== 12. 暂停菜单 / 设置 ========== */
.ui-pause{place-items:stretch;grid-template-columns:minmax(320px,34vw) 1fr;background:linear-gradient(90deg,rgba(10,9,18,.82) 0%,rgba(10,9,18,.62) 34%,rgba(10,9,18,.42) 100%)}
.ui-pause-side{display:flex;flex-direction:column;padding:12vh var(--s-8) var(--s-8) 6vw;transform:translateX(calc(var(--dist) * -2));transition:transform var(--t-slow) var(--ease-out)}
.ui-pause.is-in .ui-pause-side{transform:none}
.ui-pause-brand{display:grid;gap:var(--s-2);margin-bottom:var(--s-8)}
.ui-pause-kicker{font-size:var(--fs-micro);letter-spacing:.5em;color:var(--c-accent-ink)}
.ui-pause-name{font:500 var(--fs-display)/1.1 var(--font-story);letter-spacing:.2em;color:var(--c-ink)}
.ui-pause-tag{font-size:var(--fs-caption);letter-spacing:.24em;color:var(--c-ink-3)}
.ui-pause-menu{display:grid;gap:2px;margin:0;padding:0;list-style:none}
.ui-pause-item{position:relative;display:flex;align-items:center;gap:var(--s-4);width:100%;height:48px;padding:0 var(--s-4);border:0;border-radius:var(--r-md);background:transparent;color:var(--c-ink-2);font:400 var(--fs-lead)/1 var(--font-story);letter-spacing:.2em;text-align:left;cursor:pointer;transition:color var(--t-fast),background var(--t-fast),padding var(--t-base) var(--ease-out)}
.ui-pause-item:hover{color:var(--c-ink);background:rgba(255,255,255,.04)}
.ui-pause-item.is-active{color:var(--c-ink);background:linear-gradient(90deg,rgba(var(--c-accent-rgb),.14),rgba(var(--c-accent-rgb),0));padding-left:var(--s-6)}
.ui-pause-item.is-active::before{content:"";position:absolute;left:var(--s-2);top:50%;width:6px;height:6px;margin-top:-3px;transform:rotate(45deg);background:var(--c-accent);box-shadow:0 0 8px var(--c-glow)}
.ui-pause-item:active{transform:translateY(1px)}
.ui-pause-item-icon{display:grid;place-items:center;color:var(--c-accent-ink);opacity:.8}
.ui-pause-item-label{flex:1}
.ui-pause-foot{display:flex;align-items:center;gap:6px;white-space:nowrap;flex-wrap:wrap;margin-top:auto;padding-top:var(--s-8);font-size:var(--fs-micro);letter-spacing:.12em;color:var(--c-ink-3)}
.ui-pause-page{align-self:center;justify-self:start;width:min(540px,50vw);max-height:min(86vh,640px);overflow:auto;margin-left:var(--s-4);padding:var(--s-6) var(--s-8);scrollbar-width:thin;scrollbar-color:var(--c-line) transparent;border-radius:var(--r-lg);background:var(--c-glass-strong);-webkit-backdrop-filter:var(--blur-2);backdrop-filter:var(--blur-2);border:1px solid var(--c-line-soft);box-shadow:var(--shadow-2);opacity:0;transform:translateX(var(--dist));transition:opacity var(--t-base) var(--ease-out) 80ms,transform var(--t-slow) var(--ease-out) 80ms}
.ui-pause.is-in .ui-pause-page{opacity:1;transform:none}
.ui-page-title{margin:0 0 var(--s-4);font:500 var(--fs-title)/1.2 var(--font-story);letter-spacing:.2em;color:var(--c-ink)}
.ui-setting-group{margin-top:var(--s-4)}
.ui-setting-group:first-of-type{margin-top:0}
.ui-setting-title{margin:0 0 var(--s-2);font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-setting{display:flex;align-items:center;justify-content:space-between;gap:var(--s-6);min-height:44px;padding:6px 0;border-bottom:1px solid var(--c-line-soft)}
.ui-setting-label{font-size:var(--fs-ui);color:var(--c-ink);letter-spacing:.06em}
.ui-setting-hint{margin-top:1px;font-size:var(--fs-caption);color:var(--c-ink-3)}
.ui-seg{display:inline-flex;padding:3px;border-radius:var(--r-pill);border:1px solid var(--c-line-soft);background:rgba(0,0,0,.18)}
.ui-seg-btn{height:28px;padding:0 var(--s-4);border:0;border-radius:var(--r-pill);background:transparent;color:var(--c-ink-2);font:400 var(--fs-body)/1 var(--font-ui);letter-spacing:.08em;cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.ui-seg-btn:hover{color:var(--c-ink)}
.ui-seg-btn[aria-checked="true"]{background:rgba(var(--c-accent-rgb),.2);color:var(--c-accent-ink);box-shadow:inset 0 0 0 1px var(--c-line)}
.ui-switch{position:relative;display:inline-block;width:42px;height:24px;flex:none;cursor:pointer}
.ui-switch input{position:absolute;inset:0;margin:0;opacity:0;cursor:pointer}
.ui-switch-track{position:absolute;inset:0;border-radius:var(--r-pill);background:rgba(247,240,227,.12);border:1px solid var(--c-line-soft);transition:background var(--t-fast),border-color var(--t-fast)}
.ui-switch-track::after{content:"";position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--c-ink-2);transition:transform var(--t-base) var(--ease-soft),background var(--t-fast)}
.ui-switch input:checked+.ui-switch-track{background:rgba(var(--c-accent-rgb),.32);border-color:var(--c-line-strong)}
.ui-switch input:checked+.ui-switch-track::after{transform:translateX(18px);background:var(--c-accent-ink)}
.ui-switch input:focus-visible+.ui-switch-track{outline:2px solid var(--c-accent);outline-offset:2px}
.ui-switch input:disabled+.ui-switch-track{opacity:.4}
.ui-slider{display:flex;align-items:center;gap:var(--s-3);width:220px}
.ui-slider input{flex:1;height:20px;margin:0;background:transparent;-webkit-appearance:none;appearance:none;cursor:pointer}
.ui-slider input::-webkit-slider-runnable-track{height:2px;border-radius:2px;background:linear-gradient(90deg,var(--c-accent) var(--p),rgba(247,240,227,.18) var(--p))}
.ui-slider input::-moz-range-track{height:2px;border-radius:2px;background:linear-gradient(90deg,var(--c-accent) var(--p),rgba(247,240,227,.18) var(--p))}
.ui-slider input::-webkit-slider-thumb{-webkit-appearance:none;width:14px;height:14px;margin-top:-6px;border-radius:50%;background:var(--c-accent-ink);border:0;box-shadow:0 0 0 4px rgba(var(--c-accent-rgb),.16);transition:box-shadow var(--t-fast)}
.ui-slider input::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--c-accent-ink);border:0}
.ui-slider input:hover::-webkit-slider-thumb{box-shadow:0 0 0 6px rgba(var(--c-accent-rgb),.22)}
.ui-slider input:focus-visible{outline:2px solid var(--c-accent);outline-offset:4px;border-radius:4px}
.ui-slider-value{width:44px;text-align:right;font-size:var(--fs-caption);font-variant-numeric:tabular-nums;color:var(--c-ink-2)}
.ui-album{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:var(--s-3);margin:0 0 var(--s-5);padding:0;list-style:none}
.ui-album li{position:relative;display:grid;gap:4px;padding:var(--s-4);border-radius:var(--r-md);border:1px dashed var(--c-line-soft);color:var(--c-ink-3);min-height:104px}
.ui-album li.is-on{border-style:solid;border-color:var(--c-line);background:linear-gradient(160deg,rgba(var(--c-accent-rgb),.1),transparent 70%);color:var(--c-ink)}
.ui-album-n{position:absolute;right:var(--s-3);top:var(--s-3);font-size:var(--fs-micro);letter-spacing:.1em;color:var(--c-ink-3)}
.ui-album-icon{color:var(--c-ink-3)}
.ui-album li.is-on .ui-album-icon{color:var(--c-accent-ink)}
.ui-album-name{margin-top:var(--s-2);font:500 var(--fs-ui)/1.3 var(--font-story);letter-spacing:.1em}
.ui-album-line{font:400 var(--fs-caption)/1.5 var(--font-story);color:var(--c-ink-2)}
.ui-controls{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2) var(--s-6);margin:0}
.ui-controls div{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:40px;border-bottom:1px solid var(--c-line-soft)}
.ui-controls dt{display:flex;gap:4px}
.ui-controls dd{margin:0;font-size:var(--fs-body);color:var(--c-ink-2)}
.ui-about-lead{margin:0 0 var(--s-5);font:400 var(--fs-ui)/var(--lh-story) var(--font-story);color:var(--c-ink-2)}
.ui-about-credits{margin:0;font-size:var(--fs-caption);line-height:1.8;color:var(--c-ink-2)}
.ui-about-credits a{color:var(--c-accent-ink);text-decoration:none;border-bottom:1px solid var(--c-line)}
.ui-about-credits a:hover{border-bottom-color:var(--c-accent)}
/* 暂停时把 HUD 其余部分收起 */
:root.ui-paused .ui-tracker,:root.ui-paused .hud-prompt,:root.ui-paused .ui-edge{opacity:0!important}

/* ========== 13. 加载页（覆盖 hud.css .hud-loading） ========== */
.hud-loading{font-family:var(--font-ui)}
.hud-loading .hud-loading-title{font:500 var(--fs-hero)/1.1 var(--font-story)!important;letter-spacing:.3em!important;padding-left:.3em;color:var(--c-ink)!important}
.hud-loading .hud-loading-sub{font:400 var(--fs-ui)/1.6 var(--font-story)!important;letter-spacing:.24em!important;color:var(--c-ink-2)!important}
.hud-loading .hud-loading-bar{height:1px!important;background:rgba(247,240,227,.16)!important;border:0!important;border-radius:0!important;overflow:visible!important}
.hud-loading .hud-loading-bar i{background:linear-gradient(90deg,rgba(var(--c-accent-rgb),.2),var(--c-accent))!important;box-shadow:0 0 10px var(--c-glow)!important}
.hud-loading .hud-loading-label,.hud-loading .hud-loading-pct{font-size:var(--fs-caption)!important;letter-spacing:.14em!important;color:var(--c-ink-2)!important}
.hud-loading .hud-loading-mark b{border-color:var(--c-accent)!important}

/* ========== 14. 玩法面板统一换皮（保留 DOM 结构与 id，只换皮） ========== */
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner){font-family:var(--font-ui)!important;color:var(--c-ink)!important;background:var(--c-glass-strong)!important;-webkit-backdrop-filter:var(--blur-2);backdrop-filter:var(--blur-2);border:1px solid var(--c-line-soft)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-2)!important;padding:var(--s-5) var(--s-6)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) :is(h1,h2){font:500 var(--fs-title)/1.3 var(--font-story)!important;letter-spacing:.14em!important;color:var(--c-ink)!important;margin:0!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) :is(h3,h4){font:400 var(--fs-micro)/1.2 var(--font-ui)!important;letter-spacing:var(--track-label)!important;color:var(--c-accent-ink)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) :is(p,li,label,span,small){color:inherit}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) p{color:var(--c-ink-2)!important;font-size:var(--fs-body)!important;line-height:1.7!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) .panel-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding-bottom:var(--s-3);margin-bottom:var(--s-3);border-bottom:1px solid var(--c-line-soft)}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) button{font:500 var(--fs-body)/1.2 var(--font-ui)!important;letter-spacing:.06em!important;color:var(--c-ink)!important;background:rgba(255,255,255,.05)!important;border:1px solid var(--c-line-soft)!important;border-radius:var(--r-md)!important;padding:var(--s-2) var(--s-4)!important;min-height:36px;cursor:pointer;box-shadow:none!important;transition:background var(--t-fast),border-color var(--t-fast),transform var(--t-fast) var(--ease-out)}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) button:hover:not(:disabled){background:rgba(var(--c-accent-rgb),.12)!important;border-color:var(--c-line-strong)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) button:active:not(:disabled){transform:translateY(1px);background:rgba(var(--c-accent-rgb),.2)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) button:disabled{opacity:.4!important;cursor:default}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) button:is(.active,.selected,[aria-pressed="true"],[aria-checked="true"],.on){background:rgba(var(--c-accent-rgb),.2)!important;border-color:var(--c-line-strong)!important;color:var(--c-accent-ink)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) button:focus-visible{outline:2px solid var(--c-accent)!important;outline-offset:2px}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) :is(#close-craft,#close-dessert,#close-park,.panel-top>button){background:transparent!important;border-color:transparent!important;color:var(--c-ink-2)!important;min-height:30px;padding:var(--s-1) var(--s-3)!important;border-radius:var(--r-pill)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) :is(#close-craft,#close-dessert,#close-park,.panel-top>button):hover{border-color:var(--c-line-soft)!important;color:var(--c-ink)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) .quiet{background:transparent!important;color:var(--c-ink-2)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) :is(input[type=range]){accent-color:var(--c-accent)}
html body .stir-progress{background:rgba(247,240,227,.14)!important;height:2px!important;border-radius:2px!important;border:0!important}
html body .stir-progress i,#dessert-progress-fill{background:var(--c-accent)!important}
html body .stir-bowl{border-color:var(--c-line)!important;background:radial-gradient(circle,rgba(var(--c-accent-rgb),.08),transparent 70%)!important;color:var(--c-ink-2)!important}
html body #park-panel-owner #park-picnic-mat{background:rgba(255,255,255,.04)!important;border:1px dashed var(--c-line)!important;border-radius:var(--r-md)!important}
html body #park-panel-owner .park-subtle{color:var(--c-ink-3)!important}
/* 旧页头 / 页脚 / 署名浮层：进入游戏后由暂停菜单承担 */
/* 注意：海边页的 header 里有“海边收藏 / 返回雪巷”按钮，不能整块隐藏；旧标题 / 提示由 hud.css 逐项隐藏 */
body.hud-active>details{display:none!important}

/* 旧 hud.css 面板角饰 / 页头菱形与金色渐变选中态：统一换皮后去掉 */
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft)::before,html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft)::after,html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft) .panel-top::after{content:none!important;display:none!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft) .panel-top{padding:0 0 var(--s-3)!important;margin:0 0 var(--s-3)!important;top:auto!important;border-bottom:1px solid var(--c-line-soft)!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft,#park-panel-owner) button:is(.active,.on,.selected,.chosen,[aria-pressed="true"],[aria-checked="true"],[aria-selected="true"]){background:rgba(var(--c-accent-rgb),.2)!important;border-color:var(--c-line-strong)!important;color:var(--c-accent-ink)!important;box-shadow:none!important}
html body :is(#craft,#dessert-craft,#universal-craft,#cinema-craft,#home-craft):not([hidden]){animation:ui-panel-in var(--t-base) var(--ease-out)!important}
@keyframes ui-panel-in{from{opacity:0;transform:translateX(var(--dist))}}
html body :is(#home-conditions,#cinema-subtitle){background:rgba(255,255,255,.04)!important;border:1px solid var(--c-line-soft)!important;border-radius:var(--r-md)!important}
html body :is(#craft-selection,#dessert-selection,#dessert-progress-text,#home-status,#cinema-subtitle,#universal-progress,#universal-personal){color:var(--c-ink-2)!important}
html body #universal-progress{color:var(--c-accent-ink)!important}

/* 演出中（sequence-director）：只留旁白 */
.hud-root.is-cinematic>:not(.ui-caption):not(.ui-chapter-card):not(.ui-complete):not(.ui-finale-dim):not(.ui-memwall):not(.ui-pick):not(.ui-hold){opacity:0!important;transition:opacity var(--t-base)}

/* ========== 15. v28 收集计数器（花店挑花 2/5，右侧回忆条下方） ========== */
.ui-collect{position:absolute;top:calc(var(--edge) + 48px);right:var(--edge);display:flex;align-items:center;gap:var(--s-2);height:32px;padding:0 var(--s-4) 0 var(--s-3);border-radius:var(--r-pill);background:var(--c-glass-soft);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);border:1px solid var(--c-line-soft);box-shadow:var(--shadow-1);color:var(--c-ink);opacity:0;transform:translateY(calc(-1 * var(--dist)));transition:opacity var(--t-base) var(--ease-out),transform var(--t-base) var(--ease-out),border-color var(--t-fast);pointer-events:none;z-index:var(--z-hud,30)}
.ui-collect.is-in{opacity:1;transform:none}
.ui-collect-icon{display:grid;place-items:center;width:16px;height:16px;color:var(--c-accent-ink)}
.ui-collect-icon svg{width:16px;height:16px}
.ui-collect-label{font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-ink-2)}
.ui-collect-count{font:500 var(--fs-caption)/1 var(--font-ui);letter-spacing:.06em;font-variant-numeric:tabular-nums;min-width:2.4em;text-align:right}
.ui-collect-dots{display:flex;gap:5px;margin-left:var(--s-1)}
.ui-collect-dots i{width:7px;height:7px;border-radius:50%;border:1px dashed rgba(247,240,227,.3);transition:background var(--t-base),border-color var(--t-base)}
.ui-collect-dots i.on{border:1px solid var(--c-line-strong);background:var(--dot,var(--c-accent))}
.ui-collect.is-full{border-color:var(--c-line)}
.ui-collect.is-full .ui-collect-count{color:var(--c-accent-ink)}
.ui-collect.is-bump .ui-collect-count{animation:ui-collect-bump 420ms var(--ease-soft)}
@keyframes ui-collect-bump{0%{transform:scale(1)}40%{transform:scale(1.35)}100%{transform:scale(1)}}
[data-reduced-motion] .ui-collect.is-bump .ui-collect-count{animation:none}
.hud-root.is-cinematic .ui-collect{opacity:0!important}

/* ========== 16. v29 结局：暖色暗场 + 回忆墙（小家） ========== */
.ui-finale-dim{position:absolute;inset:0;pointer-events:none;opacity:0;z-index:calc(var(--z-hud) - 1);background:radial-gradient(ellipse 78% 82% at 50% 48%,rgba(40,22,10,0) 0,rgba(40,22,10,0) 52%,rgba(22,12,10,.16) 78%,rgba(10,6,10,.42) 100%);transition:opacity 1500ms var(--ease-out)}
.ui-finale-dim.is-in{opacity:1}
.ui-memwall{position:absolute;inset:0;z-index:var(--z-overlay);display:grid;place-items:center;opacity:0;transition:opacity var(--t-slow) var(--ease-out)}
.ui-memwall.is-in{opacity:1}
.ui-memwall-scrim{position:absolute;inset:0;background:var(--c-scrim);-webkit-backdrop-filter:blur(6px) saturate(.7);backdrop-filter:blur(6px) saturate(.7)}
.ui-memwall-panel{position:relative;width:min(880px,90vw);max-height:94vh;overflow:auto;padding:var(--s-6) var(--s-10) var(--s-4);border-radius:var(--r-lg);background:var(--c-glass);border:1px solid var(--c-line);box-shadow:var(--shadow-2),inset 0 0 0 4px rgba(0,0,0,0),inset 0 0 0 5px var(--c-line-soft);-webkit-backdrop-filter:var(--blur-2);backdrop-filter:var(--blur-2);transform:translateY(var(--dist));transition:transform var(--t-slow) var(--ease-out)}
.ui-memwall.is-in .ui-memwall-panel{transform:none}
.ui-memwall-head{text-align:center;margin-bottom:var(--s-4)}
.ui-memwall-kicker{font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-memwall-title{margin:var(--s-2) 0 var(--s-3);font:500 var(--fs-title)/1.3 var(--font-story);letter-spacing:var(--track-title);color:var(--c-ink)}
.ui-memwall-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s-3)}
.ui-memwall-card{all:unset;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--s-3) var(--s-2);border-radius:var(--r-md);border:1px solid var(--c-line-soft);background:rgba(255,255,255,.03);color:var(--c-ink-3);cursor:pointer;opacity:.35;transform:scale(.96);transition:opacity 600ms var(--ease-out),transform 600ms var(--ease-soft),border-color var(--t-fast),background var(--t-fast)}
.ui-memwall-card.is-lit{opacity:1;transform:none}
.ui-memwall-card.is-done.is-lit{color:var(--c-ink);border-color:var(--c-line);background:rgba(var(--c-accent-rgb),.07)}
.ui-memwall-card.is-done.is-lit .ui-memwall-icon{color:var(--c-accent-ink);border-color:var(--c-line-strong);background:rgba(var(--c-accent-rgb),.14);box-shadow:0 0 18px rgba(var(--c-accent-rgb),.25)}
.ui-memwall-card.is-locked .ui-memwall-icon{border-style:dashed}
.ui-memwall-card.is-current{border-color:var(--c-line-strong);background:rgba(var(--c-accent-rgb),.12)}
.ui-memwall-card:focus-visible{outline:1px solid var(--c-accent);outline-offset:2px}
.ui-memwall-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--c-line-soft);transition:all 600ms var(--ease-out)}
.ui-memwall-icon svg{width:22px;height:22px}
.ui-memwall-label{font:500 var(--fs-ui)/1.3 var(--font-story);letter-spacing:.12em}
.ui-memwall-chapter{font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:.14em;color:var(--c-ink-3)}
.ui-memwall-grid .ui-memwall-card:last-child{grid-column:span 2}
.ui-memwall-detail{min-height:84px;margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px solid var(--c-line-soft);text-align:center}
.ui-memwall-detail.is-in{animation:ui-line-in 600ms var(--ease-out)}
.ui-memwall-detail-chapter{font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-memwall-detail-line{margin:var(--s-2) 0 0;font:400 var(--fs-lead)/var(--lh-story) var(--font-story);letter-spacing:var(--track-story);color:var(--c-ink-2)}
.ui-memwall-detail-line.is-locked{color:var(--c-ink-3)}
.ui-memwall-detail-end{margin:2px 0 0;font:400 var(--fs-lead)/var(--lh-story) var(--font-story);letter-spacing:var(--track-story);color:var(--c-ink)}
.ui-memwall-finale{margin:var(--s-4) 0 0;text-align:center;font:500 var(--fs-title)/1.4 var(--font-story);letter-spacing:.2em;color:var(--c-accent-ink);text-shadow:0 0 22px rgba(var(--c-accent-rgb),.35);opacity:0;transform:translateY(var(--dist));transition:opacity 1200ms var(--ease-out),transform 1200ms var(--ease-out)}
.ui-memwall-finale.is-in{opacity:1;transform:none}
.ui-memwall-foot{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:var(--s-3);font-size:var(--fs-micro);color:var(--c-ink-3);letter-spacing:.1em}
[data-quality="low"] .ui-memwall-panel,[data-quality="low"] .ui-memwall-scrim{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--c-glass-strong)}
[data-reduced-motion] .ui-memwall-card,[data-reduced-motion] .ui-memwall-finale,[data-reduced-motion] .ui-finale-dim{transition-duration:120ms}
/* §17 v29 世界内多选一卡（.ui-pick）与按住进度（.ui-hold）：底部居中，玻璃底 + 金色细线，与提示/字幕同一视觉语言 */
.ui-pick{position:absolute;left:50%;bottom:calc(var(--edge) + 44px);transform:translate(-50%,var(--dist));min-width:300px;max-width:min(460px,86vw);padding:var(--s-4) var(--s-6) var(--s-3);border-radius:var(--r-lg);background:var(--c-glass);border:1px solid var(--c-line);box-shadow:var(--shadow-2);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);text-align:center;color:var(--c-ink);opacity:0;transition:opacity var(--t-base) var(--ease-out),transform var(--t-base) var(--ease-out);z-index:var(--z-panel);pointer-events:none}
.ui-pick.is-in{opacity:1;transform:translate(-50%,0)}
.ui-pick-kicker{font:400 var(--fs-micro)/1 var(--font-ui);letter-spacing:var(--track-label);color:var(--c-accent-ink)}
.ui-pick-title{margin-top:var(--s-2);font:500 var(--fs-title)/1.25 var(--font-story);letter-spacing:var(--track-title)}
.ui-pick-title.is-swap{animation:ui-line-in 320ms var(--ease-out)}
.ui-pick-desc{margin-top:4px;font:400 var(--fs-body)/var(--lh-body) var(--font-story);color:var(--c-ink-2);letter-spacing:var(--track-story);min-height:1.6em}
.ui-pick-dots{display:flex;justify-content:center;gap:6px;margin:var(--s-3) 0 var(--s-2)}
.ui-pick-dots i{width:7px;height:7px;border-radius:50%;background:var(--dot,var(--c-ink-3));opacity:.35;transition:opacity var(--t-fast),transform var(--t-fast)}
.ui-pick-dots i.is-on{opacity:1;transform:scale(1.35);box-shadow:0 0 0 2px rgba(var(--c-accent-rgb),.35)}
.ui-pick-foot{display:flex;align-items:center;justify-content:center;gap:6px;font-size:var(--fs-micro);color:var(--c-ink-3);letter-spacing:.1em}
.ui-hold{position:absolute;left:50%;bottom:calc(var(--edge) + 44px);transform:translate(-50%,var(--dist));display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-5);border-radius:var(--r-pill);background:var(--c-glass);border:1px solid var(--c-line);box-shadow:var(--shadow-1);-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);color:var(--c-ink);opacity:0;transition:opacity var(--t-base) var(--ease-out),transform var(--t-base) var(--ease-out);z-index:var(--z-panel);pointer-events:none}
.ui-hold.is-in{opacity:1;transform:translate(-50%,0)}
.ui-hold-ring{--p:0;width:34px;height:34px;border-radius:50%;background:conic-gradient(var(--c-accent) calc(var(--p)*1turn),rgba(247,240,227,.14) 0);-webkit-mask:radial-gradient(circle,transparent 12px,#000 13px);mask:radial-gradient(circle,transparent 12px,#000 13px)}
.ui-hold-text{display:flex;flex-direction:column;gap:2px;text-align:left}
.ui-hold-title{font:500 var(--fs-ui)/1.2 var(--font-story);letter-spacing:.1em}
.ui-hold-sub{font:400 var(--fs-micro)/1.2 var(--font-ui);letter-spacing:.1em;color:var(--c-ink-3)}
[data-quality="low"] .ui-pick,[data-quality="low"] .ui-hold{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--c-glass-strong)}
/* §18 v29 统一面板皮肤：环球五馆小游戏 / 公园野餐托盘改用 v27 令牌（玻璃底 + 金色细线 + 文楷标题），与 .ui-pick / 回忆墙一致 */
html body :is(#universal-craft,#park-craft){background:var(--c-glass)!important;border:1px solid var(--c-line)!important;border-radius:var(--r-lg)!important;box-shadow:var(--shadow-2)!important;-webkit-backdrop-filter:var(--blur-1);backdrop-filter:var(--blur-1);color:var(--c-ink)!important;font:400 var(--fs-body)/var(--lh-body) var(--font-ui)!important}
html body #universal-craft{left:50%!important;right:auto!important;top:auto!important;bottom:calc(var(--edge) + 44px)!important;transform:translateX(-50%);width:min(440px,calc(100vw - 32px))!important;max-height:min(62vh,520px)!important;padding:var(--s-4) var(--s-6)!important;animation:ui-line-in var(--t-base) var(--ease-out)}
html body :is(#universal-craft,#park-craft)::before,html body :is(#universal-craft,#park-craft)::after{display:none!important}
html body :is(#universal-craft,#park-craft) :is(h1,h2,h3){font:500 var(--fs-title)/1.3 var(--font-story)!important;letter-spacing:var(--track-title)!important;color:var(--c-ink)!important;text-align:center}
html body :is(#universal-craft,#park-craft) :is(p,small){color:var(--c-ink-2)!important;font-family:var(--font-story)!important;letter-spacing:var(--track-story)}
html body :is(#universal-craft,#park-craft) button{font:500 var(--fs-ui)/1 var(--font-ui)!important;letter-spacing:.08em;color:var(--c-ink)!important;background:rgba(255,255,255,.04)!important;border:1px solid var(--c-line-soft)!important;border-radius:var(--r-pill)!important;padding:9px 16px!important;transition:border-color var(--t-fast),background var(--t-fast)}
html body :is(#universal-craft,#park-craft) button:hover:not(:disabled),html body :is(#universal-craft,#park-craft) button:focus-visible{border-color:var(--c-line-strong)!important;background:rgba(var(--c-accent-rgb),.12)!important;outline:none}
html body :is(#universal-craft,#park-craft) button:disabled{opacity:.38!important}
html body #universal-craft #close-universal{position:absolute;right:12px;top:10px;padding:4px 10px!important;font-size:var(--fs-micro)!important;color:var(--c-ink-3)!important}
html body #park-craft{padding:var(--s-3) var(--s-4)!important}
