body.page-piano{overflow:hidden}.page-piano #site.container{--piano-page-y-gap: 24px;--piano-gutter: 40px;width:100%;max-width:none;height:100dvh;min-height:0;box-sizing:border-box;padding-top:calc(var(--site-header-height) + 24px)!important;padding-bottom:var(--piano-page-y-gap)!important;display:grid}html[data-piano-topbar-hidden] body.page-piano .topbar{opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-100%)}html[data-piano-topbar-hidden] body.page-piano #site.container{padding-top:var(--piano-page-y-gap)!important}.page-piano .site-footer{display:none}.piano-shell[data-astro-cid-yz32beko]{margin:0 auto;width:100%;height:100%;min-height:0;display:flex;flex-direction:column;gap:20px}.piano-module[data-astro-cid-yz32beko]{display:grid;min-height:0;flex:1}.piano-orientation[data-astro-cid-yz32beko]{display:none}.runtime-recovery[data-astro-cid-yz32beko]{display:none;align-items:center;gap:10px;margin:0 0 8px;min-height:30px}.runtime-recovery[data-astro-cid-yz32beko][data-state=error],.runtime-recovery[data-astro-cid-yz32beko][data-state=loading]{display:flex}.runtime-recovery[data-astro-cid-yz32beko][hidden]{display:none}.runtime-recovery-btn[data-astro-cid-yz32beko]{min-height:28px;padding:0 12px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:#ffffff0a;color:#ffffffe6;font-size:.76rem;font-weight:650;line-height:1;letter-spacing:.02em;cursor:pointer}.runtime-recovery-btn[data-astro-cid-yz32beko]:disabled{opacity:.6;cursor:wait}.runtime-recovery-status[data-astro-cid-yz32beko]{margin:0;color:var(--collection-muted);font-size:.78rem;line-height:1.2;letter-spacing:.01em}.runtime-recovery[data-astro-cid-yz32beko][data-state=error] .runtime-recovery-status[data-astro-cid-yz32beko]{color:#ff9b9b}.runtime-recovery[data-astro-cid-yz32beko][data-state=loading] .runtime-recovery-status[data-astro-cid-yz32beko]{color:#ffd089}.piano-frame[data-astro-cid-yz32beko]{--piano-chip-height: 34px;--piano-control-radius: 10px;--piano-control-border: rgba(255, 255, 255, .18);--piano-control-border-strong: rgba(255, 255, 255, .28);min-height:0;padding:0;display:grid;grid-template-rows:minmax(0,1fr);position:relative;overflow:visible;border-color:#ffffff1a;background:transparent;box-shadow:none;border:0;border-radius:0}.settings-soundfont[data-astro-cid-yz32beko]{position:relative;z-index:5;width:100%;min-width:0}.settings-row[data-astro-cid-yz32beko],.settings-effects-group[data-astro-cid-yz32beko]{min-width:0}.settings-row[data-astro-cid-yz32beko]{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:9px 0;border-top:1px solid rgba(255,255,255,.06)}.settings-row[data-astro-cid-yz32beko]:first-child{padding-top:0;border-top:0}.settings-soundfont[data-astro-cid-yz32beko]{padding:9px 0;border-top:1px solid rgba(255,255,255,.06)}.settings-soundfont[data-astro-cid-yz32beko]:first-child{padding-top:0;border-top:0}.settings-effects-group[data-astro-cid-yz32beko]{display:grid}.stage-settings-popover[data-astro-cid-yz32beko][data-settings-mode=panels] .settings-effects-group[data-astro-cid-yz32beko]{display:none}.settings-label[data-astro-cid-yz32beko]{color:var(--collection-muted);font-size:.78rem;font-weight:500;letter-spacing:0;line-height:1.4;text-transform:none;white-space:nowrap}.settings-control[data-astro-cid-yz32beko]{justify-self:end}.settings-segment[data-astro-cid-yz32beko]{display:grid;grid-template-columns:repeat(2,minmax(52px,1fr));gap:5px;width:126px}.settings-segment[data-astro-cid-yz32beko].three{grid-template-columns:repeat(3,minmax(42px,1fr));width:158px}.settings-segment-btn[data-astro-cid-yz32beko],.settings-placeholder-btn[data-astro-cid-yz32beko]{height:36px;min-width:0;padding:0 9px;border-radius:9px;border:1px solid rgba(255,255,255,.1);background:#15171c;color:var(--collection-muted);cursor:pointer;font:inherit;font-size:.75rem;font-weight:600;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;transition:border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}.settings-segment-btn[data-astro-cid-yz32beko]:hover{color:#ffeeeef5;border-color:#ff6e6e47}.settings-segment-btn[data-astro-cid-yz32beko].is-active{color:#fff5f5fa;border-color:var(--collection-accent);background:color-mix(in srgb,var(--collection-accent) 14%,#111318);box-shadow:none}.settings-placeholder-btn[data-astro-cid-yz32beko]{width:126px;cursor:not-allowed;color:#ffffff6b;opacity:.7}.soundfont-toggle[data-astro-cid-yz32beko]{width:100%;height:var(--piano-chip-height);min-height:var(--piano-chip-height);border-radius:var(--piano-control-radius);border:1px solid var(--piano-control-border);background:#15171c;padding:0 11px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"main sub chev";align-items:center;column-gap:8px;color:#ffffffe6;cursor:pointer;appearance:none;box-shadow:none;transition:border-color .17s ease,background .17s ease,box-shadow .17s ease}.soundfont-toggle[data-astro-cid-yz32beko]:disabled{cursor:wait;opacity:.62}.soundfont-toggle[data-astro-cid-yz32beko]:not(:disabled):hover{border-color:var(--piano-control-border-strong);background:radial-gradient(180px 72px at 0% 0%,rgba(255,82,82,.09),transparent 70%),linear-gradient(90deg,#1d171dfc,#111318fc);box-shadow:0 0 0 1px #ff48480a,inset 0 1px #ffffff1a,inset 0 -1px #ffffff0a}.soundfont-toggle-label[data-astro-cid-yz32beko]{grid-area:main;color:#fffffffc;font-size:.7rem;line-height:1.2;letter-spacing:.01em;white-space:nowrap;font-weight:700;transform:translateY(-1px)}.soundfont-toggle-current[data-astro-cid-yz32beko]{grid-area:sub;color:#fffffff2;font-size:.7rem;line-height:1.2;letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;min-width:0;transform:translateY(-1px)}.soundfont-toggle-chevron[data-astro-cid-yz32beko]{grid-area:chev;display:inline-flex;align-items:center;justify-content:center;font-family:JetBrains Mono,Fira Code,Consolas,monospace;width:auto;height:auto;border-radius:0;background:transparent;font-size:.84rem;line-height:1;color:var(--collection-muted);transition:transform .19s ease,color .19s ease,background .19s ease}.soundfont-toggle[data-astro-cid-yz32beko][aria-expanded=true] .soundfont-toggle-chevron[data-astro-cid-yz32beko]{transform:rotate(-90deg);color:var(--collection-muted);background:transparent}.soundfont-menu[data-astro-cid-yz32beko]{display:none;position:fixed;inset:auto;margin:0;width:auto;min-width:0;box-sizing:border-box;border-radius:14px;border:1px solid rgba(255,255,255,.14);background:#111318;box-shadow:none;padding:7px}.soundfont-menu[data-astro-cid-yz32beko]:popover-open{display:block}.soundfont-menu-list[data-astro-cid-yz32beko]{max-height:min(220px,calc(100dvh - 40px));overflow-y:auto;display:grid;gap:4px;padding-right:2px;scrollbar-color:rgba(255,255,255,.22) rgba(255,255,255,.05);scrollbar-width:thin}.soundfont-menu-list[data-astro-cid-yz32beko]::-webkit-scrollbar{width:8px}.soundfont-menu-list[data-astro-cid-yz32beko]::-webkit-scrollbar-track{background:#ffffff0d;border-radius:999px}.soundfont-menu-list[data-astro-cid-yz32beko]::-webkit-scrollbar-thumb{border-radius:999px;background:#ffffff38}.soundfont-option{width:100%;min-height:32px;border:1px solid rgba(255,255,255,.085);border-radius:7px;background:linear-gradient(180deg,#191b21fa,#0d0f13fc);color:#ffffffd1;display:grid;grid-template-columns:minmax(0,1fr);place-items:center;padding:0 28px;text-align:center;font:inherit;cursor:pointer;position:relative;box-shadow:inset 0 1px #ffffff0e;transition:border-color .15s ease,background .15s ease,color .15s ease}.soundfont-option:hover,.soundfont-option:focus-visible{border-color:#ff7e7e57;background:linear-gradient(180deg,#ffffff0f,#ffffff07),#ffffff0a;color:#fffffffa;outline:none}.soundfont-option[aria-selected=true]{border-color:#ff727252;background:radial-gradient(160px 60px at 0% 50%,rgba(255,75,75,.085),transparent 76%),linear-gradient(180deg,#ffffff0f,#ffffff07),#ffffff08;box-shadow:inset 0 1px #ffffff14}.soundfont-option-dot{position:absolute;left:13px;top:50%;width:5px;height:5px;border-radius:999px;transform:translateY(-50%);background:#ffffff3d;box-shadow:0 0 0 3px #ffffff08}.soundfont-option[aria-selected=true] .soundfont-option-dot{background:#ff6a6a;box-shadow:0 0 0 3px #ff58581a,0 0 10px #ff4a4a38}.soundfont-option-main{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.7rem;font-weight:650;line-height:1.2;letter-spacing:.01em;text-align:center}.soundfont-option-text{min-width:0;max-width:100%;height:100%;display:inline-flex;align-items:center;justify-content:center}.piano-viewport[data-astro-cid-yz32beko]{--white-height: clamp(170px, 25vh, 300px);--black-height: calc(var(--white-height) * .62);--black-ratio: .58;--rail-width: 152px;--white-key-width: clamp(7px,min(1.55vw,calc((100cqw - 2 * (var(--piano-gutter) + var(--rail-width) + var(--rail-gap))) / 52)),32px);--piano-width: calc(var(--full-white-count, var(--white-count, 52)) * var(--white-key-width));--piano-half-width: calc(var(--piano-width) / 2);--rail-gap: clamp(7px, .5vw, 11px);--stage-lift: clamp(18px, 1.65vh, 30px);--panels-stage-top: clamp(28px, 12cqh, 180px);--panels-gap: calc(clamp(10px, 1.55vh, 20px) + 16px) ;--panels-row-gap: calc(10% / 3);--stage-top: calc(100cqh - var(--white-height) - var(--stage-lift));position:relative;container-type:size;min-height:0;overflow:hidden;touch-action:pan-x;border-radius:0;background:transparent;border:0;box-shadow:none}.piano-viewport[data-astro-cid-yz32beko][data-piano-mode=panels]{--stage-lift: calc(100% - var(--white-height) - var(--panels-stage-top));--stage-top: var(--panels-stage-top)}.piano-viewport[data-astro-cid-yz32beko]:before{content:"";position:absolute;left:50%;width:calc(var(--piano-width) + clamp(54px,4vw,92px));bottom:calc(var(--white-height, 180px) + var(--stage-lift) - 2px);z-index:0;height:clamp(82px,14vh,160px);pointer-events:none;transform:translate(-50%);background:radial-gradient(58% 72px at 50% 100%,rgba(148,22,34,.24),transparent 72%),linear-gradient(180deg,transparent 0%,rgba(148,22,34,.09) 74%,rgba(148,22,34,.18) 100%);opacity:.68;filter:blur(8px);-webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.42) 10%,#000 22%,#000 78%,rgba(0,0,0,.42) 90%,transparent 100%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.42) 10%,#000 22%,#000 78%,rgba(0,0,0,.42) 90%,transparent 100%)}.piano-viewport[data-astro-cid-yz32beko]:after{content:"";position:absolute;inset:0 0 calc(var(--white-height, 180px) + var(--stage-lift));z-index:0;pointer-events:none;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.028) 50%,transparent 100%),repeating-linear-gradient(90deg,transparent 0 86px,rgba(255,255,255,.018) 87px,transparent 88px),linear-gradient(180deg,rgba(255,255,255,.016),transparent 28%,rgba(148,22,34,.05) 100%);opacity:.46;-webkit-mask-image:radial-gradient(86% 72% at 50% 62%,#000 0%,rgba(0,0,0,.72) 54%,transparent 100%);mask-image:radial-gradient(86% 72% at 50% 62%,#000 0%,rgba(0,0,0,.72) 54%,transparent 100%);display:none}.piano-root-wrap[data-astro-cid-yz32beko]{position:absolute;left:50%;top:0;z-index:8;width:var(--piano-width);height:var(--white-height);overflow:hidden;border-radius:10px 10px 6px 6px;transform:translate3d(-50%,var(--stage-top),0);pointer-events:auto;box-shadow:0 22px 48px #00000080,0 0 0 1px #ffffff14;transition:transform .52s var(--ease-emphasis);will-change:transform}.piano-panels-stage[data-astro-cid-yz32beko]{position:absolute;left:0;right:0;top:calc(var(--panels-stage-top) + var(--white-height) + var(--panels-gap));bottom:0;z-index:6;display:grid;grid-template-rows:auto minmax(0,1fr);min-height:0;pointer-events:none;gap:12px}.piano-panel-placeholder[data-astro-cid-yz32beko]{position:relative;min-height:0;overflow:hidden;padding:16px var(--piano-gutter);box-sizing:border-box;border-radius:0;border:0;background:transparent;box-shadow:none;opacity:0;transition:opacity .36s ease,transform .52s var(--ease-emphasis);will-change:opacity,transform;border-top:1px solid var(--collection-line)}.piano-panel-placeholder-upper[data-astro-cid-yz32beko]{padding-block:8px}.panel-stat-strip[data-astro-cid-yz32beko]{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));min-height:44px;width:min(100%,1000px);margin-inline:auto;border-bottom:0}.panel-stat-cell[data-astro-cid-yz32beko]{display:grid;align-content:center;justify-items:center;gap:6px;min-width:0;padding:4px 10px;position:relative;text-align:center}.panel-stat-cell[data-astro-cid-yz32beko]:not(:last-child):after{content:"";position:absolute;top:8px;bottom:14px;right:0;width:1px;background:#ffffff14}.panel-stat-label[data-astro-cid-yz32beko],.keyboard-map-head[data-astro-cid-yz32beko] small[data-astro-cid-yz32beko],.keyboard-map-group-head[data-astro-cid-yz32beko] small[data-astro-cid-yz32beko]{color:var(--collection-muted);font-size:.72rem;font-weight:500;letter-spacing:0;line-height:1;text-transform:none;white-space:nowrap}.panel-stat-value[data-astro-cid-yz32beko]{max-width:100%;overflow:hidden;text-overflow:ellipsis;color:#ffffffeb;font-family:var(--font-body);font-size:1rem;font-weight:600;line-height:1;white-space:nowrap;font-variant-numeric:tabular-nums}.keyboard-map-panel[data-astro-cid-yz32beko]{height:100%;min-height:0;display:grid;grid-template-rows:auto minmax(0,1fr);gap:8px}.keyboard-map-head[data-astro-cid-yz32beko]{display:flex;align-items:baseline;justify-content:space-between;gap:12px;min-width:0;padding-bottom:8px;color:var(--collection-ink);font:500 1.5rem/1.2 var(--font-display);letter-spacing:-.02em}.keyboard-map-head[data-astro-cid-yz32beko] small[data-astro-cid-yz32beko]{font-family:var(--font-body)}.keyboard-map-board[data-astro-cid-yz32beko]{min-height:0;display:grid;grid-template-columns:minmax(0,1.62fr) minmax(310px,.92fr);gap:clamp(10px,1vw,18px);overflow:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;pointer-events:auto}.keyboard-map-main[data-astro-cid-yz32beko],.keyboard-map-secondary[data-astro-cid-yz32beko]{min-height:0;min-width:0;display:grid;align-content:start;gap:7px}.keyboard-map-group[data-astro-cid-yz32beko]{min-width:0;display:grid;grid-template-columns:clamp(82px,6vw,118px) minmax(0,1fr);align-items:start;gap:clamp(7px,.7vw,12px);padding-bottom:7px;border-bottom:1px solid rgba(255,255,255,.045)}.keyboard-map-main[data-astro-cid-yz32beko] .keyboard-map-group[data-astro-cid-yz32beko]:last-child,.keyboard-map-secondary[data-astro-cid-yz32beko] .keyboard-map-group[data-astro-cid-yz32beko]:last-child{padding-bottom:0;border-bottom:0}.keyboard-map-group-head[data-astro-cid-yz32beko]{min-width:0;display:grid;align-content:start;gap:5px;padding-top:4px}.keyboard-map-group-head[data-astro-cid-yz32beko] span[data-astro-cid-yz32beko]{color:var(--collection-muted);font-size:.72rem;font-weight:780;letter-spacing:.055em;line-height:1;text-transform:none}.keyboard-map-keys[data-astro-cid-yz32beko]{display:flex;flex-wrap:wrap;gap:4px;min-width:0}.keyboard-map-key[data-astro-cid-yz32beko]{min-height:22px;display:inline-grid;grid-template-columns:auto auto;align-items:center;gap:4px;padding:0 6px;border-radius:7px;border:1px solid rgba(255,255,255,.075);background:#ffffff06;box-shadow:inset 0 1px #ffffff0b}.keyboard-map-key[data-astro-cid-yz32beko] kbd[data-astro-cid-yz32beko]{color:#ffffffe6;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.58rem;font-weight:760;line-height:1}.keyboard-map-key[data-astro-cid-yz32beko] small[data-astro-cid-yz32beko]{color:var(--collection-muted);font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.5rem;font-weight:700;line-height:1;white-space:nowrap}.piano-panel-placeholder-upper[data-astro-cid-yz32beko]{grid-row:1}.piano-panel-placeholder-lower[data-astro-cid-yz32beko]{grid-row:2}.piano-panel-placeholder[data-astro-cid-yz32beko]{transform:translateY(calc(100% + var(--panels-row-gap))) scale(.985)}.piano-viewport[data-astro-cid-yz32beko][data-panels-state=entering] .piano-panel-placeholder[data-astro-cid-yz32beko],.piano-viewport[data-astro-cid-yz32beko][data-panels-state=visible] .piano-panel-placeholder[data-astro-cid-yz32beko]{opacity:1;transform:translateY(0) scale(1)}.piano-rain-layer[data-astro-cid-yz32beko]{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;opacity:1;transition:opacity .32s ease;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,0) 0%,rgba(0,0,0,.9) 8%,rgba(0,0,0,1) 82%,rgba(0,0,0,.72) 100%);mask-image:linear-gradient(to bottom,#0000,#000000e6 8%,#000 82%,#000000b8)}.piano-rain-layer[data-astro-cid-yz32beko]:after{content:"";position:absolute;left:0;right:0;bottom:calc(var(--white-height, 180px) + var(--stage-lift));height:3px;background:linear-gradient(90deg,transparent 0%,rgba(148,22,34,.42) 24%,rgba(255,108,116,.7) 50%,rgba(148,22,34,.42) 76%,transparent 100%);box-shadow:0 0 10px #94162261,0 0 32px #94162233,0 -18px 56px #9416221a;opacity:.78;transform:translateY(1px)}.piano-viewport[data-astro-cid-yz32beko][data-piano-mode=panels] .piano-rain-layer[data-astro-cid-yz32beko]{opacity:0}.stage-side-rail[data-astro-cid-yz32beko]{position:absolute;top:var(--stage-top);z-index:9;height:var(--white-height);display:grid;align-content:stretch;gap:8px;width:var(--rail-width);padding:4px;box-sizing:border-box;border-radius:0;border:0;background:transparent;box-shadow:none;backdrop-filter:none;transition:top .52s var(--ease-emphasis);border-color:var(--collection-line)}.stage-side-rail-left[data-astro-cid-yz32beko]{left:calc(50% - var(--piano-half-width) - var(--rail-gap) - var(--rail-width));min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px}.stage-side-rail-right[data-astro-cid-yz32beko]{left:calc(50% + var(--piano-half-width) + var(--rail-gap));min-width:0;grid-template-rows:minmax(0,1fr) auto}.stage-control-label[data-astro-cid-yz32beko],.stage-status-label[data-astro-cid-yz32beko]{color:var(--collection-muted);font-size:.65rem;font-weight:500;letter-spacing:0;line-height:1;text-transform:none;white-space:nowrap}.stage-control-row[data-astro-cid-yz32beko],.stage-status-pill[data-astro-cid-yz32beko]{display:grid;justify-items:center;align-items:center;align-content:center;gap:7px;min-height:0;padding:4px 0;box-sizing:border-box;border-radius:8px;border:0;background:transparent}.stage-control-row[data-astro-cid-yz32beko]{grid-template-rows:auto auto minmax(0,1fr) auto;min-height:0}.stage-control-icon[data-astro-cid-yz32beko]{width:25px;height:25px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:radial-gradient(circle at 50% 0%,rgba(255,78,78,.16),transparent 68%),#ffffff09;color:#ffe6e6d6}.stage-control-icon[data-astro-cid-yz32beko] svg[data-astro-cid-yz32beko],.stage-step-btn[data-astro-cid-yz32beko] svg[data-astro-cid-yz32beko]{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.stage-control-value[data-astro-cid-yz32beko],.stage-status-value[data-astro-cid-yz32beko]{color:#ffffffe6;font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.78rem;font-weight:780;line-height:1;white-space:nowrap}.stage-step-row[data-astro-cid-yz32beko]{display:grid;grid-template-columns:32px;grid-template-rows:repeat(4,26px);align-items:center;justify-content:center;justify-self:center;gap:4px;width:32px}.stage-step-btn[data-astro-cid-yz32beko]{width:32px;min-width:0;height:26px;border-radius:9px;border:1px solid rgba(255,255,255,.14);background:#15171c;color:#ffffffdb;cursor:pointer;font-weight:820;line-height:1;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;border-color:#ffffff30}.stage-step-btn[data-astro-cid-yz32beko]:hover{border-color:#ff54546b;background:radial-gradient(42px 30px at 50% 50%,rgba(255,84,84,.18),transparent 74%),linear-gradient(180deg,#ffffff0f,#ffffff07),#9416221f;color:#ffeeeefa}.stage-status-list[data-astro-cid-yz32beko]{display:grid;grid-template-rows:repeat(2,minmax(0,1fr));gap:8px;min-height:0;height:100%}.stage-status-pill[data-astro-cid-yz32beko]{grid-template-columns:1fr;justify-items:center;text-align:center;gap:9px;border-bottom:1px solid rgba(255,255,255,.055)}.stage-status-pill[data-astro-cid-yz32beko]:last-child{border-bottom:0}.stage-status-value[data-astro-cid-yz32beko]{font-size:.86rem}.stage-status-value[data-astro-cid-yz32beko].state,.stage-status-value[data-astro-cid-yz32beko].sustain{display:inline-flex;align-items:center;gap:7px}.stage-status-value[data-astro-cid-yz32beko].state:before,.stage-status-value[data-astro-cid-yz32beko].sustain:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor}.stage-status-value[data-astro-cid-yz32beko].state.loading{color:#ffd089}.stage-status-value[data-astro-cid-yz32beko].state.ready,.stage-status-value[data-astro-cid-yz32beko].sustain{color:#8cffc1}.stage-status-value[data-astro-cid-yz32beko].state.error,.stage-status-value[data-astro-cid-yz32beko].sustain.off{color:#ff8383}.stage-rail-actions[data-astro-cid-yz32beko]{position:relative;display:grid;justify-items:center;gap:7px;padding-top:8px;border-top:1px solid rgba(255,255,255,.055);z-index:28}.stage-action-buttons[data-astro-cid-yz32beko]{display:grid;grid-template-columns:repeat(2,32px);gap:7px;justify-content:center}.stage-action-btn[data-astro-cid-yz32beko]{width:32px;height:32px;min-width:0;padding:0;border-radius:var(--piano-control-radius);border:1px solid rgba(255,255,255,.12);background:#15171c;color:#ebe8ebcc;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;box-shadow:none;transition:border-color .17s ease,background .17s ease,color .17s ease,box-shadow .17s ease;border-color:#ffffff30}.stage-action-btn[data-astro-cid-yz32beko]:hover,.stage-action-btn[data-astro-cid-yz32beko][aria-expanded=true]{border-color:var(--piano-control-border-strong);color:#fff5f5fa;background:radial-gradient(54px 38px at 50% 0%,rgba(255,82,82,.13),transparent 72%),linear-gradient(180deg,#241d22fc,#111217fc);box-shadow:0 0 0 1px #ff48480a,inset 0 1px #ffffff1a,inset 0 -1px #ffffff0a}.stage-action-btn[data-astro-cid-yz32beko] svg[data-astro-cid-yz32beko]{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}.stage-settings-popover[data-astro-cid-yz32beko]{position:absolute;right:0;bottom:calc(100% + 12px);width:min(360px,calc(100vw - 34px));padding:16px;border-radius:14px;border:1px solid rgba(255,255,255,.11);background:#0d0f13;box-shadow:none;backdrop-filter:none;opacity:0;pointer-events:none;transform:translateY(8px) scale(.985);transform-origin:100% 100%;transition:opacity .17s ease,transform .17s ease;z-index:34;border-color:#ffffff30;max-height:min(480px,60cqh);overflow-y:auto}.piano-viewport[data-astro-cid-yz32beko][data-piano-mode=panels] .stage-settings-popover[data-astro-cid-yz32beko]{top:calc(100% + 28px);bottom:auto;box-sizing:border-box;max-height:min(480px,calc(100cqh - var(--stage-top) - var(--white-height) - 28px));transform:translateY(-8px) scale(.985);transform-origin:100% 0%}.stage-settings-popover[data-astro-cid-yz32beko].is-open{opacity:1;pointer-events:auto;transform:translateY(0) scale(1)}.piano-viewport[data-astro-cid-yz32beko][data-effect-intensity=low] .waterfall-note,.piano-viewport[data-astro-cid-yz32beko][data-effect-intensity=low] .waterfall-spark{opacity:.68;filter:saturate(.82)}.piano-viewport[data-astro-cid-yz32beko][data-effect-intensity=high] .waterfall-note{opacity:1;filter:saturate(1.18);box-shadow:inset 0 0 0 1px #94162266,inset 0 0 16px #7808145c,0 0 14px #94162280,0 0 36px #94162240}.piano-viewport[data-astro-cid-yz32beko][data-reduced-effects=true] .waterfall-note{opacity:.5;filter:saturate(.72);box-shadow:inset 0 0 0 1px #94162238,0 0 8px #9416222e}.waterfall-note{--fx-color: rgba(184, 28, 42, .96);position:absolute;left:var(--fx-x, 50%);bottom:var(--fx-bottom, 0px);width:var(--fx-width, 14px);height:var(--fx-height, 12px);min-height:10px;border-radius:4px;opacity:.96;transform:translate3d(-50%,0,0);background:linear-gradient(90deg,rgba(120,14,26,.24),transparent 18% 82%,rgba(120,14,26,.22)),linear-gradient(0deg,rgba(106,12,24,.56) 0%,rgba(150,20,34,.9) 16%,var(--fx-color, #941622) 48%,rgba(150,20,34,.9) 84%,rgba(106,12,24,.56) 100%);box-shadow:inset 0 0 0 1px #94162257,inset 0 0 14px #7808144d,0 0 10px #9416226b,0 0 28px #94162233;overflow:hidden;will-change:height,transform,opacity}.waterfall-note.is-released{pointer-events:none;animation:waterfall-release var(--fx-release-duration, 1.2s) linear forwards}@keyframes waterfall-release{0%{opacity:.96;transform:translate3d(-50%,0,0)}84%{opacity:.94}to{opacity:0;transform:translate3d(-50%,calc(-1 * var(--fx-release-distance, 120px)),0)}}.waterfall-spark{--fx-color: rgba(184, 28, 42, .96);position:absolute;left:var(--spark-x, 50%);top:var(--spark-y, 70%);width:var(--spark-size, 2px);height:var(--spark-size, 2px);border-radius:999px;opacity:0;background:color-mix(in srgb,var(--fx-color, #941622) 66%,white 34%);box-shadow:0 0 10px color-mix(in srgb,var(--fx-color, #941622) 92%,transparent),0 0 24px color-mix(in srgb,var(--fx-color, #941622) 68%,transparent),0 0 42px color-mix(in srgb,var(--fx-color, #941622) 28%,transparent);filter:saturate(1.18) brightness(1.14);transform:translate3d(-50%,-50%,0);animation:waterfall-spark var(--spark-duration, .64s) cubic-bezier(.16,.74,.26,1) forwards}@keyframes waterfall-spark{0%{opacity:0;transform:translate3d(-50%,-50%,0) scale(var(--spark-start-scale, .6))}10%{opacity:var(--spark-peak-opacity, .96)}44%{opacity:var(--spark-mid-opacity, .82)}74%{opacity:var(--spark-low-opacity, .28)}to{opacity:0;transform:translate3d(calc(-50% + var(--spark-dx, 0px)),calc(-50% + var(--spark-dy, -60px)),0) scale(var(--spark-end-scale, .15))}}.piano-loader[data-astro-cid-yz32beko]{position:absolute;inset:-2px;z-index:4;display:grid;place-items:center;border-radius:12px 12px 8px 8px;overflow:hidden;pointer-events:none;opacity:1;visibility:visible;transition:opacity .24s ease,visibility 0s linear .26s;background:#0d0f13;box-shadow:none}.piano-viewport[data-astro-cid-yz32beko][data-stage=loading] .piano-root[data-astro-cid-yz32beko]{border-color:transparent;opacity:0;visibility:hidden;display:none;animation:none!important}.piano-viewport[data-astro-cid-yz32beko][data-stage=loading] .piano-layer[data-astro-cid-yz32beko]{opacity:0;visibility:hidden}.piano-loader-text[data-astro-cid-yz32beko]{margin:0;min-width:168px;min-height:38px;padding:0 18px;display:inline-flex;align-items:center;justify-content:center;border-radius:0;border:0;background:transparent;color:var(--collection-muted);font-size:.82rem;font-weight:500;line-height:1;letter-spacing:0;position:relative;z-index:2;box-shadow:none}.piano-loader-text[data-astro-cid-yz32beko]:before{content:"";width:7px;height:7px;margin-right:10px;border-radius:50%;background:var(--collection-accent);box-shadow:none}.piano-loader-text[data-astro-cid-yz32beko].is-loading:before{animation:loader-pulse 1.2s ease-in-out infinite}@keyframes loader-pulse{0%,to{transform:scale(.86);opacity:.58}50%{transform:scale(1.08);opacity:1}}.piano-viewport[data-astro-cid-yz32beko][data-stage=ready] .piano-loader[data-astro-cid-yz32beko]{opacity:0;visibility:hidden;pointer-events:none}.piano-root[data-astro-cid-yz32beko]{position:relative;width:var(--piano-width);min-width:0;height:var(--white-height);border:1px solid rgba(255,255,255,.18);border-radius:10px 10px 6px 6px;background:linear-gradient(180deg,#121418fa,#06080cfc),#080a0e;user-select:none;touch-action:none;overflow:hidden;display:none;opacity:0;visibility:hidden;box-shadow:inset 0 1px #ffffff38,inset 0 -1px #000000b8}.piano-viewport[data-astro-cid-yz32beko][data-piano-revealed=true] .piano-root[data-astro-cid-yz32beko]{display:block;opacity:1;visibility:visible;animation:keyboard-draw .26s var(--ease-emphasis) both}.piano-viewport[data-astro-cid-yz32beko][data-piano-revealed=true] .piano-layer[data-astro-cid-yz32beko]{opacity:1;visibility:visible;transition:opacity .18s ease 80ms}@keyframes keyboard-draw{0%{opacity:0;clip-path:inset(0 50% 0 50%);filter:saturate(.86)}to{opacity:1;clip-path:inset(0 0 0 0);filter:saturate(1)}}.piano-layer[data-astro-cid-yz32beko]{position:absolute;inset:0}.piano-layer-black[data-astro-cid-yz32beko]{pointer-events:none}.piano-layer-black[data-astro-cid-yz32beko] .piano-key[data-astro-cid-yz32beko].black{pointer-events:auto}.piano-layer-white[data-astro-cid-yz32beko]{display:grid;grid-template-columns:repeat(var(--white-count),var(--white-key-width))}.piano-key[data-astro-cid-yz32beko]{-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;box-sizing:border-box;border-radius:0;padding:0;margin:0;cursor:pointer;transition:background-color .11s ease,box-shadow .11s ease,border-color .11s ease,opacity .11s ease}.piano-key[data-astro-cid-yz32beko].white{height:var(--white-height);position:relative;border:0;background:linear-gradient(180deg,#f4f1ea,#e8e6df 52%,#d2d0ca);box-shadow:inset 1px 0 #fffcf4b8,inset -1px 0 #080a0e70,inset 0 -12px 18px #0000001f}.piano-key[data-astro-cid-yz32beko].white:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.08) 0%,transparent 28%,rgba(0,0,0,.1) 100%);opacity:.36}.piano-key[data-astro-cid-yz32beko].black{position:absolute;width:calc((100% / var(--white-count)) * var(--black-ratio));height:var(--black-height);left:calc(((var(--white-index) + 1) * 100% / var(--white-count)) - ((100% / var(--white-count)) * (var(--black-ratio) / 2)));z-index:2;background:linear-gradient(180deg,#17191f,#0f1117 36%,#050609);border:1px solid rgba(255,255,255,.14);border-top-color:#ffffff14;border-bottom-color:#000000e6;border-radius:0 0 4px 4px;box-shadow:0 5px 7px #0000007a,inset 1px 0 #ffffff0e,inset -1px 0 #0000007a,inset 0 -8px 12px #00000085}.piano-key[data-astro-cid-yz32beko].black:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.045) 0%,transparent 14%,rgba(0,0,0,.38) 100%);opacity:.46}.piano-key[data-astro-cid-yz32beko].white.pressed{background:linear-gradient(180deg,#ffd9dc,#be2b38 52%,#7d101a);box-shadow:inset 0 0 0 1px #ffe1e480,inset -1px 0 #37040a8a,inset 0 -12px 18px #1c000457,inset 0 0 26px #94162294,0 0 16px #94162247}.piano-key[data-astro-cid-yz32beko].black.pressed{background:linear-gradient(180deg,#9d1a27,#661019 58%,#26050a);box-shadow:0 5px 7px #0000006b,inset 0 0 0 1px #ffbdc43d,inset 0 -10px 14px #00000057,inset 0 0 18px #94162275,0 0 16px #94162247;border-color:#be303c85}@media(min-width:1121px)and (min-height:1000px){.keyboard-map-key[data-astro-cid-yz32beko]{min-height:28px;padding-inline:8px}.keyboard-map-key[data-astro-cid-yz32beko] kbd[data-astro-cid-yz32beko]{font-size:.7rem}.keyboard-map-key[data-astro-cid-yz32beko] small[data-astro-cid-yz32beko]{font-size:.62rem}}@media(max-width:1120px),(max-height:720px){.piano-viewport[data-astro-cid-yz32beko]{--white-key-width:clamp(7px,calc((100cqw - 2 * var(--piano-gutter)) / 52),32px)}.stage-side-rail[data-astro-cid-yz32beko]{display:none}}@media(max-height:860px){.piano-viewport[data-astro-cid-yz32beko]{--panels-gap: calc(clamp(8px, 1.15vh, 14px) + 16px) ;--panels-row-gap: calc(7% / 3)}.piano-panel-placeholder[data-astro-cid-yz32beko]{padding:clamp(8px,.8vw,12px) var(--piano-gutter)}.panel-stat-strip[data-astro-cid-yz32beko]{min-height:42px}.panel-stat-cell[data-astro-cid-yz32beko]{gap:5px;padding-bottom:8px}.keyboard-map-panel[data-astro-cid-yz32beko]{gap:6px}.keyboard-map-head[data-astro-cid-yz32beko]{padding-bottom:6px}.keyboard-map-main[data-astro-cid-yz32beko],.keyboard-map-secondary[data-astro-cid-yz32beko]{gap:5px}.keyboard-map-group[data-astro-cid-yz32beko]{gap:7px;padding-bottom:5px}.keyboard-map-group-head[data-astro-cid-yz32beko]{gap:4px;padding-top:3px}.keyboard-map-keys[data-astro-cid-yz32beko]{gap:3px}.keyboard-map-key[data-astro-cid-yz32beko]{min-height:20px;padding:0 5px}.keyboard-map-key[data-astro-cid-yz32beko] kbd[data-astro-cid-yz32beko]{font-size:.54rem}.keyboard-map-key[data-astro-cid-yz32beko] small[data-astro-cid-yz32beko]{font-size:.47rem}}@media(max-width:860px){.page-piano #site.container{--piano-page-y-gap: 24px;--piano-gutter: 20px;padding-top:calc(var(--site-header-height) + 16px)!important;padding-bottom:var(--piano-page-y-gap)!important}.piano-frame[data-astro-cid-yz32beko]{padding:0}.piano-viewport[data-astro-cid-yz32beko]{--white-key-width: clamp(7px,calc((100cqw - 2 * var(--piano-gutter)) / 52),24px);--white-height: clamp(132px, 24vh, 190px);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin}.piano-root-wrap[data-astro-cid-yz32beko]{left:var(--piano-gutter);transform:translate3d(0,var(--stage-top),0)}.keyboard-map-board[data-astro-cid-yz32beko]{grid-template-columns:minmax(0,1fr);grid-auto-rows:max-content;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;touch-action:pan-y;pointer-events:auto}.keyboard-map-main[data-astro-cid-yz32beko],.keyboard-map-secondary[data-astro-cid-yz32beko]{min-height:auto;gap:16px}.keyboard-map-group[data-astro-cid-yz32beko]{grid-template-columns:1fr;gap:8px;padding-bottom:12px}.keyboard-map-group-head[data-astro-cid-yz32beko]{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px}.keyboard-map-key[data-astro-cid-yz32beko]{min-height:26px}.keyboard-map-key[data-astro-cid-yz32beko] kbd[data-astro-cid-yz32beko]{font-size:.7rem}.keyboard-map-key[data-astro-cid-yz32beko] small[data-astro-cid-yz32beko]{font-size:.65rem}.panel-stat-cell[data-astro-cid-yz32beko]{padding-inline:2px}.panel-stat-label[data-astro-cid-yz32beko]{font-size:.65rem;white-space:normal;line-height:1.3}}@media(max-width:560px){.soundfont-toggle-label[data-astro-cid-yz32beko]{display:none}.soundfont-toggle[data-astro-cid-yz32beko]{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"sub chev"}}@media(pointer:coarse)and (max-width:600px),(pointer:coarse)and (max-height:600px){.page-piano #site.container{--piano-gutter:12px;--piano-page-y-gap:8px;padding-top:calc(var(--site-header-height) + 8px)!important}.stage-side-rail[data-astro-cid-yz32beko],.piano-panels-stage[data-astro-cid-yz32beko]{display:none}.piano-viewport[data-astro-cid-yz32beko][data-piano-mode]{--white-key-width:calc((100cqw - 2 * var(--piano-gutter)) / 36);--piano-width:calc(36 * var(--white-key-width));--white-height: calc(100cqh - 32px) ;--stage-top:16px;--panels-stage-top:16px;overflow:hidden}.piano-root-wrap[data-astro-cid-yz32beko]{left:var(--piano-gutter);transform:translate3d(0,var(--stage-top),0)}@media(orientation:landscape){.page-piano .topbar,.page-piano [data-back-to-top]{display:none}.page-piano #site.container{--piano-gutter:max(8px,env(safe-area-inset-left),env(safe-area-inset-right));padding:0!important}.piano-shell[data-astro-cid-yz32beko]{gap:0}.piano-viewport[data-astro-cid-yz32beko][data-piano-mode]{--white-height:min(calc(var(--white-key-width) * 6.5), calc(100cqh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom))) );--stage-top:calc((100cqh - var(--white-height) + max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom))) / 2);--panels-stage-top:var(--stage-top)}.piano-root[data-astro-cid-yz32beko]{box-sizing:border-box}.runtime-recovery[data-astro-cid-yz32beko][data-state=loading]{display:none}.runtime-recovery[data-astro-cid-yz32beko][data-state=error]{position:absolute;inset:8px 8px auto;z-index:30;padding:8px;background:#101217}}@media(orientation:portrait){.piano-module[data-astro-cid-yz32beko],.runtime-recovery[data-astro-cid-yz32beko]{display:none!important}.piano-orientation[data-astro-cid-yz32beko]{display:flex;flex:1;flex-direction:column;justify-content:center;align-items:center;gap:20px;padding:32px;text-align:center}.piano-orientation[data-astro-cid-yz32beko] svg[data-astro-cid-yz32beko]{color:var(--collection-accent)}.piano-orientation[data-astro-cid-yz32beko] h2[data-astro-cid-yz32beko]{margin:0;font:500 2rem/1.15 var(--font-display)}.piano-orientation[data-astro-cid-yz32beko] p[data-astro-cid-yz32beko]{margin:0;max-width:28ch;color:var(--collection-muted);line-height:1.7}}}@media(prefers-reduced-motion:reduce){.soundfont-menu[data-astro-cid-yz32beko],.soundfont-toggle[data-astro-cid-yz32beko],.stage-side-rail[data-astro-cid-yz32beko],.piano-root-wrap[data-astro-cid-yz32beko],.piano-root[data-astro-cid-yz32beko],.piano-loader[data-astro-cid-yz32beko],.piano-panel-placeholder[data-astro-cid-yz32beko],.waterfall-note,.waterfall-spark{transition:none!important;animation:none!important}.piano-viewport[data-astro-cid-yz32beko][data-piano-revealed=true] .piano-root[data-astro-cid-yz32beko]{display:block;opacity:1;visibility:visible;clip-path:inset(0 0 0 0);filter:saturate(1)}.waterfall-note,.waterfall-spark{display:none!important}}
