:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;overflow:hidden}#root{width:100%;height:100%}.App{width:100vw;height:100vh;overflow:hidden;position:relative;background:#0b0212}canvas{display:block;width:100%;height:100%;position:relative;z-index:1;background:transparent}.background-overlay{position:absolute;inset:0;z-index:2;transition:opacity .2s linear;pointer-events:none;display:flex;align-items:flex-start;padding-top:2rem;color:#fff;text-shadow:0 4px 12px rgba(0,0,0,.35)}.typed-text{font-family:Courier New,Courier,monospace;font-size:clamp(2rem,4vw,3rem);font-weight:600;letter-spacing:.12em;position:relative;display:inline-flex;flex-direction:column;gap:.35rem}.typed-cursor{display:inline-block;width:.1em;margin-left:.15em}.typed-line{display:block;min-height:1.25em}.space-hint{margin-top:1.5rem;font-family:Courier New,Courier,monospace;font-size:.85rem;letter-spacing:.28em;text-transform:uppercase;opacity:.65}.hint-overlay{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-family:Courier New,Courier,monospace;letter-spacing:.28em;text-transform:uppercase;color:#fff2e4e6;opacity:.85;pointer-events:none;z-index:3;text-align:center;white-space:nowrap;transition:color .32s ease,opacity .32s ease,text-shadow .32s ease}.hint-overlay.is-requesting{color:#ffecc8d9;animation:hint-breathe 1.6s ease-in-out infinite}.hint-overlay.is-listening{color:#ffd6aafa;text-shadow:0 0 14px rgba(255,180,120,.55),0 0 28px rgba(255,140,80,.35);animation:hint-pulse 1.15s ease-in-out infinite}@keyframes hint-breathe{0%,to{opacity:.55}50%{opacity:.95}}@keyframes hint-pulse{0%,to{opacity:.8;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.06)}}.image-caption{font-family:Courier New,Courier,monospace;font-size:clamp(.85rem,1.6vw,1.1rem);letter-spacing:.16em;color:#fff5e9f5;text-shadow:0 1px 6px rgba(0,0,0,.65);white-space:nowrap;text-align:center;padding:.35em .9em;border-radius:999px;background:#12061a9e;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);box-shadow:0 6px 20px #0006;opacity:0;transform:translateY(6px);transition:opacity .36s ease,transform .36s ease;pointer-events:none;-webkit-user-select:none;user-select:none}.image-caption.is-visible{opacity:1;transform:translateY(0)}.exit-button{position:absolute;top:1.25rem;right:1.25rem;z-index:10;font-family:Courier New,Courier,monospace;font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:#fff2e4d9;background:#12061a8c;border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:.5rem 1rem;cursor:pointer;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .22s ease,color .22s ease,transform .22s ease}.exit-button:hover{background:#260e34bf;color:#fff;transform:translateY(-1px)}.exit-button:active{transform:translateY(0)}.confetti-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}.celebration-banner{position:absolute;top:8%;left:50%;transform:translate(-50%);z-index:6;display:flex;flex-direction:column;align-items:center;gap:.4rem;text-align:center;pointer-events:none;animation:celebration-in .9s cubic-bezier(.2,.8,.3,1) both}.celebration-title{font-family:Courier New,Courier,monospace;font-size:clamp(1.6rem,4.5vw,3rem);font-weight:700;letter-spacing:.12em;color:#fff4e6;text-shadow:0 2px 18px rgba(255,150,90,.55),0 0 42px rgba(255,110,160,.4)}.celebration-heart{font-size:clamp(1.4rem,3.5vw,2.2rem);color:#ff8fb0;text-shadow:0 0 20px rgba(255,130,170,.7);animation:heart-beat 1.1s ease-in-out infinite}@keyframes celebration-in{0%{opacity:0;transform:translate(-50%) translateY(-14px) scale(.9)}to{opacity:1;transform:translate(-50%) translateY(0) scale(1)}}@keyframes heart-beat{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.feedback-backdrop{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;background:#06020c99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:fade-in .24s ease}.feedback-card{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2.25rem 2.5rem;border-radius:20px;background:#14081eeb;border:1px solid rgba(255,255,255,.12);box-shadow:0 24px 60px #00000080;animation:pop-in .26s cubic-bezier(.2,.8,.3,1)}.feedback-title{font-family:Courier New,Courier,monospace;font-size:1.4rem;letter-spacing:.14em;color:#fff5e9f5}.feedback-actions{display:flex;gap:1rem}.feedback-btn{font-family:Courier New,Courier,monospace;font-size:.95rem;letter-spacing:.2em;text-transform:uppercase;padding:.65rem 2rem;border-radius:999px;border:1px solid rgba(255,255,255,.18);cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease}.feedback-btn:hover{transform:translateY(-2px)}.feedback-yes{color:#14210f;background:linear-gradient(180deg,#ffd6aa,#ff9f7a);border-color:transparent}.feedback-no{color:#fff2e4e6;background:#ffffff0f}.feedback-no:hover{background:#ffffff1f}.result-backdrop{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:2rem;background:#040108d1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);cursor:pointer;animation:fade-in .24s ease}.result-image{max-width:min(88vw,720px);max-height:82vh;object-fit:contain;border-radius:16px;box-shadow:0 24px 70px #0009;opacity:0;transition:opacity .4s ease}.result-image.is-loaded{opacity:1;animation:pop-in .3s cubic-bezier(.2,.8,.3,1)}.result-frame{position:relative;display:flex;align-items:center;justify-content:center}.result-frame.is-loading{width:min(80vw,440px);height:min(78vh,560px)}.image-shimmer{position:absolute;inset:0;border-radius:16px;background:linear-gradient(100deg,#ffffff0a 30%,#ffffff24,#ffffff0a 70%);background-size:200% 100%;animation:shimmer-sweep 1.3s linear infinite;border:1px solid rgba(255,255,255,.08)}.loading-shimmer{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;background:linear-gradient(100deg,#0b0212 30%,#1d1030,#0b0212 70%);background-size:200% 100%;animation:shimmer-sweep 1.4s linear infinite;transition:opacity .55s ease}.loading-shimmer.is-ready{opacity:0;pointer-events:none}.loading-label{font-family:Courier New,Courier,monospace;font-size:.8rem;letter-spacing:.3em;text-transform:uppercase;color:#fff2e4a6;animation:hint-breathe 1.6s ease-in-out infinite}@keyframes shimmer-sweep{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}
