import type { HudLookSource } from 'wanaka-studio-engine/dom';

/**
 * Studio rewrites this source when the project interface look changes.
 * 归灯 HUD look: ink-wash surfaces, warm ivory text, old-gold hairlines.
 * `GD Serif` is registered at runtime from the bundled Noto Serif SC subset
 * (Latin + every Han character the game uses); glyphs outside it (full-width
 * punctuation) fall back per-glyph to the system Song/serif faces.
 */
export const UI_LOOK = {
  "schemaVersion": 1,
  "presetId": "custom",
  "tokens": {
    "accent": "#d6ab5e",
    "surface": "rgba(11, 16, 29, 0.66)",
    "surfaceStrong": "#0d1424",
    "text": "#f2e7d0",
    "muted": "#a9a08b",
    "danger": "#c9563f",
    "success": "#8db9a0",
    "radius": "3px",
    "border": "1px solid rgba(214, 171, 94, 0.30)",
    "fontDisplay": "\"GD Serif\", \"Noto Serif SC\", \"Songti SC\", \"STSong\", \"Source Han Serif SC\", \"SimSun\", Georgia, serif",
    "fontBody": "\"Noto Sans SC\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", system-ui, \"GD Serif\", sans-serif"
  },
  "fontImports": [],
  "css": "\n.wk-root { position: absolute; inset: 0; overflow: hidden; pointer-events: none; --wk-accent: #d6ab5e; --wk-surface: rgba(11, 16, 29, 0.66); --wk-surface-strong: #0d1424; --wk-text: #f2e7d0; --wk-muted: #a9a08b; --wk-danger: #c9563f; --wk-success: #8db9a0; --wk-radius: 3px; --wk-border: 1px solid rgba(214, 171, 94, 0.30); --wk-font-display: \"GD Serif\", \"Noto Serif SC\", \"Songti SC\", \"STSong\", \"Source Han Serif SC\", \"SimSun\", Georgia, serif; --wk-font-body: \"Noto Sans SC\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", system-ui, \"GD Serif\", sans-serif; font-family: var(--wk-font-body); color: var(--wk-text); -webkit-font-smoothing: antialiased; }\n.wk-screen { position: absolute; inset: 0; pointer-events: none; }\n.wk-root [hidden] { display: none !important; }\n.wk-panel { padding: .75rem .9rem; background: linear-gradient(180deg, rgba(14, 20, 35, 0.70), rgba(10, 14, 26, 0.62)); border: var(--wk-border); border-radius: var(--wk-radius); box-shadow: 0 10px 28px rgba(4, 8, 18, .28); box-sizing: border-box; }\n.wk-title { margin: 0; font-family: var(--wk-font-display); font-weight: 400; font-size: clamp(1.3rem, 3.4vw, 2.3rem); letter-spacing: .03em; }\n.wk-body { color: var(--wk-text); line-height: 1.5; }\n.wk-actions { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }\n.wk-button { min-height: 40px; padding: .5rem .95rem; border: var(--wk-border); border-radius: var(--wk-radius); background: rgba(13, 20, 36, 0.72); color: var(--wk-text); font: inherit; letter-spacing: .02em; cursor: pointer; pointer-events: auto; transition: background-color .14s ease, border-color .14s ease, color .14s ease, transform .14s ease, box-shadow .14s ease; }\n.wk-button:hover:not(:disabled) { border-color: rgba(214, 171, 94, 0.7); background: rgba(26, 34, 54, 0.82); }\n.wk-button:active:not(:disabled) { transform: translateY(1px); }\n.wk-button:focus-visible, .wk-action:focus-visible { outline: 2px solid var(--wk-accent); outline-offset: 2px; }\n.wk-button:disabled { opacity: .45; cursor: default; }\n.wk-ghost { background: transparent; border-color: rgba(214, 171, 94, 0.22); color: var(--wk-muted); }\n.wk-ghost:hover:not(:disabled) { color: var(--wk-text); background: rgba(13, 20, 36, 0.5); }\n.wk-primary { background: linear-gradient(180deg, #dcb468, #c39648); border-color: #e2c07c; color: #1a1408; font-weight: 600; }\n.wk-primary:hover:not(:disabled) { background: linear-gradient(180deg, #e6c27a, #cda056); }\n.wk-text { color: var(--wk-text); }\n.wk-value { color: var(--wk-text); font-variant-numeric: tabular-nums; font-weight: 600; }\n.wk-muted { color: var(--wk-muted); }\n.wk-vitals { display: grid; gap: .35rem; }\n.wk-track { display: flex; height: 6px; min-height: 6px; overflow: hidden; background: rgba(242, 231, 208, 0.12); border-radius: 999px; }\n.wk-fill { display: block; height: 100%; min-width: 2px; background: var(--wk-accent); border-radius: inherit; }\n.wk-secondary { height: 4px; min-height: 4px; }\n.wk-secondary .wk-fill, .wk-fill.wk-secondary { background: var(--wk-muted); }\n.wk-counter { font-variant-numeric: tabular-nums; }\n.wk-timer { font-variant-numeric: tabular-nums; font-family: var(--wk-font-display); }\n.wk-toast { padding: .6rem 1rem; border: var(--wk-border); border-radius: var(--wk-radius); background: rgba(11, 16, 29, 0.78); pointer-events: auto; }\n.wk-objective { padding: .45rem .75rem; border-inline-start: 2px solid var(--wk-accent); }\n.wk-dialogue { display: grid; gap: .75rem; padding: 1rem; }\n.wk-dialogue:has(> .wk-portrait) { grid-template-columns: auto 1fr; }\n.wk-speaker { color: var(--wk-accent); font-family: var(--wk-font-display); }\n.wk-portrait { width: 56px; aspect-ratio: 1; border-radius: var(--wk-radius); object-fit: cover; }\n.wk-choices { display: grid; gap: .5rem; pointer-events: auto; }\n.wk-hotbar { display: flex; gap: .5rem; }\n.wk-slot { position: relative; display: grid; place-items: center; width: 48px; height: 48px; overflow: hidden; border: var(--wk-border); border-radius: var(--wk-radius); background: var(--wk-surface); }\n.wk-cd { position: absolute; inset-inline: 0; bottom: 0; height: 3px; background: var(--wk-accent); pointer-events: none; opacity: .78; }\n.wk-minimap { position: relative; width: 120px; aspect-ratio: 1; overflow: hidden; border: var(--wk-border); border-radius: 50%; background: var(--wk-surface); }\n.wk-map { position: relative; min-height: 120px; background: var(--wk-surface-strong); }\n.wk-minimap .wk-map { height: 100%; min-height: 0; }\n.wk-marker { position: absolute; width: 8px; height: 8px; border-radius: 50%; background: currentColor; color: var(--wk-accent); transform: translate(-50%, -50%); }\n.wk-touch { pointer-events: none; touch-action: none; }\n.wk-stick { position: relative; width: 112px; height: 112px; border: var(--wk-border); border-radius: 50%; background: var(--wk-surface); pointer-events: auto; touch-action: none; }\n.wk-action { position: relative; display: grid; place-items: center; min-width: 64px; min-height: 64px; padding: 0; overflow: hidden; border: var(--wk-border); border-radius: 50%; background: var(--wk-surface-strong); color: var(--wk-text); font: inherit; cursor: pointer; pointer-events: auto; touch-action: none; }\n.wk-action.wk-primary { background: var(--wk-accent); border-color: var(--wk-accent); color: var(--wk-surface-strong); }\n.wk-reticle { --wk-reticle-gap: 6px; --wk-reticle-tick: 6px; --wk-reticle-thickness: 2px; --wk-reticle-dot: 3px; --wk-reticle-color: #fff; position: absolute; inset: 50% auto auto 50%; width: calc(var(--wk-reticle-dot) + 2 * var(--wk-reticle-gap) + 2 * var(--wk-reticle-tick)); height: calc(var(--wk-reticle-dot) + 2 * var(--wk-reticle-gap) + 2 * var(--wk-reticle-tick)); transform: translate(-50%, -50%); background: radial-gradient(circle, var(--wk-reticle-color) 0 70%, transparent 71%) center / var(--wk-reticle-dot) var(--wk-reticle-dot) no-repeat; border: none; pointer-events: none; filter: drop-shadow(0 0 1px #000); }\n.wk-reticle::before { content: \"\"; position: absolute; left: 50%; top: 50%; width: 100%; height: var(--wk-reticle-thickness); transform: translate(-50%, -50%); background: linear-gradient(to right, var(--wk-reticle-color) 0 var(--wk-reticle-tick), transparent var(--wk-reticle-tick) calc(100% - var(--wk-reticle-tick)), var(--wk-reticle-color) calc(100% - var(--wk-reticle-tick))); pointer-events: none; }\n.wk-reticle::after { content: \"\"; position: absolute; left: 50%; top: 50%; width: var(--wk-reticle-thickness); height: 100%; transform: translate(-50%, -50%); background: linear-gradient(to bottom, var(--wk-reticle-color) 0 var(--wk-reticle-tick), transparent var(--wk-reticle-tick) calc(100% - var(--wk-reticle-tick)), var(--wk-reticle-color) calc(100% - var(--wk-reticle-tick))); pointer-events: none; }\n@media (prefers-reduced-motion: reduce) { .wk-root *, .wk-root *::before, .wk-root *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; } }\n\n/* UI_LOOK.tokens */\n.wk-root { --wk-accent: #d6ab5e; --wk-surface: rgba(11, 16, 29, 0.66); --wk-surface-strong: #0d1424; --wk-text: #f2e7d0; --wk-muted: #a9a08b; --wk-danger: #c9563f; --wk-success: #8db9a0; --wk-radius: 3px; --wk-border: 1px solid rgba(214, 171, 94, 0.30); --wk-font-display: \"GD Serif\", \"Noto Serif SC\", \"Songti SC\", \"STSong\", \"Source Han Serif SC\", \"SimSun\", Georgia, serif; --wk-font-body: \"Noto Sans SC\", \"PingFang SC\", \"Hiragino Sans GB\", \"Microsoft YaHei\", system-ui, \"GD Serif\", sans-serif; }\n"
} as const satisfies HudLookSource;
