:root{--color-primary: #D2915D;--color-primary-hover: #b8794a;--color-bg: #faf8f5;--color-card: #ffffff;--color-text: #3B3B3B;--color-text-muted: #4a4a4a;--color-button-text: #3B3B3B;--color-error: #b91c1c;--color-error-bg: #fef2f2;--color-disabled: #6b7280;--color-disabled-bg: #e5e7eb;--color-brand-accent: #D2915D;--color-focus: #1d4ed8;--color-scenario-bg: #F0F37F;--color-explain-bg: #9EB9A1;--font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;--font-size-body: 18px;--font-size-large: 22px;--font-size-input: 20px;--font-size-h1: clamp(28px, 5vw, 40px);--font-size-h1-welcome: clamp(36px, 6vw, 52px);--font-size-button: 20px;--font-size-small: 16px;--space-xs: 8px;--space-sm: 12px;--space-md: 20px;--space-lg: 32px;--space-xl: 48px;--radius-button: 12px;--radius-input: 8px;--radius-card: 16px;--t-bg-top: #FFE305;--t-bg-bottom: #FED00A;--t-ink: #1F2430;--t-surface: #FFFBE8;--t-surface-ink: #1F2430;--t-surface-ink-muted: #475063;--t-accent: #1D4ED8;--t-accent-ink: #FFFFFF;--t-accent-hover: #1E40AF;--t-accent-light: rgb(115, 145, 231);--t-accent-deep: rgb(16, 43, 119);--t-accent-rgb: 29, 78, 216;--t-recording: #C81E1E;--t-recording-ink: #FFFFFF;--t-recording-light: rgb(221, 116, 116);--t-recording-deep: rgb(110, 17, 17);--t-recording-rgb: 200, 30, 30;--t-error: #B42318;--t-focus: #1F2430;--t-glow: rgba(255, 255, 255, .38)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--font-size-body);scroll-behavior:smooth}body{font-family:var(--font-family);font-size:var(--font-size-body);line-height:1.6;color:var(--color-text);background-color:var(--t-bg-bottom);-webkit-font-smoothing:antialiased;min-height:100vh}:focus-visible{outline:3px solid var(--t-focus);outline-offset:3px;border-radius:4px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg) var(--space-md);background:linear-gradient(170deg,var(--t-bg-top) 0%,var(--t-bg-bottom) 100%)}.login-card{background-color:var(--t-surface);border-radius:var(--radius-card);padding:var(--space-xl) var(--space-lg);width:100%;max-width:520px;box-shadow:0 4px 24px #00000014}.login-heading{font-size:var(--font-size-h1);font-weight:700;color:var(--t-surface-ink);line-height:1.2;margin-bottom:var(--space-xs)}.brand-name{color:var(--t-accent-deep)}.login-subtitle{font-size:var(--font-size-large);color:var(--t-surface-ink-muted);margin-bottom:var(--space-lg)}.field-group{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.field-label{font-size:var(--font-size-large);font-weight:600;color:var(--t-surface-ink)}.field-input{width:100%;height:56px;padding:0 var(--space-md);font-size:var(--font-size-input);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-card);border:2px solid var(--t-surface-ink);border-radius:var(--radius-input);transition:border-color .15s ease,box-shadow .15s ease}.field-input:focus{outline:none;border-color:var(--t-focus);box-shadow:0 0 0 3px rgba(var(--t-accent-rgb),.3)}.field-input:disabled{background-color:var(--color-disabled-bg);color:var(--color-disabled);cursor:not-allowed}.error-message{font-size:var(--font-size-large);font-weight:600;color:var(--color-error);background-color:var(--color-error-bg);border:2px solid var(--color-error);border-radius:var(--radius-input);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md);line-height:1.5}.login-button{display:block;width:100%;height:64px;font-size:var(--font-size-button);font-weight:700;font-family:var(--font-family);color:var(--t-accent-ink);background-color:var(--t-accent);border:none;border-radius:var(--radius-button);cursor:pointer;transition:background-color .15s ease,transform .1s ease;margin-top:var(--space-sm);letter-spacing:.01em}.login-button:hover:not(:disabled){background-color:var(--t-accent-hover)}.login-button:active:not(:disabled){transform:scale(.99)}.login-button:disabled{color:#fff;background-color:var(--color-disabled);cursor:not-allowed;transform:none}.login-button:focus-visible{outline:3px solid var(--t-focus);outline-offset:3px}.voice-main{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:linear-gradient(170deg,var(--t-bg-top) 0%,var(--t-bg-bottom) 100%);color:var(--t-ink);padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.voice-start-screen{cursor:pointer;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.voice-main--center{align-items:center;justify-content:center;padding-top:calc(var(--space-lg) + env(safe-area-inset-top));padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom))}.voice-stage{position:relative;flex:1 1 auto;min-height:34vh;min-height:34dvh;overflow:hidden}.voice-sheet{position:relative;z-index:1;flex:none;width:100%;max-width:640px;align-self:center;margin-top:-28px;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-md) calc(var(--space-xs) + env(safe-area-inset-bottom));background-color:var(--t-surface);color:var(--t-surface-ink);border-radius:28px 28px 0 0;box-shadow:0 -10px 30px #0000001f;text-align:center}.voice-sheet--start{gap:var(--space-md);padding-top:var(--space-lg);padding-bottom:calc(var(--space-lg) + env(safe-area-inset-bottom))}.voice-start-name{font-size:clamp(28px,7vw,44px);font-weight:700;line-height:1.2;color:var(--t-surface-ink)}.voice-start-cta{display:inline-flex;align-items:center;justify-content:center;min-height:64px;padding:14px 36px;border-radius:999px;border:none;background-color:var(--t-accent);color:var(--t-accent-ink);font-family:var(--font-family);font-size:var(--font-size-large);font-weight:700;line-height:1.3;cursor:pointer;box-shadow:0 6px 18px #0003}.voice-status-area{min-height:72px;max-height:26vh;max-height:26dvh;overflow-y:auto;width:100%;display:flex;align-items:flex-start;justify-content:center}.voice-status-area>*{margin-block:auto}.voice-status-text{font-size:var(--font-size-large);color:var(--t-surface-ink-muted);font-style:italic}.voice-reply-text{font-size:clamp(18px,3.5vw,24px);color:var(--t-surface-ink);line-height:1.6;font-weight:400}.voice-error-text{font-size:var(--font-size-large);font-weight:600;color:var(--t-error)}.voice-orb-wrapper{display:flex;flex-direction:column;align-items:center;gap:18px;padding-top:14px}.voice-orb-button{width:128px;height:128px;border-radius:50%;border:none;background:none;cursor:pointer;padding:0;position:relative;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}.voice-orb-inner{display:flex;align-items:center;justify-content:center;width:100%;height:100%;border-radius:50%;color:var(--t-accent-ink);background:radial-gradient(circle at 35% 30%,var(--t-accent-light),var(--t-accent) 58%,var(--t-accent-deep));box-shadow:0 0 0 10px rgba(var(--t-accent-rgb),.14),0 0 0 20px rgba(var(--t-accent-rgb),.07),0 8px 24px #00000038;transition:transform .15s ease,box-shadow .15s ease;animation:pulse-idle 3s ease-in-out infinite}.voice-orb-icon{width:46px;height:46px;fill:currentColor}.voice-orb-button--recording .voice-orb-inner{color:var(--t-recording-ink);background:radial-gradient(circle at 35% 30%,var(--t-recording-light),var(--t-recording) 58%,var(--t-recording-deep));box-shadow:0 0 0 14px rgba(var(--t-recording-rgb),.22),0 0 0 28px rgba(var(--t-recording-rgb),.09),0 8px 24px #00000038;animation:pulse-recording 1s ease-in-out infinite;transform:scale(1.06)}.voice-orb-button--speaking .voice-orb-inner{box-shadow:0 0 0 14px rgba(var(--t-accent-rgb),.22),0 0 0 28px rgba(var(--t-accent-rgb),.09),0 8px 24px #00000038;animation:pulse-speaking 1.5s ease-in-out infinite}.voice-orb-button--busy .voice-orb-inner{animation:pulse-thinking 2s ease-in-out infinite}.voice-orb-button:disabled{cursor:default}.voice-orb-label{font-size:var(--font-size-small);color:var(--t-surface-ink-muted);letter-spacing:.02em;min-height:22px;margin-top:10px}.voice-assistant-row{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);min-height:40px}.voice-assistant-name{font-size:var(--font-size-small);color:var(--t-surface-ink-muted);letter-spacing:.12em;text-transform:uppercase;font-weight:700}.voice-replay-btn{background:transparent;border:2px solid var(--t-accent);border-radius:999px;font-family:var(--font-family);font-size:var(--font-size-small);cursor:pointer;color:var(--t-surface-ink);padding:4px 14px;min-height:40px;line-height:1.4;transition:background-color .15s ease;white-space:nowrap}.voice-replay-btn:hover,.voice-replay-btn:active{background-color:rgba(var(--t-accent-rgb),.14)}.avatar-stage{position:absolute;top:0;right:0;bottom:0;left:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.avatar-stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 60% at 50% 62%,var(--t-glow),transparent 72%);pointer-events:none}.avatar-stage--listening:before{background:radial-gradient(ellipse 78% 66% at 50% 62%,rgba(var(--t-recording-rgb),.55),transparent 74%);animation:avatar-glow 1.2s ease-in-out infinite}.avatar-figure{position:absolute;left:0;right:0;bottom:-4%;margin:0 auto;width:100%;transform-origin:50% 100%;will-change:transform;visibility:hidden}.avatar-base{display:block;width:100%;height:100%}.avatar-layer{position:absolute;height:auto;opacity:0}.avatar-base,.avatar-layer{pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.avatar-thinking{position:absolute;top:8%;right:8%;display:flex;gap:6px;padding:10px 14px;border-radius:999px;background-color:var(--t-surface);box-shadow:0 4px 14px #0003}.avatar-thinking span{width:10px;height:10px;border-radius:50%;background-color:var(--t-surface-ink);animation:avatar-dot 1.2s ease-in-out infinite}.avatar-thinking span:nth-child(2){animation-delay:.2s}.avatar-thinking span:nth-child(3){animation-delay:.4s}@keyframes avatar-dot{0%,80%,to{transform:translateY(0);opacity:.55}40%{transform:translateY(-6px);opacity:1}}@keyframes avatar-glow{0%,to{opacity:.55}50%{opacity:1}}@media (max-height: 700px){.voice-orb-button{width:104px;height:104px}.voice-orb-icon{width:38px;height:38px}.voice-sheet{gap:var(--space-xs);padding-top:var(--space-sm)}.voice-status-area{min-height:56px}}@media (orientation: landscape) and (max-height: 520px){.voice-main{flex-direction:row}.voice-main:not(.voice-main--center){height:100vh;height:100dvh;min-height:0}.voice-main--center{flex-direction:column}.voice-stage{flex:1 1 0;min-width:0;min-height:0}.voice-sheet{flex:0 0 min(56vw,520px);width:min(56vw,520px);max-width:none;align-self:stretch;justify-content:flex-start;overflow-y:auto;overscroll-behavior:contain;margin-top:0;margin-left:-28px;padding:var(--space-xs) var(--space-sm) calc(var(--space-xs) + env(safe-area-inset-bottom)) calc(var(--space-sm) + 28px);border-radius:28px 0 0 28px;box-shadow:-10px 0 30px #0000001f}.voice-sheet>:first-child{margin-top:auto}.voice-sheet>:last-child{margin-bottom:auto}.voice-sheet--start{padding-top:var(--space-sm);padding-bottom:var(--space-sm);gap:var(--space-sm)}.voice-orb-wrapper{gap:var(--space-sm);padding-top:8px}.voice-orb-label{margin-top:14px}.voice-orb-button{width:clamp(96px,27vh,128px);width:clamp(96px,27dvh,128px);height:clamp(96px,27vh,128px);height:clamp(96px,27dvh,128px)}.voice-orb-icon{width:clamp(36px,10dvh,46px);height:clamp(36px,10dvh,46px)}.voice-status-area{max-height:36vh;max-height:36dvh}.voice-reply-text{font-size:clamp(18px,5dvh,20px);line-height:1.4}.voice-footer{gap:0 var(--space-xs)}}@media (orientation: landscape) and (max-height: 400px){.voice-sheet{gap:4px}.voice-sheet--start{gap:var(--space-xs)}}@keyframes pulse-idle{0%,to{box-shadow:0 0 0 10px rgba(var(--t-accent-rgb),.14),0 0 0 20px rgba(var(--t-accent-rgb),.07),0 8px 24px #00000038}50%{box-shadow:0 0 0 14px rgba(var(--t-accent-rgb),.2),0 0 0 28px rgba(var(--t-accent-rgb),.1),0 8px 24px #00000038}}@keyframes pulse-recording{0%,to{box-shadow:0 0 0 14px rgba(var(--t-recording-rgb),.22),0 0 0 28px rgba(var(--t-recording-rgb),.09),0 8px 24px #00000038}50%{box-shadow:0 0 0 20px rgba(var(--t-recording-rgb),.3),0 0 0 40px rgba(var(--t-recording-rgb),.13),0 8px 24px #00000038}}@keyframes pulse-speaking{0%,to{box-shadow:0 0 0 14px rgba(var(--t-accent-rgb),.22),0 0 0 28px rgba(var(--t-accent-rgb),.09),0 8px 24px #00000038}50%{box-shadow:0 0 0 20px rgba(var(--t-accent-rgb),.3),0 0 0 40px rgba(var(--t-accent-rgb),.13),0 8px 24px #00000038}}@keyframes pulse-thinking{0%,to{opacity:1}50%{opacity:.6}}.mic-prompt-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center;width:100%;max-width:400px;padding:var(--space-lg) var(--space-md);background-color:var(--t-surface);color:var(--t-surface-ink);border-radius:28px;box-shadow:0 10px 30px #00000029}.mic-prompt-icon{font-size:64px;line-height:1}.mic-prompt-title{font-size:clamp(22px,5vw,32px);font-weight:700;color:var(--t-surface-ink)}.mic-prompt-text{font-size:var(--font-size-large);color:var(--t-surface-ink-muted);line-height:1.6}.mic-prompt-btn{font-family:var(--font-family);font-size:var(--font-size-large);font-weight:700;background:var(--t-accent);color:var(--t-accent-ink);border:none;border-radius:999px;padding:18px 40px;min-height:64px;cursor:pointer;transition:background-color .15s ease;min-width:240px}.mic-prompt-btn:hover,.mic-prompt-btn:active{background:var(--t-accent-hover)}.voice-footer{width:100%;display:flex;flex-wrap:wrap;justify-content:center;gap:0 var(--space-md)}.voice-logout-btn{background:none;border:none;font-family:var(--font-family);font-size:var(--font-size-small);color:var(--t-surface-ink-muted);cursor:pointer;text-decoration:underline;padding:var(--space-sm);min-height:44px;border-radius:4px;transition:color .15s ease}.voice-logout-btn:hover{color:var(--t-surface-ink)}.voice-logout-btn:disabled{cursor:default;opacity:.45}.setup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-lg) var(--space-md);background:linear-gradient(170deg,var(--t-bg-top) 0%,var(--t-bg-bottom) 100%)}.setup-card{background-color:var(--t-surface);border-radius:var(--radius-card);padding:var(--space-xl) var(--space-lg);width:100%;max-width:520px;box-shadow:0 4px 24px #00000014}.setup-title{font-size:var(--font-size-h1);font-weight:700;color:var(--t-surface-ink);line-height:1.2;margin-bottom:var(--space-sm)}.setup-subtitle{font-size:var(--font-size-large);color:var(--t-surface-ink-muted);margin-bottom:var(--space-lg);line-height:1.5}.setup-error{font-size:var(--font-size-large);font-weight:600;color:var(--color-error);background-color:var(--color-error-bg);border:2px solid var(--color-error);border-radius:var(--radius-input);padding:var(--space-sm) var(--space-md);margin-bottom:var(--space-md)}.setup-field{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.setup-label{font-size:var(--font-size-large);font-weight:600;color:var(--t-surface-ink)}.setup-input{width:100%;height:56px;padding:0 var(--space-md);font-size:var(--font-size-input);font-family:var(--font-family);color:var(--color-text);background-color:var(--color-card);border:2px solid var(--t-surface-ink);border-radius:var(--radius-input);transition:border-color .15s ease,box-shadow .15s ease}.setup-input:focus{outline:none;border-color:var(--t-focus);box-shadow:0 0 0 3px rgba(var(--t-accent-rgb),.3)}.setup-input:disabled{background-color:var(--color-disabled-bg);color:var(--color-disabled);cursor:not-allowed}.setup-btn-primary{display:block;width:100%;height:64px;font-size:var(--font-size-button);font-weight:700;font-family:var(--font-family);color:var(--t-accent-ink);background-color:var(--t-accent);border:none;border-radius:var(--radius-button);cursor:pointer;transition:background-color .15s ease;margin-top:var(--space-sm)}.setup-btn-primary:hover:not(:disabled){background-color:var(--t-accent-hover)}.setup-btn-primary:disabled{color:#fff;background-color:var(--color-disabled);cursor:not-allowed}.setup-btn-skip{display:block;width:100%;margin-top:var(--space-md);padding:var(--space-sm);background:none;border:none;font-family:var(--font-family);font-size:var(--font-size-body);color:var(--t-surface-ink-muted);text-decoration:underline;cursor:pointer;border-radius:4px;transition:color .15s ease}.setup-btn-skip:hover:not(:disabled){color:var(--t-surface-ink)}.setup-btn-skip:disabled{cursor:not-allowed;opacity:.5}@media (max-width: 540px){.login-card{padding:var(--space-lg) var(--space-md);border-radius:var(--radius-button);box-shadow:none}.voice-button{width:180px;height:180px;font-size:20px}}@media (prefers-contrast: more){:root{--color-text: #000000;--color-error: #7f0000}.field-input{border-width:3px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
