:root{--ink:#7d6552;--ink-soft:#a08a76;--dock-bg:#fcf8f28f;--dock-edge:#fffc;--dock-shadow:0 6px 18px #785a3c1a, 0 1px 4px #785a3c0f;--btn-on:#e9d2c5;--btn-hover:#e9d6c48c;--page:#efe6da;--honey:#d9ae78;--honey-deep:#b98a57;--pink:#d6a79c;--font:ui-rounded, "SF Pro Rounded", "PingFang SC", "Hiragino Sans GB", "Noto Sans SC", system-ui, sans-serif}:root[data-night="1"]{--ink:#f1e2cf;--ink-soft:#bfae9a;--dock-bg:#2e2a34a8;--dock-edge:#ffecd61f;--dock-shadow:0 10px 30px #00000059;--btn-on:#ffc89638;--btn-hover:#ffdcbe1f;--page:#23232f}html,body{touch-action:pan-x pan-y;background:var(--page);height:100%;font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;transition:background 1.2s;overflow:hidden}#app{position:fixed;inset:0}.embed .veil,.embed .toolbar,.embed .press-ring{display:none!important}canvas{touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;outline:none;width:100%;height:100%;display:block}.veil{background:var(--page);pointer-events:auto;z-index:30;transition:opacity 1.4s;position:fixed;inset:0}.veil.gone{opacity:0;pointer-events:none}.veil .stage{aspect-ratio:16/9;width:min(62vw,560px,90vh);position:absolute;top:46%;left:50%;transform:translate(-50%,-50%);container-type:inline-size}.veil img{object-fit:cover;width:100%;height:100%;transition:filter 1.2s;position:absolute;inset:0;-webkit-mask-image:radial-gradient(closest-side,#000 62%,#0000 100%);mask-image:radial-gradient(closest-side,#000 62%,#0000 100%)}:root[data-night="1"] .veil img:not(.night){filter:brightness(.5)saturate(.85)}.veil .wait{font-size:14px;white-space:nowrap;color:var(--ink);grid-template-columns:1fr auto 1fr;align-items:end;column-gap:.6em;font-size:clamp(14px,2.6cqi,15px);line-height:1;display:grid;position:absolute;top:91%;left:0;right:0}.veil .say{letter-spacing:.16em;grid-column:2;padding-bottom:.08em}.veil .say .night,:root[data-night="1"] .veil .say .day{display:none}:root[data-night="1"] .veil .say .night{display:inline}:root[lang=en] .veil .say .zh,:root[lang=zh-Hans] .veil .say .en{display:none}:root[lang=en] .veil .say{letter-spacing:.03em}:root[data-night="1"] .veil .wait{color:var(--ink-soft)}.veil .stage:not(:has(img)) .wait{top:50%;transform:translateY(-50%)}.veil .seeds{grid-column:3;justify-self:start;align-items:flex-end;gap:.3em;display:flex}.veil .seed{width:.85em;height:1.2em;color:var(--ink-soft);display:block;position:relative}.veil .seed .hop{transform-origin:50% 100%;display:block;position:absolute;inset:0}.veil .seed svg{width:100%;height:100%;display:block;overflow:visible}.veil .s1 svg{transform:rotate(-14deg)}.veil .s2 svg{transform:rotate(8deg)}.veil .s3 svg{transform:rotate(-3deg)}.veil .seed .halo{opacity:0;background:radial-gradient(closest-side,#ffc48073,#ffc48000);border-radius:50%;display:none;position:absolute;inset:-45% -50%}@keyframes veil-hop{0%{animation-timing-function:ease-out;transform:none}3%{animation-timing-function:cubic-bezier(.2,.75,.4,1);transform:scale(1.12,.86)}10%{animation-timing-function:cubic-bezier(.6,0,.8,.45);transform:translateY(-.6em)rotate(-12deg)scale(.95,1.07)}16%{animation-timing-function:ease-out;transform:scale(1.1,.88)}20%,50%{animation-timing-function:ease-out;transform:none}53%{animation-timing-function:cubic-bezier(.2,.75,.4,1);transform:scale(1.07,.92)}59%{animation-timing-function:cubic-bezier(.6,0,.8,.45);transform:translateY(-.32em)rotate(9deg)scale(.97,1.04)}64%{animation-timing-function:ease-out;transform:scale(1.06,.93)}68%,to{transform:none}}.veil .seed .hop{animation:3.2s infinite veil-hop}.veil .s2 .hop{animation-delay:.18s}.veil .s3 .hop{animation-delay:.36s}@keyframes veil-doze{0%{opacity:.4;animation-timing-function:cubic-bezier(.35,0,.45,1);transform:none}20%{opacity:1;animation-timing-function:cubic-bezier(.45,0,.55,1);transform:translateY(-.08em)}48%,to{opacity:.4;transform:none}}@keyframes veil-glow{0%{opacity:0;animation-timing-function:cubic-bezier(.35,0,.45,1);transform:scale(.7)}20%{opacity:1;animation-timing-function:cubic-bezier(.45,0,.55,1);transform:none}48%,to{opacity:0;transform:scale(.7)}}:root[data-night="1"] .veil .seed .halo{animation:3.6s infinite veil-glow;display:block}:root[data-night="1"] .veil .seed .hop{opacity:.4;animation:3.6s infinite veil-doze}:root[data-night="1"] .veil .s2 .hop,:root[data-night="1"] .veil .s2 .halo{animation-delay:.6s}:root[data-night="1"] .veil .s3 .hop,:root[data-night="1"] .veil .s3 .halo{animation-delay:1.2s}.veil .lamp{aspect-ratio:1;opacity:0;pointer-events:none;background:radial-gradient(closest-side,#ffba685c,#ffba6838 50%,#ffba6800);border-radius:50%;width:30%;display:none;position:absolute;top:65%;left:30%;transform:translate(-50%,-50%)}@keyframes veil-lamp{0%,to{opacity:.2}50%{opacity:1}}:root[data-night="1"] .veil .stage.lit img.night~.lamp{animation:4.8s ease-in-out infinite veil-lamp;display:block}@keyframes veil-rest{0%,to{opacity:.5}50%{opacity:1}}.toolbar{left:50%;bottom:max(18px, env(safe-area-inset-bottom));z-index:10;-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:10px;transition:opacity .9s,transform .9s;display:flex;position:fixed;transform:translate(-50%)}.toolbar .dock{transition:opacity .9s,transform .9s}.toolbar .bar{place-items:end center;display:grid}.toolbar .bar>.dock{grid-area:1/1}.toolbar .bar>.buildbar{opacity:0;pointer-events:none;visibility:hidden;transition:opacity .2s,transform .2s cubic-bezier(.3,1.3,.5,1),visibility 0s .2s;transform:scale(.9,.82)}.toolbar.building .bar>.dock:not(.buildbar){opacity:0;pointer-events:none;visibility:hidden;transition:opacity .2s,transform .2s,visibility 0s .2s;transform:scale(.9,.82)}.toolbar.building .bar>.buildbar{opacity:1;pointer-events:auto;visibility:visible;transition:opacity .2s,transform .2s cubic-bezier(.3,1.3,.5,1),visibility;transform:none}.toolbar .handle{background:var(--ink-soft);opacity:0;pointer-events:none;border-radius:999px;width:34px;height:5px;margin-left:-17px;transition:opacity .9s;position:absolute;bottom:6px;left:50%}.dock{background:var(--dock-bg);border:1px solid var(--dock-edge);box-shadow:var(--dock-shadow);-webkit-backdrop-filter:blur(14px)saturate(1.1);border-radius:999px;gap:6px;padding:7px;display:flex}.dock button{all:unset;box-sizing:border-box;width:58px;height:58px;color:var(--ink);cursor:pointer;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:1px;transition:background .25s,transform .25s cubic-bezier(.3,1.6,.5,1);display:flex}.dock button:hover{background:var(--btn-hover);transform:translateY(-2px)}.dock button:active{transform:scale(.94)}.dock button.on{background:var(--btn-on)}.dock button:focus-visible{outline:2px solid var(--ink-soft);outline-offset:2px}.dock .ico{width:26px;height:26px;display:block}.dock .ico svg{width:100%;height:100%;display:block}.dock .lbl{letter-spacing:.04em;color:var(--ink-soft);font-size:10.5px}:root[lang=en] .dock .lbl{letter-spacing:0;text-align:center;line-height:1.05}.dock button:disabled{opacity:.38;cursor:default;background:0 0;transform:none}.buildbar{align-items:center}.buildbar .cards{align-items:center;gap:6px;min-width:0;padding:0 4px;display:flex}.buildbar .acts{gap:6px;display:flex}.buildbar .bsep{background:var(--ink-soft);opacity:.3;width:1px;height:30px;margin:0 3px}.buildbar .drawer{scrollbar-width:none;touch-action:none;gap:4px;min-width:0;display:flex;overflow-x:auto}.buildbar .drawer::-webkit-scrollbar{display:none}.buildbar .drawer[hidden]{display:none}.buildbar .card{touch-action:none;border-radius:18px;flex:none}.buildbar .card.pressed{transform:scale(.94)}.buildbar .card.capped{opacity:.5}.buildbar .card.capped .back{display:none}.buildbar .card.off{opacity:.22;pointer-events:none}.buildbar .chip{all:unset;cursor:pointer;color:var(--ink);border:1px dashed var(--ink-soft);white-space:nowrap;border-radius:999px;padding:9px 14px;font-size:12.5px;transition:background .2s}.buildbar .chip:hover{background:var(--btn-hover)}.buildbar .chip[hidden]{display:none}@keyframes shake2{0%,to{transform:translate(0)}15%{transform:translate(-8px)}35%{transform:translate(8px)}55%{transform:translate(-7px)}75%{transform:translate(6px)}}.dock button.shake{animation:.42s shake2}.hint{color:var(--ink);background:var(--dock-bg);border:1px solid var(--dock-edge);box-shadow:var(--dock-shadow);opacity:0;pointer-events:none;text-align:center;box-sizing:border-box;overflow-wrap:break-word;border-radius:999px;max-width:min(640px,100vw - 32px);padding:7px 14px;font-size:12.5px;transition:opacity .4s,transform .4s;transform:translateY(6px)}.hint.long{border-radius:16px}.hint.show{opacity:1;transform:none}@media (max-width:480px){.dock button{width:52px;height:52px}.dock:not(.buildbar){gap:4px;padding:6px}.dock:not(.buildbar) button{width:46px;height:46px}.hint{font-size:11.5px}}@media (max-width:360px){.dock:not(.buildbar){gap:0;padding:3px}.dock:not(.buildbar) button{width:44px;height:44px}.dock:not(.buildbar) .ico{width:23px;height:23px}.dock:not(.buildbar) .lbl{font-size:10px}}@media (max-width:600px){.toolbar.building{transition:opacity .9s;bottom:0;left:0;right:0;transform:none}.toolbar.building .bar{grid-template-columns:minmax(0,1fr);width:100%}.toolbar.building .bar>.buildbar{box-sizing:border-box;width:100%;padding:8px 10px max(10px, env(safe-area-inset-bottom));border-bottom-width:0;border-radius:22px 22px 0 0;flex-wrap:wrap;justify-content:center}.toolbar.building .buildbar .cards{flex:1 0 100%;justify-content:center}.toolbar.building .buildbar .bsep{display:none}}@media (prefers-reduced-motion:reduce){.toolbar,.dock button,.hint,.veil,.toolbar .bar>.dock{transition:none}.veil .seed .hop,.veil .seed .halo,:root[data-night="1"] .veil .seed .hop,:root[data-night="1"] .veil .seed .halo{animation:none}:root[data-night="1"] .veil .seed .hop{opacity:.9}:root[data-night="1"] .veil .seed .halo{opacity:.3;transform:none}:root[data-night="1"] .veil .stage.lit img.night~.lamp{opacity:.3;animation:none}.veil .seeds{animation:4.8s ease-in-out infinite veil-rest}}.cam-menu{background:var(--dock-bg);border:1px solid var(--dock-edge);box-shadow:var(--dock-shadow);-webkit-backdrop-filter:blur(14px);opacity:0;pointer-events:none;border-width:0;border-radius:999px;align-items:center;gap:4px;max-height:0;margin-bottom:-10px;padding:0 5px;transition:opacity .25s,transform .3s cubic-bezier(.3,1.4,.5,1),max-height .3s,padding .3s,margin .3s;display:flex;overflow:hidden;transform:translateY(8px)scale(.97)}.cam-menu.open{opacity:1;pointer-events:auto;border-width:1px;max-height:240px;margin-bottom:0;padding-top:5px;padding-bottom:5px;transform:none}.cam-menu button{all:unset;cursor:pointer;color:var(--ink);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:7px 12px;font-size:12.5px;transition:background .2s;display:flex}.cam-menu button:hover{background:var(--btn-hover)}.cam-menu button.on{background:var(--btn-on)}.cam-menu .key{width:16px;height:16px;color:var(--ink-soft);opacity:.8;border:1px solid;border-radius:50%;place-items:center;font-size:10px;display:inline-grid}.toy-menu .ico{width:18px;height:18px;display:block}.toy-menu .ico svg{width:100%;height:100%;display:block}.cam-menu .sep{background:var(--ink-soft);opacity:.3;width:1px;height:18px;margin:0 2px}.cam-menu button:disabled{opacity:.38;cursor:default;background:0 0}.build-confirm .ask{color:var(--ink);white-space:nowrap;padding:0 6px 0 10px;font-size:12.5px}@media (max-width:520px){.cam-menu{border-radius:18px;flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 32px)}.cam-menu .key{display:none}}.press-ring{pointer-events:none;z-index:15;opacity:0;width:44px;height:44px;transition:opacity .18s;position:fixed;top:0;left:0}.press-ring.on{opacity:1}.press-ring svg{width:100%;height:100%;display:block;overflow:visible}.press-ring .track{fill:none;stroke:#fffaf28c;stroke-width:4px}.press-ring .arc{fill:none;stroke:#e3b7a6;stroke-width:4px;stroke-linecap:round;filter:drop-shadow(0 1px 2px #78503240)}.build-overlay{z-index:9;pointer-events:none;opacity:0;visibility:hidden;font-family:var(--font);transition:opacity .25s,visibility 0s .25s;position:fixed;inset:0}.build-overlay.on{opacity:1;visibility:visible;transition:opacity .25s}.bo-svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.build-overlay{--mark:var(--honey-deep);--mark-fill:#d9ae784d;--mark-halo:drop-shadow(0 0 1.5px #fffaf2f2)}:root[data-night="1"] .build-overlay{--mark:#ecc893;--mark-fill:#f0cda029;--mark-halo:none}.bo-tube{fill:var(--mark-fill);stroke:var(--mark);stroke-width:3px;stroke-dasharray:9 7;stroke-linecap:round;filter:var(--mark-halo)}.bo-tube.suggest{pointer-events:visiblePainted;cursor:pointer;stroke-width:4.5px;fill:#d9ae784d;animation:1.8s ease-in-out infinite bo-breathe-soft}.bo-tube.suggest:hover{fill:#d9ae7838;stroke-dasharray:none;animation:none}.bo-tube.drag.snapped{stroke-dasharray:none;fill:#d9ae783d}.bo-tube.drag.bad{stroke:var(--pink);fill:url(#bo-stripes);stroke-dasharray:7 6}.bo-outline{fill:#d9ae781a;stroke:var(--honey);stroke-width:2px;stroke-dasharray:8 7;stroke-linejoin:round}.bo-brackets{fill:none;stroke:var(--honey-deep);stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;filter:var(--mark-halo)}.bo-brackets.hover{opacity:.5}:root[data-night="1"] .bo-brackets{stroke:var(--honey)}.bo-glow{mix-blend-mode:screen}.bo-flash{fill:#d6a79c52;stroke:var(--pink);stroke-width:3px;opacity:0;animation:.5s ease-in-out 3 bo-flash}.bo-svg .bo-tube.bad{stroke:var(--pink);fill:url(#bo-stripes);stroke-dasharray:7 6}.bo-top{fill:#fffaf233;stroke:var(--mark);stroke-width:2.5px;stroke-dasharray:8 6;stroke-linejoin:round;filter:var(--mark-halo);animation:1.4s ease-in-out infinite bo-breathe-soft}:root[data-night="1"] .bo-top{fill:#f0cda033}.bo-near{fill:#d6a79c1a;stroke:var(--pink);stroke-width:2px;stroke-dasharray:5 6;opacity:.8}@keyframes bo-breathe{0%,to{opacity:1}50%{opacity:.42}}@keyframes bo-breathe-soft{0%,to{opacity:1}50%{opacity:.62}}@keyframes bo-flash{0%,to{opacity:0}50%{opacity:1}}.bo-slot,.bo-ring{all:unset;cursor:pointer;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;place-items:center;width:44px;height:44px;margin:-22px 0 0 -22px;display:grid;position:absolute;top:0;left:0}.bo-slot[hidden],.bo-ring[hidden]{display:none}.bo-door{cursor:pointer;pointer-events:auto;touch-action:none;-webkit-tap-highlight-color:transparent;background:0 0;border:0;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;animation:1.8s ease-in-out infinite bo-breathe-soft;position:absolute;top:0;left:0}.bo-door[hidden]{display:none}.bo-door svg{width:100%;height:100%;display:block;overflow:visible}.bo-door path{fill:#d9ae784d;stroke:var(--mark);stroke-width:3px;vector-effect:non-scaling-stroke;stroke-dasharray:9 7;stroke-linecap:round;stroke-linejoin:round;filter:var(--mark-halo)}.bo-door:hover path{fill:#d9ae7838;stroke-dasharray:none}.bo-door:hover{animation:none}.bo-slot>*{grid-area:1/1}.bo-slot .ring{border:2px dashed var(--honey-deep);-webkit-backdrop-filter:blur(8px);width:40px;height:40px;box-shadow:var(--dock-shadow);background:#fcf8f2e0;border-radius:50%}.bo-slot .ico{width:20px;height:20px;color:var(--honey-deep);z-index:1;position:relative}.bo-slot .ico svg{stroke-width:6px;width:100%;height:100%;display:block}.bo-slot .ring,.bo-slot .ico{opacity:0;transition:opacity .25s ease var(--delay,0s), transform .35s cubic-bezier(.3,1.6,.5,1) var(--delay,0s);transform:scale(.5)}.bo-slot.in .ring,.bo-slot.in .ico{opacity:1;transform:none}.bo-slot:hover .ring{background:var(--btn-on);border-style:solid}.bo-slot.breathe.in .ring{animation:1.6s ease-in-out infinite bo-slot-breathe}.bo-slot.faint.in .ring,.bo-slot.faint.in .ico{opacity:.42}.bo-slot.faint:hover .ring{background:0 0;border-style:dashed}@keyframes bo-slot-breathe{0%,to{box-shadow:var(--dock-shadow);transform:scale(1)}50%{box-shadow:0 0 0 7px #d9ae7838, var(--dock-shadow);transform:scale(1.18)}}:root[data-night="1"] .bo-slot .ring{border-color:var(--honey);background:var(--dock-bg)}:root[data-night="1"] .bo-slot .ico{color:var(--honey)}.bo-ring>span{box-sizing:border-box;border:2.5px dashed var(--mark);background:#fffaf2b3;border-radius:50%;width:18px;height:18px;transition:transform .15s,background .15s}:root[data-night="1"] .bo-ring[data-state=idle]>span{background:#fffaf259}.bo-ring:hover>span{transform:scale(1.2)}.bo-ring[data-state=armed]>span,.bo-ring[data-state=ok]>span{background:var(--honey);border-style:solid}.bo-ring[data-state=ok]>span{transform:scale(1.3);box-shadow:0 0 0 6px #d9ae784d}.bo-ring[data-state=bad]>span{border-color:var(--pink);transform:scale(1.2)}.bo-ring.proxy>span{width:16px;height:16px}.bo-lock{background:var(--dock-bg);border:1px solid var(--dock-edge);box-shadow:var(--dock-shadow);color:var(--ink);opacity:0;border-radius:999px;gap:2px;margin:-14px 0 0 -26px;padding:5px 8px;transition:opacity .2s;display:flex;position:absolute;top:0;left:0}.bo-lock.on{opacity:1}.bo-lock .ico{width:17px;height:17px;display:block}.bo-lock .ico svg{width:100%;height:100%;display:block}.bo-lock.shake .ico{animation:.42s shake2}.bo-selbar{opacity:0;pointer-events:none;transition:opacity .18s;position:absolute;top:0;left:0}.bo-selbar.on{opacity:1}.bo-selbar.on button{pointer-events:auto}.bo-selbar .row{gap:6px;display:flex;transform:translate(-50%,-100%)}.bo-selbar button[hidden]{display:none}.bo-selbar button{all:unset;cursor:pointer;height:44px;color:var(--ink);background:var(--dock-bg);border:1px solid var(--dock-edge);box-shadow:var(--dock-shadow);-webkit-backdrop-filter:blur(14px);white-space:nowrap;border-radius:999px;padding:0 18px;font-size:13px;line-height:44px;display:block}.bo-selbar button:hover{background:var(--btn-on)}@media (max-width:480px){.bo-selbar .row{gap:4px}.bo-selbar button{padding:0 11px}}@media (pointer:coarse){.bo-selbar button{height:48px;line-height:48px}.cam-menu button,.buildbar .chip{box-sizing:border-box;min-height:44px}.buildbar .chip{align-items:center;display:inline-flex}}@media (prefers-reduced-motion:reduce){.bo-tube.suggest,.bo-door,.bo-slot.breathe.in .ring,.bo-flash,.bo-top{animation:none}.bo-flash{opacity:1}}
