
:root{
  --bg:#eff3fb;
  --surface:rgba(255,255,255,.7);
  --surface-strong:rgba(255,255,255,.86);
  --stroke:rgba(17,35,66,.08);
  --text:#16233a;
  --text-soft:#6d7c96;
  --accent:#6a7dff;
  --accent-2:#8ea0ff;
  --accent-rgb:106,125,255;
  --shadow:0 20px 60px rgba(21,39,74,.12);
  --radius-xl:32px;
  --radius-lg:24px;
  --radius-md:18px;
  --scene-image:none;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}
button,input,select{font:inherit}
button{cursor:pointer;border:none}
.hidden{display:none!important}
.appShell{min-height:100vh;position:relative;overflow:hidden}

/* Landing */
.landingScreen{min-height:100vh;position:relative;padding:28px;background:linear-gradient(180deg,#f7f9fd 0%,#eef2fa 100%);overflow:hidden}
.landingDecor{position:absolute;border-radius:50%;filter:blur(10px);opacity:.8;pointer-events:none}.decorA{width:420px;height:420px;right:-90px;top:-90px;background:radial-gradient(circle,rgba(138,168,255,.42),transparent 62%)}.decorB{width:360px;height:360px;left:-100px;bottom:-100px;background:radial-gradient(circle,rgba(255,205,160,.3),transparent 62%)}
.landingHeader{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:16px;max-width:1260px;margin:0 auto 18px}.brandBlock{display:flex;align-items:center;gap:14px}.brandLogo{width:56px;height:56px;border-radius:18px;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:#fff;font-weight:900;font-size:18px;box-shadow:0 14px 28px rgba(var(--accent-rgb),.28)}.brandBlock strong{display:block;font-size:22px;letter-spacing:-.02em}.brandBlock span{display:block;margin-top:4px;color:#7c8aa2;font-size:13px}.apiBadge{display:inline-flex;align-items:center;gap:10px;padding:12px 16px;border-radius:999px;background:rgba(255,255,255,.76);backdrop-filter:blur(14px);box-shadow:var(--shadow);color:#5e6f89;font-size:13px;font-weight:700}.apiBadge i{width:10px;height:10px;border-radius:50%;background:#ffb458;box-shadow:0 0 0 5px rgba(255,180,88,.12)}.apiBadge i.ok{background:#40cd86;box-shadow:0 0 0 5px rgba(64,205,134,.12)}
.landingMain{position:relative;z-index:2;max-width:1260px;margin:0 auto}.heroSelection{padding:34px;border-radius:36px;background:rgba(255,255,255,.66);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.75);box-shadow:var(--shadow)}.kicker{display:inline-block;color:#7183a6;font-size:11px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}.heroSelection h1{margin:14px 0 10px;font-size:54px;line-height:1.02;letter-spacing:-.05em;max-width:760px}.heroText{margin:0;max-width:760px;font-size:16px;line-height:1.8;color:var(--text-soft)}
.selectionForm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:26px}.selectionForm label span{display:block;margin:0 0 8px 4px;color:#7a89a3;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase}.selectionForm select{width:100%;height:56px;padding:0 16px;border-radius:16px;border:1px solid var(--stroke);background:var(--surface-strong);color:var(--text);font-weight:800;outline:none}.selectionForm select:focus{border-color:rgba(var(--accent-rgb),.42);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.08)}
.topicGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.topicCard{padding:18px 18px 16px;text-align:left;border-radius:22px;background:rgba(255,255,255,.62);border:1px solid var(--stroke);box-shadow:0 12px 30px rgba(20,38,72,.05);transition:.2s ease}.topicCard:hover{transform:translateY(-3px);box-shadow:0 18px 36px rgba(20,38,72,.1)}.topicCard.active{border-color:rgba(var(--accent-rgb),.35);background:linear-gradient(135deg,rgba(var(--accent-rgb),.08),rgba(255,255,255,.78))}.topicCard b{display:block;font-size:18px}.topicCard span{display:block;margin-top:8px;color:#73839e;font-size:13px;line-height:1.6}
.landingActions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:28px}.selectedPreview{font-size:14px;color:#60708d}.startBtn{height:56px;padding:0 24px;border-radius:16px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-size:16px;font-weight:900;box-shadow:0 16px 30px rgba(var(--accent-rgb),.26);transition:.18s ease}.startBtn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.startBtn:not(:disabled):hover{transform:translateY(-2px)}

/* Scene */
.sceneScreen{position:fixed;inset:0;background:#f6f8fc;overflow:hidden}.sceneTransition{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(244,247,255,.92));z-index:40;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .4s ease,visibility .4s ease;pointer-events:none}.sceneTransition.active{opacity:1;visibility:visible}.transitionInner{text-align:center}.transitionInner span{display:block;font-size:12px;font-weight:900;letter-spacing:.16em;text-transform:uppercase;color:#7a89a3;margin-bottom:10px}.transitionInner strong{font-size:40px;letter-spacing:-.04em}
.sceneBackdrop{position:absolute;inset:0;overflow:hidden}.backdropLayer{position:absolute;inset:0}.backdropImage{background-image:linear-gradient(135deg,rgba(255,255,255,.28),rgba(255,255,255,.08)),var(--scene-image),linear-gradient(135deg,#dee9ff,#eff4ff 60%,#ffffff);background-size:cover;background-position:center}.backdropGlow{border-radius:50%;filter:blur(36px);opacity:.58}.glowOne{width:360px;height:360px;left:7%;top:10%;background:radial-gradient(circle,rgba(var(--accent-rgb),.22),transparent 64%)}.glowTwo{width:460px;height:460px;right:9%;top:14%;background:radial-gradient(circle,rgba(255,203,157,.18),transparent 62%)}.glowThree{width:420px;height:420px;left:36%;bottom:2%;background:radial-gradient(circle,rgba(114,226,216,.16),transparent 62%)}.backdropFog{background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(243,247,253,.2) 24%,rgba(245,248,252,.5) 100%)}
.exitSceneBtn{position:absolute;top:26px;right:28px;z-index:20;height:50px;padding:0 18px;border-radius:14px;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);box-shadow:var(--shadow);color:#20314d;font-size:14px;font-weight:900}
.chatPanel{position:absolute;left:28px;top:28px;bottom:112px;z-index:15;width:360px;display:flex;flex-direction:column;border-radius:30px;background:rgba(255,255,255,.66);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.78);box-shadow:var(--shadow)}.chatHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 14px;border-bottom:1px solid rgba(17,35,66,.06)}.chatHead strong{display:block;font-size:17px}.chatHead span{display:block;margin-top:5px;font-size:12px;color:#72829e}.stepBadge{display:inline-flex;align-items:center;height:34px;padding:0 12px;border-radius:999px;background:rgba(var(--accent-rgb),.1);color:#5263db;font-size:12px;font-weight:900}.chat{flex:1;overflow:auto;padding:18px;display:flex;flex-direction:column;gap:12px}.chatWelcome{margin:auto;max-width:250px;text-align:center;color:#74839c;display:flex;flex-direction:column;align-items:center;gap:8px}.chatWelcomeIcon{width:48px;height:48px;border-radius:18px;background:rgba(var(--accent-rgb),.1);display:grid;place-items:center;color:#5565df;font-size:20px}.chatWelcome b{color:#25344f;font-size:15px}.chatWelcome span{font-size:12px;line-height:1.65}.bubble{max-width:88%;padding:13px 15px;border-radius:18px;line-height:1.6;font-size:13px;box-shadow:0 8px 24px rgba(18,32,59,.06)}.bubble.ai{background:#fff;color:#25344f;border-bottom-left-radius:6px}.bubble.user{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;align-self:flex-end;border-bottom-right-radius:6px}.bubble.system{align-self:center;background:#fff8e8;color:#8a6a22;font-size:11px}
.correction{margin:0 18px 14px;padding:14px 15px;border-radius:20px;background:rgba(255,249,238,.92);border:1px solid rgba(255,214,138,.35);color:#615028}.correctSentence{margin-top:6px;font-weight:900;color:#234f2b}.explain{margin-top:6px;color:#7f6c3d;font-size:12px;line-height:1.6}.miniAction{margin-top:10px;height:34px;padding:0 12px;border-radius:12px;background:rgba(var(--accent-rgb),.1);color:#4857d0;font-weight:800}
.composer{display:flex;gap:10px;padding:16px 18px;border-top:1px solid rgba(17,35,66,.06)}.composer input{flex:1;min-width:0;height:48px;padding:0 14px;border-radius:14px;border:1px solid var(--stroke);background:rgba(255,255,255,.88);outline:none;color:var(--text)}.composer input:focus{border-color:rgba(var(--accent-rgb),.35);box-shadow:0 0 0 4px rgba(var(--accent-rgb),.08)}.composer button{width:82px;height:48px;border-radius:14px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:900}

.sceneStage{position:absolute;left:420px;right:28px;top:72px;bottom:138px;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.sceneMetaBar{position:absolute;top:0;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px}.sceneTopicPill{display:inline-flex;align-items:center;height:38px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);box-shadow:var(--shadow);font-size:13px;font-weight:900}.sceneHint{display:inline-flex;align-items:center;min-height:42px;padding:0 18px;border-radius:999px;background:rgba(255,255,255,.72);color:#61718d;font-size:12px;font-weight:700;max-width:680px;text-align:center}
.speechBubble{max-width:420px;padding:16px 18px;border-radius:24px 24px 8px 24px;background:rgba(255,255,255,.82);backdrop-filter:blur(12px);box-shadow:var(--shadow);font-size:16px;line-height:1.6;color:#23324c;animation:floatBubble 5s ease-in-out infinite}.characterStage{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:18px}.characterAura{position:absolute;width:460px;height:460px;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.18),transparent 64%);filter:blur(8px)}.characterPedestal{position:absolute;bottom:24px;width:320px;height:44px;border-radius:50%;background:radial-gradient(circle,rgba(15,32,62,.12),rgba(15,32,62,0) 68%)}.characterCard{position:relative;z-index:1;width:min(34vw,440px);height:min(56vh,560px);min-width:280px;min-height:360px;border-radius:34px;background:rgba(255,255,255,.34);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.7);display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:var(--shadow)}.characterImage{width:100%;height:100%;object-fit:contain}.characterFallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;padding:20px}.characterFallback svg{width:90%;height:90%}.characterMeta{position:relative;z-index:1;margin-top:18px;padding:14px 18px;border-radius:18px;background:rgba(255,255,255,.78);backdrop-filter:blur(12px);box-shadow:var(--shadow)}.characterMeta strong{display:block;font-size:17px}.characterMeta span{display:block;margin-top:6px;font-size:13px;color:#6a7a95}
.controlDock{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:18;display:flex;align-items:center;gap:16px;padding:12px 16px;border-radius:22px;background:rgba(255,255,255,.78);backdrop-filter:blur(16px);border:1px solid rgba(255,255,255,.8);box-shadow:var(--shadow);min-width:580px;max-width:min(760px,calc(100vw - 480px))}.modeSwitch{display:flex;gap:8px;padding:6px;border-radius:16px;background:rgba(245,248,255,.9)}.modeBtn{height:40px;padding:0 14px;border-radius:12px;background:transparent;color:#6a7a94;font-size:12px;font-weight:900}.modeBtn.active{background:#fff;box-shadow:0 8px 20px rgba(18,33,60,.08);color:#4d5bdd}.manualControls,.realtimeControls{display:flex;align-items:center;gap:10px}.iconBtn{width:42px;height:42px;border-radius:50%;background:rgba(245,248,255,.98);color:#6d7e98;box-shadow:0 6px 18px rgba(17,34,63,.08)}.micBtn{width:64px;height:64px;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:grid;place-items:center;color:#fff;font-size:24px;box-shadow:0 16px 32px rgba(var(--accent-rgb),.28),0 0 0 10px rgba(var(--accent-rgb),.1)}.primaryBtn{height:42px;padding:0 14px;border-radius:12px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:900}.softBtn{height:42px;padding:0 14px;border-radius:12px;background:#f4f7ff;color:#637598;font-weight:900}.dockStatus{display:flex;flex-direction:column;gap:4px;min-width:180px}.dockStatus strong{font-size:14px}.dockStatus span{font-size:12px;line-height:1.5;color:#71819d}
.sceneScreen.live .micBtn{animation:micPulse 1.4s ease-in-out infinite}.sceneScreen.live #voiceState{color:#37a76e}
@keyframes micPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.06)}}
@keyframes floatBubble{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

/* Themes */
.sceneScreen[data-scene="travel"]{--accent:#5b88ff;--accent-2:#8fb1ff;--accent-rgb:91,136,255;--scene-image:url('/assets/scenes/travel.jpg')}
.sceneScreen[data-scene="restaurant"]{--accent:#cf8a54;--accent-2:#f0b07c;--accent-rgb:207,138,84;--scene-image:url('/assets/scenes/restaurant.jpg')}
.sceneScreen[data-scene="hotel"]{--accent:#647fff;--accent-2:#9db4ff;--accent-rgb:100,127,255;--scene-image:url('/assets/scenes/hotel.jpg')}
.sceneScreen[data-scene="airport"]{--accent:#4f97d6;--accent-2:#8acbef;--accent-rgb:79,151,214;--scene-image:url('/assets/scenes/airport.jpg')}
.sceneScreen[data-scene="shopping"]{--accent:#b16ed5;--accent-2:#e2a6f0;--accent-rgb:177,110,213;--scene-image:url('/assets/scenes/shopping.jpg')}
.sceneScreen[data-scene="direction"]{--accent:#37a38f;--accent-2:#7dd7c5;--accent-rgb:55,163,143;--scene-image:url('/assets/scenes/direction.jpg')}
.sceneScreen[data-scene="support"]{--accent:#3d9da9;--accent-2:#8fd3da;--accent-rgb:61,157,169;--scene-image:url('/assets/scenes/support.jpg')}
.sceneScreen[data-scene="interview"]{--accent:#61718d;--accent-2:#9eb0c6;--accent-rgb:97,113,141;--scene-image:url('/assets/scenes/interview.jpg')}
.sceneScreen[data-scene="meeting"]{--accent:#5d86c9;--accent-2:#9cc1ec;--accent-rgb:93,134,201;--scene-image:url('/assets/scenes/meeting.jpg')}
.sceneScreen[data-scene="office"]{--accent:#6576a5;--accent-2:#a6b3d0;--accent-rgb:101,118,165;--scene-image:url('/assets/scenes/office.jpg')}
.sceneScreen[data-scene="study"]{--accent:#5295d2;--accent-2:#9ad5f4;--accent-rgb:82,149,210;--scene-image:url('/assets/scenes/study.jpg')}
.sceneScreen[data-scene="intro"]{--accent:#8d75d1;--accent-2:#c7b1f2;--accent-rgb:141,117,209;--scene-image:url('/assets/scenes/intro.jpg')}

@media (max-width:1280px){
  .chatPanel{width:330px}.sceneStage{left:380px}.controlDock{max-width:calc(100vw - 420px);min-width:520px}
}
@media (max-width:1100px){
  .selectionForm,.topicGrid{grid-template-columns:1fr 1fr}
  .chatPanel{left:16px;top:16px;bottom:180px;width:320px}
  .exitSceneBtn{top:16px;right:16px}
  .sceneStage{left:350px;right:16px;top:70px;bottom:164px}
  .controlDock{left:350px;transform:none;right:16px;min-width:0;max-width:none;bottom:16px}
}
@media (max-width:860px){
  .landingScreen{padding:18px}.landingHeader,.landingMain{max-width:none}.heroSelection{padding:24px}.heroSelection h1{font-size:38px}.selectionForm,.topicGrid{grid-template-columns:1fr}.landingActions{flex-direction:column;align-items:flex-start}
  .sceneScreen{overflow:auto}.exitSceneBtn{position:fixed}.chatPanel,.sceneStage,.controlDock{position:relative;left:auto;right:auto;top:auto;bottom:auto;width:auto;max-width:none}.chatPanel{margin:84px 12px 12px;height:420px}.sceneStage{margin:12px;padding:0 0 160px}.sceneMetaBar{position:relative;top:auto;left:auto;transform:none;margin-bottom:18px}.sceneHint{max-width:none}.characterCard{width:min(92vw,420px);height:min(56vh,500px)}.controlDock{margin:0 12px 18px;transform:none;flex-direction:column;align-items:stretch;gap:12px;min-width:0}.modeSwitch,.manualControls,.realtimeControls{justify-content:center}.dockStatus{text-align:center}.speechBubble{max-width:92vw}
}
