.kf-main{max-width:1200px;margin:auto;padding:0 32px}.kf-intro{position:relative;padding:54px 0 34px;max-width:860px}.kf-kicker{font-size:10px;letter-spacing:2px;color:var(--studio-accent);font-weight:650;margin:0 0 12px}.kf-intro h1{font-family:Georgia,"Songti SC",serif;font-weight:400;font-size:clamp(34px,4.6vw,62px);line-height:1.12;letter-spacing:-1.8px;margin:0 0 18px}.kf-intro>p:not(.kf-kicker){color:var(--studio-muted);max-width:630px;font-size:16px;margin:0 0 15px}.kf-free{font-size:11px;color:var(--studio-accent)}
.kf-tool{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border:1px solid var(--studio-line);border-radius:18px;background:var(--studio-paper);overflow:hidden}.kf-input-panel,.kf-results-panel{padding:28px;min-width:0}.kf-input-panel{border-right:1px solid var(--studio-line)}.kf-results-panel{background:#f0f0e8}.kf-section-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.kf-section-line h2{font-size:16px;font-weight:600;margin:0;letter-spacing:-.3px}.kf-section-line h2>span{color:var(--studio-accent);font-size:11px;font-weight:500;margin-right:9px}.kf-text-button{border:0;background:none;color:var(--studio-muted);font-size:12px;min-height:44px;padding:8px}.kf-hint{font-size:12px;line-height:1.75;color:var(--studio-muted);margin:8px 0 18px}.kf-count{font-size:12px;background:var(--studio-paper);border:1px solid var(--studio-line);border-radius:50%;min-width:28px;height:28px;display:grid;place-items:center}
.kf-keyboard{position:relative;display:flex;height:196px;margin-top:25px;isolation:isolate;touch-action:manipulation}.kf-key{border:1px solid #c5c7be;padding:0;position:relative;border-radius:0 0 6px 6px;display:flex;align-items:flex-end;justify-content:center;cursor:pointer;user-select:none;transition:background .15s,box-shadow .15s}.kf-key span{pointer-events:none;font-size:12px;padding-bottom:14px;line-height:1.5}.kf-white{width:12.5%;height:100%;background:linear-gradient(#fffefa 85%,#eeede7);color:var(--studio-ink);box-shadow:0 3px 0 #c9cbc3}.kf-black{position:absolute;left:calc(var(--position) * 12.5% - 4%);width:8%;height:61%;z-index:2;background:linear-gradient(100deg,#343a33,#171e18);color:#f6f5f1;border-color:#172019;box-shadow:0 3px 0 #111810}.kf-black span{font-size:9px;padding-bottom:10px}.kf-key.in-scale{background:#e4e9d8;color:#303b29}.kf-key[aria-pressed=true]{background:#c7ab64;color:#252c22;border-color:#9c874f}.kf-key.is-playing{box-shadow:inset 0 -8px 0 #687d5a;transform:translateY(2px)}.kf-key:focus-visible{outline-offset:1px;z-index:3}.kf-legend{display:flex;gap:20px;margin:18px 0 24px;color:var(--studio-muted);font-size:10px}.kf-legend span{display:flex;gap:6px;align-items:center}.kf-legend i{width:9px;height:9px;background:#c7ab64;border-radius:2px}.kf-legend span+span i{background:#e4e9d8;border:1px solid #b2bea2}
.kf-page label{display:block;font-size:12px;font-weight:600;margin-bottom:8px}.kf-entry{display:flex;gap:8px}.kf-entry input{min-width:0;flex:1;border:1px solid #bcbfb3;border-radius:8px;background:var(--studio-paper);padding:12px;color:var(--studio-ink);font-size:15px}.kf-primary{border:1px solid var(--studio-ink);border-radius:8px;background:var(--studio-ink);color:var(--studio-paper);padding:11px 15px;font-size:12px;min-height:44px;white-space:nowrap}.kf-primary:hover{background:#3e4839}.kf-options{display:flex;justify-content:space-between;align-items:center;gap:10px;padding-top:16px;border-top:1px solid var(--studio-line)}.kf-options label{margin:0}.kf-options label span{display:block;color:var(--studio-muted);font-weight:400;font-size:10px}.kf-options select{max-width:65%;font-size:12px;border:1px solid var(--studio-line);border-radius:8px;padding:10px;background:var(--studio-paper);color:var(--studio-ink);min-height:44px}.kf-examples{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:20px;font-size:10px;color:var(--studio-muted)}.kf-examples button{border:1px solid var(--studio-line);border-radius:20px;background:transparent;padding:7px 10px;font-size:11px;color:var(--studio-ink);min-height:36px}.kf-examples button:hover{background:#f0efe5}#kf-error{font-size:12px;color:#9c3424;overflow-wrap:anywhere}#kf-notes[aria-invalid=true]{border-color:#9c3424}
#kf-results{display:grid;grid-template-columns:1fr 1fr;gap:9px;max-height:320px;overflow:auto;padding:3px;margin:0 -3px;scrollbar-width:thin}.kf-result{min-width:0;display:flex;align-items:flex-start;flex-direction:column;text-align:left;border:1px solid #c9cdbf;border-radius:10px;background:var(--studio-paper);padding:14px;color:var(--studio-ink);gap:6px}.kf-result[aria-pressed=true]{border-color:#6a7959;box-shadow:inset 0 0 0 1px #6a7959;background:#f9fbf2}.kf-result strong{font-size:15px;font-weight:600}.kf-badge{font-size:9px;color:#59634d}.kf-result-notes{font-size:10px;line-height:1.8;overflow-wrap:anywhere}.kf-result small{font-size:9px;color:var(--studio-muted)}.kf-empty{text-align:center;padding:27px 15px 40px}.kf-empty>span{font-size:60px;font-family:Georgia,serif;color:#aeb79e;line-height:1}.kf-empty h3{font-family:Georgia,"Songti SC",serif;font-weight:400;font-size:24px;margin:18px 0 8px}.kf-empty p{font-size:12px;color:var(--studio-muted);max-width:260px;margin:auto;line-height:1.9}.kf-boundary{font-size:11px;color:#5f6557;line-height:1.8;border-top:1px solid #d5d9cc;padding-top:18px;margin:20px 0 0}#kf-preview{padding-top:22px}.kf-preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.kf-preview-heading .kf-kicker{font-size:8px;letter-spacing:1.5px;margin-bottom:5px}.kf-preview-heading h3{font-size:20px;font-family:Georgia,"Songti SC",serif;font-weight:400;margin:0}#kf-preview-notes{font-size:13px;letter-spacing:1px;margin:13px 0;color:#4c5942}#kf-audio-status{font-size:12px;color:#9c3424}.kf-piano-link{font-size:12px;text-underline-offset:4px}
.kf-explainer{display:grid;grid-template-columns:1fr 1.1fr;gap:85px;padding:65px 0 70px}.kf-explainer h2{font-family:Georgia,"Songti SC",serif;font-size:36px;line-height:1.2;font-weight:400;white-space:pre-line;margin:12px 0 18px;letter-spacing:-.8px}.kf-explainer>div>p:not(.kf-kicker){font-size:13px;line-height:1.9;color:var(--studio-muted);max-width:400px}.kf-explainer a{font-size:12px;text-underline-offset:4px}.kf-faq details{border-bottom:1px solid var(--studio-line);padding:16px 0}.kf-faq summary{font-size:13px;cursor:pointer;font-weight:500;min-height:24px}.kf-faq p{font-size:12px;line-height:1.9;color:var(--studio-muted);margin:12px 0}.kf-noscript{padding:20px;border:1px solid var(--studio-line)}
@media(max-width:850px){.kf-main{padding:0 20px}.kf-intro{padding-top:35px}.kf-tool{grid-template-columns:1fr}.kf-input-panel{border-right:0;border-bottom:1px solid var(--studio-line)}.kf-input-panel,.kf-results-panel{padding:24px}.kf-keyboard{height:215px;max-width:560px;margin-left:auto;margin-right:auto}.kf-explainer{gap:35px;padding:40px 0}.kf-results-panel .kf-empty{padding:15px}.kf-explainer h2{font-size:30px}}
@media(max-width:520px){.kf-main{padding:0 14px}.kf-intro{padding:30px 2px 23px}.kf-intro h1{font-size:36px;letter-spacing:-1px}.kf-intro>p:not(.kf-kicker){font-size:13px}.kf-tool{border-radius:12px}.kf-input-panel,.kf-results-panel{padding:18px}.kf-keyboard{height:173px;margin-top:18px}.kf-key span{font-size:11px}.kf-black span{font-size:8px}.kf-section-line h2{font-size:14px}.kf-primary{padding:10px 12px}.kf-entry input{font-size:14px;padding:10px}.kf-explainer{grid-template-columns:1fr;gap:22px}.kf-explainer h2{font-size:32px}.kf-explainer>div>p:not(.kf-kicker){max-width:none}#kf-results{max-height:300px}.kf-result{padding:11px;gap:5px}.kf-result strong{font-size:13px}.kf-preview-heading{gap:8px}.kf-preview-heading h3{font-size:18px}.kf-kicker{font-size:9px;letter-spacing:1.4px}}
@media(prefers-reduced-motion:reduce){.kf-key{transition:none}}
