:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.5;font-weight:400;color-scheme:dark;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}.piano-container{position:relative;display:flex;flex-direction:column;align-items:center;overflow:visible}.piano{position:relative;display:flex;background:var(--piano-body);padding:15px 10px 10px;border-radius:8px;border-top:1px solid var(--piano-border);box-shadow:0 10px 30px #00000080,0 5px 15px #0000004d;transition:background .3s ease,border-color .3s ease}.outline-theme .piano{border:2px solid var(--piano-border);border-radius:10px;box-shadow:none;padding:20px 15px 15px}.piano-key{position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;transition:transform .08s ease-out,box-shadow .08s ease-out,background .3s ease}.white-key{width:50px;height:180px;background:var(--white-key);border:1px solid var(--white-key-border);border-radius:0 0 5px 5px;margin:0 1px;box-shadow:0 4px 8px #0003,inset 0 -2px 4px #0000001a,inset 0 1px #fff}.white-key:hover{background:var(--white-key-hover);box-shadow:0 6px 12px #00000040,0 0 15px var(--accent-glow),inset 0 -2px 4px #0000001a,inset 0 1px #fff}.outline-theme .white-key{border:2px solid var(--white-key-border);box-shadow:none;border-radius:0 0 6px 6px}.outline-theme .white-key:hover{background:var(--white-key-hover);box-shadow:none;border-color:var(--accent)}.black-key{position:absolute;width:35px;height:110px;background:var(--black-key);border-radius:0 0 4px 4px;z-index:2;top:15px;box-shadow:0 4px 8px #0006,inset 0 -2px 3px #ffffff0d,inset 0 1px #ffffff1a}.black-key:hover{background:var(--black-key-hover);box-shadow:0 6px 10px #00000080,0 0 10px var(--accent-glow),inset 0 -2px 3px #ffffff0d,inset 0 1px #ffffff26}.outline-theme .black-key{box-shadow:none;border-radius:0 0 5px 5px}.outline-theme .black-key:hover{box-shadow:none}.key-label{position:absolute;bottom:10px;left:50%;transform:translate(-50%);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:11px;font-weight:400;opacity:.6;pointer-events:none;transition:color .3s ease}.white-key .key-label{color:var(--white-key-label)}.black-key .key-label{color:var(--black-key-label);bottom:8px;font-size:10px}@media(max-width:600px){.white-key{width:40px;height:150px}.black-key{width:28px;height:90px}.key-label{font-size:9px}}.piano-key{transform-origin:top center}.piano-key.pressed{transform:scaleY(.97)}.white-key.pressed{background:var(--white-key-pressed);box-shadow:0 2px 4px #00000026,0 0 20px var(--accent-glow),0 0 40px var(--accent-glow),inset 0 2px 4px #0000001a}.black-key.pressed{background:var(--black-key-pressed);box-shadow:0 2px 4px #0000004d,0 0 15px var(--accent-glow),0 0 30px var(--accent-glow),inset 0 2px 3px #0003}.outline-theme .white-key.pressed{background:var(--white-key-pressed);box-shadow:none;border-color:var(--accent)}.outline-theme .black-key.pressed{background:var(--black-key-pressed);box-shadow:none}.ripple{position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.6) 0%,transparent 70%);transform:translate(-50%,-50%) scale(0);animation:ripple-expand .4s ease-out forwards;pointer-events:none}.black-key .ripple{background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%)}.outline-theme .ripple{background:radial-gradient(circle,var(--accent-glow-strong) 0%,transparent 70%)}.outline-theme .black-key .ripple{background:radial-gradient(circle,rgba(255,255,255,.4) 0%,transparent 70%)}@keyframes ripple-expand{0%{transform:translate(-50%,-50%) scale(0);opacity:1}to{transform:translate(-50%,-50%) scale(15);opacity:0}}@keyframes glow-pulse{0%,to{box-shadow:0 4px 8px #0003,0 0 15px var(--accent-glow)}50%{box-shadow:0 4px 8px #0003,0 0 25px var(--accent-glow-strong)}}.piano-container:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:120%;height:200px;background:radial-gradient(ellipse at center bottom,var(--accent-glow) 0%,transparent 70%);pointer-events:none;z-index:-1;opacity:.3}.outline-theme .piano-container:before{display:none}.piano-key:active{transition:transform .02s ease-out,box-shadow .02s ease-out}.piano-key{transition:transform .1s cubic-bezier(.25,.46,.45,.94),box-shadow .1s ease-out,background .1s ease-out}.painting-canvas-container{position:relative;width:100%;max-width:500px;aspect-ratio:1 / 1;margin:0 auto 40px;overflow:hidden;background:#f5f0e8;min-width:200px;min-height:200px}.painting-image{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover}.painting-image.current{z-index:1}.painting-image.next{z-index:2;opacity:0;transition:opacity 3s ease-in-out}.painting-image.next.fading-in{opacity:1}.painting-collecting{position:absolute;top:12px;right:12px;z-index:10}.painting-collecting-pulse{width:10px;height:10px;background:var(--accent, #cc785c);border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.2)}}@media(max-width:600px){.painting-canvas-container{max-width:350px;margin-bottom:30px}}@media(max-height:700px){.painting-canvas-container{max-width:300px;margin-bottom:20px}}@media(max-width:400px){.painting-canvas-container{max-width:280px;margin-bottom:20px}}@media(max-width:500px)and (max-height:800px){.painting-canvas-container{max-width:280px;margin-bottom:15px}}.debug-toggle{position:fixed;top:20px;right:20px;width:28px;height:28px;border-radius:50%;border:2px solid var(--accent, #cc785c);background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:4px;opacity:.4;transition:all .2s ease;z-index:100}.debug-toggle:hover{opacity:.8;transform:scale(1.1)}.debug-toggle.active{opacity:1;background:var(--accent, #cc785c)}.debug-toggle svg{width:16px;height:16px;color:var(--accent, #cc785c)}.debug-toggle.active svg{color:#fff}.status-bar{position:fixed;bottom:0;left:0;right:0;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:8px 16px;z-index:100}.status-bar-content{display:flex;align-items:center;gap:20px;max-width:1200px;margin:0 auto;font-size:12px;font-family:SF Mono,Monaco,Inconsolata,monospace}.status-item{display:flex;align-items:center;gap:6px;color:#ffffffe6}.status-label{color:#ffffff80;text-transform:uppercase;font-size:10px;letter-spacing:.5px}.status-value{color:#ffffffe6}.status-item.prompt{flex:1;min-width:0}.status-item.prompt .prompt-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px;opacity:.7}.status-item.error .status-value{color:#ff6b6b}.status-indicator{width:8px;height:8px;border-radius:50%;background:#ffffff4d}.status-indicator.idle{background:#ffffff4d}.status-indicator.collecting{background:#ffd93d;animation:pulse-indicator 1.5s ease-in-out infinite}.status-indicator.generating{background:#6bcb77;animation:pulse-indicator .8s ease-in-out infinite}.status-indicator.crossfading{background:#4d96ff;animation:pulse-indicator 1s ease-in-out infinite}@keyframes pulse-indicator{0%,to{opacity:.6}50%{opacity:1}}.reset-button{margin-left:auto;padding:4px 12px;background:transparent;border:1px solid rgba(255,255,255,.3);border-radius:4px;color:#ffffffb3;font-size:11px;cursor:pointer;transition:all .2s ease}.reset-button:hover{background:#ffffff1a;border-color:#ffffff80;color:#fff}.status-bar-debug,.status-bar-images{display:flex;align-items:center;gap:16px;max-width:1200px;margin:6px auto 0;font-size:11px;font-family:SF Mono,Monaco,Inconsolata,monospace;padding-top:6px;border-top:1px solid rgba(255,255,255,.1)}.debug-item{display:flex;align-items:center;gap:4px}.debug-label{color:#fff6;font-size:10px}.debug-value{color:#fff9}.debug-value.active{color:#6bcb77;font-weight:700}.debug-value.mono{font-size:9px;color:#ffffff80;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.welcome-overlay{position:fixed;inset:0;z-index:1000;background:#f5f0e8;display:flex;align-items:center;justify-content:center;overflow:hidden;opacity:1;transition:opacity .8s ease}.welcome-content{text-align:center;z-index:2;transition:opacity .4s ease,transform .4s ease}.welcome-text{font-family:Georgia,serif;font-size:clamp(3rem,10vw,5rem);font-weight:300;color:#d97757;letter-spacing:.25em;text-transform:uppercase;margin:0;opacity:.85}.welcome-piano-hint{position:absolute;bottom:12%;left:50%;transform:translate(-50%);width:70%;max-width:600px;height:100px;opacity:.12;transition:opacity .4s ease;background:repeating-linear-gradient(to right,#C9BBA8 0px,#C9BBA8 32px,transparent 32px,transparent 34px);border-radius:4px 4px 0 0;mask-image:linear-gradient(to bottom,transparent 0%,black 30%,black 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,black 30%,black 100%)}.welcome-overlay.revealing{opacity:0;pointer-events:none}.welcome-overlay.revealing .welcome-content{opacity:0;transform:translateY(-10px)}.welcome-overlay.revealing .welcome-piano-hint{opacity:0}*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;width:100%}body{min-height:100vh;background:var(--bg-gradient);transition:background .5s ease}#root{display:flex;justify-content:center;align-items:center;padding:20px;overflow:auto}.app{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1;width:100%;max-width:800px;padding-bottom:20px}.credit{margin-top:30px;font-family:DM Sans,sans-serif;font-size:16px;letter-spacing:.01em;text-align:center}.credit-light{color:#aea29a;font-weight:400}.credit-bold{color:#776854;font-weight:700}@media(max-height:700px){.credit{margin-top:15px;margin-bottom:10px}}@media(max-width:600px){.credit{font-size:14px;margin-top:20px}}
