:root{--paper: #efe6d4;--paper-deep: #e6dabf;--ink: #1b1712;--ink-soft: rgba(27, 23, 18, .62);--ink-faint: rgba(27, 23, 18, .34);--cinnabar: #b1402e;--cinnabar-soft: rgba(177, 64, 46, .14);--panel: rgba(245, 238, 224, .78);--panel-line: rgba(27, 23, 18, .14);--shadow: rgba(40, 30, 16, .18);--serif: "Songti SC", "Noto Serif", "Iowan Old Style", "Palatino Linotype", Georgia, "Times New Roman", serif;--sans: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#stage{position:fixed;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.hud{position:fixed;top:18px;left:18px;z-index:4;width:min(440px,calc(100vw - 36px));display:flex;flex-direction:column;gap:0;padding:16px 16px 14px;border:1px solid var(--panel-line);border-radius:16px;background:var(--panel);box-shadow:0 18px 50px var(--shadow);backdrop-filter:blur(10px) saturate(1.04);transition:width .22s ease,padding .22s ease,border-radius .22s ease,box-shadow .18s ease,background .18s ease}.panel-collapsed .hud{width:58px;padding:12px;border-radius:14px}.brand{display:flex;align-items:center;gap:12px;transition:gap .18s ease}.panel-collapsed .brand{gap:0}.brand-text{flex:1 1 auto;min-width:0;max-width:320px;opacity:1;transform:translate(0);transition:max-width .18s ease,opacity .14s ease,transform .18s ease}.panel-collapsed .brand-text{max-width:0;opacity:0;transform:translate(-4px)}.hud-body{display:flex;flex-direction:column;gap:12px;max-height:360px;margin-top:12px;overflow:hidden;opacity:1;transform:translateY(0);transition:max-height .22s ease,margin-top .22s ease,opacity .16s ease,transform .22s ease}.hud:not(.hud-collapsed) .hud-body{overflow:visible}.panel-collapsed .hud-body{max-height:0;margin-top:0;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-6px)}.brand-seal{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:9px;background:var(--cinnabar);color:#f7efe0;font-family:var(--serif);font-size:22px;line-height:1;box-shadow:inset 0 0 0 1.5px #f7efe047,0 4px 12px #96281852;opacity:1;transform:scale(1);transition:width .18s ease,height .18s ease,opacity .14s ease,transform .18s ease,box-shadow .18s ease}.panel-collapsed .brand-seal{width:0;height:0;opacity:0;transform:scale(.8);box-shadow:none}.brand-name{font-family:var(--serif);font-size:19px;font-weight:600;letter-spacing:.01em;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.brand-sub{max-height:16px;overflow:hidden;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:2px;opacity:1;transform:translateY(0);white-space:nowrap;transition:max-height .18s ease,margin-top .18s ease,opacity .14s ease,transform .18s ease}.panel-collapsed .brand-sub{max-height:0;margin-top:0;opacity:0;transform:translateY(-3px)}.composer{display:flex;gap:8px}#prompt{flex:1 1 auto;min-width:0;padding:9px 12px;font:inherit;font-size:14px;color:var(--ink);background:#fffcf599;border:1px solid var(--panel-line);border-radius:10px;outline:none;transition:border-color .14s ease,background .14s ease}#prompt:focus{border-color:#b1402e8c;background:#fffdf8d9}.ink-btn{appearance:none;flex:none;padding:9px 13px;font:inherit;font-size:13px;font-weight:600;color:var(--ink);background:#fffcf580;border:1px solid var(--panel-line);border-radius:10px;cursor:pointer;transition:transform .12s ease,background .14s ease,border-color .14s ease,color .14s ease}.ink-btn:hover{background:#fffdf8eb;transform:translateY(-1px)}.ink-btn:active{transform:translateY(.5px)}.ink-btn.primary{color:#f7efe0;background:var(--ink);border-color:var(--ink)}.ink-btn.primary:hover{background:#2c241b}.tools{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.ink-btn.ghost{padding:7px 11px;font-size:12.5px;font-weight:500;color:var(--ink-soft);background:transparent}.ink-btn.ghost[aria-pressed=true]{color:var(--cinnabar);background:var(--cinnabar-soft);border-color:#b1402e66}.collapse-btn{appearance:none;flex:none;display:grid;place-items:center;width:32px;height:32px;margin-left:auto;color:var(--ink-soft);background:#fffcf557;border:1px solid var(--panel-line);border-radius:9px;cursor:pointer;transition:transform .12s ease,background .14s ease,border-color .14s ease,color .14s ease}.collapse-btn:hover{color:var(--cinnabar);background:#fffdf8b8;border-color:#b1402e57;transform:translateY(-1px)}.collapse-btn:active{transform:translateY(.5px)}.collapse-btn:focus-visible{outline:2px solid rgba(177,64,46,.42);outline-offset:2px}.collapse-icon{width:18px;height:18px;fill:none;stroke:currentcolor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}.panel-collapsed .collapse-icon{transform:rotate(180deg)}.tools-sep{width:1px;height:18px;margin:0 2px;background:var(--panel-line)}.env-control{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:3px 0 3px 4px;color:var(--ink-soft);font-size:12px;white-space:nowrap}.env-select{appearance:none;width:84px;padding:6px 24px 6px 9px;font:inherit;font-size:12px;color:var(--ink-soft);background:#fffcf561;border:1px solid var(--panel-line);border-radius:8px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 13px) 50%,calc(100% - 8px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.env-select:hover{color:var(--cinnabar);border-color:#b1402e6b}.presets{position:relative;display:flex;align-items:center;gap:8px;margin-top:2px}.presets-label{font-size:12px;color:var(--ink-soft);white-space:nowrap}.preset-picker{position:relative;flex:1;min-width:0}.preset-trigger{appearance:none;width:100%;padding:6px 28px 6px 10px;font:inherit;font-size:12px;text-align:left;color:var(--ink-soft);background:transparent;border:1px solid var(--panel-line);border-radius:8px;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--ink-soft) 50%),linear-gradient(135deg,var(--ink-soft) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 9px) 50%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:color .14s ease,border-color .14s ease}.preset-trigger:hover,.preset-trigger[aria-expanded=true]{color:var(--cinnabar);border-color:#b1402e6b}.preset-popover{position:absolute;z-index:8;top:calc(100% + 6px);left:0;right:0;max-height:min(340px,calc(100vh - 220px));padding:5px;overflow-y:auto;border:1px solid var(--panel-line);border-radius:10px;background:#f7f0e2f5;box-shadow:0 18px 42px #281e1033;backdrop-filter:blur(12px) saturate(1.04)}.preset-popover[hidden]{display:none}.preset-row{display:grid;grid-template-columns:minmax(0,1fr) 30px;gap:4px;align-items:center}.preset-option,.preset-add{appearance:none;min-height:30px;font:inherit;color:var(--ink);background:transparent;border:1px solid transparent;border-radius:7px;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}.preset-option{min-width:0;padding:0 8px;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.preset-add{display:grid;place-items:center;padding:0;font-size:17px;font-weight:600;line-height:1;color:var(--cinnabar)}.preset-option:hover,.preset-option:focus-visible,.preset-add:hover,.preset-add:focus-visible{background:#fffcf5b8;border-color:#b1402e42;outline:none}.preset-add:disabled{color:var(--ink-faint);cursor:not-allowed;background:transparent;border-color:transparent}.specimen{position:fixed;left:18px;bottom:18px;z-index:4;display:flex;flex-direction:column;align-items:stretch;gap:9px;width:min(390px,calc(100vw - 36px));padding:11px;border:1px solid var(--panel-line);border-radius:14px;background:var(--panel);box-shadow:0 14px 36px var(--shadow);backdrop-filter:blur(8px);opacity:1;transform:translateY(0);visibility:visible;transition:opacity .16s ease,transform .18s ease,visibility 0s linear 0s}.specimen.specimen-hidden{opacity:0;pointer-events:none;transform:translateY(8px);visibility:hidden;transition:opacity .16s ease,transform .18s ease,visibility 0s linear .18s}.specimen-roster-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft)}.specimen-clear{appearance:none;flex:none;padding:4px 7px;font:inherit;font-size:10.5px;letter-spacing:.08em;color:var(--ink-soft);background:transparent;border:1px solid var(--panel-line);border-radius:7px;cursor:pointer}.specimen-clear:hover:not(:disabled){color:var(--cinnabar);border-color:#b1402e5c}.specimen-clear:disabled{opacity:.48;cursor:not-allowed}.specimen-roster{display:flex;flex-wrap:wrap;gap:6px}.specimen-chip{display:inline-grid;grid-template-columns:minmax(64px,1fr) 24px;max-width:176px;min-height:28px;border:1px solid var(--panel-line);border-radius:8px;overflow:hidden;background:#fffcf557}.specimen-chip.active{border-color:#b1402e80;background:var(--cinnabar-soft)}.specimen-chip-select,.specimen-chip-remove{appearance:none;min-width:0;padding:0 8px;font:inherit;font-size:11.5px;color:var(--ink-soft);background:transparent;border:0;cursor:pointer}.specimen-chip-select{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.specimen-chip.active .specimen-chip-select{color:var(--cinnabar);font-weight:650}.specimen-chip-remove{display:grid;place-items:center;padding:0;border-left:1px solid var(--panel-line);font-size:15px;line-height:1}.specimen-chip-remove:hover:not(:disabled){color:var(--cinnabar);background:#fffcf570}.specimen-chip-remove:disabled{opacity:.36;cursor:not-allowed}.specimen-detail{display:flex;align-items:center;gap:12px}.specimen-seal{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:9px;border:1.5px solid var(--cinnabar);color:var(--cinnabar);font-family:var(--serif);font-size:22px;line-height:1}.specimen-name{font-family:var(--serif);font-size:16px;font-weight:600;text-transform:capitalize}.specimen-meta{font-size:11.5px;letter-spacing:.06em;color:var(--ink-soft);margin-top:1px}@media (max-width: 560px){.hud{top:10px;left:10px;width:calc(100vw - 20px);padding:13px}.panel-collapsed .hud{width:56px;padding:11px}.specimen{left:10px;bottom:10px;width:calc(100vw - 20px)}.presets,.env-control span{display:none}}@media (prefers-reduced-motion: reduce){.ink-btn,.env-select,.preset-trigger,.preset-option,.preset-add,.specimen-clear,.specimen-chip-select,.specimen-chip-remove,.hud,.hud-body,.brand,.brand-seal,.brand-text,.brand-sub,.collapse-btn,.collapse-icon,.preset-popover,.specimen{transition:none}}
