@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/algorithms-training/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2) format("woff2"),url(/algorithms-training/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/algorithms-training/assets/dm-mono-latin-400-normal-4GdczIuU.woff2) format("woff2"),url(/algorithms-training/assets/dm-mono-latin-400-normal--0xN8mdc.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/algorithms-training/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2) format("woff2"),url(/algorithms-training/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/algorithms-training/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2) format("woff2"),url(/algorithms-training/assets/dm-mono-latin-500-normal-CN8Miw6E.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/algorithms-training/assets/dm-sans-latin-ext-400-normal-BtiwyxMk.woff2) format("woff2"),url(/algorithms-training/assets/dm-sans-latin-ext-400-normal-BjWJ59Pq.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/algorithms-training/assets/dm-sans-latin-400-normal-CW0RaeGs.woff2) format("woff2"),url(/algorithms-training/assets/dm-sans-latin-400-normal-BwCSEQnW.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/algorithms-training/assets/dm-sans-latin-ext-600-normal-4vooXBpG.woff2) format("woff2"),url(/algorithms-training/assets/dm-sans-latin-ext-600-normal-DRtaDpgU.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/algorithms-training/assets/dm-sans-latin-600-normal-Aqo67rzb.woff2) format("woff2"),url(/algorithms-training/assets/dm-sans-latin-600-normal-BmdmIIQ2.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:dark;--bg:#0a0b0c;--bg-2:#0d0e10;--panel:#121315;--panel-2:#0e0f11;--edge:#212326;--edge-hi:#2c2f33;--line:#4a4f54;--detail:#2d3135;--body:#1b1d20;--side:#131417;--deck:#25282c;--plate:#131416;--plate-side:#0d0e10;--fur:#d0682c;--fur-side:#a5501f;--fur-top:#e8853f;--fur-light:#f2e6d3;--fur-light2:#cdbda6;--fur-dark:#2a1b14;--fur-line:#22140d;--ink:#868b8f;--ink-hi:#e6e8e9;--live:#f4f5f5;--shadow:#000;--glass:#0d0e0f;--recess:#0c0d0e;--accent:#ff7a1a;--accent-hi:#ffb070;--accent-dim:rgba(255,122,26,.1);--mono:"DM Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;--r-lg:22px;--r-md:14px;--r-sm:10px;--ease:cubic-bezier(.2,.8,.2,1)}:root[data-theme=light]{color-scheme:light;--bg:#e7e8e8;--bg-2:#eeefef;--panel:#f6f6f5;--panel-2:#efefee;--edge:#d6d8d8;--edge-hi:#c9cccd;--line:#8e9397;--detail:#c6c9cb;--body:#ececeb;--side:#dfe0df;--deck:#f7f7f6;--plate:#e3e4e4;--plate-side:#d4d6d6;--fur:#e2773a;--fur-side:#c45f27;--fur-top:#f39657;--fur-light:#fffaf2;--fur-light2:#eadcc8;--fur-dark:#3a281f;--fur-line:#5b3622;--ink:#6a6f73;--ink-hi:#16181a;--live:#0c0d0e;--shadow:#5b6066;--glass:#dcdede;--recess:#e2e4e4}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--mono);font-size:13px;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background-image:radial-gradient(circle at 1px 1px,var(--detail) 1px,transparent 1.2px);background-size:22px 22px;-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 85%);mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 30%,transparent 85%)}button{font:inherit;color:inherit}kbd{font:inherit;font-size:10px;letter-spacing:.06em;color:var(--line);border:1px solid var(--edge-hi);border-bottom-width:2px;border-radius:5px;padding:0 4px;line-height:15px;min-width:16px;text-align:center;display:inline-block}.fx{position:absolute;width:0;height:0;overflow:hidden}[hidden]{display:none!important}.app{position:relative;max-width:1320px;margin-inline:auto;padding:18px 18px 14px;display:grid;gap:14px;min-height:100%;grid-template-rows:auto 1fr auto}.top{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;text-transform:uppercase;letter-spacing:.14em;padding:0 4px}.brand-wrap{display:flex;align-items:center;gap:12px;min-width:0}.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none;color:var(--ink);white-space:nowrap}.brand .hi{color:var(--ink-hi);font-weight:500;letter-spacing:.16em}.slot{display:contents}.made-with .links{display:flex;gap:16px}.brand .sub{font-size:11px;color:var(--line)}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);align-self:center}.level-btn{display:flex;align-items:center;gap:10px;margin-inline:auto;background:var(--panel);border:1px solid var(--edge);border-radius:999px;padding:7px 14px 7px 8px;cursor:pointer;letter-spacing:.12em;text-transform:uppercase;transition:border-color .2s,background .2s}.level-btn:hover{border-color:var(--line)}.level-btn .n{color:var(--accent);text-shadow:0 0 8px var(--accent);border:1px solid var(--edge-hi);border-radius:999px;padding:2px 8px;font-size:12px}.level-btn .t{color:var(--ink-hi);letter-spacing:.08em}.level-btn .chev{color:var(--line);font-size:10px}.tools{display:flex;align-items:center;gap:8px}.swatches{display:flex;align-items:center;gap:3px;padding:4px;border:1px solid var(--edge);border-radius:999px;background:var(--panel)}.swatches button{width:26px;height:26px;border-radius:50%;border:1px solid transparent;background:none;cursor:pointer;display:grid;place-items:center;padding:0}.swatches button i{width:12px;height:12px;border-radius:50%;background:var(--sw);border:1px solid var(--line);transition:box-shadow .2s,transform .2s}.swatches button:hover i{transform:scale(1.15)}.swatches button[aria-checked=true]{border-color:var(--line)}.swatches button[aria-checked=true] i{box-shadow:0 0 10px 1px var(--sw)}:root[data-theme=light] .swatches button[aria-checked=true] i{box-shadow:0 0 0 2px var(--panel),0 0 0 3px var(--sw)}.theme-wrap{position:relative}.theme-btn{display:flex;align-items:center;gap:9px;height:36px;padding:0 12px 0 6px;border-radius:999px;border:1px solid var(--edge);background:var(--panel);cursor:pointer;color:var(--ink);text-transform:uppercase;letter-spacing:.14em;font-size:11px;transition:border-color .2s,color .2s}.theme-btn:hover,.theme-btn[aria-expanded=true]{border-color:var(--line);color:var(--ink-hi)}.theme-btn .chev{color:var(--line);font-size:9px}.tri{display:flex;width:24px;height:24px;border-radius:50%;overflow:hidden;border:1px solid var(--edge-hi);flex:none}.tri i{flex:1}.popover{position:absolute;right:0;top:calc(100% + 10px);z-index:60;width:min(520px,calc(100vw - 20px));padding:14px;border-radius:18px;background:var(--panel);border:1px solid var(--edge-hi);box-shadow:0 24px 60px #00000073;text-transform:none;letter-spacing:normal;animation:rise .25s var(--ease)}.pop-head{display:flex;justify-content:space-between;align-items:baseline;margin:0 2px 10px;text-transform:uppercase;letter-spacing:.14em;font-size:11px;color:var(--ink)}.pop-head .hi{color:var(--ink-hi)}.pop-head+.packs{margin-bottom:14px}.packs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.pack{position:relative;display:grid;gap:6px;padding:6px 6px 8px;border-radius:13px;border:1px solid var(--edge-hi);background:var(--panel);color:var(--ink);cursor:pointer;text-align:left;transition:transform .18s var(--ease),border-color .2s,box-shadow .2s}.pack:hover{transform:translateY(-2px);border-color:var(--line)}.pack[aria-checked=true]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 0 18px -6px var(--accent)}.pack .pv{aspect-ratio:5/4;border-radius:9px;background:var(--bg);display:grid;place-items:center;overflow:hidden;position:relative}.pack .pv:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 55% at 50% 55%,var(--accent-dim),transparent 70%)}.pack .pv svg{width:100%;height:100%;position:relative;z-index:1}.pack .pn{display:flex;justify-content:space-between;align-items:baseline;padding:0 3px;font-size:12px;color:var(--ink-hi);letter-spacing:.04em}.pack .pm{font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.popover .swatches{width:fit-content}.swatches button.auto i{background:conic-gradient(var(--sw) 0 50%,var(--sw2) 0)}.fx-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px;border:1px solid var(--edge);border-radius:12px}.fx-seg button{display:grid;gap:2px;justify-items:start;padding:7px 10px;border-radius:9px;border:1px solid transparent;background:none;cursor:pointer;color:var(--ink);text-align:left}.fx-seg button b{font-weight:400;color:var(--ink-hi);font-size:12px;letter-spacing:.03em}.fx-seg button span{font-size:10px;letter-spacing:.02em;color:var(--line)}.fx-seg button:hover b{color:var(--ink-hi)}.fx-seg button[aria-checked=true]{background:var(--bg-2);border-color:var(--accent)}.fx-seg button[aria-checked=true] span{color:var(--ink)}.swatches+.pop-head{margin-top:14px}.pop-foot{margin:12px 2px 0;font-size:11px;color:var(--line);letter-spacing:.03em}.pop-foot kbd{margin:0 2px}.icon-btn{width:36px;height:36px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--edge);border-radius:50%;cursor:pointer;color:var(--ink);padding:0;transition:color .2s,border-color .2s,background .2s}.icon-btn:hover{color:var(--ink-hi);border-color:var(--line)}.icon-btn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icon-btn.sm{width:30px;height:30px}.icon-btn.sm svg{width:15px;height:15px}.icon-btn:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.layout{display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:14px;align-items:stretch;min-height:0}.stage-panel,.editor-panel{background:var(--panel);border:1px solid var(--edge);border-radius:var(--r-lg);position:relative}.stage-panel{display:grid;grid-template-rows:auto auto 1fr auto;padding:18px 22px 14px;gap:6px;min-height:560px;overflow:hidden}.stage-panel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity 1.2s;background:radial-gradient(ellipse 55% 50% at 50% 55%,var(--accent-dim),transparent 72%)}.stage-panel.power:after{opacity:1}:root[data-theme=light] .stage-panel:after{display:none}.cap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 18px;text-transform:uppercase;letter-spacing:.14em;position:relative;z-index:2}.cap .hi{color:var(--ink-hi)}.cap.bottom{min-height:20px}#hint{text-transform:none;letter-spacing:.03em;color:var(--ink);max-width:62ch}.goal{display:flex;align-items:center;gap:10px}.goal .leds{display:flex;gap:5px}.goal .led{width:9px;height:9px;transform:rotate(45deg);border:1px solid var(--line);border-radius:2px;transition:background .3s,box-shadow .3s,border-color .3s}.goal .led.on{background:var(--accent);border-color:var(--accent-hi);box-shadow:0 0 10px var(--accent)}.goal .count{color:var(--ink-hi);letter-spacing:.1em}.stage{position:relative;min-height:0;display:grid;place-items:center}.stage:before{content:"";position:absolute;top:-10%;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse 52% 46% at 50% 52%,rgba(255,255,255,.035),transparent 70%)}:root[data-theme=light] .stage:before{background:radial-gradient(ellipse 52% 46% at 50% 52%,rgba(255,255,255,.6),transparent 70%)}.stage>svg.board{width:100%;height:100%;max-height:calc(100vh - 210px);display:block;user-select:none;-webkit-user-select:none}.view-ctl{position:absolute;top:2px;right:0;z-index:3;display:flex;align-items:center;gap:2px;padding:3px;border-radius:999px;border:1px solid var(--edge);background:color-mix(in srgb,var(--panel) 85%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.view-ctl button{width:32px;height:32px;border-radius:50%;border:0;background:none;color:var(--ink);cursor:pointer;display:grid;place-items:center;transition:color .2s,background .2s}.view-ctl button:hover{color:var(--ink-hi);background:var(--bg-2)}.view-ctl button:active svg{transform:scale(.9)}.view-ctl svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .1s}.compass{width:22px;height:22px;display:grid;place-items:center}.compass i{position:relative;width:12px;height:12px;border:1px solid var(--line);border-radius:2px;transform:rotateX(55deg) rotate(calc(45deg + var(--rot, 0deg)));transition:transform .56s cubic-bezier(.65,0,.35,1)}.compass i:after{content:"";position:absolute;left:-3px;top:-3px;width:5px;height:5px;border-radius:50%;background:var(--accent);box-shadow:0 0 6px var(--accent)}.stage>svg.board{touch-action:pan-y}.coach{position:relative;justify-self:start;max-width:520px;margin-top:6px;z-index:3;display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;padding:12px 12px 12px 14px;border:1px solid var(--edge-hi);background:color-mix(in srgb,var(--panel) 88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:var(--r-md);animation:rise .5s var(--ease)}.coach-k{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent);border:1px solid var(--edge-hi);border-radius:999px;padding:1px 8px;margin-top:1px}.coach p{margin:0;color:var(--ink-hi);line-height:1.55;font-size:12.5px}.coach button{background:none;border:0;color:var(--line);cursor:pointer;font-size:16px;line-height:1;padding:0 2px}.coach button:hover{color:var(--ink-hi)}.toast{position:absolute;left:50%;bottom:10px;transform:translate(-50%);z-index:4;display:flex;gap:12px;align-items:center;padding:10px 12px 10px 16px;border-radius:999px;background:var(--panel-2);border:1px solid var(--edge-hi);color:var(--ink-hi);white-space:nowrap;letter-spacing:.03em;animation:rise .35s var(--ease);box-shadow:0 10px 30px #00000059}.toast .mark{width:8px;height:8px;transform:rotate(45deg);border:1px solid var(--ink)}.toast button{background:none;border:1px solid var(--edge-hi);border-radius:999px;padding:4px 10px;cursor:pointer;color:var(--ink);letter-spacing:.1em;text-transform:uppercase;font-size:11px}.toast button:hover{color:var(--ink-hi);border-color:var(--line)}@keyframes rise{0%{opacity:0;transform:translate(var(--tx,0),8px)}to{opacity:1;transform:translate(var(--tx,0))}}.toast{--tx:-50%}.editor-panel{padding:16px;display:flex;flex-direction:column;gap:12px}.panel-head{display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.14em;padding:0 2px}.panel-head .label{color:var(--ink)}.hist{display:flex;gap:6px}.palette{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.pchip{position:relative;height:62px;display:grid;place-items:center;align-content:center;gap:3px;background:var(--panel-2);border:1px solid var(--edge-hi);border-radius:var(--r-sm);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;transition:border-color .15s,transform .15s var(--ease),background .15s}.pchip:hover{border-color:var(--line);transform:translateY(-2px)}.pchip:active{cursor:grabbing}.pchip .ic{width:24px;height:24px;color:var(--ink-hi)}.pchip .nm{font-size:10px;letter-spacing:.04em;color:var(--ink)}.pchip kbd{position:absolute;top:4px;right:4px;font-size:9px;line-height:12px;padding:0 3px;min-width:13px;border-bottom-width:1px}.pchip.disabled{opacity:.3;pointer-events:none}.editor-panel.locked .pchip{opacity:.55}.tracks{display:grid;gap:10px}.track{border:1px solid var(--edge);border-radius:var(--r-md);background:var(--bg-2);padding:9px 10px 10px;transition:border-color .2s,box-shadow .2s}.track.active{border-color:var(--edge-hi);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent)}.track.full .meter b{color:var(--ink-hi)}.track.shake{animation:shake .38s}@keyframes shake{20%{transform:translate(-5px)}45%{transform:translate(4px)}70%{transform:translate(-2px)}}.track header{display:flex;align-items:center;gap:10px;margin-bottom:8px;cursor:pointer;text-transform:uppercase;letter-spacing:.14em;font-size:11px}.track .tname{color:var(--ink-hi);display:flex;align-items:center;gap:7px}.track .tname i{width:6px;height:6px;border-radius:50%;border:1px solid var(--line);transition:background .2s,box-shadow .2s}.track.active .tname i{background:var(--accent);border-color:var(--accent-hi);box-shadow:0 0 8px var(--accent)}.track.calling .tname i{background:var(--accent-hi);box-shadow:0 0 10px var(--accent)}.track .meter{margin-left:auto;color:var(--line);letter-spacing:.08em}.track .meter b{font-weight:400;color:var(--ink)}.track .clear{background:none;border:0;color:var(--line);cursor:pointer;padding:2px 4px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;border-radius:6px}.track .clear:hover{color:var(--ink-hi)}.slots{position:relative;display:flex;flex-wrap:wrap;gap:6px;min-height:46px}.chip{position:relative;width:46px;height:46px;display:grid;place-items:center;background:var(--panel);border:1px solid var(--edge-hi);border-radius:11px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;color:var(--ink-hi);transition:border-color .15s,background .2s,box-shadow .25s,color .2s}.chip:hover{border-color:var(--line)}.chip .ic{width:22px;height:22px}.chip .x{position:absolute;top:-7px;right:-7px;width:18px;height:18px;border-radius:50%;border:1px solid var(--edge-hi);background:var(--panel-2);color:var(--ink);display:none;place-items:center;font-size:11px;line-height:1;cursor:pointer;padding:0}.chip:hover .x{display:grid}.chip .x:hover{color:var(--ink-hi);border-color:var(--line)}.editor-panel.locked .chip .x,.editor-panel.dragging .chip .x{display:none}.chip.is-call{border-color:color-mix(in srgb,var(--accent) 55%,var(--edge-hi));color:var(--accent-hi)}.chip.is-run{border-color:var(--accent);color:var(--accent-hi);background:color-mix(in srgb,var(--accent) 12%,var(--panel));box-shadow:0 0 0 1px var(--accent),0 0 18px -2px var(--accent)}.chip.is-new{animation:pop .28s var(--ease)}@keyframes pop{0%{transform:scale(.55);opacity:0}}.chip.ph{border:1px dashed var(--accent);background:var(--accent-dim);cursor:default}.chip.ph.full{border-color:var(--line);background:none}.chip.ph.full:after{content:"dolu";font-size:9px;letter-spacing:.1em;color:var(--line)}.slot{width:46px;height:46px;border:1px dashed var(--detail);border-radius:11px}.caret{width:2px;height:46px;margin:0 -4px;border-radius:2px;background:var(--accent);box-shadow:0 0 8px var(--accent);animation:caret 1.05s steps(1) infinite}@keyframes caret{50%{opacity:.15}}.editor-panel.locked .caret,.editor-panel.dragging .caret{display:none}.drag-ghost{position:fixed;left:0;top:0;z-index:100;pointer-events:none;width:46px;height:46px;display:grid;place-items:center;border-radius:11px;background:var(--panel);border:1px solid var(--accent);color:var(--accent-hi);box-shadow:0 14px 30px #00000073,0 0 18px -4px var(--accent)}.drag-ghost .ic{width:22px;height:22px}.drag-ghost.trash{border-color:var(--line);color:var(--ink);opacity:.6;box-shadow:0 10px 20px #00000059}.poof{position:fixed;z-index:99;pointer-events:none;width:46px;height:46px;border-radius:11px;border:1px solid var(--line);animation:poof .35s ease-out forwards}@keyframes poof{to{transform:scale(1.5);opacity:0}}body.is-dragging,body.is-dragging *{cursor:grabbing!important}.ic{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.ic text{fill:currentColor;stroke:none;font-family:var(--mono);font-weight:500}.stats{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:2px 4px;color:var(--line);letter-spacing:.06em;font-size:12px;margin-top:auto}.stats b{font-weight:400;color:var(--ink-hi)}.stats .par{display:flex;gap:6px;align-items:center}.stars-mini{display:inline-flex;gap:3px}.stars-mini i{width:7px;height:7px;transform:rotate(45deg);border:1px solid var(--line);border-radius:1px}.stars-mini i.on{background:var(--accent);border-color:var(--accent-hi);box-shadow:0 0 6px var(--accent)}.run{display:grid;grid-template-columns:1fr auto auto;gap:8px;align-items:center}.run .speed{grid-column:1 / -1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:44px;padding:0 14px;border-radius:12px;border:1px solid var(--edge-hi);background:var(--panel-2);color:var(--ink-hi);cursor:pointer;letter-spacing:.1em;text-transform:uppercase;font-size:12px;transition:border-color .15s,background .2s,box-shadow .25s,transform .1s}.btn:hover{border-color:var(--line)}.btn:active{transform:translateY(1px)}.btn .ico svg{width:16px;height:16px;display:block;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.btn.primary{border-color:var(--accent);color:var(--accent-hi);background:color-mix(in srgb,var(--accent) 10%,var(--panel-2));box-shadow:0 0 22px -8px var(--accent)}.btn.primary:hover{box-shadow:0 0 26px -4px var(--accent)}.btn.primary kbd{color:color-mix(in srgb,var(--accent-hi) 70%,transparent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}.btn:disabled{opacity:.4;cursor:default}.speed{display:flex;gap:4px;padding:4px;border:1px solid var(--edge);border-radius:12px;align-items:center}.speed .lab{padding:0 8px 0 6px;text-transform:uppercase;letter-spacing:.14em;color:var(--line);font-size:11px}.speed button{flex:1;height:28px;border-radius:8px;border:1px solid transparent;background:none;cursor:pointer;color:var(--ink);letter-spacing:.08em}.speed button:hover{color:var(--ink-hi)}.speed button[aria-checked=true]{background:var(--bg-2);border-color:var(--edge-hi);color:var(--accent-hi)}.made-with{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:0 6px;font-size:11px;letter-spacing:.1em;color:var(--line)}.made-with .keys{text-transform:none;letter-spacing:.04em}.made-with a{color:var(--line);text-decoration:none;text-transform:uppercase;transition:color .2s}.made-with a:hover{color:var(--ink)}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;padding:20px;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade .25s}@keyframes fade{0%{opacity:0}}.sheet{width:min(980px,100%);max-height:calc(100vh - 40px);overflow:auto;background:var(--panel);border:1px solid var(--edge-hi);border-radius:var(--r-lg);padding:18px 20px 22px;box-shadow:0 30px 80px #00000080;animation:rise .35s var(--ease)}.sheet-head{display:flex;align-items:center;gap:14px;text-transform:uppercase;letter-spacing:.14em;margin-bottom:14px}.sheet-head .hi{color:var(--ink-hi)}.sheet-head button{margin-left:auto;font-size:18px}.level-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}.lcard{position:relative;display:grid;grid-template-rows:auto auto;gap:6px;padding:10px 10px 12px;border-radius:var(--r-md);border:1px solid var(--edge);background:var(--bg-2);cursor:pointer;text-align:left;transition:border-color .2s,transform .2s var(--ease)}.lcard:hover{border-color:var(--line);transform:translateY(-2px)}.lcard[aria-current=true]{border-color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent)}.lcard .thumb{aspect-ratio:4/3;display:grid;place-items:center;border-radius:10px;background:var(--panel-2);overflow:hidden}.lcard .thumb svg{width:100%;height:100%}.lcard .meta{display:flex;align-items:center;gap:8px;letter-spacing:.06em}.lcard .num{color:var(--accent);font-size:11px}.lcard .nm{color:var(--ink-hi)}.lcard .stars-mini{margin-left:auto}.lcard.locked{cursor:not-allowed}.lcard.locked .thumb{opacity:.25;filter:grayscale(1)}.lcard.locked:hover{transform:none;border-color:var(--edge)}.lcard .lock{position:absolute;inset:10px 10px auto 10px;aspect-ratio:4/3;display:grid;place-items:center;color:var(--line);letter-spacing:.16em;text-transform:uppercase;font-size:11px}.sheet.win{width:min(440px,100%);text-align:center;padding:28px 26px 24px}.sheet.win h2{margin:14px 0 6px;color:var(--ink-hi);font-weight:400;letter-spacing:.14em;text-transform:uppercase;font-size:16px}.sheet.win p{margin:0 0 20px;line-height:1.6}.sheet.win p b{color:var(--ink-hi);font-weight:400}.stars{display:flex;justify-content:center;gap:18px;padding-top:8px}.stars i{width:26px;height:26px;transform:rotate(45deg) scale(.6);border:1.5px solid var(--line);border-radius:4px;opacity:0;animation:star .5s var(--ease) forwards}.stars i.on{background:var(--accent);border-color:var(--accent-hi);box-shadow:0 0 22px var(--accent)}.stars i:nth-child(2){animation-delay:.15s}.stars i:nth-child(3){animation-delay:.3s}@keyframes star{to{opacity:1;transform:rotate(45deg) scale(1)}}.win-actions{display:flex;gap:10px;justify-content:center}.board .face{fill:var(--body);stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round;transition:stroke .4s}.board .face.front{fill:var(--body)}.board .face.side{fill:var(--side)}.board .face.top{fill:var(--deck)}.board .plate-face.front{fill:var(--plate-side)}.board .plate-face.top{fill:var(--plate)}.board .grid{stroke:var(--detail);stroke-width:1;vector-effect:non-scaling-stroke}.board .plate-rim{fill:none;stroke:var(--detail);stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:2 4;transition:stroke .6s}.board.won .plate-rim{stroke:var(--accent);stroke-dasharray:none;filter:url(#soft)}.board .screw{fill:var(--recess);stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.board .screw-x{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.board .layer{stroke:var(--detail);stroke-width:1;vector-effect:non-scaling-stroke}.board .tile-inset{fill:none;stroke:var(--detail);stroke-width:1;vector-effect:non-scaling-stroke}.board .tile-glass{fill:color-mix(in srgb,var(--accent) 7%,var(--glass));stroke:color-mix(in srgb,var(--accent) 35%,var(--line));stroke-width:1;vector-effect:non-scaling-stroke;transition:fill .35s,stroke .35s}.board .tile-core{fill:none;stroke:color-mix(in srgb,var(--accent) 55%,var(--ink));stroke-width:1;vector-effect:non-scaling-stroke;animation:breathe 2.6s ease-in-out infinite;transition:fill .35s,stroke .35s}@keyframes breathe{50%{opacity:.4}}.board .tile-tick{stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.board .lit-band{fill:var(--accent);opacity:0;transition:opacity .35s}.board .halo{fill:var(--accent);opacity:0;transition:opacity .5s}.board .beam{opacity:0;transform:scaleY(.15);transform-box:fill-box;transform-origin:50% 100%;transition:opacity .4s,transform .6s var(--ease);pointer-events:none}.board .beam-face{stroke:none}.board .beam-stop0{stop-color:var(--accent);stop-opacity:.5}.board .beam-stop1{stop-color:var(--accent);stop-opacity:.12}.board .beam-stop2{stop-color:var(--accent);stop-opacity:0}.board .cell.lit .tile-glass{fill:var(--accent);stroke:var(--accent-hi);filter:url(#glow)}.board .cell.lit .tile-core{fill:var(--accent-hi);stroke:var(--accent-hi);animation:none}.board .cell.lit .tile-tick{stroke:var(--accent-hi)}.board .cell.lit .face.top{stroke:color-mix(in srgb,var(--accent) 70%,var(--line))}.board .cell.lit .lit-band{opacity:1}.board .cell.lit .halo{opacity:.55}.board .cell.lit .beam{opacity:1;transform:scaleY(var(--beam-h, 1))}.board.won .cell.lit .tile-glass{animation:wave 1.4s var(--wave, 0ms) ease-in-out 2}@keyframes wave{40%{fill:var(--accent-hi)}}.board .burst-ring{fill:none;stroke:var(--accent-hi);stroke-width:1.6;vector-effect:non-scaling-stroke;transform-box:fill-box;transform-origin:center;animation:burst .9s ease-out forwards;opacity:0}.board .burst-ring.b2{animation-delay:.14s}@keyframes burst{0%{transform:scale(.5);opacity:1}to{transform:scale(2.6);opacity:0}}.board .fox .face{stroke:var(--fur-line);stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round}.board .fox .face.front{fill:var(--fur)}.board .fox .face.side{fill:var(--fur-side)}.board .fox .face.top{fill:var(--fur-top)}.board .fox .face.cream.front,.board .fox .face.cream.top{fill:var(--fur-light)}.board .fox .face.cream.side{fill:var(--fur-light2)}.board .fox .face.dk{fill:var(--fur-dark)}.board .fox .face.dk.top{fill:color-mix(in srgb,var(--fur-dark) 78%,var(--fur-light))}.board .fox-shadow{fill:var(--shadow)}.board .fox-eye{fill:var(--fur-dark);stroke:none}.board .fox-eye-hl{fill:var(--fur-light);stroke:none}.board .fox-eye-line{fill:none;stroke:var(--fur-dark);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}.board .fox-inner{fill:var(--fur-dark);stroke:none}.board .fox-glow{fill:var(--accent-hi);stroke:var(--accent);stroke-width:1;vector-effect:non-scaling-stroke;filter:url(#soft)}.board .fox-halo{fill:var(--accent);filter:url(#bloom)}.board .xray *{fill:none!important;stroke:var(--ink-hi)!important;stroke-opacity:.4;stroke-dasharray:3 2;filter:none!important}.board .xray .fox-shadow,.board .xray .fox-halo,.board .xray .fox-glow,.board .xray .fox-eye,.board .xray .fox-eye-hl,.board .xray .fox-inner,.board.light .halo,.board.light .beam,.board.light .fox-halo{display:none}:root[data-theme=light] .dot{box-shadow:none}.board.light .fox-shadow{opacity:.25!important}.board.light .fox-glow{filter:none}:root[data-theme=light] .btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:none}:root[data-theme=light] .btn.primary:hover{box-shadow:0 6px 18px -8px var(--accent)}:root[data-theme=light] .btn.primary kbd{color:inherit;opacity:.65;border-color:color-mix(in srgb,var(--on-accent) 40%,transparent)}:root[data-theme=light] .chip.is-run{background:var(--accent);border-color:var(--accent);color:var(--on-accent);box-shadow:0 4px 14px -6px var(--accent)}:root[data-theme=light] .chip.is-call{color:var(--accent);border-color:var(--accent)}:root[data-theme=light] .speed button[aria-checked=true]{color:var(--ink-hi);border-color:var(--accent)}:root[data-theme=light] .drag-ghost{color:var(--accent)}:root[data-theme=light] .level-btn .n,:root[data-theme=light] .coach-k{text-shadow:none;color:var(--accent)}:root[data-fx=kisa]{--beam-h:.42}:root[data-fx=kisa] .board .cell.lit .beam{opacity:.75}:root[data-fx=kisa] .board .cell.lit .halo{opacity:.32}:root[data-fx=kisa]{--halo-k:.45}:root[data-fx=sade] .board .beam,:root[data-fx=sade] .board .halo,:root[data-fx=sade] .board .fox-halo{display:none}:root[data-fx=sade] .board .cell.lit .tile-glass{filter:url(#soft)}:root[data-fx=sade] .board .burst-ring.b2{display:none}:root[data-fx=sade] .board.won .plate-rim{filter:none}:root[data-fx=sade] .stage-panel:after{display:none}:root[data-fx=sade] .btn.primary,:root[data-fx=sade] .btn.primary:hover{box-shadow:none}:root[data-fx=sade] .chip.is-run{box-shadow:0 0 0 1px var(--accent)}:root[data-fx=sade] .goal .led.on,:root[data-fx=sade] .stars-mini i.on,:root[data-fx=sade] .dot{box-shadow:none}.board .trail-mark{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;opacity:.55;animation:trail-in .35s ease-out}@keyframes trail-in{0%{opacity:0}}.board .say{animation:say 1.5s var(--ease) forwards;pointer-events:none;transform-box:fill-box;transform-origin:50% 100%}.board .say rect{fill:var(--panel);stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke}.board .say-tip{fill:var(--panel);stroke:var(--line);stroke-width:1;vector-effect:non-scaling-stroke;stroke-linejoin:round}.board .say text{fill:var(--ink-hi);font-family:var(--mono);font-size:9px;letter-spacing:.02em}@keyframes say{0%{opacity:0;transform:translateY(4px) scale(.85)}14%{opacity:1;transform:none}80%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.caret{animation:none}}@media (min-width: 1041px){.app{height:100vh;min-height:620px}.layout,.stage-panel{min-height:0}.stage{min-height:0;height:100%}.stage>svg.board{height:100%;max-height:none}.editor-panel{min-height:0;overflow:auto;scrollbar-width:thin}}@media (max-width: 1240px){.brand .sub{display:none}}@media (max-width: 1040px){.layout{grid-template-columns:1fr}.stage-panel{min-height:0}.stage>svg.board{max-height:56vh;min-height:300px}.editor-panel{padding:14px}.made-with .keys{display:none}}@media (max-width: 620px){.app{padding:10px 10px 12px;gap:10px}.top{gap:8px}.brand .sub,.brand .dot{display:none}.brand .hi{font-size:11px;letter-spacing:.1em}.brand-wrap{gap:8px}.cg-back span{display:none}.cg-back{padding:0 6px}.level-btn{order:3;width:100%;justify-content:center;margin:0}.tools{margin-left:auto}.swatches button{width:24px;height:24px}.theme-btn .nm{display:none}.theme-btn{padding:0 8px 0 5px}.packs{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.pack{padding:4px 4px 6px;border-radius:11px}.pack .pn{font-size:10.5px;padding:0 2px}.pack .pm{display:none}.pop-head span:not(.hi){display:none}.popover{position:fixed;left:10px;right:10px;top:60px;width:auto;max-height:calc(100vh - 80px);overflow:auto}.stage-panel{padding:12px 12px 10px;border-radius:18px}.coach{max-width:none}.stage{display:flex;flex-direction:column}.palette{grid-template-columns:repeat(7,minmax(0,1fr))}.pchip{height:54px}.pchip .nm{display:none}.chip,.slot{width:42px;height:42px}.caret{height:42px}.app{padding-bottom:84px}.run{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:20;grid-template-columns:1fr 44px 44px auto;gap:6px;padding:8px;border-radius:16px;background:color-mix(in srgb,var(--panel) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--edge-hi);box-shadow:0 12px 32px #0006}.run .speed{grid-column:auto;padding:3px}.run .speed .lab{display:none}.run .speed button{width:32px;flex:none}#stepBtn,#resetBtn{padding:0}#stepBtn .lbl,#resetBtn .lbl,.btn kbd{display:none}.toast{white-space:normal;width:calc(100% - 20px);border-radius:16px}}.chip .mods{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.chip .mods b{position:absolute;right:3px;bottom:2px;font-weight:500;font-size:10px;letter-spacing:0;color:var(--accent-hi)}.chip .mods i{position:absolute;left:4px;top:2px;font-style:normal;font-size:10px;line-height:1}.chip.cond-a{border-color:color-mix(in srgb,var(--accent) 55%,var(--edge-hi))}.chip.cond-a .mods i{color:var(--accent);text-shadow:0 0 6px var(--accent)}.chip.cond-b{border-style:dashed;border-color:var(--ink)}.chip.cond-b .mods i{color:var(--ink-hi)}.chip.sel{outline:2px solid var(--accent);outline-offset:2px}:root[data-theme=light] .chip .mods b{color:var(--accent)}:root[data-theme=light] .chip.cond-a .mods i{text-shadow:none}.chip.is-run .mods b,.chip.is-run .mods i{color:inherit}.blk-pop{position:fixed;z-index:120;display:grid;gap:8px;min-width:230px;padding:10px;border-radius:14px;border:1px solid var(--edge-hi);background:var(--panel);box-shadow:0 18px 44px #00000073;font-family:var(--mono);font-size:12px;color:var(--ink);animation:rise .18s var(--ease)}.blk-pop:after{content:"";position:absolute;left:var(--ax, 50%);bottom:-6px;width:10px;height:10px;margin-left:-5px;background:var(--panel);border-right:1px solid var(--edge-hi);border-bottom:1px solid var(--edge-hi);transform:rotate(45deg)}.blk-pop.below:after{bottom:auto;top:-6px;transform:rotate(225deg)}.bp-row{display:flex;align-items:center;gap:8px}.bp-row.end{justify-content:space-between;border-top:1px solid var(--edge);margin-top:2px;padding-top:8px}.bp-l{width:52px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.blk-pop button{height:30px;min-width:30px;padding:0 9px;border-radius:9px;border:1px solid var(--edge-hi);background:var(--panel-2);color:var(--ink-hi);cursor:pointer;font:inherit}.blk-pop button:hover:not(:disabled){border-color:var(--line)}.blk-pop button:disabled{opacity:.35;cursor:default}.bp-n{min-width:32px;text-align:center;color:var(--accent-hi);font-weight:500;font-size:14px}:root[data-theme=light] .bp-n{color:var(--accent)}.bp-seg{display:flex;gap:3px;padding:3px;border:1px solid var(--edge);border-radius:11px}.bp-seg button{height:26px;border-color:transparent;background:none;color:var(--ink);padding:0 8px}.bp-seg button[aria-pressed=true]{background:var(--bg-2);border-color:var(--edge-hi);color:var(--ink-hi)}.bp-seg .ca[aria-pressed=true]{border-color:var(--accent);color:var(--accent-hi)}.bp-del{color:var(--ink)!important}.bp-ok{border-color:var(--accent)!important;color:var(--accent-hi)!important}:root[data-theme=light] .bp-ok{color:var(--accent)!important}.mode-ind{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;border:1px solid var(--edge-hi);font-size:11px;color:var(--line);transition:color .2s,border-color .2s,box-shadow .2s}.mode-ind.m-a{color:var(--accent);border-color:var(--accent);box-shadow:0 0 10px -2px var(--accent)}.mode-ind.m-b{color:var(--ink-hi);border-color:var(--ink)}.board .tp-pad{fill:var(--glass);stroke:color-mix(in srgb,var(--accent) 45%,var(--line));stroke-width:1;vector-effect:non-scaling-stroke}.board .tp-ring{fill:none;stroke:color-mix(in srgb,var(--accent) 65%,var(--line));stroke-width:1;vector-effect:non-scaling-stroke;stroke-dasharray:3 2}.board .tp-arc{fill:none;stroke:var(--accent-hi);stroke-width:1.5;vector-effect:non-scaling-stroke;stroke-dasharray:9 26;stroke-linecap:round}.board .tp-spin{transform-box:fill-box;transform-origin:center;animation:tp-spin 2.6s linear infinite}@keyframes tp-spin{to{transform:rotate(360deg)}}.board .tp-num{fill:var(--accent-hi);font-family:var(--mono);font-size:10px;font-weight:500}.board.light .tp-num{fill:var(--accent)}.board .tp{filter:url(#soft)}.board.light .tp{filter:none}.board .pad-frame{fill:none;stroke:var(--detail);stroke-width:1;vector-effect:non-scaling-stroke}.board .pad-a .pad-sym{fill:var(--accent);filter:url(#soft)}.board .pad-b .pad-sym{fill:none;stroke:var(--ink-hi);stroke-width:1.6;vector-effect:non-scaling-stroke}.board .pad-a .pad-frame{stroke:color-mix(in srgb,var(--accent) 40%,var(--detail))}.board .pad-b .pad-frame{stroke:var(--line);stroke-dasharray:3 2}.board .fox.mode-a .fox-glow{fill:var(--accent)}.board .fox.mode-b .fox-glow{fill:var(--ink-hi);stroke:var(--ink)}.board .fox.mode-b .fox-halo{fill:var(--ink-hi)}.level-grid .part-head{grid-column:1 / -1;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:14px 2px 2px;padding-bottom:8px;border-bottom:1px solid var(--edge)}.level-grid .part-head:first-child{margin-top:0}.part-head .pn{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:7px;border:1px solid var(--accent);color:var(--accent);font-size:11px}.part-head b{font-weight:500;color:var(--ink-hi);letter-spacing:.12em;text-transform:uppercase;font-size:12px}.part-head .pa{color:var(--ink);font-size:12px;letter-spacing:.02em}.part-head .pp{margin-left:auto;color:var(--line);font-size:11px;letter-spacing:.08em}.lcard .thumb:empty:after{content:"";width:46%;aspect-ratio:1;border:1px dashed var(--detail);border-radius:8px;transform:rotate(45deg) scaleY(.6)}:root{--cg-sans:var(--sans, "DM Sans", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);--cg-mono:var(--mono, "DM Mono", ui-monospace, Menlo, monospace);--cg-ease:var(--ease, cubic-bezier(.2,.8,.2,1))}.cg-locked{overflow:hidden}.cg-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent)}:root[data-theme=light] .cg-dot{box-shadow:none}.cg-chip{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px 0 10px;border-radius:999px;border:1px solid var(--edge);background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;font-family:var(--cg-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;transition:border-color .2s,color .2s}.cg-chip:hover,.cg-chip[aria-expanded=true]{border-color:var(--line);color:var(--ink-hi)}.cg-chip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none}.cg-chip.install{color:var(--accent-hi);border-color:color-mix(in srgb,var(--accent) 45%,var(--edge))}:root[data-theme=light] .cg-chip.install{color:var(--accent)}.cg-chip.user{padding-left:4px}.cg-chip[hidden]{display:none}.cg-avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-weight:500;font-size:12px;letter-spacing:0}.cg-account{position:relative}.cg-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:70;min-width:230px;padding:8px;border-radius:16px;background:var(--panel);border:1px solid var(--edge-hi);box-shadow:0 20px 50px #0006;display:grid;gap:2px;animation:cg-rise .2s var(--cg-ease);font-family:var(--cg-mono)}.cg-menu-head{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--edge);margin-bottom:4px}.cg-menu-head b{font-weight:400;color:var(--ink-hi);font-size:13px}.cg-menu-head span{font-size:11px;color:var(--ink);overflow:hidden;text-overflow:ellipsis}.cg-menu a,.cg-menu button{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;color:var(--ink-hi);text-decoration:none;background:none;border:0;font:inherit;font-size:12px;letter-spacing:.04em;cursor:pointer;text-align:left}.cg-menu a:hover,.cg-menu button:hover{background:var(--bg-2)}.cg-menu svg{width:16px;height:16px;fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.cg-back{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px 0 6px;border-radius:999px;border:1px solid var(--edge);color:var(--ink);text-decoration:none;font-family:var(--cg-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;transition:color .2s,border-color .2s}.cg-back:hover{color:var(--ink-hi);border-color:var(--line)}.cg-back svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.cg-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:grid;place-items:center;padding:16px;background:color-mix(in srgb,var(--bg) 70%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:cg-fade .2s}.cg-sheet{position:relative;width:min(420px,100%);max-height:calc(100dvh - 32px);overflow:auto;padding:26px 24px 22px;border-radius:22px;background:var(--panel);border:1px solid var(--edge-hi);box-shadow:0 30px 80px #00000080;color:var(--ink);font-family:var(--cg-mono);animation:cg-rise .3s var(--cg-ease);text-transform:none;letter-spacing:normal}.cg-sheet.wide{width:min(560px,100%)}.cg-sheet.xl{width:min(980px,100%)}.cg-x{position:absolute;top:14px;right:14px;width:32px;height:32px;border-radius:50%;border:1px solid var(--edge);background:none;color:var(--ink);cursor:pointer;display:grid;place-items:center}.cg-x:hover{color:var(--ink-hi);border-color:var(--line)}.cg-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}.cg-brand{display:flex;align-items:center;gap:10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}.cg-sheet h2{margin:14px 0 6px;font-family:var(--cg-sans);font-weight:600;font-size:22px;letter-spacing:-.01em;color:var(--ink-hi)}.cg-lead{margin:0 0 14px;font-family:var(--cg-sans);font-size:14px;line-height:1.55;color:var(--ink)}.cg-tabs{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;border:1px solid var(--edge);border-radius:12px;margin:14px 0 16px}.cg-tabs button{height:34px;border-radius:8px;border:1px solid transparent;background:none;color:var(--ink);cursor:pointer;font:inherit;font-size:12px;letter-spacing:.06em}.cg-tabs button[aria-selected=true]{background:var(--bg-2);border-color:var(--edge-hi);color:var(--ink-hi)}.cg-auth form{display:grid;gap:12px}.cg-field{display:grid;gap:6px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}.cg-input{position:relative;display:block}.cg-input input{width:100%;height:46px;padding:0 14px;border-radius:12px;border:1px solid var(--edge-hi);background:var(--bg-2);color:var(--ink-hi);font-family:var(--cg-sans);font-size:16px;letter-spacing:0;text-transform:none;outline:none;transition:border-color .2s,box-shadow .2s}.cg-input input::placeholder{color:var(--line)}.cg-input input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-dim)}.cg-input input[type=password],.cg-input input[name=password]{padding-right:46px}.cg-eye{position:absolute;right:6px;top:7px;width:32px;height:32px;border-radius:8px;border:0;background:none;color:var(--ink);cursor:pointer;display:grid;place-items:center}.cg-eye[aria-pressed=true]{color:var(--accent)}.cg-eye svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}.cg-msg{margin:0;min-height:0;font-family:var(--cg-sans);font-size:13px;line-height:1.5;color:var(--ink-hi)}.cg-msg:not(:empty){padding:10px 12px;border-radius:10px;border:1px solid var(--edge-hi);background:var(--bg-2)}.cg-msg:not(:empty):before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;margin-right:8px;border-radius:50%;background:var(--ink-hi);color:var(--panel);font-size:11px;font-weight:700;vertical-align:1px}.cg-msg.ok:not(:empty):before{content:"✓";background:var(--accent);color:var(--on-accent)}.cg-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:46px;padding:0 18px;border-radius:12px;border:1px solid var(--edge-hi);background:var(--panel-2);color:var(--ink-hi);cursor:pointer;font:inherit;font-family:var(--cg-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;transition:box-shadow .2s,transform .1s,opacity .2s}.cg-btn.primary{width:100%;background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:500}.cg-btn.primary:hover{box-shadow:0 8px 24px -8px var(--accent)}.cg-btn:active{transform:translateY(1px)}.cg-btn:disabled{opacity:.6;cursor:default}.cg-btn.busy{position:relative;color:transparent}.cg-btn.busy:after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid var(--on-accent);border-right-color:transparent;animation:cg-spin .7s linear infinite}.cg-link{display:block;margin:12px auto 0;background:none;border:0;color:var(--ink);cursor:pointer;font:inherit;font-size:12px;letter-spacing:.04em;text-decoration:underline;text-underline-offset:3px}.cg-link:hover{color:var(--ink-hi)}.cg-fine{margin:14px 0 0;font-family:var(--cg-sans);font-size:12px;line-height:1.55;color:var(--ink)}.cg-fine.dim{color:var(--line)}.cg-fine a{color:var(--ink-hi)}.cg-steps{margin:6px 0 18px;padding:0;list-style:none;counter-reset:s;display:grid;gap:10px}.cg-steps li{counter-increment:s;display:grid;grid-template-columns:28px 1fr;gap:12px;align-items:center;padding:12px;border-radius:14px;border:1px solid var(--edge);background:var(--bg-2);font-family:var(--cg-sans);font-size:14px;line-height:1.5;color:var(--ink-hi)}.cg-steps li:before{content:counter(s);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--on-accent);font-family:var(--cg-mono);font-size:12px}.cg-steps b{font-weight:600}.cg-k{display:inline-grid;place-items:center;width:26px;height:26px;margin-left:4px;vertical-align:middle;border-radius:7px;border:1px solid var(--edge-hi);background:var(--panel)}.cg-k svg{width:16px;height:16px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}@keyframes cg-fade{0%{opacity:0}}@keyframes cg-rise{0%{opacity:0;transform:translateY(8px)}}@keyframes cg-spin{to{transform:rotate(360deg)}}@media (max-width:620px){.cg-chip .cg-chip-t{display:none}.cg-chip{padding:0 9px}.cg-chip.user{padding:0 4px}.cg-modal{place-items:end center;padding:0}.cg-sheet{width:100%;border-radius:22px 22px 0 0;padding-bottom:calc(22px + env(safe-area-inset-bottom));max-height:92dvh}}@media (prefers-reduced-motion:reduce){.cg-modal,.cg-sheet,.cg-menu{animation:none}}
