:root{--color-window-bg: #E5E7EB;--color-app-bg: #FFFFFF;--color-text-primary: #111827;--color-text-secondary: #6B7280;--color-text-muted: #9CA3AF;--font-family: "Inter", "LINE Seed Sans TH", "Noto Sans Thai", "Tahoma", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--color-card-bg: rgba(255, 255, 255, .95);--color-card-border: #E5E7EB;--color-widget-bg: rgba(255, 255, 255, .2);--color-widget-shadow: rgba(0, 0, 0, .06);--color-divider: #E5E7EB;--color-vital-label: #6B7280;--color-vital-value: #111827;--color-vital-unit: #9CA3AF;--accent-teal: #14B8A6;--accent-bp: #EF4444;--accent-blue: #3B82F6;--accent-amber: #F59E0B;--accent-red: #DC2626;--badge-green-bg: #DCFCE7;--badge-green-fg: #16A34A;--badge-yellow-bg: #FEF9C3;--badge-yellow-fg: #A16207;--badge-orange-bg: #FFEDD5;--badge-orange-fg: #C2410C;--badge-red-bg: #FEE2E2;--badge-red-fg: #DC2626;--navbar-height: 56px;--navbar-bg: #FFFFFF;--navbar-border: #E5E7EB;--navbar-logo-bg: #DBEAFE;--navbar-logo-color: #2563EB;--aspect-ratio: 9 / 16;--glass-card-height: 55%;--border-radius-card: 14px;--border-radius-glass: 24px;--transition-fast: .15s ease;--transition-smooth: .3s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{height:100vh;margin:0;font-family:var(--font-family);font-size:14px;color:var(--color-text-primary);background:var(--color-window-bg);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;width:540px;height:960px;background:var(--color-app-bg);overflow:hidden;box-shadow:0 0 40px #0000001a;-webkit-user-select:none;user-select:none;cursor:default}.hidden{display:none!important}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-thumb{background:#00000026;border-radius:4px}.navbar{display:flex;align-items:center;justify-content:space-between;height:var(--navbar-height);min-height:var(--navbar-height);padding:0 16px;background:var(--navbar-bg);border-bottom:1px solid var(--navbar-border);z-index:100;flex-shrink:0;-webkit-app-region:drag}@keyframes navbarSlideIn{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}.navbar__brand,.navbar__clock{-webkit-app-region:no-drag}.navbar__brand{display:flex;align-items:center;gap:10px}.navbar__logo{width:32px;height:32px;border-radius:8px;background:var(--navbar-logo-bg);color:var(--navbar-logo-color);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0;transition:transform var(--transition-smooth)}.navbar__logo:hover{transform:scale(1.08)}.navbar__title{font-size:16px;font-weight:600;color:var(--color-text-primary);white-space:nowrap}.navbar__clock{display:flex;flex-direction:column;align-items:flex-end;gap:0}.navbar__time{font-size:13px;font-weight:600;color:var(--color-text-primary)}.navbar__date{font-size:11px;color:var(--color-text-secondary)}.floating-logo-overlay{position:absolute;top:1rem;left:1rem;z-index:10000;display:flex;align-items:center;gap:.5rem;pointer-events:none}.floating-logo-overlay .navbar__logo,.floating-logo-overlay .navbar__title{pointer-events:auto}.floating-clock-overlay{position:absolute;top:1rem;right:1rem;z-index:50;display:flex;flex-direction:row;align-items:flex-start;gap:8px;pointer-events:none}.top-right-overlay-stack{display:flex;flex-direction:column;align-items:flex-end;gap:8px;pointer-events:auto}.top-right-overlay-stack .navbar__clock{width:100%}@media(max-width:720px),(max-height:820px){.floating-clock-overlay,.top-right-overlay-stack{gap:6px}}.demo-mute-button{width:34px;height:34px;border:1px solid rgba(37,99,235,.16);border-radius:10px;background:#ffffffdb;color:#2563eb;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 18px #0f172a14;cursor:pointer;pointer-events:auto;transition:transform .15s ease,background .15s ease,color .15s ease,border-color .15s ease}.demo-mute-button:hover{transform:translateY(-1px);background:#fff;border-color:#2563eb47}.demo-mute-button.muted{color:#ef4444;border-color:#ef444438;background:#fef2f2eb}.demo-mute-button .material-icons-round{font-size:19px}.intro-page{position:relative;flex:1;overflow:hidden;background:linear-gradient(145deg,#0f172a,#1e293b);cursor:pointer}.intro-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center center;z-index:1;opacity:0;transition:opacity .8s ease-in-out}.intro-video.visible{opacity:1}.intro-video.fade-out{opacity:0}.intro-loading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity .5s ease}.intro-loading.hidden{opacity:0;visibility:hidden;pointer-events:none}.intro-loading__spinner{width:48px;height:48px;border-radius:50%;border:3px solid rgba(255,255,255,.15);border-top-color:#fffc;animation:introSpin .8s linear infinite}@keyframes introSpin{to{transform:rotate(360deg)}}.intro-loading__text{font-size:14px;font-weight:500;color:#fff9;letter-spacing:.5px}.intro-vignette{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at center,transparent 60%,rgba(0,0,0,.25) 100%)}.intro-touch-prompt{position:absolute;bottom:40px;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:8px;opacity:0;transition:opacity .6s ease;pointer-events:none;animation:introPromptBreath 2.5s ease-in-out infinite}.intro-touch-prompt.visible{opacity:1}@keyframes introPromptBreath{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(-6px)}}.intro-touch-icon{font-size:36px;color:#ffffffd9;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}.intro-touch-text{font-size:14px;font-weight:600;color:#fffc;letter-spacing:.5px;text-shadow:0 1px 6px rgba(0,0,0,.5);white-space:nowrap}.intro-page.page-exit{animation:introPageExit .8s cubic-bezier(.4,0,.2,1) forwards}@keyframes introPageExit{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.02)}}.body-area{position:relative;flex:1;overflow:hidden}.avatar-video-container{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;z-index:1;background-color:#000;box-shadow:none;border:none;display:flex;align-items:center;justify-content:center}.avatar-video{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center;aspect-ratio:9/16;pointer-events:none;opacity:0;z-index:1}.avatar-video.active{opacity:1;z-index:2}.video-bottom-fade{position:absolute;bottom:0;left:0;width:100%;height:45%;background:linear-gradient(to top,#fffffff2,#fff9,#fff3 60%,#fff0);z-index:3;pointer-events:none}.voice-orb-stage{display:none}body.display-mode-orb .voice-orb-stage{display:flex}body.display-mode-orb .avatar-video-container,body.display-mode-avatar .voice-orb-stage{display:none}.voice-orb-stage{position:absolute;inset:0;z-index:1;flex-direction:column;align-items:center;justify-content:center;padding-bottom:40%;gap:34px;overflow:hidden;background:radial-gradient(130% 100% at 50% 18%,#0b1220,#0a0f1c 45%,#05070d);--vo-a: #22d3ee;--vo-b: #3b82f6;--vo-c: #14b8a6;--vo-glow: rgba(56, 189, 248, .55);--vo-size: 244px;--level: 0}.vo-orb{position:relative;width:var(--vo-size);height:var(--vo-size);display:flex;align-items:center;justify-content:center;transform:scale(calc(1 + var(--level) * .14));transition:transform 90ms linear;will-change:transform;animation:voBreathe 6s ease-in-out infinite}.vo-glow{position:absolute;inset:-46%;border-radius:50%;background:radial-gradient(circle at 50% 50%,var(--vo-glow) 0%,color-mix(in srgb,var(--vo-glow) 40%,transparent) 38%,transparent 68%);filter:blur(22px);opacity:calc(.42 + var(--level) * .55);transform:scale(calc(.92 + var(--level) * .28));transition:opacity .12s linear,transform .12s linear;will-change:opacity,transform}.vo-ring{position:absolute;border-radius:50%;inset:-7%;padding:2px;background:conic-gradient(from 0deg,transparent 0deg,color-mix(in srgb,var(--vo-a) 85%,white 10%) 70deg,transparent 150deg,color-mix(in srgb,var(--vo-b) 85%,white 10%) 250deg,transparent 330deg);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,transparent calc(100% - 2.5px),#000 calc(100% - 2px));opacity:calc(.4 + var(--level) * .5);animation:voSpin 14s linear infinite}.vo-ring.vo-ring-2{inset:-14%;animation:voSpin 22s linear infinite reverse;opacity:calc(.22 + var(--level) * .4)}.vo-core{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(120% 120% at 30% 25%,color-mix(in srgb,var(--vo-a) 70%,#0b1220),color-mix(in srgb,var(--vo-b) 60%,#0b1220) 46%,#0a1020);box-shadow:inset 0 0 34px #0000008c,inset 0 6px 22px #ffffff1a,0 22px 50px #00000073,0 0 0 1px #ffffff0d}.vo-gradient{position:absolute;inset:-30%;background:conic-gradient(from 90deg,var(--vo-a),var(--vo-b),var(--vo-c),color-mix(in srgb,var(--vo-a) 60%,white 20%),var(--vo-a));filter:blur(14px);opacity:.7;animation:voSpin 12s linear infinite;will-change:transform}.vo-blob{position:absolute;border-radius:50%;filter:blur(12px);mix-blend-mode:screen;will-change:transform}.vo-blob-1{width:62%;height:62%;left:8%;top:12%;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--vo-a) 90%,white 6%) 0%,transparent 70%);animation:voDrift1 7s ease-in-out infinite}.vo-blob-2{width:58%;height:58%;right:6%;bottom:8%;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--vo-b) 90%,white 6%) 0%,transparent 70%);animation:voDrift2 9s ease-in-out infinite}.vo-blob-3{width:46%;height:46%;left:28%;top:34%;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--vo-c) 92%,white 8%) 0%,transparent 72%);animation:voDrift3 6s ease-in-out infinite}.vo-specular{position:absolute;left:18%;top:12%;width:42%;height:34%;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(255,255,255,.85) 0%,rgba(255,255,255,.12) 45%,transparent 70%);filter:blur(4px);opacity:.8;pointer-events:none}.vo-wave{position:absolute;inset:0;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--vo-a) 70%,white 10%);opacity:0}.voice-orb-status{font-family:LINE Seed Sans TH,Noto Sans Thai,Tahoma,sans-serif;font-size:17px;font-weight:700;letter-spacing:.01em;color:#e2f0ffeb;text-shadow:0 2px 14px rgba(0,0,0,.55);text-align:center;min-height:22px;transition:color .24s ease}.voice-orb-substatus{margin-top:6px;font-family:LINE Seed Sans TH,Noto Sans Thai,Tahoma,sans-serif;font-size:12.5px;font-weight:600;color:#94b2d6b8;text-align:center;min-height:16px}.voice-orb-stage.state-idle{--vo-a: #2dd4bf;--vo-b: #3b82f6;--vo-c: #22d3ee;--vo-glow: rgba(45, 212, 191, .4)}.voice-orb-stage.state-idle .vo-gradient{animation-duration:20s}.voice-orb-stage.state-idle .vo-orb{animation-duration:7s}.voice-orb-stage.state-listening{--vo-a: #22d3ee;--vo-b: #10b981;--vo-c: #38bdf8;--vo-glow: rgba(34, 211, 238, .6)}.voice-orb-stage.state-listening .vo-gradient{animation-duration:8s}.voice-orb-stage.state-listening .vo-wave{animation:voWave 2.4s ease-out infinite}.voice-orb-stage.state-listening .vo-wave-2{animation-delay:1.2s}.voice-orb-stage.state-processing{--vo-a: #a78bfa;--vo-b: #6366f1;--vo-c: #f0abfc;--vo-glow: rgba(139, 92, 246, .5)}.voice-orb-stage.state-processing .vo-gradient{animation-duration:4.5s}.voice-orb-stage.state-processing .vo-ring{animation-duration:3.2s}.voice-orb-stage.state-processing .vo-orb{animation-duration:3.4s}.voice-orb-stage.state-speaking{--vo-a: #38bdf8;--vo-b: #6366f1;--vo-c: #22d3ee;--vo-glow: rgba(99, 132, 246, .65)}.voice-orb-stage.state-speaking .vo-gradient{animation-duration:5s}.voice-orb-stage.state-speaking .vo-ring{animation-duration:6s}.voice-orb-stage.state-speaking .vo-wave{animation:voWave 1.8s ease-out infinite}.voice-orb-stage.state-speaking .vo-wave-2{animation-delay:.9s}@keyframes voSpin{to{transform:rotate(360deg)}}@keyframes voBreathe{0%,to{transform:scale(calc(1 + var(--level) * .14))}50%{transform:scale(calc(1.04 + var(--level) * .14))}}@keyframes voDrift1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(14%,10%) scale(1.12)}66%{transform:translate(-8%,16%) scale(.92)}}@keyframes voDrift2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-12%,-8%) scale(.9)}66%{transform:translate(10%,-14%) scale(1.14)}}@keyframes voDrift3{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-14%,-10%) scale(1.2)}}@keyframes voWave{0%{opacity:.55;transform:scale(1)}to{opacity:0;transform:scale(1.9)}}@media(prefers-reduced-motion:reduce){.vo-orb,.vo-gradient,.vo-ring,.vo-blob,.vo-wave{animation:none!important}.vo-orb{transition:transform .16s ease}}.bottom-stack{position:absolute;bottom:24px;left:36px;right:36px;display:flex;flex-direction:column;gap:12px;z-index:100;pointer-events:none}.transcript-container{position:relative;bottom:auto;left:auto;width:100%;display:flex;flex-direction:column;gap:8px;z-index:10;padding:8px 16px;background:transparent;margin-bottom:4px;max-height:300px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.transcript-container::-webkit-scrollbar{display:none}.transcript-container{opacity:1;transition:opacity .3s ease-out}.transcript-container.hidden{display:none!important;opacity:0;pointer-events:none;transition:opacity .3s ease-out}.transcript-chat{display:flex;align-items:center;width:100%;opacity:1}.transcript-chat.ai{justify-content:flex-start}.transcript-chat.user{justify-content:flex-end}.transcript-chat.hidden{opacity:0!important;pointer-events:none;display:none!important}@keyframes messageEnter{0%{opacity:0;transform:translateY(20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.transcript-chat.message-enter{animation:messageEnter .6s cubic-bezier(.22,1,.36,1) forwards}.transcript-badge{width:48px;height:48px;border-radius:50%;border:2px solid rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;z-index:2;flex-shrink:0;transition:transform .6s cubic-bezier(.34,1.56,.64,1);position:relative;overflow:hidden}.transcript-badge.ai{background:linear-gradient(135deg,#3b82f6,#1d4ed8)}.transcript-badge.user{background:linear-gradient(135deg,#f59e0b,#dc2626)}.badge-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:26px;color:#fff;transition:opacity .3s ease,transform .3s ease;pointer-events:none}.badge-text-ai{font-size:16px;font-weight:900;letter-spacing:1px;text-shadow:0 1px 3px rgba(0,0,0,.2)}.badge-icon.hidden{display:flex!important;opacity:0;transform:scale(.5)}.badge-visualizer{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3px;transition:opacity .3s ease,transform .3s ease}.badge-visualizer.hidden{display:flex!important;opacity:0;transform:scale(.5);pointer-events:none}.badge-visualizer .bar{width:2px;height:24px;background:#fffffff2;border-radius:1px;transform-origin:center center;transform:scaleY(.15);transition:transform .1s ease}.badge-visualizer.ai-speaking .bar{animation:spectrumPulse 1.2s ease-in-out infinite alternate!important}@keyframes spectrumPulse{0%{transform:scaleY(.15)}to{transform:scaleY(1)}}.badge-visualizer.ai-speaking .bar:nth-child(1){animation-delay:.1s;animation-duration:.7s}.badge-visualizer.ai-speaking .bar:nth-child(2){animation-delay:.4s;animation-duration:1s}.badge-visualizer.ai-speaking .bar:nth-child(3){animation-delay:.2s;animation-duration:.8s}.badge-visualizer.ai-speaking .bar:nth-child(4){animation-delay:.6s;animation-duration:1.2s}.badge-visualizer.ai-speaking .bar:nth-child(5){animation-delay:.3s;animation-duration:.9s}.badge-visualizer.ai-speaking .bar:nth-child(6){animation-delay:.1s;animation-duration:1.1s}.badge-visualizer.ai-speaking .bar:nth-child(7){animation-delay:.5s;animation-duration:.8s}.badge-visualizer.ai-speaking .bar:nth-child(8){animation-delay:.2s;animation-duration:1.3s}.badge-visualizer.ai-speaking .bar:nth-child(9){animation-delay:.7s;animation-duration:.9s}.badge-visualizer.ai-speaking .bar:nth-child(10){animation-delay:.4s;animation-duration:1.1s}.badge-visualizer.ai-speaking .bar:nth-child(11){animation-delay:.1s;animation-duration:.8s}.badge-visualizer.ai-speaking .bar:nth-child(12){animation-delay:.5s;animation-duration:1.2s}.badge-visualizer.ai-speaking .bar:nth-child(13){animation-delay:.3s;animation-duration:.7s}.badge-visualizer.ai-speaking .bar:nth-child(14){animation-delay:.6s;animation-duration:1s}.badge-visualizer.ai-speaking .bar:nth-child(15){animation-delay:.2s;animation-duration:.8s}.transcript-bubble{background:linear-gradient(135deg,#ffffffd9,#fff6);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:20px;padding:10px 18px;z-index:1;min-height:44px;display:flex;align-items:center;box-shadow:none;border:none;max-width:80%;-webkit-mask-image:-webkit-radial-gradient(white,black);mask-image:radial-gradient(#fff,#000)}.transcript-chat.ai .transcript-bubble{margin-left:-14px;padding-left:22px;transform-origin:center left;border-bottom-left-radius:4px}.transcript-chat.user .transcript-bubble{margin-right:-14px;padding-right:22px;background:linear-gradient(135deg,#fef3c7e6,#fed7aa80);border-bottom-right-radius:4px;transform-origin:center right}.transcript-content-wrapper{display:flex;flex-direction:column;justify-content:center;gap:2px}.transcript-chat.ai .transcript-content-wrapper{align-items:flex-start;text-align:left}.transcript-chat.user .transcript-content-wrapper{align-items:flex-end;text-align:right}.speaker-status{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.transcript-chat.ai .speaker-status{color:#2563eb}.transcript-chat.user .speaker-status{color:#d97706}.transcript-chat.user.voice-receipt.error .transcript-bubble{background:linear-gradient(135deg,#fee2e2f2,#fecaca8c)}.transcript-chat.user.voice-receipt.error .speaker-status,.transcript-chat.user.voice-receipt.error .transcript-text{color:#dc2626}.transcript-chat.user.voice-receipt .transcript-bubble{background:linear-gradient(135deg,#fffbebeb,#fef3c78c)}.transcript-chat.user.voice-receipt.ready .transcript-bubble,.transcript-chat.user.voice-receipt.listening .transcript-bubble{background:linear-gradient(135deg,#ecfdf5f0,#ccfbf194);box-shadow:0 0 0 1px #10b9813d,0 8px 26px #0f766e24}.transcript-chat.user.voice-receipt.ready .transcript-badge,.transcript-chat.user.voice-receipt.listening .transcript-badge{background:linear-gradient(135deg,#10b981,#0f766e);animation:micReadyPulse 1.2s ease-in-out infinite}.transcript-chat.user.voice-receipt.received .transcript-bubble{background:linear-gradient(135deg,#ecfdf5eb,#d1fae58c)}.transcript-chat.user.voice-receipt.processing .transcript-bubble{background:linear-gradient(135deg,#eff6ffeb,#dbeafe8c)}.transcript-chat.user.voice-receipt.received .speaker-status{color:#059669}.transcript-chat.user.voice-receipt.ready .speaker-status,.transcript-chat.user.voice-receipt.listening .speaker-status{color:#047857}.transcript-chat.user.voice-receipt.processing .speaker-status{color:#2563eb}@keyframes micReadyPulse{0%,to{transform:scale(1);box-shadow:0 0 #10b98159}50%{transform:scale(1.04);box-shadow:0 0 0 8px #10b98100}}.transcript-chat.user.voice-receipt .transcript-text{font-weight:700;letter-spacing:0}.transcript-chat.ai.processing .speaker-status{color:#6b7280}.transcript-text{font-family:LINE Seed Sans TH,Noto Sans Thai,Tahoma,sans-serif;font-size:14px;font-weight:500;color:#111827;line-height:1.45;word-break:break-word;max-height:2.9em;overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;-webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,1) 25%);mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,1) 25%)}.transcript-text::-webkit-scrollbar{display:none}.transcript-text.waiting{animation:pulseWait 1.5s ease-in-out infinite;color:#b45309}@keyframes pulseWait{0%,to{opacity:.5}50%{opacity:1}}.transcript-chat.ai.processing .badge-visualizer .bar{background:#fff9;animation:processingPulse 1.5s ease infinite;animation-delay:0s!important}@keyframes processingPulse{0%,to{transform:scaleY(.4);opacity:.5}50%{transform:scaleY(.8);opacity:1}}@keyframes glassSlideUp{0%{opacity:0;transform:translateY(48px)}to{opacity:1;transform:translateY(0)}}@keyframes cardReveal{0%{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes valueCountUp{0%{opacity:0;transform:translateY(12px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes valueFlashModern{0%{color:var(--accent-blue);transform:scale(1.3) translateY(-4px);opacity:.5}50%{color:var(--accent-teal);transform:scale(1.1) translateY(-2px);opacity:1}to{color:var(--color-vital-value);transform:scale(1) translateY(0);opacity:1}}.value-updated{animation:valueFlashModern .6s cubic-bezier(.34,1.56,.64,1) both;display:inline-block}.app-loaded .navbar{animation:navbarSlideIn .4s cubic-bezier(.16,1,.3,1) both}.avatar-loaded .glass-card{animation:glassSlideUp 1.2s cubic-bezier(.25,.46,.45,.94) both;animation-delay:.1s}.warning-modal-overlay{position:absolute;inset:0;background:#0006;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:10000;opacity:0;pointer-events:none;transition:opacity var(--transition-smooth)}.warning-modal-overlay.show{opacity:1;pointer-events:auto}.warning-modal-card{width:90%;max-width:420px;background:var(--color-card-bg);border:1px solid var(--color-card-border);border-radius:var(--border-radius-glass);padding:2.25rem 2rem;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;text-align:center;transform:scale(.9);transition:transform var(--transition-smooth)}.warning-modal-overlay.show .warning-modal-card{transform:scale(1)}.warning-modal-icon{width:64px;height:64px;background:var(--badge-red-bg);color:var(--badge-red-fg);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem}.warning-modal-icon .material-icons-round{font-size:36px}.warning-modal-title{font-family:var(--font-family);font-weight:700;font-size:1.5rem;color:var(--color-text-primary);margin-bottom:.75rem}.warning-modal-body{font-family:var(--font-family);font-size:1rem;color:var(--color-text-secondary);line-height:1.5;margin-bottom:1.75rem}.warning-modal-close-btn{width:100%;padding:.875rem;background:var(--accent-red);color:#fff;border:none;border-radius:var(--border-radius-card);font-family:var(--font-family);font-weight:600;font-size:1rem;cursor:pointer;box-shadow:0 4px 6px -1px #dc262633;transition:opacity var(--transition-fast),transform var(--transition-fast)}.warning-modal-close-btn:hover{opacity:.9}.warning-modal-close-btn:active{transform:scale(.98)}button.voice-orb-stage{appearance:none;-webkit-appearance:none;border:0;margin:0;padding:0 0 40%;width:100%;height:100%;font:inherit;color:inherit;text-align:center;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;transition:filter .22s ease}button.voice-orb-stage:disabled{cursor:default}button.voice-orb-stage:disabled .vo-orb{filter:saturate(.8) brightness(.92)}button.voice-orb-stage:not(:disabled):active .vo-orb{transform:scale(calc(.96 + var(--level) * .14))}button.voice-orb-stage:focus-visible .vo-core{box-shadow:inset 0 0 34px #0000008c,0 0 0 4px #ffffffbf,0 22px 50px #00000073}.voice-orb-stage.state-idle .vo-wave-1{animation:voWave 3.2s ease-out infinite}button.voice-orb-stage:disabled.state-idle .vo-wave-1{animation:none}.voice-orb-stage.state-listening .vo-ring-1{background:conic-gradient(from 0deg,transparent 0deg,#fb7185 70deg,transparent 150deg,#f43f5e 250deg,transparent 330deg);opacity:.9;animation-duration:4s}.ptt-hint{text-align:center;font-family:LINE Seed Sans TH,Noto Sans Thai,Inter,Tahoma,sans-serif;font-size:13px;font-weight:600;color:#e2f0ffc7;text-shadow:0 2px 10px rgba(0,0,0,.5);padding:4px 8px 2px;min-height:18px;pointer-events:none}body.display-mode-avatar .ptt-hint{color:var(--color-text-secondary);text-shadow:none}.ptt-fab{display:none;position:absolute;left:50%;bottom:27%;transform:translate(-50%);width:104px;height:104px;border-radius:50%;border:0;z-index:60;align-items:center;justify-content:center;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 16px 34px #2563eb59,0 0 0 10px #3b82f61f;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .15s ease,background .2s ease,box-shadow .2s ease,opacity .2s ease}body.display-mode-avatar .ptt-fab{display:flex}.ptt-fab .material-icons-round{font-size:46px}.ptt-fab:not(:disabled):active{transform:translate(-50%) scale(.94)}.ptt-fab:disabled{cursor:default;opacity:.55;background:linear-gradient(135deg,#94a3b8,#64748b);box-shadow:none}.ptt-fab.is-listening{background:linear-gradient(135deg,#f43f5e,#e11d48);box-shadow:0 16px 34px #f43f5e66,0 0 0 12px #f43f5e29;animation:pttPulse 1.6s ease-in-out infinite}@keyframes pttPulse{0%,to{box-shadow:0 16px 34px #f43f5e66,0 0 0 10px #f43f5e29}50%{box-shadow:0 16px 34px #f43f5e80,0 0 0 22px #f43f5e0d}}.navbar__logo.skyfrog{background:#0f172a;color:#38bdf8;font-size:12px;letter-spacing:.02em}body.display-mode-orb .floating-logo-overlay .navbar__title,body.display-mode-orb .floating-clock-overlay .navbar__time,body.display-mode-orb .floating-clock-overlay .navbar__date{color:#e2f0ffe6;text-shadow:0 2px 10px rgba(0,0,0,.5)}.bottom-stack{pointer-events:none}.bottom-stack>*{pointer-events:auto}.bottom-stack .ptt-hint{pointer-events:none}@media(prefers-reduced-motion:reduce){.ptt-fab.is-listening{animation:none}}@keyframes shake{0%,to{transform:translateZ(0)}10%,30%,50%,70%,90%{transform:translate3d(-6px,0,0)}20%,40%,60%,80%{transform:translate3d(6px,0,0)}}.shake{animation:shake .5s cubic-bezier(.36,.07,.19,.97) both;transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.input-error{border-color:#ef4444!important;box-shadow:0 0 0 2px #ef444433!important;background-color:#fff5f5!important}#loading-screen{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:540px;height:960px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(145deg,#f8fafc,#fff,#f1f5f9);background-size:200% 200%;animation:loadingBgShift 6s ease-in-out infinite;z-index:9999;transition:opacity .6s cubic-bezier(.4,0,.2,1),visibility .6s;font-family:Inter,-apple-system,sans-serif;overflow:hidden}#loading-screen.dismissed{opacity:0;visibility:hidden;pointer-events:none}@keyframes loadingBgShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.loading-icon-wrapper{position:relative;width:88px;height:88px;display:flex;align-items:center;justify-content:center;margin-bottom:32px}.loading-icon{width:88px;height:88px;border-radius:22px;background:linear-gradient(135deg,#3b82f6,#6366f1);display:flex;align-items:center;justify-content:center;font-size:42px;color:#fff;font-weight:800;box-shadow:0 8px 32px #6366f166;animation:loadingPulse 2.5s ease-in-out infinite;z-index:2}.loading-ripple{position:absolute;inset:0;border-radius:22px;border:2px solid rgba(99,102,241,.4);animation:loadingRipple 2.5s ease-out infinite}.loading-ripple:nth-child(2){animation-delay:.8s}@keyframes loadingPulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes loadingRipple{0%{transform:scale(.85);opacity:1}to{transform:scale(1.5);opacity:0}}.loading-title{font-size:22px;font-weight:700;color:#0f172a;letter-spacing:-.02em;margin-bottom:6px}.loading-subtitle{font-size:13px;font-weight:500;color:#64748b;margin-bottom:36px}.loading-bar-track{width:200px;height:3px;background:#e2e8f0;border-radius:4px;overflow:hidden;margin-bottom:20px}.loading-bar-fill{width:40%;height:100%;background:linear-gradient(90deg,#3b82f6,#a78bfa);border-radius:4px;animation:loadingProgress 1.8s ease-in-out infinite}@keyframes loadingProgress{0%{transform:translate(-120%)}50%{transform:translate(180%)}to{transform:translate(400%)}}.loading-status{font-size:12px;font-weight:500;color:#94a3b8;letter-spacing:.3px}.loading-dots:after{content:"";animation:loadingDots 1.5s steps(4,end) infinite}@keyframes loadingDots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}#app.loading-hidden{visibility:hidden}#app{transition:opacity .5s ease}
