@import"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap";:root{color:#173f35;background:#f6efe4;font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;--ink: #173f35;--ink-soft: #41675d;--paper: #f6efe4;--card: #fffdf8;--line: #dfd6c8;--coral: #ef6d4c;--coral-dark: #d65336;--sage: #dbe8df;--shadow: 0 18px 60px rgba(40, 51, 45, .09)}*{box-sizing:border-box}html{min-width:320px;background:var(--paper)}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:radial-gradient(circle at 8% 5%,rgba(239,109,76,.08),transparent 25rem),radial-gradient(circle at 95% 30%,rgba(23,63,53,.07),transparent 28rem),var(--paper)}button,textarea,select,input{font:inherit}button,select,input[type=range],input[type=checkbox]{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.52}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{min-height:100vh;min-height:100dvh}.topbar{height:82px;padding:14px max(22px,env(safe-area-inset-right)) 14px max(22px,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(23,63,53,.1);background:#f6efe4e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:11px;border:0;background:transparent;padding:0;text-align:left;color:var(--ink)}.brand-mark{width:44px;height:44px;border-radius:15px 15px 15px 5px;display:grid;place-items:center;color:#fff;background:var(--ink);font-family:Fraunces,Georgia,serif;font-size:24px;box-shadow:0 8px 24px #173f352e}.brand strong{display:block;font-family:Fraunces,Georgia,serif;font-size:21px;line-height:1}.brand small{display:block;color:var(--ink-soft);margin-top:4px;font-size:11px;letter-spacing:.1em;text-transform:uppercase}.top-actions{display:flex;align-items:center;gap:7px}.text-button,.icon-button{border:0;background:transparent;color:var(--ink);font-weight:700}.text-button{padding:10px 9px}.icon-button{width:42px;height:42px;border:1px solid rgba(23,63,53,.14);border-radius:50%;font-size:18px}.text-button:hover,.icon-button:hover{background:#173f350f}.account-button{height:36px;max-width:150px;display:flex;align-items:center;gap:6px;border:1px solid rgba(23,63,53,.15);border-radius:999px;padding:0 11px;background:#fffdf89e;color:var(--ink);font-size:11px;font-weight:700;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.account-button span{flex:0 0 auto;color:var(--coral-dark)}.account-button.signed-in{background:var(--sage);border-color:transparent}main{width:min(100% - 32px,880px);margin:0 auto;padding:34px 0 max(34px,env(safe-area-inset-bottom))}.session-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.eyebrow{margin:0 0 5px;text-transform:uppercase;font-size:11px;font-weight:700;letter-spacing:.13em;color:var(--coral-dark)}h1,h2{font-family:Fraunces,Georgia,serif;margin:0;line-height:1.06}h1{font-size:clamp(34px,7vw,52px)}h2{font-size:34px}h3{font-family:Fraunces,Georgia,serif;font-size:20px;margin:26px 0 12px}.gateway-status{display:flex;align-items:center;gap:8px;color:var(--ink-soft);font-size:12px;font-weight:700;padding-bottom:7px;white-space:nowrap}.gateway-status span{width:8px;height:8px;border-radius:50%;background:#c09e3f;box-shadow:0 0 0 4px #c09e3f1f}.gateway-status.ready span{background:#3c9b6b;box-shadow:0 0 0 4px #3c9b6b1f}.gateway-status.offline span,.gateway-status.unconfigured span{background:var(--coral);box-shadow:0 0 0 4px #ef6d4c1f}.tutor-presence{margin-bottom:14px;border:1px solid rgba(23,63,53,.14);border-radius:27px;overflow:hidden;background:radial-gradient(circle at 13% 28%,rgba(255,255,255,.72),transparent 31%),linear-gradient(125deg,#dbe8df,#edf0df 52%,#f6d9cb);box-shadow:0 16px 42px #173f351a}.tutor-presence-button{width:100%;min-height:178px;display:grid;grid-template-columns:184px minmax(0,1fr) 54px;align-items:center;gap:22px;border:0;padding:0 24px 0 8px;background:transparent;color:var(--ink);text-align:left}.tutor-presence-button:focus-visible{outline:3px solid var(--coral);outline-offset:-4px}.tutor-presence-button:disabled{opacity:1}.avatar-stage{width:178px;height:178px;position:relative;align-self:end;display:block;overflow:hidden;border-radius:50% 50% 23px 23px}.avatar-stage img{width:178px;height:178px;position:absolute;inset:0;z-index:2;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 12px 15px rgba(23,63,53,.16));transform-origin:center bottom}.avatar-halo{position:absolute;inset:16px 12px 3px;z-index:1;border:2px solid rgba(23,63,53,.13);border-radius:50%;background:#fffdf866}.avatar-status{display:block;min-width:0}.avatar-eyebrow{display:block;margin-bottom:7px;color:var(--coral-dark);font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase}.avatar-status strong{display:block;font-family:Fraunces,Georgia,serif;font-size:clamp(27px,4vw,37px);line-height:1}.avatar-status small{display:block;margin-top:9px;color:var(--ink-soft);font-size:12px}.avatar-action{width:50px;height:50px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;box-shadow:0 9px 24px #173f3533;font-size:16px}.tutor-presence.listening .avatar-action{background:var(--coral);animation:pulse 1.3s infinite}.tutor-presence.listening .avatar-halo{border-color:var(--coral);animation:avatar-listen 1.25s ease-in-out infinite}.tutor-presence.thinking .avatar-halo{border-color:transparent;border-top-color:var(--coral);border-right-color:#173f3561;animation:avatar-think 1.2s linear infinite}.tutor-presence.speaking .avatar-action{background:var(--coral)}.tutor-presence.speaking .avatar-stage img{animation:avatar-speak 1.1s ease-in-out infinite}.voice-bars{height:31px;position:absolute;right:8px;bottom:10px;z-index:4;display:none;align-items:center;gap:3px;padding:6px 8px;border-radius:999px;background:var(--ink);box-shadow:0 7px 18px #173f3533}.tutor-presence.speaking .voice-bars{display:flex}.voice-bars i{width:3px;height:8px;border-radius:99px;background:#fff;animation:voice-bar .65s ease-in-out infinite alternate}.voice-bars i:nth-child(2){height:16px;animation-delay:.11s}.voice-bars i:nth-child(3){height:12px;animation-delay:.22s}.voice-bars i:nth-child(4){height:18px;animation-delay:.33s}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-bottom:14px}.mode-grid button{border:1px solid var(--line);border-radius:17px;padding:12px 13px;background:#fffdf8a6;color:var(--ink);display:flex;align-items:center;gap:10px;text-align:left;min-width:0;transition:transform .16s ease,border-color .16s ease,background .16s ease}.mode-grid button:hover{transform:translateY(-1px);border-color:#173f3547}.mode-grid button.active{background:var(--ink);color:#fff;border-color:var(--ink);box-shadow:0 10px 25px #173f3529}.mode-grid strong,.mode-grid small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mode-grid strong{font-size:13px}.mode-grid small{margin-top:2px;font-size:10px;opacity:.7}.mode-glyph{width:28px;height:28px;flex:0 0 auto;border-radius:9px;display:grid;place-items:center;background:#173f3514;font-weight:700}.active .mode-glyph{background:#ffffff1f}.scenario-picker{background:#fffdf8b3;border:1px solid var(--line);border-radius:15px;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px 10px 16px;margin-bottom:14px;font-size:12px;font-weight:700;color:var(--ink-soft)}.scenario-picker select{border:0;background:transparent;color:var(--ink);font-weight:700;outline:none;max-width:65%}.notice{margin:0 0 12px;padding:11px 14px;border-radius:12px;background:#fff2d6;border:1px solid #eed8a7;color:#735719;font-size:13px}.access-gate{margin:0 0 12px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px;border-radius:15px;background:var(--ink);color:#fff}.access-gate strong,.access-gate span{display:block}.access-gate strong{font-family:Fraunces,Georgia,serif;font-size:16px}.access-gate span{margin-top:2px;color:#ffffffb8;font-size:10px}.access-gate button{flex:0 0 auto;border:0;border-radius:999px;padding:8px 13px;background:var(--coral);color:#fff;font-size:10px;font-weight:700}.chat-card{background:var(--card);border:1px solid rgba(23,63,53,.12);border-radius:27px;box-shadow:var(--shadow);overflow:hidden}.chat-log{min-height:350px;max-height:min(52vh,560px);overflow-y:auto;padding:28px 25px 14px;scroll-behavior:smooth}.message{display:flex;align-items:flex-start;gap:11px;margin:0 0 18px;max-width:88%;animation:rise .22s ease both}.message.user{margin-left:auto;flex-direction:row-reverse}.message.error{max-width:100%}.avatar{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;overflow:hidden;border-radius:11px 11px 11px 4px;background:var(--ink);color:#fff;font-size:11px;font-weight:700}.avatar.tutor-mini{background:linear-gradient(145deg,var(--sage),#f6d9cb)}.avatar.tutor-mini img{width:42px;height:42px;object-fit:contain;object-position:center bottom;transform:translateY(4px)}.message.user .avatar{background:var(--coral);border-radius:11px 11px 4px}.message.error .avatar{background:#a13f2d}.message>div:last-child{min-width:0}.message p{white-space:pre-wrap;word-break:break-word;margin:0;padding:11px 14px;border-radius:4px 16px 16px;background:var(--sage);color:var(--ink);line-height:1.55;font-size:15px}.message.user p{background:var(--coral);color:#fff;border-radius:16px 4px 16px 16px}.message.error p{background:#f9ded7;color:#772f22;border-radius:12px}.message small{display:block;color:#7d8f89;font-size:10px;margin:5px 4px 0}.message.user small{text-align:right}.typing{height:42px;min-width:68px;display:flex;align-items:center;gap:4px;padding:0 16px;border-radius:4px 16px 16px;background:var(--sage)}.typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-soft);animation:bounce 1s infinite alternate}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.quick-prompts{display:flex;gap:7px;padding:4px 18px 15px;overflow-x:auto;scrollbar-width:none}.quick-prompts::-webkit-scrollbar{display:none}.quick-prompts button{border:1px solid var(--line);background:transparent;color:var(--ink-soft);padding:8px 11px;border-radius:999px;white-space:nowrap;font-size:11px}.quick-prompts button:hover{border-color:var(--coral);color:var(--coral-dark)}.composer{margin:0 12px 12px;padding:8px;border:1px solid var(--line);border-radius:20px;background:#f7f3eb;display:grid;grid-template-columns:46px 1fr 42px;gap:7px;align-items:end}.composer label{display:block;align-self:stretch}.composer textarea{width:100%;min-height:44px;max-height:120px;resize:none;border:0;outline:0;background:transparent;color:var(--ink);padding:12px 5px 8px;line-height:1.4}.composer textarea::placeholder{color:#81928c}.mic-button,.send-button{width:44px;height:44px;border:0;border-radius:15px;display:grid;place-items:center}.mic-button{background:var(--ink);position:relative}.mic-button.listening{background:var(--coral);animation:pulse 1.3s infinite}.mic-icon{width:12px;height:19px;border:2px solid white;border-radius:7px;position:relative}.mic-icon:before{content:"";position:absolute;left:50%;top:14px;width:20px;height:10px;border:2px solid white;border-top:0;border-radius:0 0 12px 12px;transform:translate(-50%)}.mic-icon:after{content:"";position:absolute;left:50%;top:23px;width:2px;height:5px;background:#fff;transform:translate(-50%)}.send-button{background:var(--coral);color:#fff;font-size:24px;font-weight:500}.send-button:hover:not(:disabled){background:var(--coral-dark)}.end-lesson{display:block;margin:17px auto 0;border:0;border-bottom:1px solid rgba(23,63,53,.32);padding:3px 1px;background:transparent;color:var(--ink-soft);font-size:12px;font-weight:700}.privacy-note{text-align:center;color:#72857e;font-size:10px;margin:12px 0 0}.sheet-backdrop{position:fixed;inset:0;z-index:30;background:#0e231d7a;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);display:flex;align-items:flex-end;justify-content:center;padding-top:30px}.sheet{width:min(100%,570px);max-height:calc(100dvh - 28px);overflow-y:auto;background:var(--card);border-radius:28px 28px 0 0;padding:27px 25px max(27px,env(safe-area-inset-bottom));box-shadow:0 -20px 60px #0f251f33;animation:sheet-up .22s ease both}.sheet header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.sheet header>button{width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font-size:26px;line-height:1}.field{display:block;padding:15px 0;border-bottom:1px solid var(--line)}.field>span{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:700;margin-bottom:11px}.field b{color:var(--coral-dark)}.field input[type=range]{width:100%;accent-color:var(--coral)}.field select{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;background:#f8f4ec;color:var(--ink)}.field small{display:block;margin-top:7px;color:#778880;font-size:10px}.toggle{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0}.toggle strong,.toggle small{display:block}.toggle strong{font-size:13px}.toggle small{color:#778880;font-size:10px;margin-top:2px}.toggle input{width:40px;height:22px;accent-color:var(--coral)}.sync-note{display:flex;align-items:center;gap:8px;margin:0 0 16px;padding:11px 13px;border-radius:12px;background:var(--sage);color:var(--ink-soft);font-size:11px}.sync-note span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--ink);color:#fff}.primary-button,.secondary-button{width:100%;border-radius:14px;padding:13px 18px;font-weight:700}.primary-button{border:0;background:var(--ink);color:#fff}.secondary-button{border:1px solid var(--line);background:transparent;color:var(--ink)}.secondary-button.danger{color:#a13f2d;margin-top:18px}.stat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.stat-grid div{background:var(--sage);border-radius:16px;padding:16px 10px;text-align:center}.stat-grid strong,.stat-grid span{display:block}.stat-grid strong{font-family:Fraunces,Georgia,serif;font-size:28px}.stat-grid span{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);margin-top:3px}.history-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.history-list li{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 2px;border-bottom:1px solid var(--line);font-size:12px}.history-list strong,.history-list small{display:block}.history-list small{color:#778880;margin-top:3px}.history-list>li>span{font-weight:700;color:var(--coral-dark)}.empty-state{background:#f7f3eb;padding:17px;border-radius:13px;color:var(--ink-soft);font-size:13px}.review-list,.mistake-list{list-style:none;margin:0;padding:0}.review-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.review-list li>div:first-child{min-width:0}.review-list strong,.review-list small{display:block}.review-list strong{font-size:13px}.review-list small{margin-top:2px;color:#778880;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-list li>div:last-child{display:flex;gap:5px;flex:0 0 auto}.review-list button{border:1px solid var(--line);border-radius:999px;padding:6px 9px;background:transparent;color:var(--ink-soft);font-size:9px;font-weight:700}.review-list button.correct{border-color:var(--ink);background:var(--ink);color:#fff}.mistake-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:10px 0;border-bottom:1px solid var(--line);font-size:11px}.mistake-list li>span,.mistake-list li>strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mistake-list li>strong{color:var(--coral-dark);font-weight:600}.mistake-list li>small{grid-column:1 / -1;color:#778880;font-size:9px}.account-nudge{margin:20px 0 10px;color:var(--ink-soft);font-size:12px;line-height:1.5;text-align:center}.account-sheet{max-width:520px}.account-success{display:flex;gap:12px;padding:16px;border-radius:16px;background:var(--sage)}.account-success>span{width:34px;height:34px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff;font-weight:700}.account-success strong{display:block;font-family:Fraunces,Georgia,serif;font-size:18px}.account-success p{margin:5px 0 0;color:var(--ink-soft);font-size:11px;line-height:1.5}.account-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:16px 0}.account-summary div{padding:13px 8px;border:1px solid var(--line);border-radius:13px;text-align:center}.account-summary span,.account-summary strong{display:block}.account-summary span{color:#778880;font-size:8px;text-transform:uppercase;letter-spacing:.07em}.account-summary strong{margin-top:4px;font-family:Fraunces,Georgia,serif;font-size:22px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:4px;border-radius:13px;background:#eee8dd}.auth-tabs button{border:0;border-radius:10px;padding:10px;background:transparent;color:var(--ink-soft);font-size:11px;font-weight:700}.auth-tabs button.active{background:var(--card);color:var(--ink);box-shadow:0 3px 10px #1e2d2714}.auth-form{display:grid;gap:14px;margin-top:18px}.auth-form label>span{display:block;margin-bottom:6px;color:var(--ink-soft);font-size:11px;font-weight:700}.auth-form input{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 13px;background:#f8f4ec;color:var(--ink);outline:none}.auth-form input:focus{border-color:var(--ink);box-shadow:0 0 0 3px #173f3514}.auth-error{margin:-3px 0 0;padding:10px 12px;border-radius:11px;background:#f9ded7;color:#772f22;font-size:11px}.security-copy{margin:15px 3px;color:#778880;font-size:10px;line-height:1.5;text-align:center}@keyframes rise{0%{opacity:0;transform:translateY(6px)}}@keyframes bounce{to{transform:translateY(-5px);opacity:.5}}@keyframes pulse{50%{box-shadow:0 0 0 9px #ef6d4c29}}@keyframes sheet-up{0%{opacity:0;transform:translateY(25px)}}@keyframes avatar-listen{50%{transform:scale(1.06);box-shadow:0 0 0 8px #ef6d4c1a}}@keyframes avatar-think{to{transform:rotate(360deg)}}@keyframes avatar-speak{50%{transform:translateY(-2px) scale(1.01)}}@keyframes voice-bar{to{transform:scaleY(.45);opacity:.68}}@media(max-width:690px){.topbar{height:72px;padding-top:max(10px,env(safe-area-inset-top))}.brand-mark{width:39px;height:39px;border-radius:13px 13px 13px 5px;font-size:21px}.brand strong{font-size:19px}.brand small{display:none}.account-button{width:38px;padding:0;justify-content:center;font-size:0}.account-button span{font-size:14px}.text-button{padding-left:5px;padding-right:5px;font-size:11px}main{width:min(100% - 22px,880px);padding-top:24px}.session-heading{align-items:center;margin:0 5px 18px}.gateway-status{font-size:0;padding:0}.gateway-status span{width:10px;height:10px}.tutor-presence{border-radius:22px}.tutor-presence-button{min-height:142px;grid-template-columns:132px minmax(0,1fr) 40px;gap:9px;padding:0 12px 0 2px}.avatar-stage{width:136px;height:142px}.avatar-stage img{width:142px;height:142px;left:-3px;top:auto;bottom:0}.avatar-halo{inset:18px 9px 2px}.avatar-eyebrow{margin-bottom:5px;font-size:8px;letter-spacing:.1em}.avatar-status strong{font-size:clamp(21px,6.6vw,29px)}.avatar-status small{margin-top:6px;font-size:9px;line-height:1.35}.avatar-action{width:38px;height:38px}.avatar-action .mic-icon{transform:scale(.78)}.voice-bars{right:1px;bottom:6px;transform:scale(.84)}.mode-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.mode-grid button{display:block;text-align:center;padding:9px 3px;border-radius:14px}.mode-glyph{margin:0 auto 5px}.mode-grid strong{font-size:10px}.mode-grid small{display:none}.chat-card{border-radius:22px}.chat-log{min-height:330px;max-height:50vh;padding:22px 14px 10px}.message{max-width:94%;gap:7px}.avatar{width:29px;height:29px;border-radius:9px 9px 9px 3px;font-size:9px}.avatar.tutor-mini img{width:36px;height:36px}.message p{font-size:14px;padding:10px 12px}.quick-prompts{padding-left:12px;padding-right:12px}.composer{margin:0 8px 8px;grid-template-columns:44px 1fr 40px;gap:4px}.mic-button{width:42px;height:42px}.send-button{width:40px;height:40px}}@media(min-width:700px){.sheet-backdrop{align-items:center;padding:30px}.sheet{border-radius:28px;max-height:min(760px,calc(100dvh - 60px))}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;scroll-behavior:auto!important}}
