:root{--carbon:#171a20;--graphite:#393c41;--pewter:#5c5e62;--fog:#8e8e8e;--cloud:#eee;--silver:#d0d1d2;--ash:#f4f4f4;--white:#fff;--blue:#3e6ae1;--blue-dark:#3457b1;--frost:#ffffffc7;--t:.33s cubic-bezier(.5, 0, 0, .75);--r:4px;--font:"Universal Sans Text", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;--gutter:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body{height:100%;color:var(--carbon);font:400 14px/20px var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;background:#dfe7ee;margin:0;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer}[hidden]{display:none!important}#stage,#stage canvas{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#labels{pointer-events:none;position:fixed;inset:0}#labels.off .label{opacity:0}.label{font:500 13px/16px var(--font);color:var(--carbon);background:var(--frost);-webkit-backdrop-filter:blur(12px);border-radius:var(--r);white-space:nowrap;transition:opacity var(--t);padding:4px 8px}.topbar{top:max(12px, env(safe-area-inset-top));left:var(--gutter);right:var(--gutter);pointer-events:none;align-items:center;gap:12px;display:flex;position:fixed}.topbar>*{pointer-events:auto}.brand{background:var(--frost);-webkit-backdrop-filter:blur(20px);border-radius:var(--r);min-width:0;margin-right:auto;padding:8px 12px}.brand-title{font-size:15px;font-weight:500;line-height:20px}.brand-sub{color:var(--pewter);font-size:13px;line-height:18px}.seg{background:var(--frost);-webkit-backdrop-filter:blur(20px);border-radius:var(--r);gap:2px;padding:4px;display:flex}.seg-btn{color:var(--pewter);border-radius:var(--r);min-height:32px;transition:background-color var(--t), color var(--t);background:0 0;border:0;padding:0 16px;font-weight:500}.seg-btn.on{background:var(--carbon);color:var(--white)}.top-actions{gap:8px;display:flex}.btn{border-radius:var(--r);background:var(--frost);-webkit-backdrop-filter:blur(20px);min-height:40px;color:var(--carbon);transition:background-color var(--t), color var(--t), box-shadow var(--t);border:0;padding:0 16px;font-weight:500}.btn:hover{background:var(--white)}.btn.ghost{color:var(--graphite)}.btn.primary{background:var(--blue);color:var(--white);-webkit-backdrop-filter:none;backdrop-filter:none}.btn.primary:hover{background:var(--blue-dark)}.btn.secondary{background:var(--ash);color:var(--graphite);-webkit-backdrop-filter:none;backdrop-filter:none}.btn.secondary:hover{background:var(--cloud)}.btn[aria-expanded=true],.btn[aria-pressed=true]{background:var(--carbon);color:var(--white)}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}.dock{left:50%;bottom:max(16px, env(safe-area-inset-bottom));background:var(--frost);-webkit-backdrop-filter:blur(20px);border-radius:var(--r);max-width:calc(100vw - 2 * var(--gutter));scrollbar-width:none;align-items:center;gap:4px;padding:4px;display:flex;position:fixed;overflow-x:auto;transform:translate(-50%)}.dock::-webkit-scrollbar{display:none}.dock-sep{background:var(--silver);flex:none;align-self:stretch;width:1px;margin:6px 4px}.chip{color:var(--graphite);border-radius:var(--r);white-space:nowrap;min-height:36px;transition:background-color var(--t), color var(--t);background:0 0;border:0;flex:none;padding:0 14px;font-weight:500}.chip:hover{background:#171a200f}.chip.on{background:var(--carbon);color:var(--white)}.panel{top:76px;right:var(--gutter);-webkit-backdrop-filter:blur(24px);background:#ffffffe6;border-radius:12px;flex-direction:column;width:360px;display:flex;position:fixed;bottom:76px;overflow:hidden}.panel-head{justify-content:space-between;align-items:center;padding:16px 16px 8px;display:flex}.panel-title{font-size:17px;font-weight:500;line-height:20px}.icon-btn{border-radius:var(--r);width:32px;height:32px;color:var(--pewter);transition:background-color var(--t);background:0 0;border:0}.icon-btn:hover{background:var(--ash)}.panel-body{overscroll-behavior:contain;flex:1;padding:0 16px 16px;overflow-y:auto}.panel-foot{background:#ffffffe6;gap:8px;padding:12px 16px 16px;display:flex}.panel-foot .primary{flex:1}.section-label{color:var(--pewter);margin:8px 0;font-size:13px}.presets{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.preset{background:var(--ash);border-radius:var(--r);text-align:left;transition:background-color var(--t), color var(--t);border:0;padding:10px 12px}.preset:hover{background:var(--cloud)}.preset.on{background:var(--carbon);color:var(--white)}.preset-name{margin-bottom:6px;font-weight:500;display:block}.preset-dots{gap:4px;display:flex}.preset-dots i{border-radius:50%;width:14px;height:14px;display:block;box-shadow:inset 0 0 0 1px #00000014}.group{border-top:1px solid var(--cloud)}.group>summary{cursor:pointer;justify-content:space-between;align-items:center;padding:14px 0;font-weight:500;list-style:none;display:flex}.group>summary::-webkit-details-marker{display:none}.group>summary:after{content:"+";color:var(--pewter);font-size:18px;font-weight:400}.group[open]>summary:after{content:"–"}.item{border-radius:var(--r);transition:background-color var(--t);padding:4px 0 14px}.item.flash{background:#3e6ae114}.item-head{justify-content:space-between;margin-bottom:8px;display:flex}.item-title{font-weight:500}.item-value{color:var(--pewter);font-variant-numeric:tabular-nums}.swatches{flex-wrap:wrap;gap:6px;display:flex}.sw{width:28px;height:28px;transition:box-shadow var(--t);border:0;border-radius:50%;padding:0;box-shadow:inset 0 0 0 1px #0000001a}.sw.on{box-shadow:0 0 0 2px var(--white), 0 0 0 4px var(--carbon)}.sw-custom{background:conic-gradient(#e66,#ee6,#6e6,#6ee,#66e,#e6e,#e66);position:relative;overflow:hidden}.sw-custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.patterns{flex-wrap:wrap;gap:4px;margin-top:8px;display:flex}.pt{background:var(--ash);color:var(--graphite);border-radius:var(--r);min-height:28px;transition:background-color var(--t), color var(--t);border:0;padding:0 10px;font-size:13px;font-weight:500}.pt:hover{background:var(--cloud)}.pt.on{background:var(--carbon);color:var(--white)}.accent-row{color:var(--pewter);align-items:center;gap:8px;margin-top:8px;font-size:13px;display:flex}.accent-row .sw{width:22px;height:22px}.hint{width:min(360px, calc(100vw - 2 * var(--gutter)));-webkit-backdrop-filter:blur(24px);text-align:center;background:#ffffffe6;border-radius:12px;padding:20px;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.hint-title{margin-bottom:8px;font-size:17px;font-weight:500}.hint-text{color:var(--graphite);margin-bottom:16px}.hint-text kbd{font:500 12px/18px var(--font);background:var(--ash);border-radius:var(--r);padding:1px 6px}.hint .btn{width:200px}.crosshair{pointer-events:none;background:#ffffffd9;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #00000040}.joy{pointer-events:none;opacity:0;background:#ffffff40;border-radius:50%;width:112px;height:112px;transition:opacity .15s;position:fixed;box-shadow:inset 0 0 0 1.5px #ffffffb3}.joy.on{opacity:1}.joy-knob{background:#ffffffe6;border-radius:50%;width:40px;height:40px;position:absolute;top:36px;left:36px}a.btn{align-items:center;text-decoration:none;display:inline-flex}.hud{pointer-events:none;font-variant-numeric:tabular-nums;white-space:nowrap;gap:8px;padding:8px 14px;font-weight:500}.touch-btns{right:var(--gutter);bottom:max(72px, calc(env(safe-area-inset-bottom) + 64px));flex-direction:column;align-items:flex-end;gap:12px;display:flex;position:fixed}.round{background:var(--frost);-webkit-backdrop-filter:blur(20px);width:76px;height:76px;color:var(--carbon);touch-action:none;-webkit-user-select:none;user-select:none;border:0;border-radius:50%;font-size:13px;font-weight:500}.round.fire{background:var(--blue);width:92px;height:92px;color:var(--white)}.boom .crosshair{width:8px;height:8px;margin:-4px 0 0 -4px}.bubble{font:500 13px/16px var(--font);color:var(--carbon);background:var(--white);white-space:nowrap;border-radius:10px;padding:6px 10px;position:relative;transform:translateY(-50%)}.bubble:after{content:"";border:6px solid #0000;border-bottom:0;border-top-color:var(--white);margin-left:-6px;position:absolute;bottom:-6px;left:50%}.bubble.loud{background:var(--blue);color:var(--white);padding:8px 12px;font-size:16px;line-height:20px}.bubble.loud:after{border-top-color:var(--blue)}.modal{padding:var(--gutter);background:#80808073;place-items:center;display:grid;position:fixed;inset:0}.modal-card{width:min(760px,100%);max-height:calc(100vh - 2 * var(--gutter));background:var(--white);border-radius:12px;padding-bottom:16px;overflow-y:auto}.how-steps{color:var(--graphite);margin:0;padding:0 16px 0 36px}.how-steps li{margin-bottom:10px}.how-steps b{color:var(--carbon);font-weight:500}.how-shots{grid-template-columns:repeat(3,1fr);gap:8px;padding:8px 16px 0;display:grid}.how-shots figure{margin:0}.how-shots img{aspect-ratio:16/10;object-fit:cover;border-radius:var(--r);background:var(--ash);width:100%;display:block}.how-shots figcaption{color:var(--pewter);margin-top:4px;font-size:12px}.loader{background:var(--white);place-content:center;justify-items:center;gap:12px;transition:opacity .5s;display:grid;position:fixed;inset:0}.loader.done{opacity:0;pointer-events:none}.loader-title{font-size:40px;font-weight:500;line-height:48px}.loader-bar{background:var(--cloud);border-radius:1px;width:200px;height:2px;overflow:hidden}.loader-bar i{background:var(--carbon);width:0;height:100%;transition:width .2s;display:block}.loader-text{color:var(--pewter)}.toast{background:var(--carbon);color:var(--white);border-radius:var(--r);opacity:0;pointer-events:none;transition:opacity var(--t), transform var(--t);padding:10px 14px;font-weight:500;position:fixed;bottom:72px;left:50%;transform:translate(-50%,8px)}.toast.on{opacity:1;transform:translate(-50%)}@media (width<=767px){.topbar{flex-wrap:wrap;gap:8px}.brand{flex:100%;padding:6px 10px}.brand-sub{display:none}.seg{flex:1}.seg-btn{flex:1;padding:0 8px}.top-actions .ghost{display:none}.boom .top-actions .ghost{align-items:center;display:inline-flex}.boom .top-actions{flex:1;justify-content:flex-end}.hud{gap:6px;padding:6px 10px;font-size:12px}.bubble{font-size:12px}.panel{border-radius:12px 12px 0 0;width:100%;height:62vh;inset:auto 0 0}.panel-foot{padding-bottom:max(16px, env(safe-area-inset-bottom))}.how-shots{grid-template-columns:1fr}.label{padding:3px 6px;font-size:12px}}@media (prefers-reduced-motion:reduce){*{transition:none!important}}
