:root{--blue:#1a73e8;--blue-soft:#e8f0fe;--red:#ea4335;--green:#1e8e3e;--green-soft:#e6f4ea;--bg:#eef1f6;--card:#ffffff;--text:#1f2125;--muted:#5f6368;--line:#e3e6ec;--radius:18px;--nav-h:72px;--safe-bottom:env(safe-area-inset-bottom,0px);--brand-indigo:#4f39f6;--brand-violet:#9810fa;--brand-magenta:#e60076;--brand-gradient:linear-gradient(135deg,var(--brand-indigo) 0%,var(--brand-violet) 50%,var(--brand-magenta) 100%);--header-gradient:linear-gradient(135deg,#4F39F6,#9810FA 50%,#E60076);--header-glass:linear-gradient(135deg,#4F39F6,#9810FA 50%,#E60076);--atmosphere:#141414}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;background:#d9dee8;color:var(--text);font-family:Poppins,SF Pro Text,Google Sans,system-ui,-apple-system,sans-serif}a{color:var(--blue)}.phone{min-height:100dvh;max-width:430px;margin:0 auto;background:var(--bg);position:relative;overflow:hidden;box-shadow:0 0 40px rgba(20,30,50,.12)}@media (max-width:560px){body,html{background:var(--bg)}.phone{max-width:none;box-shadow:none}}.view-transition{min-height:100dvh}.view-transition-forward{animation:view-in-right .42s cubic-bezier(.22,1,.36,1)}.view-transition-back{animation:view-in-left .42s cubic-bezier(.22,1,.36,1)}.content-in,.view-transition-fade{animation:view-fade-in .38s ease}@keyframes view-in-right{0%{opacity:0;transform:translateX(32px)}to{opacity:1;transform:none}}@keyframes view-in-left{0%{opacity:0;transform:translateX(-32px)}to{opacity:1;transform:none}}@keyframes view-fade-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media (display-mode:fullscreen),(display-mode:minimal-ui),(display-mode:standalone){body,html{background:var(--bg)}.phone{max-width:none;box-shadow:none;width:100%;min-height:100dvh}}:-webkit-full-screen .phone,html:-webkit-full-screen{max-width:none;width:100%;min-height:100%;box-shadow:none}:-webkit-full-screen .phone,:fullscreen .phone,html:-webkit-full-screen,html:fullscreen{max-width:none;width:100%;min-height:100%;box-shadow:none}html:-webkit-full-screen,html:-webkit-full-screen body{height:100%;min-height:100%;overflow-y:auto;background:var(--atmosphere)}html:-webkit-full-screen,html:-webkit-full-screen body,html:fullscreen,html:fullscreen body{height:100%;min-height:100%;overflow-y:auto;background:var(--atmosphere)}.pwa-install{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--nav-h) + var(--safe-bottom) + 10px);width:min(402px,calc(100% - 28px));z-index:28;padding:14px 16px;border-radius:16px;background:rgba(20,18,28,.92);color:white;border:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 12px 28px rgba(27,18,51,.28)}body:has(.home-view) .pwa-install.is-open{bottom:calc(28px + env(safe-area-inset-bottom, 0px))}.pwa-install p{margin:0 0 10px;font-size:.88rem;line-height:1.35;font-weight:400}.pwa-install-actions{display:flex;flex-wrap:wrap;gap:8px}.pwa-install-btn,.pwa-install-dismiss{border:0;min-height:36px;padding:0 12px;border-radius:10px;font:inherit}.pwa-install-btn{background:var(--brand-gradient);color:white}.pwa-install-btn.ghost{background:rgba(255,255,255,.14);color:white}.pwa-install-dismiss{background:transparent;color:rgba(255,255,255,.72)}.page{padding:18px 16px calc(var(--nav-h) + var(--safe-bottom) + 16px)}.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}.topbar h1{margin:0;font-size:1.45rem}.note{color:var(--muted);font-size:.9rem}.btn,.link-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 16px;border:0;border-radius:12px;font-weight:700;font-size:.95rem;text-decoration:none}.btn{background:var(--blue);color:white}.btn:disabled{background:#c5c9d1}.btn.danger{background:var(--red)}.btn.ghost,.link-btn{background:white;color:var(--blue);border:1px solid #c9d8f5}.row{display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--card);border-radius:var(--radius);padding:16px;box-shadow:0 8px 24px rgba(31,41,55,.05);text-decoration:none;color:inherit;display:block}.card+.card{margin-top:12px}.list{display:flex;flex-direction:column;gap:12px}.card-title{font-weight:700;word-break:break-word}.meta{display:flex;flex-wrap:wrap;gap:8px;color:var(--muted);font-size:.85rem;margin-top:8px}.badge{display:inline-flex;align-items:center;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:800;text-transform:capitalize;background:#eee;color:#666}.badge.completed,.badge.completed_correct,.badge.high{background:var(--green-soft);color:var(--green)}.badge.active,.badge.completed_with_help,.badge.medium{background:var(--blue-soft);color:var(--blue)}.badge.completed_incorrect,.badge.error,.badge.low{background:#fce8e6;color:#d93025}.chip{display:inline-block;padding:.15rem .55rem;border-radius:999px;background:var(--blue-soft);color:#174ea6;font-size:.75rem;font-weight:700;text-decoration:none}.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}body:has(.exercise-view) .bottom-nav,body:has(.home-view) .bottom-nav,body:has(.home-view) .pwa-install:not(.is-open),body:has(.session-view) .bottom-nav,body:has(.sessions-view) .bottom-nav,body:has(.tutor-view) .bottom-nav,body:has(.tutor-view) .pwa-install{display:none}body:has(.tutor-view) .phone{background:var(--atmosphere);overflow:hidden}body:has(.home-view) .phone{background:var(--atmosphere);overflow:hidden}body:has(.access-lock) .bottom-nav,body:has(.access-lock) .pwa-install{display:none}body:has(.access-lock) .phone{background:var(--atmosphere);overflow:hidden}.bottom-nav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:430px;height:calc(var(--nav-h) + var(--safe-bottom));padding:8px 12px var(--safe-bottom);background:rgba(255,255,255,.96);border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr 1fr;z-index:20}.bottom-nav a{text-decoration:none;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:.75rem;font-weight:700}.bottom-nav a.active{color:var(--blue)}.video-wrap{position:relative;width:100%;aspect-ratio:3/4;background:#111;border-radius:20px;overflow:hidden}.video-wrap video{width:100%;height:100%;object-fit:cover}.video-placeholder{position:absolute;inset:0;display:grid;place-items:center;color:white;text-align:center;padding:24px}.controls{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin:12px 0}.chat{display:flex;flex-direction:column;gap:8px;max-height:34vh;overflow-y:auto;padding:8px 0}.bubble{max-width:86%;padding:10px 12px;border-radius:16px;line-height:1.4}.bubble.user{align-self:flex-end;background:var(--blue);color:white}.bubble.gemini{align-self:flex-start;background:white}.bubble.observation{align-self:stretch;max-width:100%;background:#faf8ff;border:1px dashed #d4c8f0;color:#3f3a4d}.bubble.observation strong{display:block;margin-bottom:4px;color:#7c3aed;font-size:.78rem;font-weight:650;letter-spacing:.01em}.composer{display:flex;gap:8px;margin-top:8px}.composer input{flex:1 1;min-height:46px;border:1px solid var(--line);border-radius:12px;padding:0 12px;font-size:1rem}.details{background:white;border-radius:var(--radius);padding:8px 14px}.detail-row{padding:10px 0;border-bottom:1px solid #f1f2f5}.detail-row:last-child{border-bottom:0}.detail-row dt{color:var(--muted);font-size:.78rem;font-weight:700;margin-bottom:4px}.detail-row dd{margin:0;word-break:break-word}.stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px;margin-top:12px}.stat-value{font-size:1.4rem;font-weight:800}.stat-label{color:var(--muted);font-size:.8rem}.banner{background:var(--blue-soft);border-radius:14px;padding:12px 14px;margin-bottom:14px}.empty{text-align:center;padding:28px 12px;color:var(--muted)}.session-view{min-height:100dvh;background:#f3f4f8;padding-bottom:calc(96px + var(--safe-bottom));font-family:var(--font-urbanist),Urbanist,sans-serif;font-weight:400;overflow-anchor:none}.session-view.is-computing{background:var(--atmosphere);padding:0;overflow:hidden}.session-computing,.session-view.is-computing{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;color:white}.session-computing{z-index:2;gap:14px;width:100%;padding:0 32px;text-align:center}.session-computing-logo{display:block;overflow:visible;filter:drop-shadow(0 10px 24px rgba(0,0,0,.22))}.session-computing-needle{transform-box:view-box;transform-origin:128px 128px;animation:session-computing-needle 2.4s ease-in-out infinite}.session-computing h2{margin:8px 0 0;font-size:1.55rem;font-weight:600;letter-spacing:-.02em}.session-computing p{margin:0;max-width:260px;min-height:2.6em;font-weight:300;line-height:1.45;color:rgba(255,255,255,.78);animation:session-computing-copy .45s ease both}.session-computing-dots{display:flex;gap:8px;margin-top:6px}.session-computing-dots i{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.85);animation:session-computing-dot 1.2s ease-in-out infinite}.session-computing-dots i:nth-child(2){animation-delay:.15s}.session-computing-dots i:nth-child(3){animation-delay:.3s}.session-computing-error{position:absolute;z-index:2;bottom:calc(28px + env(safe-area-inset-bottom, 0px));left:24px;right:24px;margin:0;text-align:center;color:rgba(255,255,255,.72);font-weight:300}.tutor-ended .session-computing{min-height:0;padding:0;flex:0 0 auto}@keyframes session-computing-needle{0%,to{transform:rotate(-12deg)}50%{transform:rotate(18deg)}}@keyframes session-computing-copy{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes session-computing-dot{0%,80%,to{opacity:.28;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}body:has(.session-view.is-computing) .phone{background:var(--atmosphere)}.session-hero{position:-webkit-sticky;position:sticky;top:0;z-index:22;overflow:hidden;overflow-anchor:none;background:var(--header-glass);border:0;border-bottom-left-radius:36px;border-bottom-right-radius:36px;padding:calc(14px + env(safe-area-inset-top, 0px)) 18px 22px;color:white;box-shadow:0 12px 28px rgba(152,16,250,.22);transition:border-radius .32s ease,padding .32s ease,box-shadow .32s ease}.session-hero.is-compact{border-bottom-left-radius:0;border-bottom-right-radius:0;padding:calc(10px + env(safe-area-inset-top, 0px)) 18px 10px;box-shadow:0 8px 20px rgba(152,16,250,.18)}.session-hero-extras{display:grid;grid-template-rows:1fr;opacity:1;transition:grid-template-rows .32s ease,opacity .2s ease}.session-hero-extras>div{min-height:0;overflow:hidden}.session-hero.is-compact .session-hero-extras{grid-template-rows:0fr;opacity:0;pointer-events:none}.session-back{width:42px;height:42px;border-radius:18px;background:rgba(255,255,255,.14);color:white;display:grid;place-items:center;text-decoration:none;border:1px solid rgba(255,255,255,.18);transition:width .28s ease,height .28s ease,opacity .22s ease,margin .28s ease}.session-hero .session-back svg path{stroke:currentColor}.session-hero.is-compact .session-back{width:0;height:0;opacity:0;margin:0;overflow:hidden;pointer-events:none}.session-title-row{display:flex;align-items:center;gap:8px;margin:18px 0 4px;transition:margin .32s ease}.profile-hero-avatar,.session-title-row svg{flex-shrink:0;transition:width .28s ease,opacity .2s ease,margin .28s ease}.profile-hero-avatar{width:28px;height:28px;border-radius:50%;object-fit:cover;border:1.5px solid rgba(255,255,255,.28)}.profile-hero-top{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;min-height:42px;transition:min-height .28s ease,opacity .22s ease}.profile-hero-top .profile-hero-avatar{grid-column:2;justify-self:center;width:42px;height:42px;border-width:2px}.sessions-hero .session-date{margin-left:0;text-align:center}.profile-title-row{flex-direction:column;align-items:center;justify-content:center;gap:0;margin:8px 0 2px}.profile-title-row h1{text-align:center}.profile-hero .session-stats{margin-top:10px}.session-hero.is-compact .profile-hero-top{min-height:0;height:0;opacity:0;overflow:hidden;pointer-events:none}.session-hero.is-compact .session-title-row{margin:0;justify-content:center}.session-hero.is-compact .profile-hero-avatar,.session-hero.is-compact .session-title-row svg{width:0;opacity:0;margin:0}.session-title-row h1{margin:0;font-size:1.35rem;font-weight:400;line-height:1.25;overflow-wrap:anywhere;transition:font-size .32s ease}.session-hero.is-compact .session-title-row h1{font-size:1.05rem}.session-date{margin:0 0 16px 32px;opacity:.9;font-size:.92rem}.session-stats{display:grid;grid-template-columns:1fr 1fr 1fr;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.14);border-radius:18px;padding:14px 8px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.session-stat{text-align:center;border-right:1px solid rgba(255,255,255,.14)}.session-stat:last-child{border-right:0}.session-stat strong{display:block;font-size:1.35rem;font-weight:400}.session-stat span{font-size:.78rem;opacity:.8}.session-stat-streak strong{display:flex;align-items:center;justify-content:center;gap:5px}.streak-flame{display:block;filter:drop-shadow(0 2px 8px rgba(255,140,40,.7))}.session-list{padding:16px 14px 8px;display:flex;flex-direction:column;gap:14px}.exercise-figma{background:white;border-radius:22px;padding:16px 16px 14px;box-shadow:0 10px 28px rgba(40,20,70,.08)}.exercise-figma-link{display:block;color:inherit;text-decoration:none;cursor:pointer}.concept-card.needs_review{background:linear-gradient(165deg,rgba(251,44,54,.1),#ffffff 68%)}.concept-card.building{background:linear-gradient(165deg,rgba(43,127,255,.1),#ffffff 68%)}.concept-card.strong{background:linear-gradient(165deg,rgba(0,201,80,.1),#ffffff 68%)}.concept-card.mastered{background:linear-gradient(165deg,rgba(232,185,49,.16),#ffffff 68%)}.outcome-card.completed,.outcome-card.completed_correct{background:linear-gradient(165deg,rgba(0,201,80,.1),#ffffff 68%)}.outcome-card.completed_with_help{background:linear-gradient(165deg,rgba(43,127,255,.1),#ffffff 68%)}.outcome-card.abandoned{background:linear-gradient(165deg,rgba(251,44,54,.1),#ffffff 68%)}.outcome-card.completed_incorrect,.outcome-card.error{background:linear-gradient(165deg,rgba(255,105,0,.12),#ffffff 68%)}.exercise-figma-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.exercise-figma-name{display:flex;align-items:flex-start;gap:8px;font-weight:400;font-size:1.02rem;flex:1 1;min-width:0;line-height:1.3}.exercise-dot{width:10px;height:10px;border-radius:50%;background:#3b82f6;flex-shrink:0;margin-top:.35em}.exercise-figma-time{color:#8b8fa3;font-size:.86rem;margin:6px 0 12px 18px}.figma-badge{color:white!important;font-weight:400;font-size:.72rem;padding:.28rem .7rem;text-transform:none}.figma-badge.completed,.figma-badge.completed_correct{background:linear-gradient(90deg,#00c950,#00bc7d)}.figma-badge.completed_with_help{background:linear-gradient(90deg,#2b7fff,#00b8db)}.figma-badge.abandoned{background:linear-gradient(90deg,#fb2c36,#e7000b)}.figma-badge.completed_incorrect,.figma-badge.error{background:linear-gradient(90deg,#ff6900,#fb2c36)}.figma-badge.active,.figma-badge.building,.figma-badge.medium{background:linear-gradient(90deg,#2b7fff,#00b8db)}.figma-badge.high,.figma-badge.strong{background:linear-gradient(90deg,#00c950,#00bc7d)}.figma-badge.low,.figma-badge.needs_review{background:linear-gradient(90deg,#fb2c36,#e7000b)}.figma-badge.mastered{background:linear-gradient(90deg,#e8b931,#d97706)}.figma-badge.unknown{background:#e6e8ee;color:#5b6172!important}.sessions-view{min-height:100dvh;background:#f3f4f8;padding-bottom:calc(16px + var(--safe-bottom));overflow-anchor:none}.session-delete,.sessions-view{font-family:var(--font-urbanist),Urbanist,sans-serif;font-weight:400}.session-delete{display:block;width:100%;margin-top:4px;border:0;background:transparent;color:#8b8fa3;font-size:.86rem;min-height:36px}.concepts-box{background:#f9fafb;border-radius:14px;padding:12px}.concepts-box p{margin:0 0 8px;font-size:.82rem;font-weight:400}.concepts-box .chip{border:1px solid transparent;font-weight:400}.details-btn{display:flex;width:100%;margin-top:12px;min-height:46px;border:0;border-radius:12px;color:white;font-family:var(--font-urbanist),Urbanist,sans-serif;font-weight:300;font-synthesis:none;letter-spacing:.01em;text-decoration:none;align-items:center;justify-content:center;background:linear-gradient(90deg,#2b7fff,#00b8db);box-shadow:0 8px 16px rgba(43,127,255,.25)}.profile-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:6px 6px 0;font-size:1.08rem;font-weight:600;color:#1f2125}.profile-section-title span{font-size:.82rem;font-weight:400;color:#8b8fa3}.profile-sort{display:inline-flex;align-items:center;gap:6px;margin:0;padding:.28rem .7rem;border:0;border-radius:999px;background:#eceef3;color:#5b6172;font:inherit;font-size:.78rem;font-weight:600;letter-spacing:.01em;cursor:pointer;flex-shrink:0}.profile-sort:active{transform:scale(.97)}.profile-chart{display:flex;align-items:flex-end;justify-content:space-between;gap:8px;height:88px;margin-top:10px;padding:0 2px}.profile-chart-col{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:100%}.profile-chart-bar{width:100%;max-width:22px;border-radius:8px 8px 4px 4px;background:linear-gradient(180deg,var(--brand-violet) 0,var(--brand-indigo) 100%);min-height:6px;opacity:0;transform:scaleY(0);transform-origin:center bottom}.profile-chart.is-ready .profile-chart-bar{animation:profile-bar-in .4s cubic-bezier(.22,1.15,.36,1) both;animation-delay:var(--bar-delay,0s)}.profile-chart-bar.is-empty{background:#e6e8ee}.profile-chart.is-ready .profile-chart-bar.is-today:not(.is-empty){box-shadow:0 8px 18px rgba(79,57,246,.32);animation:profile-bar-in .4s cubic-bezier(.22,1.15,.36,1) both,profile-bar-glow 2.4s ease-in-out .5s infinite}.profile-chart-label{font-size:.72rem;color:#8b8fa3;opacity:0}.profile-chart.is-ready .profile-chart-label{animation:profile-label-in .4s ease both;animation-delay:calc(var(--bar-delay, 0s) + .28s)}.profile-chart-col.is-today .profile-chart-label{color:var(--brand-indigo);font-weight:600}.profile-chart-col.is-future .profile-chart-bar.is-empty{background:#f0f1f5}.profile-goal{margin-top:14px}.profile-goal-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px;font-size:.78rem;color:#8b8fa3}.profile-goal-bar{height:6px;border-radius:999px;background:#eceef3;overflow:hidden}.profile-goal-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-indigo) 0,var(--brand-magenta) 100%);min-width:0;transition:width .9s cubic-bezier(.22,1,.36,1)}.profile-goal-fill.is-done{background:linear-gradient(90deg,#00c950,#00bc7d)}.profile-chart-value{min-height:14px;font-size:.62rem;font-weight:600;color:var(--brand-indigo);line-height:1;opacity:0}.profile-chart.is-ready .profile-chart-value{animation:profile-label-in .35s ease both;animation-delay:calc(var(--bar-delay, 0s) + .5s)}.profile-week-total{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.exercise-figma.profile-tips{background:linear-gradient(90deg,#ffbd00,#ff7300 48%,#f51c8b);box-shadow:0 12px 28px rgba(255,115,0,.28);color:white}.profile-tips .exercise-figma-name{color:white}.profile-tips-copy{margin:10px 0 0;color:rgba(255,255,255,.88);font-size:.9rem;line-height:1.45}.profile-tips-list{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.profile-tips-list li{padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.28)}.profile-tips-list strong{display:block;font-size:.98rem;font-weight:600;color:white}.profile-tips-body{display:block;margin-top:4px}.profile-tips-body,.profile-tips-panel{font-size:.9rem;line-height:1.45;color:rgba(255,255,255,.92)}.profile-tips-panel{margin-top:0;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.28)}.math-inline,.math-inline .katex,.math-inline .katex-html,.math-text{display:inline}.math-display{display:block;overflow-x:auto;margin:.3em 0}.exercise-card-hero .katex,.math-text .katex,.profile-tips .katex,.session-hero .katex,.transcript-sheet .katex,.tutor-feed-item .katex{font-size:1.05em;color:inherit}.math-text .katex .katex-html,.profile-tips .katex .katex-html{color:inherit}@keyframes profile-bar-in{0%{opacity:.35;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes profile-label-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes profile-bar-glow{0%,to{filter:brightness(1)}50%{filter:brightness(1.16)}}.profile-meter{height:8px;margin-top:12px;border-radius:999px;background:#eceef3;overflow:hidden}.profile-meter-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand-indigo) 0,var(--brand-magenta) 100%);min-width:0}.profile-meter-fill.high,.profile-meter-fill.strong{background:linear-gradient(90deg,#00c950,#00bc7d)}.profile-meter-fill.building,.profile-meter-fill.medium{background:linear-gradient(90deg,#2b7fff,#00b8db)}.profile-meter-fill.low,.profile-meter-fill.needs_review{background:linear-gradient(90deg,#fb2c36,#e7000b);min-width:12px}.profile-meter-fill.mastered{background:linear-gradient(90deg,#e8b931,#d97706)}.profile-meter-fill.empty{background:#d9dce4}.profile-meter-caption{margin:8px 0 0;font-size:.82rem;color:#8b8fa3}.confidence-chart-title{margin:12px 0 0;font-size:.82rem;color:#5b6172}.confidence-chart{margin-top:4px}.confidence-chart svg{display:block;width:100%;height:auto}.confidence-chart-grid{stroke:rgba(91,97,114,.12);stroke-width:1}.confidence-chart-xtick,.confidence-chart-ytick{fill:#8b8fa3;font-size:9px;font-family:inherit}.confidence-chart-area{fill:rgba(43,127,255,.14)}.confidence-chart-line{fill:none;stroke:#2b7fff;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 4px 8px rgba(43,127,255,.35))}.confidence-chart.needs_review .confidence-chart-area{fill:rgba(251,44,54,.14)}.confidence-chart.needs_review .confidence-chart-line{stroke:#fb2c36;filter:drop-shadow(0 4px 8px rgba(251,44,54,.38))}.confidence-chart.building .confidence-chart-area{fill:rgba(43,127,255,.14)}.confidence-chart.building .confidence-chart-line{stroke:#2b7fff;filter:drop-shadow(0 4px 8px rgba(43,127,255,.38))}.confidence-chart.strong .confidence-chart-area{fill:rgba(0,201,80,.14)}.confidence-chart.strong .confidence-chart-line{stroke:#00c950;filter:drop-shadow(0 4px 8px rgba(0,201,80,.38))}.confidence-chart.mastered .confidence-chart-area{fill:rgba(232,185,49,.2)}.confidence-chart.mastered .confidence-chart-line{stroke:#e8b931;filter:drop-shadow(0 4px 8px rgba(232,185,49,.42))}.confidence-chart-dot{fill:var(--brand-indigo);stroke:#ffffff;stroke-width:1.6}.confidence-chart-dot.needs_review{fill:#fb2c36}.confidence-chart-dot.building{fill:#2b7fff}.confidence-chart-dot.strong{fill:#00c950}.confidence-chart-dot.mastered{fill:#e8b931}.transcript-btn{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(14px + var(--safe-bottom));width:min(402px,calc(100% - 28px));min-height:54px;border:1px solid rgba(255,255,255,.12);border-radius:14px;color:white;font-family:var(--font-urbanist),Urbanist,sans-serif;font-size:1.02rem;font-weight:300;font-synthesis:none;letter-spacing:.01em;background:linear-gradient(135deg,#3d524e,#3c354c 52%,#4a3f52);box-shadow:0 10px 22px rgba(32,28,44,.28);z-index:25}.transcript-sheet{position:fixed;inset:0;max-width:430px;margin:0 auto;background:#1a1a1a;color:white;z-index:30;display:flex;flex-direction:column;border:1px solid rgba(255,255,255,.08)}.transcript-sheet header{padding:calc(14px + env(safe-area-inset-top, 0px)) 16px 12px;display:flex;justify-content:space-between;align-items:center}.transcript-sheet header strong{font-size:1rem;font-weight:600;color:white}.transcript-close{min-height:36px;padding:0 14px;border:0;border-radius:999px;background:rgba(255,255,255,.1);color:white;font:inherit;font-size:.88rem;font-weight:500}.transcript-feed-list{max-height:none;flex:1 1;overflow:auto;padding:4px 16px calc(24px + env(safe-area-inset-bottom, 0px))}.transcript-sheet .tutor-feed-item{animation:none}.exercise-view{min-height:100dvh;padding:calc(14px + env(safe-area-inset-top, 0px)) 18px 28px;background:linear-gradient(180deg,#eaf6f2,#f6f3fb 48%,#ffffff);font-family:var(--font-urbanist),Urbanist,sans-serif;font-weight:400;position:relative;overflow-anchor:none}.exercise-view.outcome-abandoned,.exercise-view.outcome-completed_incorrect{background:linear-gradient(180deg,#f8eef0,#f7f4f8 48%,#ffffff)}.exercise-view.outcome-completed_with_help{background:linear-gradient(180deg,#eeeaf8,#f6f4fb 48%,#ffffff)}.exercise-back{position:-webkit-sticky;position:sticky;top:calc(14px + env(safe-area-inset-top, 0px));z-index:24;background:rgba(90,98,110,.32);transform-origin:top left;transition:transform .32s ease,opacity .28s ease}.exercise-back.is-compact{transform:scale(.45);opacity:0;pointer-events:none}.exercise-hero{text-align:center;padding:8px 8px 22px}.exercise-hero h1{margin:0 0 8px;font-size:1.45rem;font-weight:400;color:#1f2125}.exercise-sub{margin:0 auto;max-width:320px;color:#00a36a;font-size:.95rem;line-height:1.4;text-align:center}.outcome-completed_with_help .exercise-sub{color:#2b7fff}.outcome-abandoned .exercise-sub,.outcome-completed_incorrect .exercise-sub{color:#e7000b}.exercise-outcome-badge{width:88px;height:88px;margin:8px auto 16px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(180deg,#00c950,#00bc7d);box-shadow:0 12px 28px rgba(0,188,125,.32)}.outcome-completed_with_help .exercise-outcome-badge{background:linear-gradient(90deg,#2b7fff,#00b8db);box-shadow:0 12px 28px rgba(43,127,255,.28)}.outcome-abandoned .exercise-outcome-badge,.outcome-completed_incorrect .exercise-outcome-badge{background:linear-gradient(90deg,#fb2c36,#e7000b);box-shadow:0 12px 28px rgba(251,44,54,.28)}@keyframes exercise-card-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.exercise-enter{animation:exercise-card-in .42s ease both;animation-delay:var(--enter-delay,0s)}.exercise-hints-card.exercise-enter{--enter-delay:0.1s}@media (prefers-reduced-motion:reduce){.exercise-enter{animation:none}}.exercise-summary-card{background:white;border-radius:24px;overflow:hidden;box-shadow:0 14px 36px rgba(40,20,70,.08)}.exercise-card-hero{display:flex;align-items:center;gap:10px;min-height:64px;padding:14px 16px;position:relative;overflow:hidden;background:var(--header-glass);color:white;border-bottom:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.exercise-card-hero>*{position:relative;z-index:1}.exercise-crown-wrap{width:36px;height:36px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center;flex-shrink:0}.exercise-card-hero .exercise-crown-wrap path,.exercise-card-hero .exercise-crown-wrap rect{fill:white}.exercise-card-hero h2{margin:0;font-size:1.05rem;font-weight:400;line-height:1.3;overflow-wrap:anywhere}.exercise-rows{padding:4px 18px 8px}.exercise-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:52px;border-bottom:1px solid #eef0f4}.exercise-row:last-child{border-bottom:0}.exercise-row span{display:flex;align-items:center;gap:8px;color:#5b6172;opacity:.8;font-weight:400}.exercise-row strong{font-weight:400;color:#1f2125}.exercise-transcript-btn{display:flex;width:calc(100% - 28px);margin:6px 14px 16px;min-height:48px;border:0;border-radius:14px;background:#f3f4f6;color:#4b5160;font-family:var(--font-urbanist),Urbanist,sans-serif;font-weight:300;font-synthesis:none;letter-spacing:.01em;align-items:center;justify-content:center;gap:8px}.exercise-hints-card{margin-top:16px;background:white;border-radius:24px;padding:16px 16px 14px;box-shadow:0 14px 36px rgba(40,20,70,.08)}.exercise-hints-title{display:flex;align-items:center;gap:8px;margin-bottom:12px;font-size:1.02rem;font-weight:400;color:#1f2125}.exercise-hints-list{display:flex;flex-direction:column;gap:10px}.exercise-hint{background:#f4f8ff;border:1px solid #bfdbfe;border-radius:14px;padding:12px 14px}.exercise-hint-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px}.exercise-hint-top strong{font-weight:600;color:#1f2125}.exercise-hint-badge{background:linear-gradient(90deg,#2b7fff,#00b8db);color:white;border-radius:999px;padding:.22rem .7rem;font-size:.72rem;font-weight:400;white-space:nowrap}.exercise-hint p{margin:0;color:#5b6172;font-size:.9rem;line-height:1.45}.exercise-hints-empty{margin:0;color:#8b8fa3;font-size:.9rem}.tutor-view{position:relative;min-height:100dvh;overflow:hidden;color:white;font-family:var(--font-urbanist),Urbanist,Poppins,sans-serif;background:var(--atmosphere);overscroll-behavior:none;touch-action:manipulation}.tutor-video{position:absolute;inset:0;z-index:1;width:100%;height:100%;object-fit:cover;background:transparent;opacity:0;transition:filter 2.2s ease,opacity .55s ease}.tutor-video.is-on{opacity:1}.tutor-close-veil{position:absolute;inset:0;z-index:4;background:var(--atmosphere);opacity:0;pointer-events:none;transition:opacity 2.2s ease}.tutor-view.is-closing .tutor-video{filter:blur(36px);opacity:0}.tutor-view.is-closing .tutor-close-veil{opacity:.35}.tutor-fallback{position:absolute;inset:0;z-index:2;display:grid;place-items:start center;padding:calc(env(safe-area-inset-top, 0px) + 78px) 24px 0;text-align:center;font-size:.95rem;font-weight:300;line-height:1.4;color:rgba(255,255,255,.78);background:transparent;pointer-events:none}.tutor-fallback p{margin:0;max-width:280px;padding:10px 16px;border-radius:18px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:white}.tutor-top{position:absolute;top:0;left:0;right:0;z-index:6;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top, 0px) + 14px) 16px 0;animation:view-fade-in .4s ease both}.tutor-back{width:48px;height:48px;border-radius:16px;color:#1f2125;background:rgba(255,255,255,.72);border:1px solid rgba(255,255,255,.9);box-shadow:0 8px 22px rgba(40,20,70,.08);cursor:pointer}.tutor-back,.tutor-live-pill{backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.tutor-live-pill{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:999px;background:rgba(18,18,24,.78);border:1px solid rgba(255,255,255,.14);color:white;font-size:.92rem;font-weight:400;box-shadow:0 8px 20px rgba(0,0,0,.28)}.tutor-live-pill i{width:8px;height:8px;border-radius:50%;background:#9ca3af}.tutor-live-pill.is-live i{background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.7);animation:tutor-live-pulse 1.6s ease-out infinite}.tutor-view.is-closing .tutor-top{opacity:0;pointer-events:none;transition:opacity .45s ease}.tutor-ended,.tutor-start{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:0 20px;text-align:center;animation:tutor-fade-up .45s ease both}.tutor-view.from-home .tutor-start{animation:tutor-fade-up .55s ease .08s both}.tutor-ended p,.tutor-start p{margin:0;max-width:280px;font-weight:300;line-height:1.45;color:rgba(255,255,255,.78)}.tutor-ended h2{margin:0;font-size:1.5rem;font-weight:600;color:white}.tutor-ended-link,.tutor-start-btn{min-height:48px;padding:0 22px;border:1px solid rgba(255,255,255,.2);border-radius:999px;background:rgba(255,255,255,.12);color:white;font:inherit;font-weight:500;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.tutor-start-btn:disabled{opacity:.65}.tutor-ended-link{background:rgba(255,255,255,.14);color:white;border:1px solid rgba(255,255,255,.22);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.tutor-live-stack{position:absolute;left:16px;right:16px;bottom:calc(148px + env(safe-area-inset-bottom, 0px));z-index:5;display:flex;flex-direction:column;gap:8px;pointer-events:none}.tutor-live-wrap{transition:opacity .35s ease}.tutor-live-wrap.is-leaving{animation:tutor-bubble-out .42s ease forwards}.tutor-live-bubble{display:flex;align-items:center;gap:12px;padding:14px 18px 14px 14px;border-radius:999px;background:rgba(22,22,22,.9);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:white;box-shadow:0 10px 28px rgba(0,0,0,.4);animation:tutor-bubble-in .42s cubic-bezier(.22,1,.36,1) both}.tutor-live-copy{min-width:0;flex:1 1}.tutor-live-bubble.is-user{padding:14px 14px 14px 18px}.tutor-live-bubble.is-note{background:rgba(36,32,44,.92);border:1px dashed rgba(196,181,253,.28);border-radius:22px}.tutor-live-bubble.is-note strong{color:#f3e8ff;font-size:.82rem;letter-spacing:.01em}.tutor-live-bubble.is-user .tutor-live-copy{text-align:right}.tutor-live-bubble strong{display:block;font-size:.95rem;font-weight:600;line-height:1.2;color:white}.tutor-live-bubble p{margin:2px 0 0;font-size:.92rem;font-weight:300;line-height:1.35;color:rgba(255,255,255,.92);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.tutor-live-bubble.is-user p{text-align:justify;text-align-last:right}.tutor-avatar{width:42px;height:42px;flex-shrink:0;border-radius:50%;background:rgba(255,255,255,.12);display:grid;place-items:center;overflow:hidden}.tutor-avatar img{width:100%;height:100%;object-fit:cover;display:block}.tutor-avatar.note{background:rgba(255,255,255,.16);color:white}.tutor-avatar.user{background:#3a3a3e}.tutor-controls{position:absolute;left:0;right:0;bottom:calc(36px + env(safe-area-inset-bottom, 0px));z-index:5;display:flex;justify-content:center;gap:28px;animation:tutor-fade-up .5s ease .08s both}.tutor-ctl{display:flex;flex-direction:column;align-items:center;gap:8px;padding:0;border:0;background:none;color:white;font:inherit;font-size:.86rem;font-weight:400;cursor:pointer;text-shadow:0 1px 8px rgba(0,0,0,.45)}.tutor-ctl:disabled{cursor:default}.tutor-round{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.2);box-shadow:0 10px 24px rgba(0,0,0,.28);transition:transform .22s ease,filter .22s ease,background .22s ease,box-shadow .22s ease}.tutor-ctl:active .tutor-round{transform:scale(.92)}.tutor-ctl.is-off .tutor-round{background:rgba(40,40,44,.72);border-color:rgba(255,255,255,.1);box-shadow:none;filter:saturate(.4)}.tutor-handle-hit{position:absolute;left:0;right:0;bottom:0;z-index:7;height:calc(28px + env(safe-area-inset-bottom, 0px));display:flex;justify-content:center;align-items:flex-start;padding-top:8px;touch-action:none;cursor:-webkit-grab;cursor:grab}.tutor-handle-hit.sheet{position:relative;height:28px;padding-top:10px}.tutor-view:has(.tutor-feed.is-open)>.tutor-handle-hit{opacity:0;pointer-events:none}.tutor-handle{width:118px;height:5px;border-radius:999px;background:rgba(255,255,255,.38);box-shadow:0 2px 10px rgba(0,0,0,.18)}.tutor-feed .tutor-handle{background:rgba(255,255,255,.28);box-shadow:none}.tutor-feed-backdrop{position:absolute;inset:0;z-index:8;border:0;padding:0;background:rgba(0,0,0,.48);opacity:0;pointer-events:none;transition:opacity .35s ease}.tutor-feed-backdrop.is-open{opacity:1;pointer-events:auto}.tutor-feed{position:absolute;left:0;right:0;bottom:0;z-index:9;height:min(78dvh,680px);display:flex;flex-direction:column;padding:0 16px calc(12px + env(safe-area-inset-bottom, 0px));border-radius:28px 28px 0 0;background:#1a1a1a;border:1px solid rgba(255,255,255,.08);color:white;box-shadow:0 -16px 40px rgba(0,0,0,.4);transform:translateY(100%);transition:transform .42s cubic-bezier(.22,1,.36,1);will-change:transform}.tutor-feed h3{margin:4px 0 12px;text-align:center;font-size:1rem;font-weight:600;color:white}.tutor-feed-list{flex:1 1;overflow:auto;display:flex;flex-direction:column;gap:12px;padding-bottom:10px}.tutor-feed-item{max-width:86%;align-self:flex-start;padding:12px 16px;border-radius:20px 20px 20px 8px;background:#2a2a2a;border:1px solid rgba(255,255,255,.06);animation:tutor-bubble-in .34s ease both}.tutor-feed-item.user{align-self:flex-end;background:#2f2a38;border:0;border-radius:20px 20px 8px 20px;text-align:left;color:white}.tutor-feed-item.observation{align-self:stretch;max-width:100%;background:#24202c;border:1px dashed rgba(196,181,253,.28);border-radius:16px}.tutor-feed-item.observation strong{color:#c4b5fd}.tutor-feed-item.observation p{color:rgba(255,255,255,.72)}.tutor-feed-item.observation .tutor-avatar.note{background:rgba(167,139,250,.22);color:#ddd6fe}.tutor-feed-who{display:flex;align-items:center;gap:8px;margin-bottom:6px}.tutor-feed-item .tutor-avatar{width:22px;height:22px}.tutor-feed-item strong{display:block;font-size:.75rem;font-weight:600;margin-bottom:0;color:rgba(255,255,255,.42)}.tutor-feed-item.user strong{color:rgba(255,255,255,.5)}.tutor-feed-empty,.tutor-feed-item p{margin:0;font-weight:400;line-height:1.45;color:rgba(255,255,255,.92);white-space:pre-wrap}.tutor-feed-item.user p{color:white}.tutor-feed-empty{text-align:center;padding:24px 8px;color:rgba(255,255,255,.4);font-weight:300}.tutor-composer{display:flex;gap:8px}.tutor-composer input{flex:1 1;min-height:44px;border:1px solid rgba(255,255,255,.1);border-radius:999px;padding:0 16px;background:#242424;color:white;font:inherit}.tutor-composer input::placeholder{color:rgba(255,255,255,.35)}.tutor-composer button{border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:0 16px;background:rgba(255,255,255,.12);color:white;font:inherit;font-weight:500}@keyframes tutor-bubble-in{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes tutor-bubble-out{0%{opacity:inherit;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-10px) scale(.98)}}@keyframes tutor-fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes tutor-live-pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}to{box-shadow:0 0 0 0 rgba(34,197,94,0)}}@media (prefers-reduced-motion:reduce){.tutor-close-veil,.tutor-video{transition-duration:.2s}.session-computing p,.session-computing-dots i,.session-computing-needle,.tutor-controls,.tutor-ended,.tutor-feed,.tutor-feed-item,.tutor-live-bubble,.tutor-live-pill.is-live i,.tutor-live-wrap.is-leaving,.tutor-start{animation:none;transition:none}}.home-view{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;overflow:hidden;color:white;font-family:var(--font-urbanist),Urbanist,Poppins,sans-serif;background:var(--atmosphere);touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bg-lights{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}.bg-light{position:absolute;border-radius:50%;filter:blur(72px);will-change:transform,opacity}.bg-light-purple{width:78vmax;height:78vmax;top:-34%;right:-42%;background:radial-gradient(circle,rgba(124,58,237,.95) 0,rgba(74,20,140,.55) 38%,transparent 68%);opacity:.9;animation:home-light-a 16s ease-in-out infinite}.bg-light-teal{width:62vmax;height:62vmax;top:22%;left:-38%;background:radial-gradient(circle,rgba(15,118,110,.85) 0,rgba(13,78,74,.4) 42%,transparent 70%);opacity:.7;animation:home-light-b 21s ease-in-out infinite}.bg-light-violet{width:48vmax;height:48vmax;top:4%;left:18%;background:radial-gradient(circle,rgba(168,85,247,.55) 0,transparent 70%);opacity:.45;animation:home-light-c 18s ease-in-out infinite}.home-view:after{content:"";position:absolute;left:0;right:0;bottom:0;z-index:1;height:46%;background:linear-gradient(180deg,transparent 0,var(--atmosphere) 78%);pointer-events:none}.home-view.is-launching:after{opacity:0;transition:opacity .55s ease}.home-view.is-launching .bg-lights{z-index:5}.home-welcome{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:64px;padding:0 28px;animation:home-hello-in .7s ease .08s backwards;transition:opacity .2s ease,transform .2s ease}.home-splash{position:absolute;inset:0;z-index:5;display:grid;place-items:center;pointer-events:none;opacity:1;transition:opacity .7s ease,transform .7s cubic-bezier(.22,1,.36,1)}.home-view:not(.is-splash) .home-splash{opacity:0;transform:scale(1.08)}.home-splash-mark{display:flex;flex-direction:column;align-items:center;gap:14px;animation:home-splash-in .7s ease both}.home-splash-name{margin:0;font-size:2rem;font-weight:300;letter-spacing:.14em}.home-logo{width:128px;height:128px;display:block;overflow:visible}.home-logo-needle{transform-box:view-box;transform-origin:128px 128px;animation:home-splash-needle 1.55s ease-in-out both}@keyframes home-splash-in{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:none}}@keyframes home-splash-needle{0%{transform:rotate(-38deg)}22%{transform:rotate(24deg)}42%{transform:rotate(-14deg)}58%{transform:rotate(7deg)}72%{transform:rotate(-3deg)}85%,to{transform:rotate(0deg)}}.home-view.is-splash .home-arc,.home-view.is-splash .home-top,.home-view.is-splash .home-welcome{pointer-events:none;animation:none!important}.home-view.is-splash .home-top,.home-view.is-splash .home-welcome{opacity:0!important}.home-view.is-splash .home-arc{transform:translateY(100%)}.home-view:not(.is-splash) .home-top{animation:home-hello-in .65s ease .12s backwards}.home-hello{padding:0;font-size:clamp(2.6rem,10vw,3.6rem);line-height:1.16;letter-spacing:-.04em}.home-hello,.home-hint{margin:0;text-align:center;font-weight:400}.home-hint{max-width:280px;padding:10px 16px;border-radius:18px;font-size:.84rem;line-height:1.35;letter-spacing:.01em;color:rgba(255,255,255,.94);background:linear-gradient(155deg,rgba(200,232,226,.22),rgba(220,207,244,.18) 46%,rgba(255,255,255,.1));border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(22px) saturate(1.45);-webkit-backdrop-filter:blur(22px) saturate(1.45);box-shadow:0 8px 24px rgba(0,0,0,.16),inset 0 1px 0 rgba(255,255,255,.5),inset 0 0 0 1px rgba(180,160,220,.28)}.home-top{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;justify-content:space-between;align-items:center;padding:calc(env(safe-area-inset-top, 0px) + 16px) 18px 0;transition:opacity .2s ease,transform .2s ease}.home-clock,.home-user{display:flex;align-items:center;min-height:44px;color:white;text-decoration:none;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.home-top-actions{display:flex;align-items:center;gap:8px}.home-top-actions .home-clock{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;font:inherit}.home-fullscreen{opacity:0}.home-user{gap:8px;padding:5px 16px 5px 5px;border-radius:18px;font-size:1.02rem;font-weight:400}.home-user img{width:34px;height:34px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.3)}.home-clock{width:44px;height:44px;padding:0;border-radius:18px;justify-content:center}.home-hello strong{display:block;font-weight:600;margin-bottom:6px}.home-hello span{display:block;font-weight:300}.home-view.is-launching .home-top,.home-view.is-launching .home-welcome{pointer-events:none}.home-arc{position:absolute;left:50%;bottom:0;z-index:4;width:168%;aspect-ratio:1;margin-left:-84%;border-radius:50%;--arc-peek:128px;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(12px) saturate(1.1);-webkit-backdrop-filter:blur(12px) saturate(1.1);color:white;box-shadow:0 -18px 40px rgba(40,8,70,.05),inset 0 1px 0 rgba(255,255,255,.08);transform:translateY(calc(100% - var(--arc-peek) - env(safe-area-inset-bottom, 0px)));transition:transform .42s cubic-bezier(.22,1,.36,1);cursor:-webkit-grab;cursor:grab;touch-action:none;overflow:hidden;will-change:transform,border-radius}.home-arc:before{content:"";position:absolute;left:50%;top:50%;width:160%;height:160%;margin:-80% 0 0 -80%;border-radius:50%;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle at center,rgba(255,255,255,.4) 0,rgba(255,255,255,.2) 28%,rgba(255,255,255,.06) 52%,transparent 70%);animation:home-arc-glow 2.4s ease-out infinite}.home-arc.is-dragging{transition:none;cursor:-webkit-grabbing;cursor:grabbing;animation:none}.home-arc.is-expanding{left:0;right:0;top:0;bottom:0;width:100%;height:100%;margin:0;aspect-ratio:auto;border-radius:0;border-color:transparent;background:var(--atmosphere);backdrop-filter:none;-webkit-backdrop-filter:none;transform:none;box-shadow:none;animation:none;transition:left .72s cubic-bezier(.22,1,.36,1),right .72s cubic-bezier(.22,1,.36,1),top .72s cubic-bezier(.22,1,.36,1),bottom .72s cubic-bezier(.22,1,.36,1),width .72s cubic-bezier(.22,1,.36,1),height .72s cubic-bezier(.22,1,.36,1),margin .72s cubic-bezier(.22,1,.36,1),border-radius .72s cubic-bezier(.22,1,.36,1),background .72s cubic-bezier(.22,1,.36,1),border-color .5s ease,transform .72s cubic-bezier(.22,1,.36,1)}.home-arc.is-expanding:before{opacity:0;animation:none}.home-arc-face{position:absolute;left:50%;top:52px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:0;width:min(260px,70vw);text-align:center;z-index:1;transition:opacity .28s ease}.home-arc.is-expanding .home-arc-face{opacity:0}.home-arc-face p{margin:0;font-size:.92rem;font-weight:400;color:rgba(255,255,255,.8);line-height:1.3}@keyframes home-light-a{0%,to{transform:translate(0) scale(1);opacity:.88}35%{transform:translate(-14%,10%) scale(1.12);opacity:1}65%{transform:translate(-6%,16%) scale(.92);opacity:.72}}@keyframes home-light-b{0%,to{transform:translate(0) scale(1);opacity:.62}45%{transform:translate(16%,-12%) scale(1.18);opacity:.85}75%{transform:translate(8%,8%) scale(.9);opacity:.5}}@keyframes home-light-c{0%,to{transform:translate(0) scale(1);opacity:.4}50%{transform:translate(10%,14%) scale(1.22);opacity:.62}}@keyframes home-hello-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes home-arc-glow{0%{transform:scale(.35);opacity:.35}28%{opacity:.5}to{transform:scale(1.15);opacity:0}}@keyframes home-arc-hint{0%,to{transform:translateY(calc(100% - var(--arc-peek) - env(safe-area-inset-bottom, 0px)))}50%{transform:translateY(calc(100% - var(--arc-peek) - env(safe-area-inset-bottom, 0px) - 10px))}}.home-arc:not(.is-dragging){animation:home-arc-hint 2.4s ease-in-out .8s infinite}@media (prefers-reduced-motion:reduce){.bg-light,.content-in,.home-arc.is-expanding,.home-arc:before,.home-arc:not(.is-dragging),.home-hello,.home-logo-needle,.home-splash-mark,.home-welcome,.profile-chart-bar,.profile-chart-label,.profile-chart-value,.profile-week-total,.tutor-top,.view-transition-back,.view-transition-fade,.view-transition-forward{animation:none;transition:none;opacity:1;transform:none}}.access-lock{justify-content:center;min-height:100dvh;overflow:hidden;color:white;font-family:var(--font-urbanist),Urbanist,Poppins,sans-serif;background:var(--atmosphere)}.access-lock,.access-lock-card{position:relative;display:flex;flex-direction:column;align-items:center}.access-lock-card{z-index:1;gap:10px;padding:24px 20px calc(28px + env(safe-area-inset-bottom, 0px))}.access-lock-hint{margin:8px 0 4px;font-size:.95rem;font-weight:300;letter-spacing:.04em;color:rgba(255,255,255,.72)}.access-lock-dots{display:flex;gap:10px;margin-top:6px}.access-lock-dots span{width:12px;height:12px;border-radius:50%;border:1.5px solid rgba(255,255,255,.45);background:transparent}.access-lock-dots span.is-filled{background:white;border-color:white}.access-lock-error{margin:8px 0 4px;min-height:1.2em;font-size:.88rem;font-weight:400;color:#ff8a9b}.access-keypad{display:grid;grid-template-columns:repeat(3,72px);grid-gap:14px 18px;gap:14px 18px;margin-top:10px;justify-content:center}.access-key{width:72px;height:72px;border-radius:50%;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:white;font:inherit;font-size:1.55rem;font-weight:300;display:grid;place-items:center;-webkit-tap-highlight-color:transparent}.access-key:active:not(:disabled){background:rgba(255,255,255,.22)}.access-key:disabled{opacity:.45}.access-key.is-empty{border:0;background:transparent;pointer-events:none}.access-key.is-del{font-size:0;background:transparent;border-color:transparent}.access-lock-card .home-splash-name{animation:none}