:root{--indigo: #6366f1;--indigo-deep: #4338ca;--violet: #a855f7;--pink: #f472b6;--amber: #fbbf24;--mint: #34d399;--sky: #38bdf8;--danger: #f43f5e;--ink: #1c1b2e;--ink-soft: #55536e;--ink-faint: #8b89a6;--paper: #ffffff;--bg: #fbf7ff;--line: rgba(28, 27, 46, .1);--radius-lg: 28px;--radius: 18px;--radius-sm: 12px;--shadow-sm: 0 2px 0 rgba(28, 27, 46, .08);--shadow: 0 10px 30px rgba(99, 102, 241, .14);--shadow-lg: 0 24px 60px rgba(99, 102, 241, .22);--brand-gradient: linear-gradient(100deg, var(--indigo), var(--violet) 55%, var(--pink));--font: ui-rounded, "Hiragino Maru Gothic ProN", "Quicksand", -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", system-ui, sans-serif}@media(prefers-color-scheme:dark){:root{--ink: #f5f3ff;--ink-soft: #c3bedd;--ink-faint: #918cae;--paper: #221f36;--bg: #14121f;--line: rgba(255, 255, 255, .12);--shadow-sm: 0 2px 0 rgba(0, 0, 0, .4);--shadow: 0 10px 30px rgba(0, 0, 0, .4);--shadow-lg: 0 24px 60px rgba(0, 0, 0, .5)}}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before,body:after{content:"";position:fixed;z-index:-1;border-radius:50%;filter:blur(80px);opacity:.45;pointer-events:none}body:before{width:46vmax;height:46vmax;top:-16vmax;left:-12vmax;background:radial-gradient(circle,var(--indigo),transparent 70%)}body:after{width:40vmax;height:40vmax;right:-14vmax;bottom:-10vmax;background:radial-gradient(circle,var(--pink),transparent 70%)}img{max-width:100%;height:auto}.hidden{display:none!important}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.wrap{width:min(100% - 2rem,940px);margin-inline:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.1rem 0}.brand{display:inline-flex;align-items:center;gap:.55rem;font-weight:800;font-size:1.05rem;color:var(--ink);text-decoration:none}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;background:var(--brand-gradient);color:#fff;font-size:1.25rem;line-height:1;box-shadow:var(--shadow)}.site-nav{display:flex;align-items:center;gap:.4rem}.pill-link{padding:.4rem .9rem;border-radius:999px;font-size:.88rem;font-weight:700;color:var(--ink-soft);text-decoration:none;border:2px solid transparent;transition:background-color .18s,color .18s,border-color .18s}.pill-link:hover{background:color-mix(in srgb,var(--indigo) 12%,transparent);color:var(--indigo)}.pill-link.is-current{border-color:color-mix(in srgb,var(--indigo) 35%,transparent);color:var(--indigo)}.hero{text-align:center;padding:1.5rem 0 .5rem}.eyebrow{display:inline-flex;align-items:center;gap:.4rem;padding:.35rem .9rem;border-radius:999px;background:color-mix(in srgb,var(--amber) 22%,transparent);color:color-mix(in srgb,var(--ink) 88%,var(--amber));font-size:.82rem;font-weight:800;margin:0 0 .9rem}.hero h1{margin:0 0 .6rem;font-size:clamp(2.1rem,6vw,3.4rem);line-height:1.15;font-weight:900;letter-spacing:-.02em;background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{margin:0 auto;max-width:34em;color:var(--ink-soft);font-size:clamp(.98rem,2.2vw,1.1rem);font-weight:600;line-height:1.7}.play-card{position:relative;margin:1.6rem 0 2.5rem;padding:clamp(1.1rem,3vw,2rem);background:var(--paper);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--line)}.screen{display:flex;flex-direction:column;align-items:center;gap:1.4rem;animation:rise .4s ease-out}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.section-label{margin:0;font-size:.8rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}.clef-selection{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;width:100%}.clef-btn{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:flex-start;gap:.5rem;padding:1.3rem 1.4rem;border:none;border-radius:var(--radius);background:var(--brand-gradient);color:#fff;font-family:inherit;cursor:pointer;text-align:left;box-shadow:0 8px color-mix(in srgb,var(--indigo-deep) 70%,transparent),var(--shadow);transition:transform .12s ease,box-shadow .12s ease}.clef-btn:nth-child(2){background:linear-gradient(100deg,var(--sky),var(--indigo) 60%,var(--violet))}.clef-btn:hover{transform:translateY(-3px);box-shadow:0 11px color-mix(in srgb,var(--indigo-deep) 70%,transparent),var(--shadow-lg)}.clef-btn:active{transform:translateY(5px);box-shadow:0 3px color-mix(in srgb,var(--indigo-deep) 70%,transparent)}.clef-btn .glyph{position:absolute;right:.6rem;bottom:-1.4rem;font-size:5.5rem;line-height:1;opacity:.22;pointer-events:none;font-family:Times New Roman,serif}.clef-btn .label{font-size:1.3rem;font-weight:900}.clef-btn .sub{font-size:.85rem;font-weight:700;opacity:.85}.best-badge{align-self:flex-start;padding:.2rem .7rem;border-radius:999px;background:#00000040;color:#fff8d6;font-size:.8rem;font-weight:800}.segmented{display:inline-flex;gap:4px;padding:5px;border-radius:999px;background:color-mix(in srgb,var(--indigo) 10%,transparent)}.seg-btn{border:none;border-radius:999px;padding:.45rem 1.3rem;background:transparent;color:var(--ink-soft);font-family:inherit;font-size:.95rem;font-weight:800;cursor:pointer;transition:background-color .18s,color .18s}.seg-btn:hover{color:var(--indigo)}.seg-btn.active{background:var(--indigo);color:#fff;box-shadow:var(--shadow)}.field{display:flex;flex-direction:column;align-items:center;gap:.55rem}.hint{margin:0;font-size:.85rem;font-weight:600;color:var(--ink-faint)}#game-screen{display:flex;flex-direction:column;gap:1.1rem}.game-bar{display:flex;align-items:center;justify-content:space-between;gap:.8rem}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;width:100%}.stat{padding:.55rem .4rem;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--indigo) 8%,transparent);text-align:center}.stat .stat-key{display:block;font-size:.68rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.stat .stat-value{display:block;font-size:1.3rem;font-weight:900;font-variant-numeric:tabular-nums}#best-value{color:var(--amber)}#notation-container{background:#fff;border-radius:var(--radius);padding:.6rem;min-height:200px;display:flex;justify-content:center;align-items:center;border:1px solid var(--line);box-shadow:inset 0 0 0 1px #fff9,var(--shadow)}#notation-container svg{margin:0 auto;display:block;max-width:100%}#feedback{min-height:1.6rem;font-weight:800;font-size:1rem;text-align:center;transition:opacity .2s}#feedback.feedback-ok{color:var(--mint)}#feedback.feedback-err{color:var(--danger)}.note-buttons{display:grid;grid-template-columns:repeat(7,1fr);gap:.5rem}.note-buttons button{padding:.9rem .2rem;border:none;border-radius:var(--radius-sm);background:color-mix(in srgb,var(--indigo) 12%,var(--paper));color:var(--ink);font-family:inherit;font-size:1.15rem;font-weight:900;cursor:pointer;box-shadow:0 4px color-mix(in srgb,var(--indigo) 28%,transparent);transition:transform .1s ease,box-shadow .1s ease,background-color .2s}.note-buttons button:hover{background:color-mix(in srgb,var(--indigo) 20%,var(--paper))}.note-buttons button:active{transform:translateY(4px);box-shadow:none}.note-buttons button.correct{background:var(--mint);color:#05291c;animation:pop .4s}.note-buttons button.incorrect{background:var(--danger);color:#fff;animation:shake .4s}.piano-keyboard{position:relative;display:flex;width:100%;padding:8px;border-radius:var(--radius);background:linear-gradient(180deg,#2b2740,#17142a);box-shadow:var(--shadow)}.key{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;transition:transform .08s,background-color .15s}.key.white{flex:1;min-width:0;height:150px;margin:0 1.5px;border-radius:0 0 7px 7px;background:linear-gradient(180deg,#fff,#e8e6f0);box-shadow:0 3px #c8c5d8}.key.white:active,.key.white.active{transform:translateY(3px);box-shadow:none}.key.black{position:absolute;top:8px;width:4.6%;height:92px;border-radius:0 0 5px 5px;background:linear-gradient(180deg,#4a4560,#17142a);box-shadow:0 3px #0d0b18;z-index:2}.key.black:active,.key.black.active{transform:translateY(3px);box-shadow:none}.round-btn{display:grid;place-items:center;width:40px;height:40px;flex:0 0 auto;border:2px solid var(--line);border-radius:50%;background:var(--paper);color:var(--ink-soft);font-family:inherit;font-size:1.05rem;cursor:pointer;transition:transform .12s,border-color .18s,color .18s}.round-btn:hover{transform:scale(1.06);border-color:var(--indigo);color:var(--indigo)}.ghost-btn{padding:.5rem 1rem;border:2px solid var(--line);border-radius:999px;background:var(--paper);color:var(--ink-soft);font-family:inherit;font-size:.9rem;font-weight:800;cursor:pointer;transition:border-color .18s,color .18s}.ghost-btn:hover{border-color:var(--indigo);color:var(--indigo)}#new-record-toast{position:fixed;top:18%;left:50%;z-index:50;padding:.9rem 2rem;border-radius:999px;background:linear-gradient(120deg,var(--amber),var(--pink));color:#fff;font-size:clamp(1.1rem,3vw,1.6rem);font-weight:900;box-shadow:0 16px 44px #f472b680;transform:translate(-50%,-50%) scale(.8);opacity:0;pointer-events:none}#new-record-toast.pop{animation:recordPop 2.4s ease-out forwards}@keyframes recordPop{0%{opacity:0;transform:translate(-50%,-50%) scale(.4) rotate(-12deg)}15%{opacity:1;transform:translate(-50%,-50%) scale(1.1) rotate(2deg)}25%,85%{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}to{opacity:0;transform:translate(-50%,-50%) scale(.95)}}@keyframes pop{0%,to{transform:scale(1)}45%{transform:scale(1.12)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.section{margin:3.5rem 0}.section>h2{margin:0 0 .4rem;font-size:clamp(1.5rem,4vw,2.1rem);font-weight:900;letter-spacing:-.01em;text-align:center}.section>.lede{margin:0 auto 2rem;max-width:40em;text-align:center;color:var(--ink-soft);font-weight:600;line-height:1.75}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}.card{padding:1.5rem;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow)}.card h3{margin:.7rem 0 .4rem;font-size:1.12rem;font-weight:900}.card p{margin:0;color:var(--ink-soft);font-size:.95rem;font-weight:600;line-height:1.7}.card-emoji{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;font-size:1.4rem;background:color-mix(in srgb,var(--indigo) 14%,transparent)}.steps{counter-reset:step;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem;padding:0;margin:0;list-style:none}.steps li{position:relative;padding:1.5rem;border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);color:var(--ink-soft);font-weight:600;line-height:1.7}.steps li:before{counter-increment:step;content:counter(step);display:grid;place-items:center;width:34px;height:34px;margin-bottom:.6rem;border-radius:50%;background:var(--brand-gradient);color:#fff;font-weight:900}.steps strong{display:block;margin-bottom:.3rem;color:var(--ink);font-size:1.05rem;font-weight:900}.faq{display:grid;gap:.7rem}.faq details{border-radius:var(--radius);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow-sm);overflow:hidden}.faq summary{padding:1.05rem 1.3rem;font-weight:800;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";color:var(--indigo);font-size:1.3rem;font-weight:900;transition:transform .2s}.faq details[open] summary:after{transform:rotate(45deg)}.faq .answer{padding:0 1.3rem 1.2rem;margin:0;color:var(--ink-soft);font-weight:600;line-height:1.75}.cta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem;padding:clamp(1.4rem,4vw,2.2rem);border-radius:var(--radius-lg);background:var(--brand-gradient);color:#fff;box-shadow:var(--shadow-lg)}.cta h2{margin:0 0 .3rem;font-size:clamp(1.3rem,3.5vw,1.8rem);font-weight:900}.cta p{margin:0;opacity:.92;font-weight:600}.cta .btn{display:inline-block;padding:.8rem 1.6rem;border-radius:999px;background:#fff;color:var(--indigo-deep);font-weight:900;text-decoration:none;box-shadow:0 6px #0000002e;transition:transform .12s}.cta .btn:active{transform:translateY(4px);box-shadow:none}.lang-nudge{display:flex;align-items:center;justify-content:center;gap:.8rem;flex-wrap:wrap;margin:1rem 0 0;padding:.7rem 1rem;border-radius:999px;background:color-mix(in srgb,var(--amber) 20%,transparent);font-size:.9rem;font-weight:700}.lang-nudge a{color:var(--indigo)}.lang-nudge button{border:none;background:none;color:var(--ink-faint);font-family:inherit;font-size:1.1rem;cursor:pointer}.site-footer{margin-top:4rem;padding:2rem 0 3rem;border-top:1px solid var(--line);text-align:center;color:var(--ink-faint);font-size:.85rem;font-weight:600}.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:.3rem 1.1rem;margin-bottom:.9rem}.site-footer a{color:var(--ink-soft);text-decoration:none}.site-footer a:hover{color:var(--indigo);text-decoration:underline}.page-title{margin:2rem 0 .5rem;font-size:clamp(1.8rem,5vw,2.6rem);font-weight:900;text-align:center;background:var(--brand-gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.content{max-width:44rem;margin:1.5rem auto 0;padding:clamp(1.3rem,4vw,2.4rem);border-radius:var(--radius-lg);background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);line-height:1.85;color:var(--ink-soft);font-weight:500}.content h2{margin:2rem 0 .6rem;padding-bottom:.4rem;border-bottom:2px solid color-mix(in srgb,var(--indigo) 20%,transparent);color:var(--ink);font-size:1.2rem;font-weight:900}.content h2:first-child{margin-top:0}.content a{color:var(--indigo)}.content ul{padding-left:1.2rem}.content li{margin:.3rem 0}@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}.note-buttons{grid-template-columns:repeat(4,1fr)}.piano-keyboard,.input-toggle{display:none!important}.note-buttons{display:grid!important}.clef-btn .glyph{font-size:4.2rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
