:root{--bg:#f8f9fb;--panel:#ffffffdb;--panel-solid:#fff;--panel-2:#1018280d;--line:#e2e5ea;--text:#1d1d1d;--muted:#6b7280;--accent:#4465e9;--accent-ink:#fff;--accent-soft:#e6ebff;--danger:#e03131;--ok:#099268;--warn:#e16919;--accent-grad:linear-gradient(135deg, #5b7cff, #4465e9);--accent-glow:0 4px 14px #4465e947;--shadow:0 1px 2px #1018280f, 0 6px 20px #1018281a;--rim:inset 0 1px 0 #ffffffb3;--hand-glow:#4465e94d;--spot:#4465e90a;--dot:#c9ced6;--violet:#9b4de0;--grad-text:linear-gradient(100deg, #4465e9, #9b4de0 55%, #e8590c);--btn:56px;--gap:6px;--radius:14px;--icon:24px;--label:0;--dur-1:.12s;--dur-2:.22s;--dur-3:.6s;--ease-out:cubic-bezier(.2,.7,.2,1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;font-family:Inter,Noto Sans Devanagari,Noto Sans Kannada,Noto Sans JP,Noto Sans TC,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root:lang(ja),:root:lang(zh-Hant){line-break:strict;word-break:normal}:root[data-theme=dark]{--bg:#07080d;--panel:#141723b8;--panel-solid:#141723;--panel-2:#a0afe61a;--line:#a0afe624;--text:#eef1ff;--muted:#9aa3c0;--accent:#6e8bff;--accent-ink:#fff;--accent-soft:#6e8bff38;--violet:#c77cff;--accent-grad:linear-gradient(135deg, #6e8bff, #4465e9);--accent-glow:0 6px 24px #4465e973;--shadow:0 30px 80px -30px #000000b3, 0 8px 24px #00000059;--rim:inset 0 1px 0 #ffffff0d;--hand-glow:#6e8bff8c;--spot:#6e8bff14;--grad-text:linear-gradient(100deg, #6e8bff, #c77cff 60%, #ffc034);--dot:#2c3245;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-fx=off]{--dur-1:0s;--dur-2:0s;--dur-3:0s}:root[data-fx=off] *,:root[data-fx=off] :before,:root[data-fx=off] :after{transition-duration:0s!important;animation-duration:0s!important;animation-iteration-count:1!important}:root[data-fx=off] .fx-deco,:root[data-fx=subtle] .fx-full{display:none!important}@media (prefers-reduced-motion:reduce){:root:not([data-fx=full]) .fx-full{display:none!important}}body.hands{--btn:80px;--icon:30px;--label:1;--gap:8px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--text);margin:0;overflow:hidden}button{font:inherit;color:inherit}#app{position:fixed;inset:0}.grecaptcha-badge{visibility:hidden}@view-transition{navigation:auto}::view-transition-old(root){animation:vt-out .2s var(--ease-out) both}::view-transition-new(root){animation:vt-in .34s var(--ease-out) both}@keyframes vt-out{to{opacity:0;transform:scale(.985)}}@keyframes vt-in{0%{opacity:0;transform:scale(1.015)}}:root[data-fx=off]::view-transition-old(root){animation:none}:root[data-fx=off]::view-transition-new(root){animation:none}@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}#canvas{touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.panel{background:var(--panel);border:1px solid var(--line);border-radius:calc(var(--radius) + 4px);box-shadow:var(--shadow), var(--rim);-webkit-backdrop-filter:blur(18px)saturate(1.2);backdrop-filter:blur(18px)saturate(1.2)}:root[data-fx=off] .panel{background:var(--panel-solid);-webkit-backdrop-filter:none;backdrop-filter:none}.grain,.vignette{pointer-events:none;z-index:1;position:absolute;inset:0}.grain{opacity:.035;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.vignette{background:radial-gradient(120% 90% at 50% 45%,#0000 60%,#00000073)}:root:not([data-theme=dark]) .grain,:root:not([data-theme=dark]) .vignette{display:none}.btn{min-width:var(--btn);height:var(--btn);padding:0 calc(var(--btn) * .18);border-radius:var(--radius);cursor:pointer;transition:background var(--dur-1), transform var(--dur-1), box-shadow var(--dur-1);-webkit-user-select:none;user-select:none;background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;display:inline-flex;position:relative}.btn svg{width:var(--icon);height:var(--icon);flex:none}.btn .lbl{opacity:.85;white-space:nowrap;font-size:11px;font-weight:600;line-height:1;display:none}body.hands .btn .lbl{display:block}.btn:hover,.btn.hand-hover{background:var(--panel-2)}.btn.hand-hover{box-shadow:0 0 0 2px var(--accent) inset, 0 0 22px var(--hand-glow);transform:scale(1.06)}.btn.hand-press{background:var(--accent-soft);box-shadow:0 0 0 2px var(--accent) inset, 0 0 30px var(--hand-glow);transform:scale(.94)}.btn.hand-lock:after{content:"";border-radius:inherit;border:2px solid var(--accent);pointer-events:none;animation:lock .28s var(--ease-out) forwards;position:absolute;inset:0}@keyframes lock{0%{opacity:1;transform:scale(.9)}to{opacity:0;transform:scale(1.18)}}:root[data-fx=off] .btn.hand-lock:after{display:none}.btn.on{background:var(--accent-grad);color:var(--accent-ink);box-shadow:var(--accent-glow)}.btn.on:hover,.btn.on.hand-hover{background:var(--accent-grad)}.btn:disabled{opacity:.35;cursor:default}.btn:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.btn.text{flex-direction:row;gap:8px;padding:0 18px;font-size:15px;font-weight:600}.btn.text .lbl{opacity:1;font-size:15px;display:inline}.btn.primary{background:var(--accent-grad);color:var(--accent-ink);box-shadow:var(--accent-glow)}.btn.primary:hover,.btn.primary.hand-hover{background:var(--accent-grad);filter:brightness(1.08)}.sep{background:var(--line);align-self:stretch;width:1px;margin:8px 2px}.vsep{background:var(--line);height:1px;margin:2px 8px}#toolbar,#style,#zoomrail,#topbar,#cam,#selbar{transition:opacity var(--dur-2) var(--ease-out)}body.drawing :is(#toolbar,#style,#zoomrail,#topbar,#cam,#selbar){opacity:.28;transition-delay:.15s}:root[data-fx=off] body.drawing :is(#toolbar,#style,#zoomrail,#topbar,#cam,#selbar){opacity:1}#toolbar{gap:var(--gap);padding:var(--gap);z-index:5;scrollbar-width:none;max-width:calc(100vw - 24px);display:flex;position:absolute;bottom:14px;left:50%;overflow-x:auto;transform:translate(-50%)}:root[data-fx=full] #app.enter #topbar>*{animation:enter-down .45s var(--ease-out) both}:root[data-fx=full] #app.enter #topbar>:last-child{animation-delay:50ms}:root[data-fx=full] #app.enter #toolbar{animation:enter-up .5s var(--ease-out) 80ms both}:root[data-fx=full] #app.enter #zoomrail{animation:enter-right .5s var(--ease-out) .12s both}:root[data-fx=full] #app.enter #style{animation:enter-left .5s var(--ease-out) .12s both}@keyframes enter-down{0%{opacity:0;translate:0 -14px}}@keyframes enter-up{0%{opacity:0;translate:0 18px}}@keyframes enter-right{0%{opacity:0;translate:-14px}}@keyframes enter-left{0%{opacity:0;translate:14px}}#toolbar .pill{z-index:0;border-radius:var(--radius);background:var(--accent-grad);box-shadow:var(--accent-glow);pointer-events:none;transition:transform var(--dur-2) var(--ease-out), width var(--dur-2) var(--ease-out), height var(--dur-2) var(--ease-out), opacity var(--dur-1);position:absolute;top:0;left:0}#toolbar>.btn{z-index:1}#toolbar .btn.on,#toolbar .btn.on:hover{background:0 0}#toolbar .btn.on:not(.hand-hover):not(.hand-press){box-shadow:none}#flyout{bottom:calc(var(--tb-h,calc(var(--btn) + 14px)) + 22px);gap:var(--gap);padding:var(--gap);z-index:6;display:none;position:absolute}#flyout.open{grid-template-columns:repeat(5,auto);display:grid}#topbar{pointer-events:none;z-index:5;justify-content:space-between;align-items:flex-start;gap:12px;display:flex;position:absolute;top:12px;left:12px;right:12px}#topbar>*{pointer-events:auto}.cluster{align-items:center;gap:var(--gap);padding:var(--gap);display:flex}#title{min-width:120px;max-width:34vw;color:var(--text);text-overflow:ellipsis;background:0 0;border:0;border-radius:10px;outline:none;padding:8px 10px;font-size:16px;font-weight:600}#title:hover,#title:focus{background:var(--panel-2)}.status{background:var(--muted);border-radius:50%;flex:none;width:10px;height:10px;margin:0 8px 0 2px}.status.live{background:var(--ok)}.status.offline{background:var(--warn)}.status.error{background:var(--danger)}#peers{align-items:center;padding-left:4px;display:flex}.avatar{color:#fff;border:2px solid var(--panel-solid);cursor:pointer;border-radius:50%;place-items:center;width:36px;height:36px;margin-left:-6px;font-size:14px;font-weight:700;display:grid;position:relative}body.hands .avatar{width:52px;height:52px;font-size:18px}.avatar.following{box-shadow:0 0 0 3px var(--accent)}.avatar .hand-badge{font-size:12px;position:absolute;bottom:-4px;right:-4px}#style{right:12px;top:calc(var(--btn) + 40px);z-index:4;width:calc(var(--btn) * 4 + 3 * var(--gap) + 22px);max-height:calc(100vh - var(--btn) * 2 - 80px);scrollbar-width:thin;flex-direction:column;gap:10px;padding:10px;display:flex;position:absolute;overflow-y:auto}#style.collapsed>:not(:first-child){display:none}.style-head{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;justify-content:space-between;align-items:center;padding-left:4px;font-size:12px;font-weight:700;display:flex}.style-head .btn{min-width:36px;height:36px}.row{gap:var(--gap);grid-template-columns:repeat(4,1fr);display:grid}.row .btn{width:100%;min-width:0}.row.pos{grid-template-columns:repeat(3,1fr)}.row.pos .btn svg{width:calc(var(--icon) * 1.1);height:calc(var(--icon) * 1.1)}.swatch{aspect-ratio:1;border:3px solid #0000;border-radius:50%;width:100%;min-width:0;height:auto;padding:0}.swatch span{border-radius:50%;width:64%;height:64%;display:block}.swatch.on{border-color:var(--accent);background:0 0}.swatch.custom span{background:conic-gradient(red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.swatch.custom input{opacity:0;cursor:pointer;position:absolute;inset:0}.sizebar{background:currentColor;border-radius:99px;width:60%;display:block}.fillchip{aspect-ratio:1;border:2.5px solid;border-radius:6px;width:46%}.dashchip{border-top:3px;width:64%;height:0}#zoomrail{gap:var(--gap);padding:var(--gap);z-index:5;flex-direction:column;align-items:center;display:flex;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.btn.zoomlabel .lbl{opacity:1;font-size:13px;display:block}.more{flex-direction:column;gap:10px;display:none}.more.open{display:flex}#selbar{gap:var(--gap);padding:var(--gap);z-index:6;display:none;position:absolute;transform:translate(-50%)}#selbar.show{display:flex}#posfly{z-index:7;padding:var(--gap);gap:var(--gap);display:none;position:absolute}#posfly.open{grid-template-columns:repeat(3,auto);display:grid}body.hands #style .pos-head,body.hands #style .row.pos,body.hands #style .row.tsize{display:none!important}.swatch.auto span{border:2px dashed var(--muted);box-sizing:border-box;background:0 0!important}#fmtbar{z-index:8;gap:var(--gap);padding:var(--gap);flex-wrap:wrap;align-items:center;max-width:calc(100vw - 16px);display:none;position:fixed}#fmtbar.open{animation:flyin var(--dur-1) var(--ease-out);display:flex}#textedit b,#textedit strong{font-weight:700}#textedit [data-list]:before{font-style:normal;font-weight:500;text-decoration:none;display:inline-block}#textedit [data-list=bullet]:before{content:"•";width:1.1em}#textedit [data-list=number]:before{content:attr(data-n) ".";width:1.5em}#textedit{z-index:7;resize:none;white-space:pre-wrap;background:0 0;border:0;outline:none;margin:0;padding:0;line-height:1.3;position:absolute;overflow:hidden}#hand-layer,#peer-layer{pointer-events:none;z-index:9;position:absolute;inset:0;overflow:hidden}.hcursor{width:0;height:0;transition:opacity .15s;position:absolute;top:0;left:0}.hcursor .ring{border:3px solid var(--accent);background:color-mix(in srgb, var(--accent) 10%, transparent);width:52px;height:52px;box-shadow:0 0 14px var(--hand-glow), inset 0 0 10px var(--hand-glow);border-radius:50%;transition:transform 80ms,background 80ms,border-color 80ms;position:absolute;top:-26px;left:-26px}.hcursor .prog{border-radius:50%;width:66px;height:66px;position:absolute;top:-33px;left:-33px}.hcursor .dot{background:var(--accent);width:10px;height:10px;box-shadow:0 0 10px var(--accent);border-radius:50%;position:absolute;top:-5px;left:-5px}.hcursor .tip{background:var(--accent);width:8px;height:8px;box-shadow:0 0 8px var(--accent);opacity:0;transition:opacity var(--dur-1);border-radius:50%;position:absolute;top:-4px;left:-4px}.hcursor .gap{transform-origin:0;background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 30%, transparent));opacity:0;height:2px;transition:opacity var(--dur-1);border-radius:1px;position:absolute;top:-1px;left:0}#spot{pointer-events:none;z-index:1;--sx:-999px;--sy:-999px;background:radial-gradient(220px circle at var(--sx) var(--sy), var(--spot), transparent 70%);position:absolute;inset:0}:root[data-theme=dark] #spot{mix-blend-mode:screen}.hcursor .tool{background:var(--panel-solid);border:1px solid var(--line);width:30px;height:30px;box-shadow:var(--shadow);color:var(--text);border-radius:9px;place-items:center;display:grid;position:absolute;top:18px;left:22px}.hcursor .tool svg{width:18px;height:18px}.hcursor.pinch .ring{background:var(--accent);transform:scale(.55)}.hcursor.unarmed{opacity:.4}.hcursor.ui .ring{border-color:var(--ok)}.hcursor.two .ring{border-color:var(--warn)}.hline{background:var(--warn);transform-origin:0;opacity:.8;border-radius:2px;height:3px;position:absolute}.hzoom{background:var(--panel-solid);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:4px 10px;font-size:14px;font-weight:700;position:absolute;transform:translate(-50%,-140%)}#cam{z-index:6;width:210px;display:none;position:absolute;bottom:14px;left:12px;overflow:hidden}#cam.show{display:block}#cam.mini .camview{display:none}.camview{aspect-ratio:4/3;background:#000;position:relative}.camview video,.camview canvas{object-fit:cover;width:100%;height:100%;position:absolute;inset:0;transform:scaleX(-1)}.camfoot{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 6px;padding:6px 6px 6px 10px;font-size:12px;display:flex}.camfoot .grow{text-overflow:ellipsis;white-space:nowrap;flex:1 0 100%;min-width:0;padding-top:2px;overflow:hidden}.camfoot .btn{min-width:40px;height:40px}body.hands .camfoot .btn{min-width:56px;height:56px}.pcursor{will-change:transform;position:absolute;top:0;left:0}.pcursor svg{filter:drop-shadow(0 1px 2px #0000004d);width:22px;height:22px}.pcursor .name{color:#fff;white-space:nowrap;box-shadow:0 0 16px color-mix(in srgb, var(--pc,#868e96) 55%, transparent);border-radius:8px;padding:3px 8px;font-size:12px;font-weight:600;position:absolute;top:18px;left:16px}.pcursor .pring{width:32px;height:32px;box-shadow:0 0 14px color-mix(in srgb, var(--pc,#868e96) 60%, transparent);transition:transform var(--dur-1) var(--ease-out);border:3px solid;border-radius:50%;position:absolute;top:-16px;left:-16px}.pcursor.pinch .pring{transform:scale(.6)}.ptrail{background:var(--pc,#868e96);width:8px;height:8px;box-shadow:0 0 10px var(--pc,#868e96);opacity:0;will-change:transform;border-radius:50%;position:absolute;top:-4px;left:-4px}#follow-frame{z-index:8;pointer-events:none;box-shadow:inset 0 0 0 3px var(--follow), inset 0 0 80px color-mix(in srgb, var(--follow) 30%, transparent);display:none;position:absolute;inset:0}.follow-tag{z-index:9;align-items:center;gap:4px;max-width:calc(100vw - 24px);padding:4px 4px 4px 14px;display:none;position:absolute;top:12px;left:50%;transform:translate(-50%)}.follow-tag .follow-dot{background:var(--follow);width:10px;height:10px;box-shadow:0 0 10px var(--follow);border-radius:50%;flex:none}#app.following #follow-frame{animation:fadein var(--dur-3) var(--ease-out);display:block}@keyframes fadein{0%{opacity:0}}#app.following .follow-tag{display:flex}@media (max-width:1100px){.follow-tag{top:calc(var(--btn) + 36px)}}.menu{top:calc(var(--btn) + 28px);z-index:20;min-width:260px;max-height:calc(100vh - var(--btn) - 40px);scrollbar-width:thin;flex-direction:column;padding:6px;display:none;position:absolute;left:12px;overflow-y:auto}.menu.open{display:flex}.menu .btn{justify-content:flex-start;width:100%}.menu .btn.text{padding:0 14px}.menu .kbd{color:var(--muted);margin-left:auto;font-size:12px;font-weight:500}.scrim{z-index:30;background:#0a0c1073;place-items:center;padding:16px;display:none;position:fixed;inset:0}.scrim.open{display:grid}.dialog{width:min(560px,100%);max-height:calc(100vh - 32px);padding:24px;overflow:auto}.dialog h2{margin:0 0 6px;font-size:22px}.dialog p{color:var(--muted);margin:0 0 16px;line-height:1.5}.dialog input[type=text]{width:100%;font:inherit;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:12px;outline:none;padding:14px 16px;font-size:18px}.dialog input[type=text]:focus{border-color:var(--accent)}.dialog .btn.text{height:auto;min-height:var(--btn)}.dialog .btn.text .lbl{white-space:normal;text-align:start;padding:6px 0;line-height:1.25}.dialog .actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.colors{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.colors button{cursor:pointer;border:3px solid #0000;border-radius:50%;width:40px;height:40px}.colors button.on{border-color:var(--text)}.help-grid{grid-template-columns:auto 1fr;align-items:center;gap:10px 16px;font-size:15px;display:grid}.help-grid .g{white-space:nowrap;font-weight:700}.help-grid .d{color:var(--muted)}.dialog h3{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:22px 0 10px;font-size:15px}kbd{border:1px solid var(--line);background:var(--panel-2);border-radius:6px;padding:3px 6px;font:600 12px/1 ui-monospace,SFMono-Regular,Menlo,monospace}#toasts{z-index:40;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;top:80px;left:50%;transform:translate(-50%)}.toast{background:var(--text);color:var(--bg);box-shadow:var(--shadow);text-align:center;max-width:min(560px,90vw);animation:pop var(--dur-2) var(--ease-out);border-radius:12px;padding:12px 18px;font-size:15px;font-weight:600}.toast.warn{background:var(--warn);color:#fff}@keyframes pop{0%{opacity:0;transform:translateY(-8px)}}.update-note{left:50%;bottom:calc(var(--tb-h,calc(var(--btn) + 14px)) + 24px);z-index:40;max-width:calc(100vw - 24px);animation:flyin var(--dur-2) var(--ease-out);align-items:center;gap:12px;padding:6px 6px 6px 16px;font-weight:600;display:flex;position:fixed;transform:translate(-50%)}.toast.out{opacity:0;transition:opacity .2s,transform .2s;transform:translateY(-6px)}#flyout.open,#posfly.open,.menu.open{animation:flyin var(--dur-2) var(--ease-out)}@keyframes flyin{0%{opacity:0;transform:translateY(6px)scale(.97)}}:root[data-fx=full] body.hands-enter #toolbar .btn .lbl{animation:flipin .5s var(--ease-out) both;animation-delay:calc(var(--i,0) * 35ms + .1s)}@keyframes flipin{0%{opacity:0;transform:perspective(200px)rotateX(-80deg)translateY(-6px)}}:root[data-fx=full] body.hands-enter #hand-layer:before{content:"";pointer-events:none;background:linear-gradient(180deg, transparent, color-mix(in srgb, var(--accent) 14%, transparent) 80%, color-mix(in srgb, var(--accent) 70%, transparent) 99%, transparent);height:160px;animation:1s cubic-bezier(.45,0,.55,1) forwards scan;position:absolute;top:0;left:0;right:0}@keyframes scan{0%{transform:translateY(-160px)}to{transform:translateY(100vh)}}:root[data-fx=full] body.hands-enter #cam{animation:1.1s ease-out camglow}@keyframes camglow{30%{box-shadow:0 0 0 2px var(--accent), 0 0 40px var(--hand-glow)}}.flyer{z-index:30;pointer-events:none;object-fit:contain;box-shadow:0 0 0 2px var(--accent), 0 0 30px var(--hand-glow);background:#fff;border-radius:10px;animation:.75s cubic-bezier(.5,0,.2,1) forwards flyoff;position:absolute}@keyframes flyoff{20%{opacity:1;transform:translateY(-14px)scale(1.04)}to{transform:translate(var(--fx), -40px) scale(.45) rotate(8deg);opacity:0}}#home{background:radial-gradient(60% 50% at 85% 10%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 70%), radial-gradient(40% 40% at 10% 90%, color-mix(in srgb, var(--violet) 10%, transparent), transparent 70%), var(--bg);justify-content:center;padding:48px 16px;display:flex;position:absolute;inset:0;overflow-y:auto}#home .grain{position:fixed}.home-inner{z-index:2;width:min(1080px,100%);position:relative}.brand{letter-spacing:-.02em;align-items:center;gap:12px;font-size:20px;font-weight:800;display:flex}.brand .logo{background:var(--accent-grad);width:40px;height:40px;box-shadow:var(--accent-glow);color:#fff;border-radius:11px;place-items:center;display:grid}.brand .logo svg{width:24px;height:24px}.hero{grid-template-columns:1.15fr 1fr;align-items:center;gap:24px;margin:40px 0 8px;display:grid}.hero-art{aspect-ratio:1/.9;width:100%;display:block}@media (max-width:860px){.hero{grid-template-columns:1fr}.hero-art{order:-1;max-height:260px}}.hero h1{letter-spacing:-.035em;margin:0 0 18px;font-size:clamp(36px,5.6vw,64px);font-weight:800;line-height:1.02}.hero h1 em{letter-spacing:-.01em;background:var(--grad-text);color:#0000;-webkit-background-clip:text;background-clip:text;padding-right:.06em;font-family:Instrument Serif,Georgia,Noto Sans Devanagari,Noto Sans Kannada,Noto Sans JP,Noto Sans TC,serif;font-style:italic;font-weight:400}.hero p{color:var(--muted);max-width:640px;margin:0;font-size:19px;line-height:1.5}.cta{flex-wrap:wrap;align-items:center;gap:12px;margin-top:34px;display:flex}.cta>.btn{border-radius:16px;flex:none;height:64px;padding:0 26px;font-size:18px}.recent-item{position:relative;overflow:hidden}.recent-item:before{content:"";pointer-events:none;opacity:0;transition:opacity var(--dur-2);background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--accent) 14%, transparent), transparent 60%);position:absolute;inset:0}.recent-item:hover:before{opacity:1}.perks{flex-wrap:wrap;align-items:center;gap:8px;margin-top:30px;display:flex}.perk{color:var(--muted);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:999px;align-items:center;gap:7px;padding:6px 12px 6px 9px;font-size:13px;font-weight:600;display:inline-flex}.perk i{color:var(--accent);place-items:center;display:grid}.perk svg{width:16px;height:16px}.recent h2{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:44px 0 12px;font-size:15px}.recent-list{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;display:grid}.recent-item{color:var(--text);flex-direction:column;padding:0;text-decoration:none;transition:transform .12s;display:flex}.recent-thumb{aspect-ratio:16/9;border-bottom:1px solid var(--line);border-radius:calc(var(--radius) + 3px) calc(var(--radius) + 3px) 0 0;background:radial-gradient(var(--dot) 1px, transparent 1.3px) 0 0 / 14px 14px, var(--bg);place-items:center;display:grid;overflow:hidden}.recent-thumb img{object-fit:contain;width:100%;height:100%;display:block}.recent-thumb span{color:var(--muted);font-size:13px}.recent-meta{flex-direction:column;gap:3px;padding:12px 14px 14px;display:flex}.recent-x{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;transition:opacity var(--dur-1);border-radius:10px;top:8px;right:8px;min-width:34px!important;height:34px!important;padding:0!important;position:absolute!important}.recent-item:hover .recent-x,.recent-x:focus-visible{opacity:1}@media (hover:none){.recent-x{opacity:1}}.recent-item:hover{transform:translateY(-2px)}.recent-item small{color:var(--muted)}.recent-empty{border-style:dashed;border-color:var(--line);align-items:center;gap:16px;padding:18px 18px 18px 20px;display:flex}.recent-empty .empty-icon{width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 25%, transparent);border-radius:14px;flex:none;place-items:center;display:grid}.recent-empty .empty-icon svg{width:24px;height:24px}.recent-empty .empty-copy{flex:1;min-width:0}.recent-empty b{margin-bottom:4px;display:block}.recent-empty span{color:var(--muted);font-size:14px;line-height:1.5}.help-foot{font-size:13px;margin:22px 0 0!important}.help-foot a{color:var(--text);font-weight:600;text-decoration:none}.site-foot{border-top:1px solid var(--line);color:var(--muted);margin-top:56px;padding:22px 0 8px;font-size:13px;line-height:1.55}.site-foot a{color:var(--text);font-weight:600;text-decoration:none}.site-foot a:hover{color:var(--accent)}.site-foot p a{text-underline-offset:2px;text-decoration:underline;-webkit-text-decoration-color:var(--line);text-decoration-color:var(--line);font-weight:500}.foot-row{flex-wrap:wrap;justify-content:space-between;gap:8px 20px;margin-bottom:10px;font-size:14px;display:flex}.foot-row nav{flex-wrap:wrap;gap:18px;display:flex}.joinrow{border:1px solid var(--line);background:var(--panel);max-width:420px;height:64px;transition:border-color var(--dur-1);border-radius:16px;flex:260px;align-items:center;padding:6px;display:flex}.joinrow:focus-within{border-color:var(--accent)}.joinrow input{min-width:0;height:100%;font:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:1;padding:0 12px;font-size:16px}.joinrow .btn{background:var(--panel-2);border-radius:11px;height:50px;padding:0 18px;font-weight:700}@media (max-width:560px){.cta>.btn{flex:100%}.joinrow{flex-basis:100%;max-width:none}}@media (max-width:720px){body:not(.hands){--btn:48px}#topbar{flex-wrap:wrap}#topbar>.cluster:last-child{margin-left:auto}#topbar .btn.text{min-width:var(--btn);padding:0}#topbar .btn.text .lbl{display:none}#toolbar{flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100vw - 24px)}body.hands #toolbar{max-width:calc(100vw - 24px);left:50%}#selbar{flex-wrap:wrap;justify-content:center;max-width:calc(100vw - 16px)}#style{top:auto;bottom:calc(var(--tb-h,var(--btn)) + 26px);max-height:40vh}#zoomrail{top:auto;bottom:calc(var(--tb-h,var(--btn)) + 26px);transform:none}#title{min-width:0;max-width:40vw}#topbar .hide-sm{display:none}}@media (max-width:480px){#title{display:none}}body.hands .menu.open{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;width:min(100vw - 24px,640px);display:grid}@media (min-width:1100px){body.hands .menu.open{grid-template-columns:repeat(3,minmax(0,1fr));width:min(100vw - 24px,960px)}}body.hands .menu .btn.text .lbl{white-space:normal;text-align:start;line-height:1.15}body.hands .menu .btn{height:calc(var(--btn) * .78)}body.hands .menu .vsep{display:none}body.hands #toolbar{max-width:calc(100vw - 246px);left:calc(50% + 111px)}.viewchip{-webkit-user-select:none;user-select:none;background:var(--accent-soft);height:32px;color:var(--accent);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;margin:0 4px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex}.viewchip svg{width:16px;height:16px}body.hands .viewchip{height:44px;font-size:16px}body.readonly #title{cursor:default}.share .linkrow{border-top:1px solid var(--line);padding:14px 0}.share .linkhead{align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.share .linkhead svg{width:22px;height:22px;color:var(--accent);flex:none;margin-top:2px}.share .linkhead b{font-size:16px;display:block}.share .linkhead span{color:var(--muted);font-size:14px;line-height:1.45}.share .linkbox{align-items:center;gap:8px;display:flex}.share .linkbox input[type=text]{min-width:0;height:var(--btn);flex:1;padding:12px;font:500 14px/1.2 ui-monospace,SFMono-Regular,Menlo,monospace}.share .linknote{border-top:1px solid var(--line);margin:8px 0 12px;padding-top:14px}.trash .trash-list{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}body.hands .trash .trash-list{grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}.trash-item{background:var(--panel-2);border:1px solid var(--line);border-radius:14px;flex-direction:column;gap:6px;padding:8px;display:flex}.trash-thumb{aspect-ratio:16/9;background:var(--bg);border-radius:10px;place-items:center;display:grid;overflow:hidden}.trash-thumb img{object-fit:contain;width:100%;height:100%}.trash-item small{color:var(--muted);font-size:12px}.trash-item .btn{width:100%}.trash-empty,.trash-more{grid-column:1/-1;margin:0!important}#presentbar{align-items:center;gap:var(--gap);padding:var(--gap);z-index:8;display:none;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}body.presenting #presentbar{display:flex}body.presenting #toolbar,body.presenting #style,body.presenting #zoomrail,body.presenting #topbar,body.presenting #selbar,body.presenting #flyout{display:none!important}#presentbar .slide-label{text-align:center;white-space:nowrap;text-overflow:ellipsis;min-width:160px;max-width:40vw;padding:0 12px;font-weight:700;overflow:hidden}body.hands #presentbar .slide-label{font-size:18px}.present-note{z-index:7;align-items:center;gap:12px;padding:6px 6px 6px 16px;font-weight:600;display:none;position:absolute;top:84px;left:50%;transform:translate(-50%)}.present-note.show{animation:flyin var(--dur-2) var(--ease-out);display:flex}.present-note .follow-dot{border-radius:50%;width:10px;height:10px}.timerchip{font-variant-numeric:tabular-nums;color:var(--accent);display:none!important}.timerchip.show{display:inline-flex!important}.timerchip .lbl{font-weight:800;display:inline!important}.timerchip.done{color:#fff;background:var(--warn);border-radius:12px}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:10px;display:grid}.tpl-grid .btn.text{height:auto;min-height:var(--btn);background:var(--panel-2);text-align:left;border-radius:14px;flex-direction:column;justify-content:center;align-items:flex-start;gap:2px;padding:12px 14px}.tpl-grid .btn.text svg{display:none}.tpl-grid .btn small{color:var(--muted);font-size:12px;font-weight:500}.tpl-grid.presets .btn.text{align-items:center;font-size:18px}.vote-row{border-top:1px solid var(--line);grid-template-columns:28px 1fr auto;align-items:center;gap:10px;padding:10px 0;display:grid}.vote-row b{color:var(--muted)}.vote-row i{color:var(--accent);white-space:nowrap;font-style:normal;font-weight:700}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}#canvas:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.menu-head{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 14px 4px;font-size:11px;font-weight:700}.menu-head:first-child{padding-top:4px}body.hands .menu .menu-head{grid-column:1/-1;padding:10px 8px 2px;font-size:13px}.settings h3:first-of-type{margin-top:14px}.settings .set-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:6px;display:grid}.settings .set-grid .btn.text{background:var(--panel-2);border-radius:12px;justify-content:flex-start;width:100%;padding:0 14px}.settings .set-grid .kbd{color:var(--muted);margin-left:auto;font-size:12px;font-weight:500}.lang-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;display:grid}.lang-grid .btn.text{background:var(--panel-2);border-radius:12px;justify-content:flex-start;width:100%}.lang-grid .btn.text.on{background:var(--accent-grad)}.langs .lang-note{font-size:13px;margin:14px 0 0!important}.site-foot .lang-btn{height:auto;min-height:0;color:var(--text);border-radius:8px;gap:6px;padding:2px 6px 2px 4px;font-size:14px;font-weight:600}.site-foot .lang-btn .lbl{font-size:14px}.site-foot .lang-btn svg{width:16px;height:16px}.site-foot .lang-btn:hover{color:var(--accent)}.foot-row nav{align-items:center}.dialog.gallery{width:min(1120px,100%)}.gallery .gal-detail,.gallery.detail .gal-list{display:none}.gallery.detail .gal-detail{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.gallery .gal-list,.gallery .gal-detail{animation:galfade var(--dur-2) var(--ease-out)}@keyframes galfade{0%{opacity:0}}.gal-chips{flex-wrap:wrap;gap:8px;margin:4px 0 16px;display:flex}.gal-chips .btn.text{background:var(--panel-2);border-radius:999px;height:auto;min-height:44px;padding:0 16px}body.hands .gal-chips .btn.text{min-height:var(--btn)}.gal-chips .btn.text.on{background:var(--accent-grad);color:var(--accent-ink);box-shadow:var(--accent-glow)}.gal-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.gal-grid .btn.gal-card{height:auto;min-height:var(--btn);background:var(--panel-2);border:1px solid var(--line);text-align:start;border-radius:16px;flex-direction:column;justify-content:flex-start;align-items:stretch;gap:4px;padding:8px 8px 12px}.gal-card .gal-thumb{aspect-ratio:320/190;background:radial-gradient(var(--dot) 1px, transparent 1.3px) 0 0 / 12px 12px, var(--bg);border-radius:10px;margin-bottom:6px;display:block;overflow:hidden}.gal-card .gal-thumb img{object-fit:contain;width:100%;height:100%;transition:transform var(--dur-2) var(--ease-out), filter var(--dur-2);display:block}.gal-card:hover .gal-thumb img,.gal-card.hand-hover .gal-thumb img{filter:drop-shadow(0 6px 10px #0000002e);transform:translateY(-3px)scale(1.03)}.gal-card .lbl{padding:0 4px;font-weight:700;opacity:1!important;white-space:normal!important;font-size:15px!important;display:block!important}.gal-card small{color:var(--muted);padding:0 4px;font-size:12px;font-weight:500;line-height:1.35;display:block}.gal-card small.gal-count{color:var(--accent);font-weight:600}.gal-stage{border:1px solid var(--line);aspect-ratio:720/420;background:radial-gradient(var(--dot) 1px, transparent 1.3px) 0 0 / 14px 14px, var(--bg);border-radius:14px;overflow:hidden}.gal-big{object-fit:contain;width:100%;height:100%;display:block}.gal-side h2{margin-top:0}.gal-side .gal-about{color:var(--text);font-weight:600}.gal-side h3{margin-top:12px!important}.gallery .gal-detail .actions{grid-column:1/-1;margin-top:4px}.gal-side small.gal-count{color:var(--accent);font-weight:600}@media (max-width:720px){.gallery.detail .gal-detail{grid-template-columns:1fr}.gal-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}#tour{z-index:50;pointer-events:none;position:fixed;inset:0}#tour .tour-dim{width:100%;height:100%;position:absolute;inset:0}#tour .tour-shade{fill:#080a128c}:root[data-theme=dark] #tour .tour-shade{fill:#0000009e}#tour .tour-hole,#tour .tour-ring{transition:x .45s var(--ease-out), y .45s var(--ease-out), width .45s var(--ease-out), height .45s var(--ease-out), left .45s var(--ease-out), top .45s var(--ease-out), opacity var(--dur-2)}#tour.fade .tour-hole,#tour.fade .tour-ring,#tour.still .tour-hole,#tour.still .tour-ring{transition:opacity var(--dur-2)}#tour .tour-ring{box-shadow:0 0 0 2px var(--accent), 0 0 24px var(--hand-glow);pointer-events:none;border-radius:14px;position:absolute}:root[data-fx=full] #tour .tour-ring:after{content:"";border-radius:inherit;border:2px solid var(--accent);animation:1.8s ease-out infinite tour-pulse;position:absolute;inset:-2px}@keyframes tour-pulse{0%{opacity:.9;transform:scale(1)}to{opacity:0;transform:scale(1.12)}}#tour .tour-card{pointer-events:auto;z-index:1;width:min(400px,100vw - 24px);transition:left .45s var(--ease-out), top .45s var(--ease-out);padding:16px 18px 14px;position:absolute}#tour.fade .tour-card,#tour.still .tour-card{transition:none}body.hands #tour .tour-card{width:min(520px,100vw - 24px)}#tour.glide .tour-card.enter>:not(.tour-head){animation:tour-in .35s var(--ease-out) both}#tour.fade .tour-card.enter{animation:fadein var(--dur-2) var(--ease-out)}@keyframes tour-in{0%{opacity:0;transform:translateY(6px)}}.tour-head{align-items:center;gap:10px;display:flex}.tour-chapter{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-size:12px;font-weight:700}.tour-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;font-size:12px}.tour-head .btn.tour-x{min-width:40px;height:40px}body.hands .tour-head .btn.tour-x{min-width:var(--btn);height:var(--btn)}.tour-progress{background:var(--panel-2);border-radius:3px;height:3px;margin:6px 0 12px;overflow:hidden}.tour-progress i{background:var(--accent-grad);height:100%;transition:width var(--dur-2) var(--ease-out);display:block}.tour-card h3{letter-spacing:-.01em;margin:0 0 6px;font-size:19px}.tour-card .tour-body{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.tour-card .tour-try{background:var(--accent-soft);border-radius:10px;margin:10px 0 0;padding:8px 10px;font-size:14px}.tour-card.did .tour-try{background:color-mix(in srgb, var(--ok) 18%, transparent)}.tour-demo-box{background:var(--panel-2);border-radius:12px;place-items:center;margin:10px 0 0;display:grid}.tour-demo-box[hidden],.tour-try[hidden]{display:none}.tour-actions{flex-wrap:wrap;justify-content:flex-end;gap:6px;margin-top:14px;display:flex}.tour-actions .btn.text{height:auto;min-height:44px;padding:0 14px}body.hands .tour-actions .btn.text{min-height:var(--btn)}.tour-actions .btn[hidden]{display:none}.tour-actions .tour-skip{color:var(--muted);margin-right:auto}.tour-demo{width:100%;height:130px;display:block}.tour-demo .d-ring{fill:color-mix(in srgb, var(--accent) 12%, transparent);stroke:var(--accent);stroke-width:2.5px}.tour-demo .d-dot,.tour-demo .d-thumb{fill:var(--accent)}.tour-demo .d-ink{fill:none;stroke:var(--text);stroke-width:3px;stroke-linecap:round;stroke-dasharray:200;stroke-dashoffset:200px;animation:d-ink 2.4s var(--ease-out) infinite}.tour-demo .d-box{fill:color-mix(in srgb, var(--accent) 20%, transparent);stroke:var(--accent);stroke-width:1.5px}.tour-demo .d-lasso{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:5 4;opacity:0;animation:2.6s infinite d-lasso}.tour-demo .d-arc{fill:none;stroke:var(--accent);stroke-width:3px;stroke-dasharray:107;stroke-dashoffset:107px;transform-origin:30px 18px;animation:2.6s infinite d-arc;transform:rotate(-90deg)}.tour-demo .d-fit{fill:none;stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:4 4;transform-origin:80px 50px;animation:2.4s infinite d-fit}.tour-demo .d-fist svg,.tour-demo .d-fist{color:var(--accent)}.demo-pinch .d-pinch{transform-origin:80px 50px;animation:1.6s infinite d-pinch}.demo-pinch .d-thumb{animation:1.6s infinite d-thumb}.demo-drag .d-drag{animation:d-drag 2.4s var(--ease-out) infinite}.demo-hold .d-hold{animation:2.6s infinite d-hold}.demo-two .d-left{animation:2.4s ease-in-out infinite d-left}.demo-two .d-right{animation:2.4s ease-in-out infinite d-right}.demo-two .d-grow{transform-origin:80px 50px;animation:2.4s ease-in-out infinite d-grow}.demo-twist .d-turn{transform-origin:80px 50px;animation:2.4s ease-in-out infinite d-turn}.demo-fist .d-fist{transform-origin:80px 50px;animation:2.4s infinite d-fistz}@keyframes d-pinch{40%,60%{transform:scale(.6)}}@keyframes d-thumb{40%,60%{transform:translate(-16px,-16px)}}@keyframes d-ink{70%,to{stroke-dashoffset:0}}@keyframes d-drag{0%{transform:translate(0)}25%{transform:translate(26px,-30px)}50%{transform:translate(56px,26px)}70%,to{transform:translate(112px,-24px)}}@keyframes d-arc{40%,to{stroke-dashoffset:0}}@keyframes d-hold{0%,40%{transform:translate(0)}80%,to{transform:translate(100px,64px)}}@keyframes d-lasso{0%,45%{opacity:0}80%,to{opacity:1}}@keyframes d-left{50%{transform:translate(-24px)}}@keyframes d-right{50%{transform:translate(24px)}}@keyframes d-grow{50%{transform:scale(1.6)}}@keyframes d-turn{50%{transform:rotate(45deg)}}@keyframes d-fit{0%,40%{opacity:.4;transform:scale(1.25)}70%,to{opacity:1;transform:scale(1)}}@keyframes d-fistz{0%,to{transform:translate(62px,32px)scale(1.4)}50%{transform:translate(62px,32px)scale(1.2)}}.tour-demo .d-fist svg{width:24px;height:24px}.practice-banner{left:50%;top:calc(var(--btn) + 36px);z-index:6;align-items:center;gap:12px;max-width:calc(100vw - 24px);padding:6px 6px 6px 16px;font-size:14px;font-weight:600;display:flex;position:absolute;transform:translate(-50%)}.practice-banner .btn.text{height:44px}body.hands .practice-banner .btn.text{height:var(--btn)}.tour-chip{right:12px;bottom:calc(var(--tb-h,calc(var(--btn) + 14px)) + 26px);z-index:6;align-items:center;gap:4px;padding:6px;display:flex;position:absolute}.tour-chip .btn:not(.text){min-width:44px;height:44px}body.hands .tour-chip .btn:not(.text){min-width:var(--btn);height:var(--btn)}.tour-offer{flex-wrap:wrap;align-items:center;gap:16px;margin-top:36px;padding:16px 16px 16px 20px;display:flex}.tour-offer .empty-icon{width:48px;height:48px;color:var(--accent);background:color-mix(in srgb, var(--accent) 14%, transparent);border-radius:14px;flex:none;place-items:center;display:grid}.tour-offer .empty-icon svg{width:24px;height:24px}.tour-offer .empty-copy{flex:260px;min-width:0}.tour-offer b{margin-bottom:4px;display:block}.tour-offer span{color:var(--muted);font-size:14px;line-height:1.5}.tour-offer-actions{gap:8px;margin-left:auto;display:flex}.tour-offer-actions .btn.text{background:var(--panel-2)}
