.orb-container{position:relative}.orb-eyes{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:6;display:flex;align-items:center;justify-content:center}.orb-eye-wrap{width:32px;height:46px;margin:0 10px;display:flex;align-items:center;justify-content:center;animation:eyeLook 6.6s ease-in-out infinite}.orb-eye-wrap.delay{animation-delay:0s}.orb-eye{width:19px;height:36px;background:#f1e8ff;border-radius:50%/68%;box-shadow:0 0 6px #f0ebffcc,0 0 16px #bea0ff59;animation:eyeBlink 3.8s ease-in-out infinite;overflow:visible}.orb-container.idle .orb-eye{background:#fff2e6;box-shadow:0 0 6px #ffd5b3b3,0 0 16px #e9c0ff47}@keyframes eyeLook{0%,20%{transform:translate(0)}28%{transform:translate(-6px)}40%{transform:translate(-6px)}60%{transform:translate(6px)}72%{transform:translate(6px)}86%,to{transform:translate(0)}}@keyframes eyeBlink{0%,92%,to{transform:scaleY(1)}96%{transform:scaleY(.2)}}.orb-main:before{content:"";position:absolute;top:-8%;left:-8%;width:60%;height:60%;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff9,#fff0);filter:blur(8px);pointer-events:none}.orb-main:after{content:"";position:absolute;bottom:-10%;left:10%;width:80%;height:50%;border-radius:50%;background:radial-gradient(circle,#0000001f,#0000);filter:blur(12px);pointer-events:none}.orb-container{position:relative;width:200px;height:200px;display:flex;align-items:center;justify-content:center;margin:0 auto}.orb-scale{width:180px;height:180px;display:flex;align-items:center;justify-content:center;position:relative;z-index:2;transform-origin:center;will-change:transform}.orb-haze{position:absolute;top:-42px;right:-42px;bottom:-42px;left:-42px;z-index:1;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .3s ease}.orb-container.idle .orb-haze{opacity:1;background:radial-gradient(circle at 40% 35%,#86b8d342,#86b8d329 46%,#86b8d314 72%,#86b8d300 86%);filter:blur(38px)}.orb-main{position:relative;width:180px;height:180px;border-radius:50%;transition:transform .8s var(--animation-easing);transform-style:preserve-3d}.orb-container.idle .orb-main{animation:orbBreathe 4s ease-in-out infinite}.orb-container.listening .orb-main{animation:orbPulse 1.6s ease-in-out infinite}.orb-container.listening .orb-main{--rotate-speed: 6s}.orb-wave{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%;border:6px solid rgba(120,190,255,.95);pointer-events:none;z-index:5}.orb-wave-1{width:180px;height:180px;animation:waveExpand 1.4s ease-out infinite}.orb-wave-2{width:180px;height:180px;animation:waveExpand 1.4s ease-out infinite .45s}.orb-wave-3{width:180px;height:180px;animation:waveExpand 1.4s ease-out infinite .9s}@keyframes waveExpand{0%{width:180px;height:180px;opacity:.95;border-width:5px}to{width:320px;height:320px;opacity:.25;border-width:1px}}.orb-container.listening .speaking{animation:orbRotate 4s linear infinite,orbPulseStrong 1.2s ease-in-out infinite}.orb-container.confirm .orb-main,.orb-container.output .orb-main{animation:orbBlink 3s ease-in-out infinite}.orb-gradient{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:radial-gradient(circle at 30% 30%,#e6b8ffe6,#c8a0ffb3 40%,#b48cff80 70%,#a078ff4d);filter:blur(1px) hue-rotate(var(--hue, 0deg)) saturate(var(--sat, 1));transition:background .8s ease}.orb-overlay{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;pointer-events:none;mix-blend-mode:screen;opacity:0}.orb-container.idle .orb-overlay{opacity:1;background:linear-gradient(135deg,#ffd5b373,#e9c0ff66);filter:blur(12px)}.orb-container.idle .orb-gradient{background:radial-gradient(circle at 35% 30%,#ffd5b3b3,#f3c8dc73 45%,#e9c0ff66 75%,#e9c0ff47)}.orb-container.listening .orb-gradient{background:radial-gradient(circle at 30% 30%,#a0d2ff,#8cb4fff2 40%,#c8b4ffd9 70%,#dcc8ff99)}.orb-container.processing .orb-gradient{background:radial-gradient(circle at 30% 30%,#ffc8dc,#ffb4c8e6 40%,#ffd2beb3 70%,#ffdcc866)}.orb-glow{position:absolute;top:-20px;right:-20px;bottom:-20px;left:-20px;border-radius:50%;background:radial-gradient(circle,#e6b8ff4d,#e6b8ff00 70%);filter:blur(25px);opacity:var(--glow, .6);transition:opacity .8s ease}.orb-container.listening .orb-glow{opacity:1;background:radial-gradient(circle,#a0d2ffb3,#a0d2ff00 70%);animation:glowPulse 2s ease-in-out infinite}.orb-container.idle .orb-glow{opacity:0;background:transparent;animation:none}.orb-container.confirm .orb-gradient,.orb-container.output .orb-gradient{background:radial-gradient(circle at 35% 30%,#ffd5b3b3,#f3c8dc73 45%,#e9c0ff66 75%,#e9c0ff47)}.orb-container.confirm .orb-overlay,.orb-container.output .orb-overlay{opacity:1;background:linear-gradient(135deg,#ffd5b373,#e9c0ff66);filter:blur(12px)}.orb-container.confirm .orb-glow,.orb-container.output .orb-glow{opacity:0;background:transparent;animation:none}.orb-container.processing .orb-glow{opacity:.9;background:radial-gradient(circle,#ffbed266,#ffbed200 70%)}.orb-container.no_options .orb-gradient{background:radial-gradient(circle at 35% 30%,#ffd5b3b3,#f3c8dc73 45%,#e9c0ff66 75%,#e9c0ff47)}.orb-container.no_options .orb-overlay{opacity:1;background:linear-gradient(135deg,#ffd5b373,#e9c0ff66);filter:blur(12px)}.orb-container.no_options .orb-glow{opacity:0;background:transparent;animation:none}.orb-particle{position:absolute;border-radius:50%;mix-blend-mode:screen;filter:blur(8px);transition:all .8s var(--animation-easing)}.orb-particle-1{width:60px;height:60px;top:20%;left:25%;background:radial-gradient(circle,#b4c8ffcc,#b4c8ff00)}.orb-particle-2{width:80px;height:80px;top:50%;left:50%;transform:translate(-50%,-50%);background:radial-gradient(circle,#e6b8ffe6,#e6b8ff00)}.orb-particle-3{width:50px;height:50px;bottom:25%;right:20%;background:radial-gradient(circle,#c8a0ffb3,#c8a0ff00)}.orb-particle-4{width:70px;height:70px;top:35%;right:15%;background:radial-gradient(circle,#dcc8ff99,#dcc8ff00)}.orb-particle-5{width:55px;height:55px;bottom:20%;left:30%;background:radial-gradient(circle,#beb4ffb3,#beb4ff00)}.orb-particle-6{width:45px;height:45px;top:15%;left:55%;background:radial-gradient(circle,#d2beff99,#d2beff00)}.orb-particle-7{width:65px;height:65px;top:60%;left:20%;background:radial-gradient(circle,#b4aaff80,#b4aaff00)}.orb-particle-8{width:75px;height:75px;bottom:30%;right:35%;background:radial-gradient(circle,#c8b4ffcc,#c8b4ff00)}.orb-container.idle .orb-particle-1{top:28%;left:22%;width:70px;height:70px;background:radial-gradient(circle,#ffd5b38c,#ffd5b300)}.orb-container.idle .orb-particle-2{top:36%;left:56%;width:88px;height:88px;background:radial-gradient(circle,#e9c0ff80,#e9c0ff00)}.orb-container.idle .orb-particle-3{bottom:26%;right:26%;width:64px;height:64px;background:radial-gradient(circle,#e9c0ff38,#e9c0ff00)}.orb-container.idle .orb-particle-4{top:22%;right:18%;width:60px;height:60px;background:radial-gradient(circle,#ffa1002e,#ffa10000)}.orb-container.idle .orb-particle-5{bottom:18%;left:24%;width:62px;height:62px;background:radial-gradient(circle,#ffd5b352,#ffd5b300)}.orb-container.idle .orb-particle-6{top:18%;left:48%;width:50px;height:50px;background:radial-gradient(circle,#e9c0ff38,#e9c0ff00)}.orb-container.idle .orb-particle-7{top:58%;left:30%;width:70px;height:70px;background:radial-gradient(circle,#ffd5b33d,#ffd5b300)}.orb-container.idle .orb-particle-8{bottom:32%;right:38%;width:80px;height:80px;background:radial-gradient(circle,#e9c0ff47,#e9c0ff00)}.orb-container.listening .orb-particle-1{animation:orbitParticle1 6s linear infinite}.orb-container.listening .orb-particle-2{animation:orbitParticle2 7s linear infinite}.orb-container.listening .orb-particle-3{animation:orbitParticle3 5s linear infinite}.orb-container.listening .orb-particle-4{animation:orbitParticle4 8s linear infinite}.orb-container.listening .orb-particle-5{animation:orbitParticle5 6.5s linear infinite}.orb-container.listening .orb-particle-6{animation:orbitParticle6 7.5s linear infinite}.orb-container.listening .orb-particle-7{animation:orbitParticle7 5.5s linear infinite}.orb-container.listening .orb-particle-8{animation:orbitParticle8 9s linear infinite}.orb-container.processing .orb-particle{animation:particleDrift 4s ease-in-out infinite;filter:blur(12px)}@keyframes orbBreathe{0%,to{transform:scale(1);opacity:.9}50%{transform:scale(1.05);opacity:1}}@keyframes orbRotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes orbPulse{0%,to{filter:brightness(1)}50%{filter:brightness(1.15)}}@keyframes orbPulseStrong{0%,to{transform:scale(1);filter:brightness(1.05)}50%{transform:scale(1.08);filter:brightness(1.25)}}@keyframes orbBlink{0%,to{opacity:.85}50%{opacity:1}}@keyframes glowPulse{0%,to{transform:scale(1);opacity:.8}50%{transform:scale(1.1);opacity:1}}@keyframes orbitParticle1{0%{transform:rotate(0) translate(40px) rotate(0)}to{transform:rotate(360deg) translate(40px) rotate(-360deg)}}@keyframes orbitParticle2{0%{transform:translate(-50%,-50%) rotate(0) translate(30px) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg) translate(30px) rotate(-360deg)}}@keyframes orbitParticle3{0%{transform:rotate(0) translate(35px) rotate(0)}to{transform:rotate(-360deg) translate(35px) rotate(360deg)}}@keyframes orbitParticle4{0%{transform:rotate(0) translate(45px) rotate(0)}to{transform:rotate(360deg) translate(45px) rotate(-360deg)}}@keyframes orbitParticle5{0%{transform:rotate(0) translate(38px) rotate(0)}to{transform:rotate(-360deg) translate(38px) rotate(360deg)}}@keyframes orbitParticle6{0%{transform:rotate(0) translate(42px) rotate(0)}to{transform:rotate(360deg) translate(42px) rotate(-360deg)}}@keyframes orbitParticle7{0%{transform:rotate(0) translate(33px) rotate(0)}to{transform:rotate(-360deg) translate(33px) rotate(360deg)}}@keyframes orbitParticle8{0%{transform:rotate(0) translate(50px) rotate(0)}to{transform:rotate(360deg) translate(50px) rotate(-360deg)}}@keyframes particleDrift{0%,to{transform:translate(0)}25%{transform:translate(5px,-8px)}50%{transform:translate(-5px,5px)}75%{transform:translate(8px,3px)}}.picture-board{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg);z-index:100;display:flex;flex-direction:column;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.picture-board-header{padding:20px 20px 10px;background:var(--color-bg);position:sticky;top:0;z-index:10}.back-button{font-size:16px;color:var(--color-text);padding:8px 12px;border-radius:8px;transition:background .2s ease;margin-bottom:12px;display:inline-block}.back-button:active{background:#0000000d}.picture-board-title{font-size:18px;color:var(--color-text);text-align:center;font-weight:500;margin:0}.picture-board-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:16px;padding:20px;flex:1}.picture-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px 16px;background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014;transition:all .3s var(--animation-easing);min-height:140px;cursor:pointer}.picture-card:active{transform:scale(.95);box-shadow:0 4px 12px #0000001f}.picture-card-icon{font-size:48px;line-height:1}.picture-card-label{font-size:15px;color:var(--color-text);text-align:center;font-weight:500;line-height:1.3}@media (min-width: 640px){.picture-board-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:20px;padding:30px}.picture-card{min-height:160px;padding:28px 20px}.picture-card-icon{font-size:56px}.picture-card-label{font-size:16px}}.app{width:100%;height:100vh;display:flex;flex-direction:column;background:linear-gradient(to bottom,#fafafa,#f5f5f5);overflow:hidden;position:relative;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.processing-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff9;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);pointer-events:none;z-index:20;display:flex;align-items:center;justify-content:center}.spinner{width:36px;height:36px;border:3px solid rgba(106,68,255,.15);border-top-color:#6a44ffe6;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.top-bar{position:absolute;top:20px;right:20px;z-index:10;padding-top:env(safe-area-inset-top);display:flex;flex-direction:column;align-items:flex-end;gap:10px}.language-toggle{font-size:16px;font-weight:500;color:var(--color-text-muted);padding:8px 16px;border-radius:20px;background:#fff;box-shadow:0 2px 8px #00000014;transition:all .3s var(--animation-easing)}.language-toggle:active{transform:scale(.95);background:#f5f5f5}.picture-board-toggle{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-muted);background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014;transition:all .3s var(--animation-easing)}.picture-board-toggle:active{transform:scale(.95);background:#f5f5f5}.main-content{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:calc(100vh - 120px);padding:clamp(8px,3vh,24px) 16px 120px;gap:clamp(14px,6vh,40px);position:relative}.orb-wrap{position:relative;display:flex;align-items:center;justify-content:center}.state-hint{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%);font-size:clamp(13px,1.8vw,16px);color:#3c4150d9;background:transparent;padding:0;border-radius:0;box-shadow:none;text-shadow:0 1px 8px rgba(180,200,255,.7),0 2px 18px rgba(160,180,255,.4);letter-spacing:.2px;animation:hintFloatIn .35s ease-out;min-width:240px;max-width:60vw;text-align:center;line-height:1.35;white-space:normal;text-wrap:balance}@keyframes hintFloatIn{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.realtime-transcript{position:relative;margin-top:clamp(8px,2vh,16px);max-width:80%;padding:15px 25px;background:#fffffff2;border-radius:20px;box-shadow:0 8px 32px #0000001f;z-index:10;animation:fadeIn .3s var(--animation-easing);pointer-events:none}.realtime-text{font-size:clamp(16px,2.2vw,20px);font-weight:600;color:var(--color-text);margin:0;line-height:1.45;text-align:center;min-height:28px}.main-text{text-align:center;max-width:600px;animation:fadeIn .6s var(--animation-easing)}.welcome-text{font-size:28px;font-weight:600;color:var(--color-text);margin:0 0 12px;line-height:1.3}.brand-name{background:linear-gradient(135deg,#ffd5b3,#e9c0ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:700}.brand-exclaim{background:linear-gradient(135deg,#ffd5b3,#e9c0ff);-webkit-background-clip:text;background-clip:text;color:transparent;font-weight:800;margin-left:2px}.subtitle-text{font-size:18px;color:var(--color-text-muted);margin:0;line-height:1.5}.confirm-text{font-size:22px;color:var(--color-text);margin:0;line-height:1.5;font-weight:500}.output-prefix{font-size:16px;color:var(--color-text-muted);margin:0 0 12px}.output-sentence{font-size:clamp(22px,5.2vw,32px);font-weight:600;color:var(--color-text);margin:0;line-height:1.3}.output-row{display:inline-flex;align-items:center;gap:12px}.replay-button{width:36px;height:36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#1f1f1f;color:#fff;box-shadow:0 6px 18px #00000029;border:none;cursor:pointer;transition:transform .15s ease,filter .15s ease}.replay-button:hover{filter:brightness(1.05)}.replay-button:active{transform:scale(.94)}.action-buttons{display:flex;gap:16px;animation:fadeIn .6s var(--animation-easing)}.action-button{min-width:120px;padding:16px 32px;font-size:18px;font-weight:500;border-radius:24px;transition:all .3s var(--animation-easing);box-shadow:0 4px 12px #0000001f}.action-button-yes{background:#1f1f1f;color:#fff}.action-button-no{background:#fff;color:var(--color-text)}.action-button-try-again,.action-button-restart{background:#1f1f1f;color:#fff}.action-button:active{transform:scale(.95)}.bottom-bar{position:fixed;bottom:0;left:0;right:0;padding:20px 20px calc(20px + env(safe-area-inset-bottom));display:flex;justify-content:center;background:linear-gradient(to top,#fafafa,#fafafa00);pointer-events:none}.main-button{width:88px;height:88px;border-radius:50%;background:#1f1f1f;color:#fff;box-shadow:0 10px 24px #0000002e;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;pointer-events:auto;display:flex;align-items:center;justify-content:center;border:none;cursor:pointer;flex-shrink:0}.main-button:active:not(:disabled){transform:scale(.95);box-shadow:0 4px 12px #e6b8ff4d}.main-button:disabled{opacity:.6;cursor:not-allowed}.main-button.listening{filter:brightness(1.02);animation:none}.main-button.processing{background:#1f1f1f;color:#fff;opacity:1}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes buttonPulse{0%,to{box-shadow:0 10px 24px #0000002e}50%{box-shadow:0 12px 28px #00000038}}@media (min-width: 640px){.main-content{gap:60px}.welcome-text{font-size:36px}.subtitle-text{font-size:20px}.confirm-text{font-size:26px}.output-sentence{font-size:40px}.main-button{width:88px;height:88px}}.button-spinner{display:block;width:28px;height:28px;margin:0;border:3px solid rgba(255,255,255,.28);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.main-button.processing{background:#1f1f1f;color:#fff;cursor:not-allowed;opacity:1}*{margin:0;padding:0;box-sizing:border-box}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--color-bg: #fafafa;--color-text: #1a1a1a;--color-text-muted: #666;--color-primary: #e6b8ff;--color-secondary: #ffd4b8;--animation-duration: .6s;--animation-easing: cubic-bezier(.4, 0, .2, 1)}@media (prefers-reduced-motion: reduce){:root{--animation-duration: .01ms}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}body{margin:0;background-color:var(--color-bg);color:var(--color-text);overflow:hidden;overscroll-behavior:none;-webkit-tap-highlight-color:transparent}#root{width:100vw;height:100vh;overflow:hidden}button{font-family:inherit;border:none;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}input,textarea{font-family:inherit}
