@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,500;9..144,600&display=swap";:root{color:#29262b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#29262b;--muted:#847e80;--line:#e8e2dc;background:#f3f0eb;font-family:DM Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button{font:inherit}button:focus-visible{outline-offset:3px;outline:3px solid #df7566}#root{min-height:100vh}.app-shell{min-height:100dvh;color:var(--ink);background:#faf9f7}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1180px;height:76px;margin:auto;padding:0 5.4vw;display:flex}.brand,.icon-button,.profile,button{font:inherit}.brand{color:var(--ink);cursor:pointer;background:0 0;border:0;align-items:center;gap:10px;padding:8px 0;font-size:17px;font-weight:700;display:flex}.brand-mark{color:#fff;background:#df7566;border-radius:9px 9px 9px 3px;place-items:center;width:27px;height:27px;font:italic 20px Georgia,serif;display:grid}.top-actions{align-items:center;gap:18px;display:flex}.streak{color:#8d8586;font-size:12px}.streak i,.turn-label>span{background:#e4a45a;border-radius:50%;width:7px;height:7px;margin-right:5px;display:inline-block}.profile{color:#765e55;background:#e8d8cc;border:0;border-radius:50%;width:35px;height:35px;font-size:11px;font-weight:700}.main-content{min-height:calc(100dvh - 150px)}.page{max-width:990px;margin:auto;padding:48px 5.4vw 100px}.eyebrow{color:#a19998;letter-spacing:1.4px;margin:0 0 12px;font-size:10px;font-weight:800}.page h1,.welcome h1{letter-spacing:-2px;margin:0;font:500 clamp(37px,5vw,56px)/1.04 Fraunces,Georgia,serif}.page p,.welcome p{color:var(--muted);line-height:1.55}.welcome{margin-bottom:28px}.welcome h1 span{color:#e4a45a;font:.65em sans-serif}.welcome>p:last-child{margin:10px 0 0;font-size:17px}.today-hero{color:#fff;background:#475e59;border-radius:26px;justify-content:space-between;align-items:center;min-height:285px;padding:38px 48px;display:flex;position:relative;overflow:hidden}.today-hero:after{content:"";border:1px solid #ffffff2b;border-radius:50%;width:470px;height:470px;position:absolute;bottom:-180px;right:-100px;box-shadow:0 0 0 35px #ffffff0d,0 0 0 70px #ffffff09}.today-hero>div:first-child{z-index:1;position:relative}.eyebrow.light{color:#b7c8c0}.today-hero h2{letter-spacing:-2px;margin:0 0 14px;font:500 clamp(35px,5vw,55px)/.98 Fraunces,Georgia,serif}.today-hero h2 em,.summary-modal h1 em{color:#e9b19d;font-style:italic}.today-hero p{color:#c4d0cc;margin:0 0 24px;font-size:14px}.hero-orbit{z-index:1;border:1px solid #ffffff59;border-radius:50%;place-items:center;width:140px;height:140px;margin-right:6%;display:grid;position:relative;overflow:hidden;transform:rotate(-9deg)}.hero-orbit img{object-fit:cover;opacity:.28;width:100%;height:100%;position:absolute}.hero-orbit span{color:#f0c4ae;font:italic 22px/.82 Fraunces,Georgia,serif;position:relative}.button{cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:10px;min-height:46px;padding:0 18px;font-size:13px;font-weight:700;display:inline-flex}.button b{font-size:18px;font-weight:400}.light-button{color:#465c58;background:#fff}.primary{color:#fff;background:#d87768}.outline{color:#d27668;background:0 0;border:1px solid #ecc6bb}.full{width:100%}.today-focus{padding:34px 0 24px}.section-title,.review-heading{justify-content:space-between;align-items:end;gap:20px;display:flex}.section-title h2{margin:0;font:500 25px Fraunces,Georgia,serif}.section-title>span{color:#aaa09e;font-size:12px}.focus-row-list{grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px;display:grid}.focus-row{border:1px solid var(--line);color:#5e585a;background:#fff;border-radius:13px;align-items:center;gap:10px;min-height:57px;padding:0 14px;font-size:12px;display:flex}.focus-row>span{color:#d4796c;background:#f8e8e3;border-radius:7px;flex:0 0 23px;place-items:center;width:23px;height:23px;display:grid}.focus-row.done{color:#4d6760;background:#f1f5f2;border-color:#dbe8e1}.focus-row.done>span{color:#fff;background:#7ba696}.focus-row b{color:#6e9b8a;margin-left:auto;font-size:10px}.today-bottom{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:24px;padding-top:22px;display:flex}.review-link{color:var(--ink);text-align:left;cursor:pointer;background:0 0;border:0;gap:5px;padding:0;display:grid}.review-link strong{font-size:13px}.review-link strong b{color:#d27668}.review-link small{color:#a29a9a;font-size:11px}.small-icon{color:#d4796c;background:#f6e6e0;border-radius:9px;place-items:center;width:28px;height:28px;margin-right:8px;display:inline-grid}.week-progress{color:#aaa09e;align-items:baseline;gap:8px;font-size:10px;display:flex}.week-progress strong{color:#5d5758;font:20px Fraunces,Georgia,serif}.week-progress div{align-items:end;gap:4px;height:22px;margin-left:10px;display:flex}.week-progress i{background:#82a798;border-radius:4px;width:5px;height:21px}.week-progress i:nth-child(2){height:15px}.week-progress i:nth-child(4),.week-progress i:nth-child(5){background:#e8e2df;height:10px}.compact-heading{margin-bottom:28px}.compact-heading>p:last-child{margin:11px 0 0;font-size:14px}.mission-page,.review-page,.progress-page{max-width:1080px}.mission-grid{grid-template-columns:repeat(2,1fr);gap:13px;display:grid}.scenario-card{border:1px solid var(--line);min-height:137px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:18px;align-items:center;gap:15px;padding:16px;transition:transform .2s,box-shadow .2s;display:flex;position:relative}.scenario-card:hover{transform:translateY(-2px);box-shadow:0 10px 22px #3c2d260d}.scenario-thumb{border-radius:45px;flex:0 0 72px;place-items:center;width:72px;height:98px;display:grid;overflow:hidden}.scenario-thumb img{object-fit:cover;opacity:.55;mix-blend-mode:multiply;width:100%;height:100%}.scenario-thumb.coral{background:#f5d9d0}.scenario-thumb.sage{background:#dcebe2}.scenario-thumb.lavender{background:#e8e0ee}.scenario-thumb.sand{background:#f2e4d0}.scenario-card-copy{flex:1;min-width:0}.scenario-card-copy strong,.scenario-card-copy small{display:block}.scenario-card-copy strong{font:500 19px/1.1 Fraunces,Georgia,serif}.scenario-card-copy small{color:#a09a99;margin:8px 0 14px;font-size:11px}.readiness{align-items:center;gap:8px;display:flex}.readiness i,.metric-bar i{background:#82a798;border-radius:4px;height:5px;display:block}.readiness i{width:54px}.readiness em{color:#8d8585;font-size:10px;font-style:normal}.scenario-card .arrow{color:#aaa09e;font-size:19px}.mission-page>.outline{margin-top:16px}.back-link{color:#9d9492;cursor:pointer;background:0 0;border:0;margin-bottom:24px;padding:0;font-size:12px}.scenario-hero{background:#475e59;border-radius:24px;height:190px;position:relative;overflow:hidden}.scenario-hero img{object-fit:cover;opacity:.38;width:100%;height:100%}.scenario-hero>div{color:#fff;gap:5px;display:grid;position:absolute;bottom:20px;left:24px}.scenario-hero span{color:#c3d2cc;font-size:11px}.scenario-hero strong{font:500 24px Fraunces,Georgia,serif}.detail-copy{max-width:570px;padding-top:28px}.detail-copy h1{font-size:40px}.detail-copy>p:not(.eyebrow){font-size:14px}.role-grid{grid-template-columns:1fr 1fr;gap:10px;margin:24px 0 12px;display:grid}.role-grid>div,.goal-strip{border:1px solid var(--line);background:#fff;border-radius:13px;padding:15px}.role-grid small,.goal-strip small{color:#a29a98;letter-spacing:1px;margin-bottom:6px;font-size:10px;display:block}.role-grid strong,.goal-strip strong{font-size:13px}.goal-strip{margin-bottom:17px}.review-heading{align-items:center;margin-bottom:26px}.review-heading .compact-heading{margin-bottom:0}.due-badge{color:#d27466;background:#f8e7e1;border-radius:50%;flex:0 0 76px;place-items:center;width:76px;height:76px;display:grid}.due-badge b{font:31px Fraunces,Georgia,serif}.due-badge small{margin-top:-20px;font-size:10px}.review-sections>.eyebrow{margin-bottom:12px}.review-list{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.review-item{border:1px solid var(--line);background:#fff;border-radius:17px;flex-direction:column;justify-content:space-between;min-height:190px;padding:17px;display:flex}.status{letter-spacing:.7px;border-radius:5px;padding:5px 8px;font-size:9px;font-weight:800;display:inline-block}.status.practicing{color:#cf7163;background:#fae9e3}.status.review{color:#679283;background:#e7f1eb}.status.new{color:#8b7ba1;background:#eee9f3}.review-item h2{margin:16px 0 7px;font:500 15px/1.35 Fraunces,Georgia,serif}.review-item p{color:#9b9391;margin:0;font-size:11px}.review-state{border-top:1px solid var(--line);color:#a29a99;margin-top:14px;padding-top:12px;font-size:10px}.review-sections .full{margin-top:16px}.progress-page{max-height:calc(100dvh - 76px);overflow-y:auto}.progress-hero{color:#fff;background:#475e59;border-radius:21px;align-items:center;gap:28px;margin:34px 0 16px;padding:27px 32px;display:flex}.progress-ring{border:8px solid #e7b39e;border-right-color:#ffffff2b;border-radius:50%;flex:0 0 106px;place-items:center;width:106px;height:106px;display:grid}.progress-ring b{font:32px Fraunces,Georgia,serif}.progress-ring small{color:#c1d0ca;margin-top:-9px;font-size:10px}.progress-hero h2{margin:0 0 6px;font:500 28px Fraunces,Georgia,serif}.progress-hero p:last-child{color:#c4d0cc;margin:0;font-size:13px}.metric-grid{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.metric{border:1px solid var(--line);background:#fff;border-radius:15px;padding:18px}.metric>span{color:#9e9694;font-size:11px}.metric strong{margin:11px 0 5px;font:500 31px Fraunces,Georgia,serif;display:block}.metric strong small{color:#918885;margin-left:3px;font:13px DM Sans,sans-serif}.metric em{color:#6d9b89;font-size:11px;font-style:normal}.metric-bar{background:#e9e3df;border-radius:4px;height:5px;margin-top:14px}.growth-card,.readiness-card{border:1px solid var(--line);background:#fff;border-radius:15px;justify-content:space-between;align-items:center;margin-top:12px;padding:20px;display:flex}.growth-card h2,.readiness-card h2{margin:0;font:500 23px Fraunces,Georgia,serif}.growth-card h2 span{color:#d8796b}.growth-card p:last-child,.readiness-card p:last-child{margin:6px 0 0;font-size:11px}.spark-bars{align-items:end;gap:5px;height:54px;display:flex}.spark-bars i{background:#eab6a6;border-radius:4px;width:9px}.spark-bars i:last-child{background:#7ba697}.readiness-card>b{color:#6d9b89;font:23px Fraunces,Georgia,serif}.conversation-main{min-height:100dvh}.conversation-screen{background:#f8f7f4;flex-direction:column;min-height:100dvh;display:flex}.conversation-head{border-bottom:1px solid var(--line);flex:0 0 78px;align-items:center;gap:13px;padding:0 5.4vw;display:flex}.icon-button{border:1px solid var(--line);color:#817878;cursor:pointer;background:#fff;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.conversation-head .eyebrow{margin:0 0 3px;font-size:9px}.conversation-head strong{font:500 17px Fraunces,Georgia,serif}.session-progress{background:#e6e0db;border-radius:5px;width:100px;height:5px;margin-left:auto}.session-progress i{border-radius:inherit;background:#d87768;height:100%;display:block}.conversation-content{flex:1;width:min(650px,90%);min-height:0;margin:0 auto;padding:27px 0 145px;overflow-y:auto}.turn-label{color:#aaa09e;letter-spacing:1px;margin-bottom:12px;font-size:10px;font-weight:700}.turn-label>span{background:#c9d7d0}.turn-label>span.live{background:#d87768}.chat-bubble{border-radius:17px;max-width:80%;padding:17px 19px}.tutor-bubble{color:#fff;background:#475e59;border-top-left-radius:4px}.user-bubble{border:1px solid var(--line);background:#fff;border-top-right-radius:4px;margin:13px 0 0 auto}.speaker{color:#b9ccc3;align-items:center;gap:7px;margin-bottom:10px;font-size:10px;font-weight:700;display:flex}.user-bubble .speaker{color:#a29a98}.mini-avatar{color:#fff;background:#db8978;border-radius:7px 7px 7px 2px;place-items:center;width:21px;height:21px;display:grid}.chat-bubble p{margin:0;font:500 20px/1.35 Fraunces,Georgia,serif}.user-bubble p{color:#403a3b;font:14px/1.5 DM Sans,sans-serif}.correction-card,.expression-gap{background:#fff5f1;border-radius:13px;max-width:80%;margin:10px 0 0 auto;padding:13px 16px}.correction-card{border:1px solid #edc7bb}.correction-label,.gap-kicker{color:#d48678;letter-spacing:1px;margin-bottom:6px;font-size:9px;font-weight:800;display:block}.correction-card strong{color:#bd655b;font:500 16px Fraunces,Georgia,serif;display:block}.correction-card small{color:#a68d87;font-size:10px}.correction-card em{color:#bd655b;font-style:normal}.expression-gap{border:1px solid #edc7bb}.expression-gap small,.expression-gap strong,.expression-gap p{display:block}.expression-gap small{color:#a68d87;font-size:10px}.expression-gap strong{color:#603e39;margin:6px 0;font-size:13px}.expression-gap p{color:#bd655b;margin:0 0 10px;font-size:12px}.expression-gap button{color:#d27466;cursor:pointer;background:0 0;border:0;padding:0;font-size:11px;font-weight:700}.conversation-controls{z-index:3;height:calc(112px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#f8f7f4f5;justify-content:center;align-items:center;gap:clamp(24px,7vw,82px);display:flex;position:fixed;bottom:0;left:0;right:0}.secondary-control,.finish-control{color:#b06b61;cursor:pointer;background:0 0;border:0;padding:10px 0;font-size:11px;font-weight:700}.finish-control{color:#aaa09e}.speak-button{color:#fff;cursor:pointer;background:#d9796b;border:8px solid #f6e3de;border-radius:50%;place-items:center;width:72px;height:72px;display:grid;box-shadow:0 5px 17px #d570603f}.speak-button.listening{background:#52736a;border-color:#dbeae3;animation:1.2s ease-in-out infinite breathe}.speak-button.processing{background:#9caaa3;border-color:#e3e9e5}.speak-button.speaking{background:#475e59;border-color:#dbeae3}.mic-glyph{font-size:18px}.speak-button small{font-size:8px;font-weight:700}@keyframes breathe{50%{box-shadow:0 0 0 8px #52736a18}}.modal-backdrop{z-index:10;background:#29333180;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.summary-modal{background:#faf9f7;border-radius:24px;width:min(430px,100%);padding:35px 30px 25px;position:relative;box-shadow:0 20px 60px #1e302840}.modal-close{color:#9d9492;cursor:pointer;background:0 0;border:0;font-size:23px;position:absolute;top:16px;right:18px}.summary-mark{color:#fff;background:#7ba697;border-radius:13px;place-items:center;width:40px;height:40px;margin-bottom:20px;display:grid}.summary-modal h1{margin:0 0 24px;font:500 37px/1.02 Fraunces,Georgia,serif}.summary-stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:25px;padding:16px 0;display:flex}.summary-stats span{color:#9d9492;font-size:11px}.summary-stats b{color:var(--ink);margin-right:3px;font:22px Fraunces,Georgia,serif}.summary-note{gap:5px;padding:20px 0;display:grid}.summary-note small{color:#a29a98;letter-spacing:1px;margin-top:8px;font-size:9px}.summary-note strong{font-size:13px}.modal-review{color:#b06b61;cursor:pointer;background:0 0;border:0;margin:13px auto 0;font-size:12px;font-weight:700;display:block}.bottom-nav{z-index:5;height:calc(74px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#faf9f7f5;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.nav-item{color:#aaa3a3;cursor:pointer;background:0 0;border:0;flex-direction:column;flex:0 130px;justify-content:center;align-items:center;gap:5px;font-size:10px;font-weight:700;display:flex;position:relative}.nav-item.active{color:#da7568}.nav-icon{font-size:20px;line-height:1}.nav-dot{background:#e3a45d;border-radius:50%;width:4px;height:4px;position:absolute;top:15px;right:calc(50% - 20px)}@media (width>=701px){.app-shell{max-width:1180px;margin:auto;box-shadow:0 0 45px #4538300d}}@media (width<=700px){.topbar{height:calc(66px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 20px 0}.streak{display:none}.main-content{min-height:calc(100dvh - 66px - env(safe-area-inset-top))}.page{padding:25px 20px calc(92px + env(safe-area-inset-bottom))}.welcome{margin-bottom:16px}.welcome h1{letter-spacing:-1.2px;font-size:30px}.welcome>p:last-child{margin-top:6px;font-size:15px}.today-hero{border-radius:20px;min-height:214px;padding:23px 21px}.today-hero h2{font-size:31px}.today-hero p{max-width:195px;margin-bottom:14px;font-size:11px}.today-hero .button{min-height:42px;padding:0 13px;font-size:11px}.hero-orbit{opacity:.9;width:108px;height:108px;margin:0;position:absolute;bottom:12px;right:-20px}.today-focus{padding:19px 0 16px}.section-title h2{font-size:20px}.focus-row-list{grid-template-columns:1fr;gap:5px;margin-top:10px}.focus-row{min-height:38px;padding:0 10px;font-size:11px}.today-bottom{align-items:flex-start;gap:10px;padding-top:13px}.review-link small{display:none}.review-link strong{font-size:11px}.week-progress{font-size:9px}.week-progress div{margin-left:2px}.compact-heading{margin-bottom:18px}.page h1{font-size:34px}.compact-heading>p:last-child{margin-top:7px;font-size:12px}.mission-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.scenario-card{border-radius:15px;min-height:145px;padding:11px;display:block}.scenario-thumb{width:42px;height:42px;margin-bottom:9px}.scenario-card-copy strong{font-size:14px;line-height:1.15}.scenario-card-copy small{margin:5px 0 7px;font-size:9px}.readiness{gap:5px}.readiness i{width:32px;height:4px}.readiness em{font-size:8px}.scenario-card .arrow{font-size:15px;position:absolute;top:9px;right:9px}.mission-page>.outline{min-height:43px;margin-top:10px;font-size:11px}.review-heading{margin-bottom:18px}.review-heading h1{font-size:32px}.due-badge{flex-basis:60px;width:60px;height:60px}.due-badge b{font-size:26px}.due-badge small{margin-top:-17px;font-size:9px}.review-list{grid-template-columns:1fr;gap:7px}.review-item{min-height:0;padding:12px}.review-item h2{margin:10px 0 5px;font-size:14px}.review-item p{font-size:10px}.review-state{margin-top:9px;padding-top:8px;font-size:9px}.review-sections .full{min-height:44px;margin-top:10px}.progress-page{max-height:none;overflow-y:auto}.progress-hero{gap:15px;margin-top:22px;padding:20px}.progress-ring{flex-basis:82px;width:82px;height:82px}.progress-hero h2{font-size:22px}.progress-hero p:last-child{font-size:11px}.metric-grid{grid-template-columns:1fr 1fr;gap:8px}.metric{padding:13px}.metric strong{font-size:27px}.metric:last-child{grid-column:span 2}.growth-card,.readiness-card{padding:15px}.growth-card h2,.readiness-card h2{font-size:19px}.conversation-head{flex-basis:calc(68px + env(safe-area-inset-top));height:calc(68px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 20px 0}.conversation-content{width:calc(100% - 40px);padding-top:20px;padding-bottom:calc(135px + env(safe-area-inset-bottom))}.conversation-content .scenario-hero{height:125px}.chat-bubble,.correction-card,.expression-gap{max-width:94%}.chat-bubble p{font-size:18px}.conversation-controls{gap:20px}.speak-button{width:66px;height:66px}.secondary-control,.finish-control{font-size:10px}}.follow-up-note{color:#5c5556;background:#fff;border-left:3px solid #d87768;max-width:80%;margin-top:10px;padding:10px 13px;font-size:13px;line-height:1.45}.follow-up-note span{color:#bd7569;letter-spacing:1px;margin-bottom:3px;font-size:9px;font-weight:800;display:block}.voice-error{margin:12px 0 0;font-size:12px;color:#b25f55!important}.playback-fallback{color:#b9685d;cursor:pointer;background:#fff5f1;border:1px solid #edc7bb;border-radius:10px;margin:12px 0 0 auto;padding:10px 13px;font-size:11px;font-weight:700;display:block}.voice-debug{color:#8d8585;margin-top:16px;font-size:10px}.voice-debug summary{cursor:pointer}.voice-debug pre{color:#d6e2dc;white-space:pre-wrap;word-break:break-word;background:#344944;border-radius:8px;max-height:180px;margin:8px 0 0;padding:10px;font:10px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;overflow:auto}@media (width<=380px){.mission-grid{grid-template-columns:1fr}.scenario-card{min-height:90px;padding:12px;display:flex}.scenario-thumb{flex-basis:46px;width:46px;height:56px;margin:0}.scenario-card-copy strong{font-size:15px}.scenario-card .arrow{top:auto;bottom:10px}.today-hero h2{font-size:28px}.today-hero{min-height:205px}}.scenario-hero .scene-image{object-fit:cover;opacity:1;object-position:center;width:100%;height:100%}.scenario-hero:after{content:"";background:linear-gradient(#0000,#253c37c7);position:absolute;inset:35% 0 0}.scenario-hero>div{z-index:2}.scenario-hero strong small{color:#d0ddd6;font:400 11px DM Sans,sans-serif}.mini-avatar-image{object-fit:cover;object-position:center;border-radius:50%;flex:0 0 40px;width:40px;height:40px}.conversation-content .scenario-hero{height:205px;margin-bottom:16px}.conversation-content{padding-top:22px}@media (width<=700px){.conversation-content .scenario-hero{height:190px}.scenario-hero .scenario-avatar{width:140px;height:178px;right:7%}.conversation-head{flex-basis:calc(62px + env(safe-area-inset-top));height:calc(62px + env(safe-area-inset-top))}.conversation-head .eyebrow{display:none}.conversation-head strong{white-space:nowrap}.conversation-content{padding-top:14px}.tutor-bubble{padding:14px 17px}.conversation-controls{height:calc(106px + env(safe-area-inset-bottom))}.secondary-control,.finish-control{min-width:64px}}
