:root{--bg: #eef0ea;--panel: #fbfaf6;--ink: #1f2a22;--muted: #5d685f;--line: #dcdcd2;--accent: #2f5d3a;--accent-ink: #fff;--chip: #e7eadf;--danger: #a6382c;--stage: #e3e6df;--focus: #c58b68;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #151a16;--panel: #1d231e;--ink: #e8ebe4;--muted: #a2ab9f;--line: #333b34;--accent: #7fb08a;--accent-ink: #10160f;--chip: #2a322b;--danger: #e07a6c;--stage: #111512;color-scheme:dark}}:root[data-theme=dark]{--bg: #151a16;--panel: #1d231e;--ink: #e8ebe4;--muted: #a2ab9f;--line: #333b34;--accent: #7fb08a;--accent-ink: #10160f;--chip: #2a322b;--danger: #e07a6c;--stage: #111512;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:var(--bg);color:var(--ink);font:14px/1.45 Work Sans,system-ui,sans-serif}#app{display:grid;grid-template-columns:1fr 360px;height:100vh}#stage{position:relative;background:var(--stage);overflow:hidden;display:grid;place-items:center}#frame{position:relative;box-shadow:0 6px 30px #0000002e}#frame canvas{display:block}.hud{position:absolute;left:12px;display:flex;gap:6px;flex-wrap:wrap;pointer-events:none}.hud.top{top:12px}.hud.top span{background:color-mix(in srgb,var(--panel) 88%,transparent);border:1px solid var(--line);border-radius:6px;padding:3px 8px;font:12px ui-monospace,Menlo,monospace}.hud.bottom{bottom:12px;left:50%;transform:translate(-50%);color:var(--muted);font-size:12px;background:color-mix(in srgb,var(--panel) 80%,transparent);padding:3px 10px;border-radius:6px}#toast{position:absolute;top:54px;left:50%;transform:translate(-50%);background:var(--ink);color:var(--panel);padding:8px 14px;border-radius:8px;font-size:13px}#panel{background:var(--panel);border-left:1px solid var(--line);overflow-y:auto;display:flex;flex-direction:column}#panel header{padding:18px 18px 0;position:sticky;top:0;background:var(--panel);z-index:2;border-bottom:1px solid var(--line)}h1{font:600 24px/1.1 Fraunces,Georgia,serif;margin:0 0 6px}.sub{color:var(--muted);margin:0 0 12px;font-size:13px}.tabs{display:flex;gap:2px}.tabs button{flex:1;border:0;background:none;padding:10px 4px;font:500 13px Work Sans,sans-serif;color:var(--muted);border-bottom:2px solid transparent;cursor:pointer}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}.pane{padding:6px 18px 24px}.group{padding:14px 0;border-bottom:1px solid var(--line)}.group:last-child{border-bottom:0}.label{display:block;font:600 11px Work Sans,sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.note{color:var(--muted);font-size:12.5px;margin:8px 0 0}.row{display:grid;grid-template-columns:82px 1fr auto;gap:8px;align-items:center;margin:6px 0}.row output{font:12px ui-monospace,Menlo,monospace;min-width:46px;text-align:right}.row select,.row input[type=text],.row input[type=number]{grid-column:span 2}select,input[type=text],input[type=number],textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:6px 8px;width:100%}textarea{resize:vertical;font-size:12.5px}input[type=range]{width:100%;accent-color:var(--accent)}button,.btn{font:500 13px Work Sans,sans-serif;color:var(--ink);background:var(--chip);border:1px solid var(--line);border-radius:6px;padding:7px 10px;cursor:pointer;display:inline-block}button:hover,.btn:hover{border-color:var(--accent)}button:focus-visible,.btn:focus-visible{outline:2px solid var(--focus);outline-offset:1px}button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);width:100%;padding:10px}button.danger{color:var(--danger)}button:disabled{opacity:.45;cursor:default}.seg{display:grid;grid-template-columns:1fr 1fr}.seg button:first-child{border-radius:6px 0 0 6px}.seg button:last-child{border-radius:0 6px 6px 0;border-left:0}.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{font-size:12.5px;padding:5px 9px}.btnrow{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.sel{border:1px dashed var(--line);border-radius:8px;padding:10px;font-size:13px}.sel.empty{color:var(--muted)}.sel b{display:block;font-size:15px}#selProps .row{grid-template-columns:82px 1fr}#library details{border-top:1px solid var(--line)}#library summary{padding:8px 0;cursor:pointer;font-weight:500}#library .chips{padding-bottom:10px}#library button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}#savedList .saved{display:flex;align-items:center;gap:6px;margin-top:6px}#savedList .saved span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#shot{width:100%;margin-top:10px;border-radius:6px;border:1px solid var(--line)}#refs .ref{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;margin:8px 0}#refs .th{width:64px;height:44px;border-radius:5px;background:var(--chip) center/cover;border:1px solid var(--line);cursor:pointer}#refs b{display:block;font-size:13px}#refs span{color:var(--muted);font-size:12px}@media(max-width:820px){#app{grid-template-columns:1fr;grid-template-rows:56vh 1fr;height:auto;min-height:100vh}#panel{border-left:0;border-top:1px solid var(--line)}#panel header,.pane{padding-left:16px;padding-right:16px}}.check{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;margin:10px 0 0;cursor:pointer}.check input{margin-top:2px;accent-color:var(--accent)}details.adv>summary{cursor:pointer;margin:0;list-style:revert}details.adv[open]>summary{margin-bottom:8px}#gallery{display:grid;gap:12px}.shotcard{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--bg)}.shotcard img{display:block;width:100%;cursor:zoom-in}.shotcard .meta{display:flex;justify-content:space-between;align-items:center;gap:6px;padding:6px 8px;font-size:12px;color:var(--muted)}.shotcard .meta button{padding:4px 8px;font-size:12px}.shotcard.busy{display:grid;place-items:center;aspect-ratio:3 / 2;color:var(--muted);font-size:12.5px;text-align:center;padding:12px}#viewer{position:fixed;inset:0;z-index:40;background:#000000e0;display:grid;place-items:center;cursor:zoom-out}#viewer img{max-width:96vw;max-height:92vh}#viewer[hidden]{display:none}
