:root,body[data-theme=light]{--bg: #eef2f8;--bg-soft: #e6ecf5;--panel: #f4f7fc;--panel-2: #dfe7f2;--kbd-key: #f5f8fb;--kbd-mask: #e9edf1;--line: rgba(70, 100, 150, .16);--text: #24334d;--text-dim: #6b7f9e;--accent: #2e8fd5;--accent-2: #17a89b;--accent-dim: rgba(46, 143, 213, .14);--accent-faint: rgba(46, 143, 213, .06);--bg-glow: rgba(46, 143, 213, .1);--bg-end: #dbe4f0;--kb-line: rgba(70, 100, 150, .3);--frame-line: rgba(46, 143, 213, .18);--frame-shadow: rgba(46, 92, 150, .2);--radius: 14px;--ease: cubic-bezier(.22, .61, .36, 1);--bp-frame-pad-top: 16px;--bp-gap: 14px;--bp-tray-pad: 10px;--bp-tab-gap: 8px}body[data-theme=dark]{--bg: #0f172a;--bg-soft: #111c33;--panel: #16213c;--panel-2: #1c2a4a;--kbd-key: #1c2a4a;--kbd-mask: #1c2a4a;--line: rgba(148, 176, 223, .16);--text: #e6edf7;--text-dim: #8ea2c8;--accent: #4cc2ff;--accent-2: #5fe0d4;--accent-dim: rgba(76, 194, 255, .12);--accent-faint: rgba(76, 194, 255, .05);--bg-glow: rgba(76, 194, 255, .08);--bg-end: #0c1426;--kb-line: rgba(148, 176, 223, .35);--frame-line: rgba(160, 205, 255, .06);--frame-shadow: rgba(2, 8, 23, .42)}*{box-sizing:border-box;margin:0;padding:0}html,body,#app{height:100%}#app{position:relative;z-index:1}html{scrollbar-gutter:stable;overflow-y:scroll}body{font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif;color:var(--text);background:radial-gradient(1200px 600px at 70% -10%,var(--bg-glow),transparent 60%),linear-gradient(180deg,var(--bg),var(--bg-soft) 55%,var(--bg-end));-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:color .35s var(--ease),background .35s var(--ease)}.screen{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:28px 20px calc(28px + env(safe-area-inset-bottom))}.kbd-42{width:100%;height:auto;margin:0 auto}.g-key{fill:transparent;stroke:var(--text-dim);stroke-width:1.1}.g-thumb{stroke:var(--accent)}.g-body{fill:none;stroke:var(--kb-line);stroke-width:1.2}.kbd-glyph{width:100%;height:auto}.screen-loading{text-align:center}.load-brand{opacity:0;animation:fadeUp .6s var(--ease) forwards}.load-brand .g-key{stroke:var(--accent);stroke-opacity:.7}.load-title{font-size:clamp(3.2rem,10vw,4.6rem);font-weight:800;letter-spacing:.5px;opacity:0;animation:fadeUp .5s .15s var(--ease) forwards}.load-title span{color:var(--accent);font-weight:400}.load-bar{width:min(440px,80vw);height:10px;border-radius:5px;background:var(--panel-2);overflow:hidden;opacity:0;animation:fadeUp .5s .3s var(--ease) forwards}.load-bar-fill{height:100%;width:0;border-radius:4px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .12s linear}.load-step{font-size:1.3rem;color:var(--text-dim);opacity:0;animation:fadeUp .5s .45s var(--ease) forwards}.screen-scan{gap:22px}.scan-ring{width:46px;height:46px;border-radius:50%;border:3px solid var(--panel-2);border-top-color:var(--accent);animation:spin .9s linear infinite}.scan-text{font-size:.92rem;color:var(--text-dim)}.screen-ready{justify-content:center;padding-top:0}.screen-operate{justify-content:flex-start;padding-top:5vh}.ready-hero{text-align:center;margin-bottom:6px;width:100%;display:flex;flex-direction:column;align-items:center}.hero-stage{width:fit-content;display:block;padding:26px 20px;border-radius:22px;animation:rise .6s var(--ease);transform:translate(var(--tx, 0px),var(--ty, 0px));transition:transform .08s linear;will-change:transform}@keyframes kbdInUp{0%{opacity:0;transform:translateY(100vh)}to{opacity:1;transform:translateY(0)}}.kbd-frame{width:fit-content;max-width:94vw;margin-inline:auto;position:relative;display:flex;align-items:center;justify-content:center;padding:17px;border:2px solid color-mix(in srgb,var(--text-dim) 26%,transparent);border-radius:40px;background:linear-gradient(180deg,var(--panel) 0%,var(--bg-soft) 100%);box-sizing:border-box;box-shadow:inset 0 0 0 1px var(--frame-line),0 18px 48px var(--frame-shadow);transition:border-color .35s var(--ease),background .35s var(--ease),box-shadow .35s var(--ease);animation:kbdInUp .55s var(--ease) .05s both}.hero-stage .kbd-42{width:100%;height:auto;display:block;transition:transform .15s var(--ease)}.hero-stage .g-key{stroke:var(--accent);stroke-opacity:.75}.hero-stage .g-thumb{stroke:var(--accent-2);stroke-width:1.5}.kbd-real{width:auto;max-width:100%;height:auto;display:block;position:relative;z-index:1}.kbd-tray{fill:color-mix(in srgb,var(--bg-soft),#1a2438 15%);stroke:color-mix(in srgb,var(--text-dim) 26%,transparent);stroke-width:2}.kbd-keyring{fill:none;stroke:color-mix(in srgb,var(--text-dim) 26%,transparent);stroke-width:2.5}.kbd-unit{transform-box:fill-box;transform-origin:center;transition:transform .15s var(--ease)}.kbd-key{fill:var(--kbd-key);stroke:var(--line);stroke-width:1;transition:stroke .15s,fill .15s}.kbd-key-mask{fill:var(--kbd-mask)}.kbd-key-label{fill:var(--text);pointer-events:none;user-select:none}.kbd-key-upper{fill:var(--text);pointer-events:none;user-select:none;opacity:.94}.hero-stage .kbd-unit:hover .kbd-key,.load-brand .kbd-unit:hover .kbd-key{stroke:color-mix(in srgb,var(--panel),#5f6b7d 52%);fill:var(--panel);filter:drop-shadow(0 0 6px color-mix(in srgb,var(--kbd-key),#24334d 25%))}.hero-stage .kbd-unit:hover .kbd-key{stroke-width:2}.hero-stage .kbd-unit:hover{transform:scale(1.03)}.hero-stage .kbd-real g[data-key].is-selected .kbd-key{stroke:var(--accent);stroke-width:2}.hero-stage .kbd-real g[data-key].is-selected .kbd-key-label,.hero-stage .kbd-real g[data-key].is-selected .kbd-key-upper{fill:var(--accent)}.hero-stage .kbd-real g[data-key].is-selected.is-mask .kbd-key{stroke:var(--line);stroke-width:1}.hero-stage .kbd-real g[data-key].is-selected.is-mask .kbd-key-upper{fill:var(--text);opacity:.94}.hero-stage .kbd-real g[data-key].is-selected.is-mask .kbd-key-mask{stroke:var(--accent);stroke-width:2}.hero-stage .kbd-real g[data-key].is-selected.is-mask .kbd-key-label{fill:var(--accent)}.hero-note{margin-top:10px;font-size:.78rem;color:var(--text-dim);letter-spacing:2px}.kbd-connectable{cursor:pointer;user-select:none;-webkit-user-select:none}.kbd-connectable.is-busy{cursor:progress}.connect-hint{position:fixed;left:8%;top:50%;z-index:0;font-weight:700;line-height:1;letter-spacing:8px;white-space:nowrap;color:#ffffffe6;text-shadow:0 0 34px rgba(46,143,213,.36),0 6px 54px rgba(40,80,140,.26);pointer-events:none;user-select:none;opacity:0;animation:floatingKeyRise 3.4s cubic-bezier(.25,.6,.4,1) forwards}.key-pop{position:absolute;z-index:20;font-size:22px;line-height:1;pointer-events:none;user-select:none;--dx:0px;--dy:-36px;animation:keyPop .9s cubic-bezier(.22,.61,.36,1) both}@keyframes keyPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}20%{opacity:1;transform:translate(calc(-50% + var(--dx)*.3),calc(-50% + var(--dy)*.6)) scale(1.15)}50%{opacity:1;transform:translate(calc(-50% + var(--dx)*.7),calc(-50% + var(--dy))) scale(.95)}75%{opacity:1;transform:translate(calc(-50% + var(--dx)*1.1),calc(-50% + var(--dy)*1.15)) scale(1.05)}to{opacity:0;transform:translate(calc(-50% + var(--dx)*1.3),calc(-50% + var(--dy)*1.2)) scale(1)}}.grid-head{width:min(560px,100%);display:flex;align-items:baseline;justify-content:space-between;opacity:0;animation:fadeUp .5s .1s var(--ease) forwards}.grid-title{font-size:.95rem;font-weight:600}.grid-count{font-size:.78rem;color:var(--text-dim);font-variant-numeric:tabular-nums}.kbd-grid{width:min(640px,100%);display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.kbd-card{display:flex;flex-direction:column;align-items:center;gap:8px;width:148px;padding:16px 10px 14px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);color:var(--text);font:inherit;cursor:pointer;opacity:0;animation:popIn .45s var(--ease) forwards;transition:transform .18s var(--ease),border-color .18s}.kbd-card:hover :not(svg){filter:none}.kbd-card:hover{border-color:var(--accent-dim);background:var(--panel-2)}.kbd-card:disabled{cursor:pointer;opacity:.55;transform:none}.kbd-glyph-wrap{width:64px;color:var(--text-dim);transition:color .18s}.kbd-card:hover .kbd-glyph-wrap{color:var(--accent)}.kbd-name{font-size:.8rem;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kbd-link{font-size:.68rem;color:var(--text-dim);border:1px solid var(--line);padding:1px 7px;border-radius:999px}.kbd-card-add{width:auto;flex-direction:row;gap:0;padding:14px 32px;border-style:solid;border-radius:14px;background:color-mix(in srgb,var(--panel-2),#1a2438 10%);opacity:0;animation:fadeUp .4s var(--ease) .65s both;transition:border-color .18s,background .35s var(--ease)}.kbd-card-add .kbd-name{font-size:28px;letter-spacing:2px}.kbd-card-add:hover{background:var(--panel);border-color:var(--accent-dim)}.kbd-card-add:hover .kbd-name{color:var(--accent)}.kbd-card-add:active{transform:translateY(1px)}.kbd-card-add .card-busy-ring{width:15px;height:15px;flex:0 0 15px;border-radius:50%;border:2px solid var(--panel-2);border-top-color:var(--accent);animation:spin .9s linear infinite}.kbd-card-add.is-busy{cursor:pointer;border-color:var(--line);background:var(--panel);transform:none}.kbd-card-add.is-busy:hover,.kbd-card-add.is-busy:hover .kbd-name{background:var(--panel);border-color:var(--line);color:var(--text-dim)}.kbd-card-add.is-busy .card-busy-ring{margin-right:10px}.kbd-card-add.is-busy .kbd-name{color:var(--text-dim);letter-spacing:1px}.kbd-svg-glyph{width:46px;height:46px;display:block}.operate-panel{display:flex;flex-direction:column;align-items:center;gap:10px;width:min(320px,100%);padding:18px 16px;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius)}.layer-bar{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;height:46px;gap:8px 10px;padding:2px 0 0;margin-top:-43px}.layer-btn{width:30px;height:30px;min-width:0;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:.82rem;font-weight:600;border:1px solid transparent;border-radius:50%;cursor:pointer;transition:transform .13s ease-out,border-color .25s var(--ease),box-shadow .25s var(--ease);will-change:transform}.layer-btn:hover{border-color:color-mix(in srgb,var(--accent) 55%,transparent)}.layer-btn.is-active{border-color:transparent;box-shadow:0 0 12px 3px color-mix(in srgb,var(--accent) 85%,transparent),0 0 28px 10px color-mix(in srgb,var(--accent) 55%,transparent)}.operate-hint{font-size:.8rem;color:var(--text-dim);margin:4px 0 0}.kbd-card.is-busy{opacity:.55;pointer-events:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@keyframes fadeOutUp{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-40px)}}@keyframes popIn{0%{opacity:0;transform:scale(.82)}60%{opacity:1;transform:scale(1.04)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}.conn-loading{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;z-index:60;animation:connIn .38s var(--ease);background:color-mix(in srgb,var(--bg) 60%,transparent)}.conn-loading.is-done{animation:connOut .3s var(--ease) forwards}.conn-spinner{width:46px;height:46px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--accent);animation:spin .85s linear infinite}.conn-text{font-size:.9rem;color:var(--text-dim)}@keyframes connIn{0%{opacity:0;transform:scale(.86) translateY(14px)}to{opacity:1;transform:none}}@keyframes connOut{to{opacity:0;transform:scale(.92) translateY(-12px)}}@keyframes slideOutUp{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-110vh)}}@keyframes kbdInTop{0%{opacity:0;transform:translateY(-110vh)}to{opacity:1;transform:none}}@media (max-width: 767px){.screen-operate{padding-top:6vh}.kbd-card{width:136px}.hero-stage{padding:18px 22px}}@media (min-width: 1200px){.ready-hero{margin-bottom:12px}.screen-operate{justify-content:flex-start;padding-top:5vh}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.board-panel{width:fit-content;max-width:96vw;margin:8px auto 0}.board-panel .kbd-frame{padding-top:var(--bp-frame-pad-top);flex-direction:column;align-items:center;gap:var(--bp-gap)}@keyframes kbdEnterRight{0%{transform:translate(26px);opacity:0}to{transform:translate(0);opacity:1}}@keyframes kbdEnterLeft{0%{transform:translate(-26px);opacity:0}to{transform:translate(0);opacity:1}}@media (prefers-reduced-motion: reduce){.kbd-frame{animation:none!important}}.board-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--bp-tab-gap)}.kbd-frame.board-tab-hidden,.board-tab.board-tab-hidden{display:none!important}.board-tab{appearance:none;-webkit-appearance:none;position:relative;overflow:hidden;border:1px solid var(--line);background:var(--kbd-key);color:var(--text);padding:9px 14px;border-radius:999px;font-family:inherit;font-size:12px;line-height:1;white-space:nowrap;cursor:pointer;outline:none;transition:transform .1s ease}.board-tab:before{content:"";position:absolute;inset:-4px;background:var(--accent);border-radius:inherit;transform:scaleX(0);transform-origin:left;pointer-events:none;z-index:0;transition:transform .35s ease}.board-tab:hover:before,.board-tab.active:before{transform:scaleX(1)}.board-tab-label{display:inline-block;position:relative;z-index:1;background-image:linear-gradient(90deg,var(--text-on-accent, #fff) 0 50%,var(--text) 50% 100%);background-size:200% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;color:transparent;transition:background-position .35s ease}.board-tab:hover .board-tab-label,.board-tab.active .board-tab-label{background-position:0 0}.board-tab:active{transform:translateY(1px)}.home-dash{width:800px;height:400px;display:flex;flex-direction:column;gap:14px;padding:16px;box-sizing:border-box}.home-status{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--kbd-key),transparent 8%);font-size:12px;color:var(--text-dim)}.home-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-2);box-shadow:0 0 8px var(--accent-2)}.home-stats{display:flex;gap:14px}.home-stat{flex:1;display:flex;align-items:baseline;justify-content:center;gap:6px;padding:14px;border:1px solid var(--frame-line);border-radius:12px;background:color-mix(in srgb,var(--kbd-key),transparent 8%)}.home-stat-value{font-size:28px;font-weight:700;color:var(--accent)}.home-stat-unit{font-size:11px;letter-spacing:.08em;color:var(--text-dim)}.home-stat-label{margin-left:auto;font-size:12px;color:var(--text-dim)}.home-grid{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.home-card{display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--text-dim);border:1px dashed var(--line);border-radius:12px;background:color-mix(in srgb,var(--kbd-mask),transparent 20%);transition:border-color .25s var(--ease),color .25s var(--ease);cursor:pointer}.home-card:hover{border-color:var(--accent);border-style:solid;color:var(--accent)}.kbd-tray-box{width:fit-content;max-width:100%;padding:var(--bp-tray-pad);box-sizing:border-box;border:2px solid color-mix(in srgb,var(--text-dim) 26%,transparent);border-radius:12px;background:color-mix(in srgb,var(--bg-soft),#1a2438 15%)}.kbd-layout{display:flex;flex-direction:column;align-items:center;gap:var(--bp-gap)}.kbd-maincol{display:flex;flex-direction:column;gap:6px}.kbd-row{display:flex;gap:6px}.kbd-extra{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;width:fit-content}.kbd-group-title{color:var(--text);font-size:14px;font-weight:600;letter-spacing:.5px;padding-top:8px;user-select:none}.kbd-placeholder{color:var(--text-dim);font-size:13px;line-height:1;padding:22px 34px;text-align:center;user-select:none}.kbd-extra .basic-key{width:auto;min-width:45px}.basic-key{--u:1;flex:0 0 auto;width:calc(45px * var(--u));min-width:45px;height:42px;padding:0 9px;display:inline-flex;align-items:center;justify-content:center;border-radius:7px;border:1px solid var(--line);background:var(--kbd-key);color:var(--text);font-size:12.5px;line-height:1;white-space:nowrap;cursor:pointer;transition:border-color .15s,background .15s,transform .13s ease-out}.basic-key:hover{border-color:color-mix(in srgb,var(--text-dim) 55%,transparent);background:color-mix(in srgb,var(--kbd-key),var(--bg-soft) 35%);transform:translateY(-1px)}.basic-key:active{transform:translateY(0)}.basic-key.is-muted,.basic-key:disabled{opacity:.32;cursor:not-allowed;pointer-events:none}.basic-key{margin-left:calc(45px * var(--kgap, 0))}.basic-key:first-child{margin-left:0}@keyframes kbdSwap{0%{opacity:.12;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}.hero-stage .kbd-real g[data-key].kbd-swap text,.hero-stage .kbd-real g[data-key].kbd-swap image{animation:kbdSwap .3s var(--ease);transform-box:fill-box;transform-origin:center}@keyframes kbdBoom{0%{opacity:1;transform:translate(0) scale(1) rotate(0)}15%{opacity:1}to{opacity:0;transform:translate(var(--bx,7px),var(--by,-7px)) scale(1.7) rotate(var(--br,12deg))}}.hero-stage .kbd-real g[data-key].kbd-boom text,.hero-stage .kbd-real g[data-key].kbd-boom image{animation:kbdBoom .26s ease-out forwards;transform-box:fill-box;transform-origin:center}.dbg-screen{min-height:100vh;display:flex;flex-direction:column;padding:24px;gap:16px;background:linear-gradient(180deg,var(--bg),var(--bg-end));color:var(--text);box-sizing:border-box}.dbg-head{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}.dbg-head h1{font-size:22px;font-weight:700;margin:0}.dbg-sub{font-size:12px;color:var(--text-dim)}.dbg-back{margin-left:auto;font-size:13px;color:var(--accent);border:1px solid var(--frame-line);padding:6px 12px;border-radius:8px;text-decoration:none}.dbg-back:hover{background:var(--accent-dim)}.dbg-tabs{display:flex;gap:8px;flex-wrap:wrap}.dbg-tab{font-size:13px;padding:7px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--text-dim);cursor:pointer;transition:transform .12s var(--ease)}.dbg-tab:hover{border-color:var(--frame-line)}.dbg-tab.is-active{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 -2px 0 var(--accent)}.dbg-wrap{flex:1;overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--panel)}.dbg-table{width:100%;border-collapse:collapse;font-size:13px}.dbg-table thead th{position:sticky;top:0;background:var(--panel-2);color:var(--text-dim);font-weight:600;text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);z-index:1}.dbg-row td{padding:6px 14px;border-bottom:1px solid var(--line);vertical-align:middle}.dbg-row:last-child td{border-bottom:none}.dbg-c-code{font-variant-numeric:tabular-nums;white-space:nowrap}.dbg-c-code code{font-size:12px;color:var(--text);margin-right:8px}.dbg-c-code span{font-size:11px;color:var(--text-dim)}.dbg-c-kc{color:var(--text-dim);font-family:ui-monospace,Consolas,monospace;font-size:12px}.dbg-c-zh{font-size:12px;color:var(--text);white-space:nowrap}.dbg-zh-txt{display:inline-block;min-width:52px;margin-right:10px;vertical-align:middle}.dbg-adopt{font-size:11px;line-height:1;padding:4px 10px;border-radius:6px;border:1px solid var(--frame-line);background:var(--panel);color:var(--accent);cursor:pointer;vertical-align:middle;transition:transform .12s var(--ease),background .15s}.dbg-adopt:hover{background:var(--accent-dim)}.dbg-adopt:active{transform:translateY(1px)}.dbg-c-zh.is-none{color:var(--text-dim);opacity:.5}.dbg-disp-input{font-size:13px;padding:5px 8px;border-radius:6px;border:1px solid var(--line);background:var(--kbd-key);color:var(--text);width:180px}.dbg-disp-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-dim)}.dbg-bar{display:flex;align-items:center;gap:14px;padding:4px 2px}.dbg-hint{font-size:12px;color:var(--text-dim)}.dbg-save{font-size:14px;font-weight:600;padding:9px 22px;border-radius:8px;border:1px solid var(--frame-line);background:var(--panel);color:var(--accent);cursor:pointer;transition:transform .12s var(--ease)}.dbg-save:hover{background:var(--accent-dim)}.dbg-save:active{transform:translateY(1px)}.dbg-status{font-size:12px;color:var(--text-dim)}.dbg-link{position:fixed;right:18px;bottom:14px;font-size:12px;color:var(--text-dim);text-decoration:none;border:1px solid var(--line);padding:4px 10px;border-radius:6px;background:var(--panel);opacity:.85}.dbg-link:hover{color:var(--accent);border-color:var(--frame-line)}.floating-key-layer{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden}.floating-key-char{position:absolute;font-weight:700;line-height:1;letter-spacing:0;opacity:0;user-select:none;text-shadow:0 0 30px rgba(46,143,213,.3),0 4px 46px rgba(40,80,140,.2);animation:floatingKeyRise 3.4s cubic-bezier(.25,.6,.4,1) forwards}@keyframes floatingKeyRise{0%{opacity:0;transform:translate(calc(var(--tx0,0px) + 0px),calc(var(--ty0,0px) + 6vh)) scale(.96) rotate(0)}14%{opacity:.5}32%{opacity:.3}to{opacity:0;transform:translate(calc(var(--tx0,0px) + var(--drift,0px)),calc(var(--ty0,0px) - 58vh)) scale(1.05) rotate(var(--tilt, 0deg))}}
