:root{--bg:#f4f2ec;--panel:#fff;--ink:#17150f;--muted:#7b776b;--line:#17150f17;--chip:#f1eee7;--chip-hover:#e8e4da;--on-ink:#fff;--dot:#17150f21;--shadow:0 1px 2px #17150f0d, 0 8px 28px #17150f14;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--display:"Bricolage Grotesque", "Geist", system-ui, sans-serif;--ui:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#0f0f0d;--panel:#191916;--ink:#f3f1e9;--muted:#918d80;--line:#ffffff17;--chip:#24241f;--chip-hover:#2e2e28;--on-ink:#17150f;--dot:#ffffff1f;--shadow:0 1px 2px #0000004d, 0 10px 32px #00000073;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.4;transition:background-color .25s}button,input{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:0;padding:0}:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.app{grid-template-rows:auto minmax(0,1fr);height:100dvh;display:grid}.top{justify-content:space-between;align-items:center;gap:12px;padding:12px 18px;display:flex}.logo{font-family:var(--display);letter-spacing:-.04em;color:inherit;align-items:center;gap:8px;font-size:25px;font-weight:800;text-decoration:none;display:flex}.logo-mark{margin-right:-2px;display:grid}.logo em{font-family:var(--ui);letter-spacing:0;color:var(--muted);border:1px solid var(--line);border-radius:99px;margin-left:4px;padding:3px 9px;font-size:12px;font-style:normal;font-weight:500;translate:0 1px}.top-actions{align-items:center;gap:8px;display:flex}.work{grid-template-columns:minmax(0,1fr) 404px;gap:14px;min-height:0;padding:0 14px 14px;display:grid}.stage-col{min-height:0;display:grid;position:relative;container-type:inline-size}.btn{background:var(--panel);height:38px;box-shadow:inset 0 0 0 1px var(--line);white-space:nowrap;transition:transform .16s var(--ease-out), background-color .15s ease;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:0 14px;font-weight:550;display:inline-flex}.btn.icon{width:38px;padding:0}.btn.primary{background:var(--ink);color:var(--on-ink);box-shadow:none}.btn:active,.chip:active,.cell:active,.crew-item:active,.sw:active{transform:scale(.96)}@media (hover:hover) and (pointer:fine){.btn:not(.primary):hover{background:var(--chip)}.btn.primary:hover{opacity:.88}}kbd{font:500 11px var(--ui);color:var(--muted);background:var(--chip);border-radius:6px;padding:2px 6px}.chip{background:var(--chip);white-space:nowrap;height:32px;transition:transform .16s var(--ease-out), background-color .15s ease, color .15s ease;border-radius:99px;flex-shrink:0;padding:0 12px;font-size:13px;font-weight:500}.chip[aria-checked=true]{background:var(--ink);color:var(--on-ink)}@media (hover:hover) and (pointer:fine){.chip:not([aria-checked=true]):hover{background:var(--chip-hover)}}.stage{min-height:0;box-shadow:inset 0 0 0 1px var(--line);border-radius:28px;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;transition:background .3s;display:grid;position:relative;overflow:hidden}.stage.is-clear{background-color:var(--panel);background-image:radial-gradient(var(--dot) 1.2px, transparent 1.3px);background-size:22px 22px}.mascot-wrap{grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;width:min(100%,620px);height:100%;min-height:0;padding:64px 24px 96px;display:grid}.mascot-hit{cursor:grab;transform-origin:50% 85%;border-radius:40px;grid-template:minmax(0,1fr)/minmax(0,1fr);place-items:center;width:100%;height:100%;min-height:0;display:grid}.mascot-hit:focus-visible{outline-offset:-8px}.mascot{width:100%;height:100%;min-height:0;max-height:560px;display:block;overflow:visible}.mascot .m-body,.mascot stop{transition:fill .3s,stop-color .3s,stroke .3s}.nametag{z-index:2;background:var(--panel);box-shadow:var(--shadow);color:var(--muted);border-radius:99px;align-items:baseline;gap:7px;padding:8px 16px 9px;font-size:13px;display:flex;position:absolute;top:18px;left:50%;translate:-50%}.nametag input{font-family:var(--display);letter-spacing:-.02em;color:var(--ink);field-sizing:content;background:0 0;border:0;outline:0;min-width:2ch;max-width:50vw;padding:0;font-size:19px;font-weight:700}.crew{z-index:2;background:var(--panel);box-shadow:var(--shadow);scrollbar-width:none;border-radius:20px;flex-direction:column;gap:2px;max-height:calc(100% - 150px);padding:6px;display:flex;position:absolute;top:50%;left:14px;overflow-y:auto;translate:0 -50%}.crew-item{width:46px;height:46px;transition:transform .16s var(--ease-out), background-color .15s ease;border-radius:14px;flex-shrink:0;place-items:center;display:grid}@media (hover:hover) and (pointer:fine){.crew-item:hover{background:var(--chip)}.crew-item:hover svg{transform:scale(1.12)rotate(-4deg)}}.crew-item svg{transition:transform .25s var(--ease-out)}.dock{z-index:2;background:var(--panel);box-shadow:var(--shadow);border-radius:20px;align-items:center;gap:10px;max-width:900px;margin:0 auto;padding:8px;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.shuffle{background:var(--ink);color:var(--on-ink);box-shadow:none;flex-shrink:0}.shuffle kbd{background:color-mix(in srgb, var(--on-ink) 16%, transparent);color:color-mix(in srgb, var(--on-ink) 75%, transparent)}.btn.shuffle:hover{background:var(--ink);opacity:.88}.shuffle:active svg{transform:rotate(90deg)}.shuffle svg{transition:transform .3s var(--ease-out)}.dock-anims{scrollbar-width:none;flex:1;gap:6px;min-width:0;padding:2px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 10px calc(100% - 22px),#0000);mask-image:linear-gradient(90deg,#0000,#000 10px calc(100% - 22px),#0000)}.speed{color:var(--muted);flex-shrink:0;align-items:center;gap:8px;padding:0 8px 0 4px;font-size:12px;display:flex}.speed input{width:84px}.speed output{font-variant-numeric:tabular-nums;width:30px;color:var(--ink);font-weight:550}.panel{background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);border-radius:28px;flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-tabs{padding:14px 14px 10px}.panel-scroll{scrollbar-width:thin;scrollbar-color:var(--line) transparent;animation:tab-in .22s var(--ease-out);flex:1;padding:4px 18px 22px;overflow-y:auto}@keyframes tab-in{0%{opacity:0;transform:translateY(6px)}}.sec{padding:14px 0 6px}.sec+.sec{border-top:1px solid var(--line);margin-top:12px}.sec header{justify-content:space-between;align-items:baseline;margin-bottom:10px;display:flex}.sec h3{font-family:var(--display);letter-spacing:-.02em;margin:0;font-size:16px;font-weight:700}.sec header span{color:var(--muted);font-size:12px}.grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:4px;display:grid}.cell{background:var(--chip);transition:transform .16s var(--ease-out), background-color .15s ease, box-shadow .15s ease;border-radius:16px;flex-direction:column;align-items:center;gap:1px;padding:7px 2px 8px;display:flex;box-shadow:inset 0 0 0 1.5px #0000}.cell span{color:var(--muted);font-size:11.5px;font-weight:500;transition:color .15s}.cell[aria-checked=true]{background:var(--panel);box-shadow:inset 0 0 0 1.5px var(--ink)}.cell[aria-checked=true] span{color:var(--ink)}.cell svg{transition:transform .25s var(--ease-out)}.cell svg.thumb-face{border-radius:15px;margin-bottom:3px}@media (hover:hover) and (pointer:fine){.cell:not([aria-checked=true]):hover{background:var(--chip-hover)}.cell:hover svg{transform:scale(1.1)}}.seg{grid-template-columns:repeat(var(--n), minmax(0, 1fr));background:var(--chip);border-radius:13px;padding:3px;display:grid;position:relative}.seg>i{width:calc((100% - 6px) / var(--n));background:var(--panel);transform:translateX(calc(var(--i) * 100%));transition:transform .28s var(--ease-out);border-radius:10px;position:absolute;top:3px;bottom:3px;left:3px;box-shadow:0 1px 3px #0000001f}.seg button{height:32px;color:var(--muted);white-space:nowrap;border-radius:10px;font-size:13px;font-weight:550;transition:color .15s;position:relative}.seg button[aria-checked=true]{color:var(--ink)}input[type=range]{appearance:none;cursor:pointer;--p:50%;background:0 0;height:22px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(90deg, var(--ink) var(--p), var(--chip-hover) var(--p));border-radius:99px;height:6px}input[type=range]::-moz-range-track{background:linear-gradient(90deg, var(--ink) var(--p), var(--chip-hover) var(--p));border-radius:99px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--panel);width:18px;height:18px;box-shadow:0 0 0 1.5px var(--ink), 0 2px 6px #0000002e;transition:transform .16s var(--ease-out);border:0;border-radius:50%;margin-top:-6px}input[type=range]::-moz-range-thumb{background:var(--panel);width:18px;height:18px;box-shadow:0 0 0 1.5px var(--ink), 0 2px 6px #0000002e;border:0;border-radius:50%}input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}.slider{grid-template-columns:84px minmax(0,1fr) 44px;align-items:center;gap:10px;height:34px;font-size:13px;display:grid}.slider span{color:var(--muted);font-weight:500}.slider output{text-align:right;font-variant-numeric:tabular-nums;font-size:12.5px;font-weight:550}.grid+.slider{margin-top:8px}.swatches{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.sw{background:var(--c);cursor:pointer;width:34px;height:34px;transition:transform .16s var(--ease-out);border-radius:50%;flex-shrink:0;position:relative;box-shadow:inset 0 0 0 1px #80808047}.sw:after{content:"";box-shadow:0 0 0 2px var(--ink);opacity:0;transition:opacity .15s ease, transform .2s var(--ease-out);border-radius:50%;position:absolute;inset:-4px;transform:scale(.85)}.sw[aria-checked=true]:after,.sw.on:after{opacity:1;transform:scale(1)}.sw-none{background:repeating-conic-gradient(#d9d6cd 0 25%, #fff 0 50%) 0 0 / 12px 12px}.sw-custom{background:conic-gradient(#ff5c5c,#ffc93c,#7ed957,#2ec4a6,#4da8ff,#a78bfa,#ff5c9a,#ff5c5c);display:block}.sw-custom.on{background:var(--c)}.sw-custom input{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}@media (hover:hover) and (pointer:fine){.sw:hover{transform:scale(1.08)}}.sub{margin-top:14px}.sub-label{color:var(--muted);margin-bottom:9px;font-size:12px;font-weight:500;display:block}.toggle{text-align:left;justify-content:space-between;align-items:center;width:100%;padding:9px 0;display:flex}.toggle b{font-weight:550;display:block}.toggle small{color:var(--muted);font-size:12px}.toggle i{background:var(--chip-hover);border-radius:99px;flex-shrink:0;width:42px;height:25px;transition:background-color .2s;position:relative}.toggle i:after{content:"";width:19px;height:19px;transition:transform .25s var(--ease-out);background:#fff;border-radius:50%;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle[aria-checked=true] i{background:var(--ink)}.toggle[aria-checked=true] i:after{background:var(--on-ink);transform:translate(17px)}.export{position:relative}.pop{z-index:20;background:var(--panel);width:348px;max-width:calc(100vw - 28px);box-shadow:0 0 0 1px var(--line), 0 18px 50px #0003;transform-origin:100% 0;transition:opacity .18s var(--ease-out), transform .18s var(--ease-out);border-radius:22px;padding:14px;position:absolute;top:calc(100% + 10px);right:0}@starting-style{.pop{opacity:0;transform:scale(.95)translateY(-4px)}}.pop-row{color:var(--muted);grid-template-columns:62px minmax(0,1fr);align-items:center;gap:10px;margin-bottom:8px;font-size:12.5px;font-weight:500;display:grid}.pop-row .seg button{height:30px;font-size:12px}.pop-list{gap:2px;margin:12px 0 0;padding:0;list-style:none;display:grid}.pop-list button{text-align:left;width:100%;transition:background-color .15s ease, transform .16s var(--ease-out);border-radius:14px;align-items:center;gap:12px;padding:9px 10px;display:flex;position:relative;overflow:hidden}.pop-list button:disabled{opacity:.45;cursor:default}.pop-list button:not(:disabled):active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.pop-list button:not(:disabled):hover{background:var(--chip)}}.pop-ico{background:var(--chip);border-radius:11px;flex-shrink:0;place-items:center;width:38px;height:38px;display:grid}.pop-text b{font-weight:600;display:block}.pop-text small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.pop-bar{background:var(--ink);transform-origin:0;height:3px;position:absolute;bottom:0;left:0;right:0}.toast-zone{z-index:30;pointer-events:none;place-items:center;display:grid;position:fixed;bottom:28px;left:0;right:0}.toast{background:var(--ink);color:var(--on-ink);animation:toast-in .3s var(--ease-out);border-radius:99px;padding:10px 16px;font-size:13px;font-weight:550;box-shadow:0 10px 30px #00000040}@keyframes toast-in{0%{opacity:0;transform:translateY(10px)scale(.96)}}@container (width<=680px){.dock{flex-wrap:wrap}.dock-anims{flex-basis:100%;order:3}.speed{margin-left:auto}.mascot-wrap{padding-bottom:140px}.crew{max-height:calc(100% - 230px);top:calc(50% - 32px)}}@media (width<=900px){html,body,#root{height:auto}.app{height:auto;min-height:100dvh;display:block}.top{z-index:10;background:var(--bg);padding:10px 12px;position:sticky;top:0}.logo{font-size:22px}.logo em,.btn .lbl,.shuffle kbd,.speed span{display:none}.work{padding:0 10px 10px;display:block}.stage-col{display:contents}.stage{z-index:6;height:min(42dvh,400px);box-shadow:inset 0 0 0 1px var(--line), 0 0 0 10px var(--bg);border-radius:24px;position:sticky;top:58px}.mascot-wrap{padding:56px 16px 10px}.crew{max-height:none;box-shadow:inset 0 0 0 1px var(--line);flex-direction:row;margin-top:10px;position:static;overflow-x:auto;translate:none}.dock{box-shadow:inset 0 0 0 1px var(--line);flex-wrap:wrap;margin:10px 0;position:static}.dock-anims{flex-basis:100%;order:3}.speed{margin-left:auto}.panel{border-radius:24px;overflow:visible}.panel-scroll{padding:4px 14px 20px;overflow:visible}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important}.panel-scroll,.toast{animation:none}.btn:active,.chip:active,.cell:active,.crew-item:active,.sw:active{transform:none}}
