:root{--bg: #12100e;--surface: #1b1815;--surface-2: #23201c;--line: #352f29;--line-soft: #292420;--text: #ece7dd;--dim: #9d9389;--faint: #6b6259;--jade: #8fb996;--amber: #d9a441;--danger: #d97a6c;--radius: 8px;--radius-sm: 6px;--font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Segoe UI", Roboto, sans-serif;--font-glyph: "Iowan Old Style", "Songti SC", "Times New Roman", serif}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg)}body{color:var(--text);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}button,input{font-family:inherit;font-size:inherit;color:inherit}.app{display:flex;flex-direction:column;gap:18px;min-height:100vh;min-height:100dvh;max-width:520px;margin:0 auto;padding-top:max(env(safe-area-inset-top),20px);padding-bottom:max(env(safe-area-inset-bottom),24px);padding-left:max(env(safe-area-inset-left),16px);padding-right:max(env(safe-area-inset-right),16px)}.masthead{text-align:center;padding-top:8px}.title{margin:0;font-family:var(--font-glyph);font-size:40px;font-weight:500;letter-spacing:0;line-height:1.1}.motto{margin:6px 0 0;font-size:13px;color:var(--faint);letter-spacing:.16em}.main{display:flex;flex-direction:column;gap:14px;flex:1}.panel{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);padding:18px 16px}.panel-cast{display:flex;flex-direction:column;gap:14px}.board-caption{font-size:12px;color:var(--faint);text-align:center;letter-spacing:.08em;margin-bottom:16px;min-height:18px}.board-lines{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}.board-line{display:grid;grid-template-columns:2.6rem 1fr 4.4rem 1rem;align-items:center;gap:10px}.board-label{font-size:12px;color:var(--faint);letter-spacing:.04em}.board-bar{display:flex;gap:9px;height:11px}.board-bar .seg{flex:1;background:var(--text);border-radius:3px}.board-line[data-state=empty] .board-bar .seg{background:transparent;border:1px dashed var(--line)}.board-line[data-moving=true] .board-bar .seg{background:var(--amber)}.board-value{font-size:12px;color:var(--dim);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.board-line[data-state=empty] .board-value{color:var(--faint)}.board-yao{color:var(--text);margin-right:5px;font-variant-numeric:tabular-nums}.board-line[data-moving=true] .board-yao{color:var(--amber)}.board-yao-name{font-size:11px}.board-marker{font-size:13px;color:var(--amber);text-align:center;line-height:1}.board-line[data-next=true] .board-bar .seg-empty{border-color:var(--jade);animation:pulse 2.4s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.35}50%{opacity:1}}@media (prefers-reduced-motion: reduce){.board-line[data-next=true] .board-bar .seg-empty{animation:none;opacity:.8}}.mode{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--bg);border:1px solid var(--line-soft);border-radius:var(--radius)}.mode-btn{padding:9px 8px;background:transparent;border:0;border-radius:var(--radius-sm);color:var(--dim);font-size:14px;cursor:pointer;transition:background .15s ease,color .15s ease}.mode-btn[data-active=true]{background:var(--surface-2);color:var(--text)}.btn{padding:13px 18px;border-radius:var(--radius);border:1px solid transparent;font-size:16px;font-weight:500;cursor:pointer;transition:filter .15s ease}.btn-primary{background:var(--jade);color:#10231a}.btn-primary:active{filter:brightness(.9)}.btn-quiet{background:transparent;border-color:var(--line);color:var(--dim);font-size:14px;padding:10px 18px}.btn-quiet:active{border-color:var(--faint);color:var(--text)}.cast-auto,.cast-manual{display:flex;flex-direction:column;gap:10px}.cast-auto .btn,.cast-manual .btn{width:100%}.field-label{font-size:13px;color:var(--dim)}.field-row{display:grid;grid-template-columns:1fr auto;gap:10px}.field{width:100%;padding:12px 16px;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);font-size:22px;letter-spacing:.3em;text-align:center;font-variant-numeric:tabular-nums}.field::placeholder{color:var(--faint);letter-spacing:.3em}.field:focus{outline:none;border-color:var(--jade)}.field[aria-invalid=true]{border-color:var(--danger)}.hint{margin:0;font-size:12px;line-height:1.5;color:var(--faint)}.hint[data-tone=bad]{color:var(--danger)}.trace-head{font-size:12px;color:var(--faint);letter-spacing:.1em;margin-bottom:10px}.trace-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.trace-row{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:9px 12px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius-sm);font-size:13px}.trace-pos{color:var(--faint);font-size:12px;min-width:2.2rem}.trace-step{display:flex;align-items:baseline;gap:5px}.trace-key{color:var(--faint);font-size:11px}.trace-val{color:var(--text)}.trace-num{font-variant-numeric:tabular-nums}.trace-sub{color:var(--dim);font-size:12px}.trace-arrow{width:5px;height:5px;border-top:1px solid var(--faint);border-right:1px solid var(--faint);transform:rotate(45deg);flex:none;align-self:center}.results{display:grid;grid-template-columns:1fr 1fr;gap:10px}.result-card{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);padding:16px 12px;text-align:center}.result-title{font-size:12px;color:var(--faint);letter-spacing:.14em}.result-glyph{font-family:var(--font-glyph);font-size:40px;line-height:1.1;margin:8px 0 4px;color:var(--text)}.result-name{font-size:14px;color:var(--text)}.result-trigrams{font-size:12px;color:var(--dim);margin-top:4px}.result-note{font-size:11px;color:var(--faint);margin-top:6px}.result-moving{grid-column:1 / -1;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:12px 14px;background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--radius);font-size:13px}.moving-key{color:var(--faint);font-size:12px;letter-spacing:.1em}.moving-value{color:var(--amber)}.moving-hint{color:var(--faint);font-size:12px}.colophon{text-align:center;padding-top:6px}.colophon p{margin:0;font-size:11px;color:var(--faint);line-height:1.7}.colophon-meta{opacity:.7}.install{display:flex;justify-content:center;margin-top:14px}.install-btn{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;background:transparent;border:1px solid var(--line);border-radius:999px;color:var(--dim);font-size:13px;letter-spacing:.04em;cursor:pointer;transition:border-color .15s ease,color .15s ease}.install-btn:active{border-color:var(--jade);color:var(--jade)}.install-glyph{flex:none}.install-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;padding:16px;background:#060504a8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.install-sheet{width:100%;max-width:420px;padding:22px 20px calc(20px + env(safe-area-inset-bottom));background:var(--surface);border:1px solid var(--line);border-radius:14px;animation:sheet-rise .22s ease-out}@keyframes sheet-rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.install-sheet{animation:none}}.install-sheet-title{margin:0 0 14px;font-size:16px;font-weight:500}.install-steps{margin:0 0 18px;padding-left:1.35em;display:flex;flex-direction:column;gap:9px}.install-step{font-size:14px;line-height:1.6;color:var(--dim)}.install-step::marker{color:var(--jade);font-variant-numeric:tabular-nums}.install-close{width:100%}@media (min-width: 480px){.board-line{grid-template-columns:3rem 1fr 5rem 1.2rem;gap:14px}.board-bar{height:12px}}.quantum-note{margin:14px 0 0;padding:12px 14px;display:flex;flex-direction:column;align-items:flex-start;gap:10px;background:var(--surface);border:1px solid var(--line-soft);border-left:2px solid var(--danger);border-radius:var(--radius)}.quantum-note p{margin:0;font-size:12px;line-height:1.55;color:var(--danger)}.quantum-note .btn{font-size:12px;padding:7px 12px}
