:root{--page-bg-1:#efede8;--page-bg-2:#e6e3dd;--page-bg-3:#dedbd4;--shell-frame:#0d0c0b;--shell-frame-edge:#2a2826;--bg:#f7f6f3;--bg-2:#f4f2ec;--bg-3:#f1efe9;--surface:#fff;--surface-2:#faf9f6;--ink:#1a1714;--ink-soft:#6b6660;--ink-2:#94908a;--ink-3:#a39e96;--ink-faint:#c9c4bc;--line:#f0eee8;--line-2:#eceae4;--line-soft:#f4f2ec;--brand:#ff5a1f;--brand-2:#ff7a40;--brand-3:#ff8a50;--brand-deep:#e8480c;--brand-soft:#fff1ea;--brand-tint:#ffe0d0;--brand-edge:#ffd9c5;--green:#1fb16b;--green-soft:#e9f7ef;--green-soft-2:#eef7f0;--blue:#3b72e8;--blue-soft:#eaf1fe;--gold:#f0a41b;--gold-soft:#fff3db;--rose:#e54c5a;--rose-soft:#fde9eb;--shadow-xs:0 1px 2px #14120f0a;--shadow-sm:0 2px 8px -3px #14120f1a;--shadow:0 1px 2px #14120f0a, 0 18px 36px -22px #14120f24;--shadow-lg:0 14px 28px -10px #ff5a1f8c;--shadow-phone:0 50px 90px -30px #281e1473, 0 0 0 1px #0000000f;--r-xs:7px;--r-sm:11px;--r-md:14px;--r-lg:18px;--r-xl:20px;--r-2xl:24px;--r-pill:999px;--maxw:412px;--phone-h:860px;--font:"Pretendard Variable", "Pretendard", -apple-system, BlinkMacSystemFont, system-ui, "Segoe UI", "Noto Sans KR", sans-serif}*,:before,:after{box-sizing:border-box;-webkit-font-smoothing:antialiased;margin:0;padding:0}html,body{height:100%}body{font-family:var(--font);color:var(--ink);background:radial-gradient(120% 120% at 50% 0%, var(--page-bg-1) 0%, var(--page-bg-2) 55%, var(--page-bg-3) 100%);letter-spacing:-.01em;background-attachment:fixed}button{font:inherit;cursor:pointer;color:inherit;background:0 0;border:none}a{color:inherit;text-decoration:none}.app-shell{max-width:var(--maxw);background:var(--bg);flex-direction:column;min-height:100svh;margin:0 auto;display:flex;position:relative;overflow:hidden}@media (width>=520px){body{justify-content:center;align-items:center;min-height:100vh;padding:32px 20px;display:flex}.app-shell{width:var(--maxw);height:var(--phone-h);min-height:0;max-height:calc(100vh - 64px);box-shadow:var(--shadow-phone);border:11px solid var(--shell-frame);border-radius:44px;outline:1px solid #0000000a;margin:0}}.demo-banner{background:linear-gradient(90deg, var(--brand-2), var(--brand));color:#fff;letter-spacing:.2px;text-align:center;flex-shrink:0;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:11px;font-weight:800;display:flex}.topbar{z-index:20;background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:saturate(1.3)blur(14px);flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px 8px;display:flex;position:sticky;top:0}.topbar-brand{letter-spacing:-.02em;color:var(--ink);align-items:center;gap:10px;font-size:15px;font-weight:700;display:flex}.topbar-brand .flag{border-radius:var(--r-sm);background:var(--brand);place-items:center;width:34px;height:34px;font-size:0;display:grid;position:relative;box-shadow:0 4px 12px -2px #ff5a1f80}.topbar-brand .flag:before{content:"한";color:#fff;letter-spacing:-.04em;font-size:16px;font-weight:800}.tabbar{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(12px)saturate(1.3);padding:9px 12px calc(14px + env(safe-area-inset-bottom));border-top:1px solid #efede7;flex-shrink:0;display:flex;position:relative}.tabbar button{min-height:48px;color:var(--ink-3);letter-spacing:-.01em;flex-direction:column;flex:1;align-items:center;gap:5px;font-size:10.5px;font-weight:700;transition:color .18s;display:flex}.tabbar button .tab-ic{border-radius:var(--r-sm);width:46px;height:30px;color:var(--ink-3);background:0 0;place-items:center;font-size:18px;transition:background .2s,transform .2s cubic-bezier(.34,1.4,.5,1);display:grid}.tabbar button.active{color:var(--brand)}.tabbar button.active .tab-ic{background:var(--brand-soft);color:var(--brand)}.page{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex:1;min-height:0;padding:26px 20px 28px;animation:.42s cubic-bezier(.22,.61,.36,1) pageIn;overflow-y:auto}.page::-webkit-scrollbar{display:none}.chat-body::-webkit-scrollbar{display:none}.chat-body{scrollbar-width:none;-ms-overflow-style:none}.score-screen::-webkit-scrollbar{display:none}.score-screen{scrollbar-width:none;-ms-overflow-style:none}.stagger>*{opacity:0;animation:.5s cubic-bezier(.22,.61,.36,1) forwards riseIn}.stagger>:first-child{animation-delay:20ms}.stagger>:nth-child(2){animation-delay:70ms}.stagger>:nth-child(3){animation-delay:.12s}.stagger>:nth-child(4){animation-delay:.17s}.stagger>:nth-child(5){animation-delay:.22s}.stagger>:nth-child(6){animation-delay:.27s}.stagger>:nth-child(7){animation-delay:.32s}.stagger>:nth-child(8){animation-delay:.37s}.section{margin-bottom:26px}.section-head{justify-content:space-between;align-items:center;margin-bottom:13px;display:flex}.section-head h2{letter-spacing:-.025em;color:var(--ink);font-size:17px;font-weight:800}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);width:100%;box-shadow:var(--shadow-xs);text-align:left;font:inherit;color:inherit;padding:16px;transition:transform .16s,box-shadow .16s,border-color .16s;display:block}button.card{cursor:pointer}.card:hover{box-shadow:var(--shadow);border-color:var(--brand-edge);transform:translateY(-1px)}.card:active{transform:scale(.985)}.card-row{align-items:center;gap:14px;display:flex}.card-emoji{background:var(--brand-soft);width:52px;height:52px;color:var(--brand);border-radius:15px;flex-shrink:0;place-items:center;font-size:26px;display:grid}.card-body{flex:1;min-width:0}.card-title{letter-spacing:-.02em;color:var(--ink);margin-bottom:2px;font-size:16px;font-weight:700}.card-sub{color:var(--ink-3);font-size:12px;font-weight:500;line-height:1.4}.scenario-card{cursor:pointer;width:100%;margin-bottom:12px}.scenario-card:last-child{margin-bottom:0}.scenario-card .card-meta{flex-wrap:wrap;align-items:center;gap:6px;margin-top:9px;display:flex}.pill{border-radius:var(--r-xs);white-space:nowrap;letter-spacing:-.01em;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:700;line-height:1.4;display:inline-flex}.pill-beginner{background:var(--brand-soft);color:var(--brand)}.pill-elementary{background:var(--blue-soft);color:var(--blue)}.pill-ok{background:var(--green-soft);color:var(--green)}.pill-warn{background:var(--brand-soft);color:var(--brand-deep);font-weight:800}.pill-danger{background:var(--rose-soft);color:var(--rose)}.pill-muted{color:#8a857c;background:#f2f0ea;font-weight:600}.progress-track{background:var(--bg-3);border-radius:var(--r-pill);height:8px;overflow:hidden}.progress-fill{border-radius:var(--r-pill);background:linear-gradient(90deg, var(--brand-2), var(--brand));height:100%;transition:width .8s cubic-bezier(.22,.61,.36,1)}.progress-fill.accent{background:linear-gradient(90deg, var(--green), #19a05f)}.progress-label{color:var(--ink-2);justify-content:space-between;margin-bottom:7px;font-size:12px;font-weight:600;display:flex}.progress-label>:last-child{color:var(--ink);font-weight:800}.stat-grid{grid-template-columns:repeat(3,1fr);gap:11px;display:grid}.stat-grid-2{grid-template-columns:repeat(2,1fr);gap:11px;display:grid}.stat-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow-xs);padding:15px 12px}.stat-card .stat-emoji{background:var(--brand-soft);width:32px;height:32px;color:var(--brand);border-radius:9px;place-items:center;margin:0 auto 9px;font-size:17px;display:grid}.stat-card:first-child .stat-emoji{background:var(--green-soft);color:var(--green)}.stat-card:nth-child(2) .stat-emoji{background:var(--blue-soft);color:var(--blue)}.stat-card:nth-child(3) .stat-emoji{background:var(--gold-soft);color:var(--gold)}.stat-card:nth-child(4) .stat-emoji{background:var(--brand-soft);color:var(--brand)}.stat-card .stat-value{letter-spacing:-.03em;color:var(--ink);font-size:21px;font-weight:800;line-height:1}.stat-card .stat-label{color:var(--ink-3);margin-top:5px;font-size:11.5px;font-weight:600}.stat-grid-2 .stat-card{text-align:left;padding:16px}.stat-grid-2 .stat-card .stat-emoji{border-radius:10px;width:34px;height:34px;margin:0 0 12px;font-size:18px}.stat-grid-2 .stat-card .stat-value{font-size:24px}.stat-grid-2 .stat-card .stat-label{font-size:12.5px}.btn{border-radius:var(--r-md);letter-spacing:-.01em;justify-content:center;align-items:center;gap:6px;min-height:44px;padding:10px 18px;font-size:14px;font-weight:700;transition:transform .1s,filter .15s,box-shadow .15s;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 6px 14px -4px #ff5a1f99}.btn-primary:hover{filter:brightness(1.05)}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.btn-sm{border-radius:var(--r-sm);min-height:36px;padding:7px 14px;font-size:12.5px}.btn-full{width:100%}.chip-scroll{scrollbar-width:none;-ms-overflow-style:none;gap:8px;margin:0 -20px 18px;padding:2px 20px 4px;display:flex;overflow-x:auto}.chip-scroll::-webkit-scrollbar{display:none}.chip{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--line-2);color:#6b6660;white-space:nowrap;letter-spacing:-.01em;flex-shrink:0;padding:9px 18px;font-size:13.5px;font-weight:700;transition:all .15s}.chip.active{background:var(--brand);color:#fff;border-color:var(--brand)}.chat-screen{background:var(--bg-2);flex-direction:column;flex:1;min-height:0;display:flex}.chat-topbar{background:var(--surface);z-index:10;border-bottom:1px solid #efede7;flex-shrink:0;align-items:center;gap:12px;padding:22px 16px 10px;display:flex}.chat-back,.chat-pause{width:38px;height:38px;color:var(--ink);background:var(--bg-2);border:none;border-radius:12px;flex-shrink:0;place-items:center;font-size:16px;transition:background .15s,color .15s,transform .1s;display:grid}.chat-back:hover,.chat-pause:hover{background:var(--brand-soft);color:var(--brand)}.chat-back:active,.chat-pause:active{transform:scale(.94)}.online-dot{background:var(--green);vertical-align:1px;border-radius:50%;width:7px;height:7px;margin-right:6px;display:inline-block}.chat-title-wrap{flex:1;min-width:0}.chat-title{color:var(--ink);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:800;line-height:1.2;overflow:hidden}.chat-subtitle{color:var(--ink-2);margin-top:3px;font-size:12px;font-weight:600}.chat-progress-bar{background:var(--surface);border-bottom:1px solid #efede7;flex-shrink:0;align-items:center;gap:10px;padding:0 16px 12px;display:flex}.chat-progress-bar .progress-track{background:var(--bg-3);flex:1;height:6px}.chat-progress-label{color:var(--ink-3);font-size:11.5px;font-weight:700}.chat-body{-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:14px;padding:18px 16px 22px;display:flex;overflow-y:auto}.msg-group{gap:10px;max-width:88%;animation:.35s cubic-bezier(.22,.61,.36,1) both msgIn;display:flex}.msg-group.ai{align-self:flex-start}.msg-group.user{flex-direction:row-reverse;align-self:flex-end}.msg-avatar{background:linear-gradient(145deg, var(--brand-3), var(--brand));color:#fff;border-radius:12px;flex-shrink:0;align-self:flex-start;place-items:center;width:36px;height:36px;margin-top:18px;font-size:18px;display:grid;box-shadow:0 4px 10px -3px #ff5a1f80}.msg-stack{flex-direction:column;flex:auto;gap:6px;min-width:0;display:flex}.msg-group.user .msg-stack{align-items:flex-end}.msg-group.ai .msg-stack{align-items:flex-start}.msg-name{color:var(--ink-2);margin-bottom:2px;padding:0 4px;font-size:12px;font-weight:700}.msg-row{flex-direction:column;align-items:stretch;gap:6px;width:100%;display:flex}.msg-group.user .msg-row{align-items:flex-end}.msg-group.ai .msg-row{align-items:flex-start}.bubble{letter-spacing:-.01em;word-break:keep-all;overflow-wrap:break-word;width:fit-content;max-width:100%;padding:13px 16px;font-size:14.5px;font-weight:600;line-height:1.5;animation:.3s both bubbleIn;display:inline-block}.bubble.ai{color:var(--ink);background:#fff;border-radius:5px 18px 18px;box-shadow:0 2px 8px -3px #14120f1a}.bubble.user{background:linear-gradient(145deg, var(--brand-2), var(--brand));color:#fff;border-radius:18px 5px 18px 18px;font-weight:700;box-shadow:0 6px 16px -6px #ff5a1f80}.bubble.ai.correction{border:1.5px solid var(--brand-edge);color:var(--ink);background:#fff}.bubble.ai.correction:before{content:"⚠️ ";font-size:13px}.bubble-text{white-space:pre-line;display:block}.bubble-english{color:var(--ink-3);border-top:1px solid var(--bg-3);margin-top:9px;padding-top:9px;font-size:12.5px;font-style:italic;font-weight:500;line-height:1.45;display:block}.vocab-strip{scrollbar-width:none;flex-wrap:wrap;align-self:stretch;gap:7px;max-width:100%;padding:2px 0;display:flex}.vocab-strip::-webkit-scrollbar{display:none}.vocab-chip{background:var(--surface);border:1px solid #efede7;border-radius:13px;flex-shrink:0;align-items:baseline;gap:7px;padding:9px 13px;font-size:14px;line-height:1.35;display:inline-flex;box-shadow:0 1px 2px #14120f0a}.vocab-chip .vw{color:var(--ink);font-weight:800}.vocab-chip .vr{color:var(--brand);font-size:11px;font-weight:700}.vocab-chip .vm{color:var(--ink-3);font-size:11px;font-weight:500}.grammar-tip{background:var(--gold-soft);color:#6b5a20;word-break:keep-all;overflow-wrap:break-word;border:1px solid #f0d88a;border-radius:14px;width:fit-content;max-width:100%;padding:10px 14px;font-size:12.5px;font-weight:600;line-height:1.5;animation:.3s both bubbleIn;display:block;box-shadow:0 1px 2px #14120f0a}.grammar-tip:before{content:"💡 "}.typing{background:#fff;border-radius:5px 18px 18px;gap:5px;padding:15px 17px;display:inline-flex;box-shadow:0 2px 8px -3px #14120f1a}.typing.user{background:linear-gradient(145deg, var(--brand-2), var(--brand));border-radius:18px 5px 18px 18px;box-shadow:0 6px 16px -6px #ff5a1f80}.typing span{background:var(--ink-faint);border-radius:50%;width:7px;height:7px;animation:.9s ease-in-out infinite typingBounce}.typing.user span{background:#ffffffbf}.typing span:nth-child(2){animation-delay:.15s}.typing span:nth-child(3){animation-delay:.3s}.score-screen{background:var(--bg);-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;min-height:0;padding:32px 20px 26px;display:flex;overflow-y:auto}.score-header{align-items:center;gap:12px;margin-bottom:26px;display:flex}.score-header h2{letter-spacing:-.025em;font-size:19px;font-weight:800}.score-grade-area{text-align:center;margin-bottom:28px}.grade{letter-spacing:-.06em;font-size:76px;font-weight:900;line-height:1;animation:.6s cubic-bezier(.2,.9,.3,1.4) 50ms both gradePop}.grade-A{color:var(--green);text-shadow:0 0 32px #1fb16b59}.grade-B{color:var(--blue);text-shadow:0 0 32px #3b72e859}.grade-C{color:var(--gold);text-shadow:0 0 32px #f0a41b59}.grade-D{color:var(--brand);text-shadow:0 0 32px #ff5a1f59}.score-num{color:var(--ink);letter-spacing:-.03em;margin-top:8px;font-size:36px;font-weight:800}.score-num .unit{color:var(--ink-3);margin-left:3px;font-size:18px;font-weight:600}.score-subtitle{color:var(--ink-3);margin-top:10px;font-size:14px;font-weight:500}.gauges{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);flex-direction:column;gap:14px;margin-bottom:24px;padding:18px;display:flex}.gauge-head{color:var(--ink-soft);justify-content:space-between;margin-bottom:6px;font-size:13px;font-weight:600;display:flex}.gauge-head b{color:var(--brand);font-weight:800}.gauge-track{background:var(--bg-3);border-radius:var(--r-pill);height:9px;overflow:hidden}.gauge-fill{border-radius:var(--r-pill);height:100%;transition:width 1s cubic-bezier(.22,.61,.36,1)}.gauge-fill.accuracy{background:linear-gradient(90deg, var(--brand-2), var(--brand))}.gauge-fill.fluency{background:linear-gradient(90deg, var(--green), #19a05f)}.gauge-fill.honorific{background:linear-gradient(90deg, var(--blue), #6c92ed)}.gauge-fill.vocabulary{background:linear-gradient(90deg, var(--gold), #f7c050)}.feedback-timeline{grid-template-columns:repeat(3,1fr);gap:9px;width:100%;margin-bottom:22px;display:grid}.fb-dot{border-radius:var(--r-lg);text-align:center;background:var(--surface);min-width:0;min-height:78px;box-shadow:var(--shadow-xs);border:1px solid #0000;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:14px 8px;font-weight:700;animation:.4s both tlIn;display:flex}.fb-dot.good{color:var(--green);background:var(--green-soft);border-color:#c6e8d3}.fb-dot.warning{color:var(--brand-deep);background:var(--brand-soft);border-color:var(--brand-edge)}.fb-dot .fb-turn-num{opacity:.7;letter-spacing:.06em;font-size:10px;font-weight:800}.fb-dot .fb-icon{font-size:18px;line-height:1}.fb-dot .fb-text{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:10.5px;font-weight:700;line-height:1.3;overflow:hidden}.score-summary{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);margin-bottom:22px;padding:18px}.score-summary h3{letter-spacing:-.02em;margin-bottom:10px;font-size:14.5px;font-weight:800}.score-summary li{color:var(--ink-soft);padding-left:18px;font-size:13px;font-weight:500;line-height:1.65;list-style:none;position:relative}.score-summary li:before{content:"•";color:var(--brand);font-weight:900;position:absolute;left:4px}.score-actions{gap:10px;display:flex}.score-actions .btn{flex:1}.milestone-overall{border-radius:var(--r-2xl);color:#fff;background:#1a1714;margin-bottom:24px;padding:20px;box-shadow:0 18px 36px -20px #14120f80}.milestone-overall .progress-label{color:#b9b4ac;margin-bottom:13px}.milestone-overall .progress-label>:last-child{color:var(--brand-2)}.milestone-overall .progress-track{background:#ffffff1f;height:10px}.milestone-timeline{margin:8px 0 26px;padding-left:28px;position:relative}.milestone-timeline:before{content:"";background:var(--line-2);width:2px;position:absolute;top:10px;bottom:10px;left:8px}.milestone-item{padding:0 0 20px;animation:.5s both riseIn;position:relative}.milestone-item:last-child{padding-bottom:0}.milestone-dot{width:18px;height:18px;box-shadow:0 0 0 4px var(--bg);z-index:1;background:#e7e4dd;border-radius:50%;position:absolute;top:2px;left:-28px}.milestone-item.done .milestone-dot{background:var(--green)}.milestone-item.done .milestone-dot:after{content:"✓";color:#fff;place-items:center;font-size:11px;font-weight:900;line-height:1;display:grid;position:absolute;inset:0}.milestone-item.active .milestone-dot{border:4px solid var(--brand);background:#fff}.milestone-title{color:var(--ink);letter-spacing:-.02em;margin-bottom:3px;font-size:15px;font-weight:700}.milestone-meta{color:var(--ink-3);font-size:12.5px;font-weight:600}.milestone-item.done .milestone-meta{color:var(--green)}.milestone-item.active .milestone-meta{color:var(--brand-deep);font-weight:700}.milestone-item:not(.done):not(.active) .milestone-title{color:var(--ink-3)}.badge-grid{grid-template-columns:repeat(3,1fr);gap:11px;display:grid}.badge-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow-xs);padding:16px 8px;transition:transform .12s}.badge-card:hover{transform:translateY(-2px)}.badge-card.locked{background:var(--surface-2);box-shadow:none}.badge-card.locked .badge-emoji{color:#bbb6ae;background:#efede7}.badge-card.locked .badge-label{color:#bbb6ae;font-weight:600}.badge-emoji{background:var(--brand-soft);width:44px;height:44px;color:var(--brand);border-radius:13px;place-items:center;margin:0 auto 10px;font-size:22px;display:grid}.badge-card:nth-child(3n+1) .badge-emoji:not(.locked){background:var(--blue-soft);color:var(--blue)}.badge-card:nth-child(3n+2) .badge-emoji:not(.locked){background:var(--brand-soft);color:var(--brand)}.badge-card:nth-child(3n) .badge-emoji:not(.locked){background:var(--gold-soft);color:var(--gold)}.badge-label{color:var(--ink);font-size:12px;font-weight:700}.heatmap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);grid-template-columns:repeat(7,1fr);gap:8px;padding:18px 14px;display:grid}.heatmap-day{flex-direction:column;align-items:center;gap:8px;display:flex}.heatmap-cell{background:var(--bg-3);border-radius:11px;width:100%;height:38px}.heatmap-cell.l1{background:#ffe3d3}.heatmap-cell.l2{background:#ffc9ae}.heatmap-cell.l3{background:var(--brand-2)}.heatmap-cell.l4{background:var(--brand)}.heatmap-label{color:var(--ink-3);font-size:11px;font-weight:600}:is(.heatmap-day:has(.l3,.l4) .heatmap-label,.heatmap-day:has(.l1,.l2) .heatmap-label){color:var(--ink);font-weight:700}.settings-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-xs);overflow:hidden}.settings-item{text-align:left;width:100%;color:var(--ink);border-bottom:1px solid #f4f2ec;align-items:center;gap:13px;padding:15px 16px;font-size:14.5px;font-weight:600;transition:background .12s;display:flex}.settings-item:last-child{border-bottom:none}.settings-item:hover{background:var(--surface-2)}.settings-item .si-icon{background:var(--brand-soft);width:34px;height:34px;color:var(--brand);border-radius:10px;flex-shrink:0;place-items:center;font-size:16px;display:grid}.settings-item:first-child .si-icon{background:var(--blue-soft);color:var(--blue)}.settings-item:nth-child(2) .si-icon{background:var(--brand-soft);color:var(--brand)}.settings-item:nth-child(3) .si-icon{color:#8a857c;background:#f2f0ea}.settings-item:nth-child(4) .si-icon{background:var(--green-soft);color:var(--green)}.settings-item .si-label{flex:1}.settings-item .si-chevron{color:var(--ink-3);font-size:13px;font-weight:600}.profile-hero{text-align:center;padding:14px 0 22px}.profile-avatar{background:linear-gradient(145deg, var(--brand-3), var(--brand));color:#fff;letter-spacing:-.04em;border-radius:50%;place-items:center;width:84px;height:84px;margin:0 auto 14px;font-size:34px;font-weight:800;display:grid;box-shadow:0 14px 28px -10px #ff5a1f8c}.profile-name{letter-spacing:-.03em;color:var(--ink);font-size:21px;font-weight:800}.profile-level{color:var(--brand-deep);background:var(--brand-soft);border-radius:var(--r-pill);margin-top:8px;padding:5px 13px;font-size:12.5px;font-weight:700;display:inline-block}.greeting{margin-bottom:22px}.greeting-sub{color:var(--ink-2);letter-spacing:-.01em;margin-bottom:4px;font-size:14px;font-weight:600}.greeting h1{letter-spacing:-.035em;color:var(--ink);text-wrap:balance;font-size:27px;font-weight:800;line-height:1.18}.greeting .streak-badge{border-radius:var(--r-pill);background:var(--brand-soft);border:1px solid var(--brand-edge);color:var(--brand-deep);align-items:center;gap:6px;margin-top:12px;padding:6px 12px;font-size:12.5px;font-weight:800;display:inline-flex}.greeting .streak-badge .fire{animation:1.5s ease-in-out infinite pulse}.continue-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-2xl);box-shadow:var(--shadow);padding:20px}.continue-card:hover{border-color:var(--brand-edge)}.continue-card .card-row{align-items:center;margin-bottom:16px}.continue-card .card-emoji{border-radius:14px;width:46px;height:46px;font-size:22px}.continue-card .card-title{font-size:16.5px;font-weight:800}.continue-card .card-sub{font-size:12.5px}.continue-card .continue-tag{color:var(--brand);background:var(--brand-soft);border-radius:6px;margin-bottom:5px;padding:2px 8px;font-size:11px;font-weight:700;display:inline-block}.continue-card .play-fab{background:var(--brand);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:38px;height:38px;margin-left:auto;font-size:14px;display:grid;box-shadow:0 6px 14px -4px #ff5a1f99}.empty-state{text-align:center;color:var(--ink-3);padding:40px 20px}.empty-state .empty-icon{border-radius:var(--r-lg);background:var(--bg-3);border:1px solid var(--line);place-items:center;width:56px;height:56px;margin:0 auto 12px;font-size:24px;display:grid}.empty-state p{font-size:13px;line-height:1.5}.toast{background:var(--ink);color:#fff;border-radius:var(--r-pill);z-index:50;box-shadow:var(--shadow);text-align:center;max-width:90%;padding:10px 20px;font-size:13px;font-weight:600;animation:.3s cubic-bezier(.34,1.4,.5,1) slideup;position:absolute;bottom:90px;left:50%;transform:translate(-50%)}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes riseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes bubbleIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes msgIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes gradePop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.12)}to{transform:scale(1)}}@keyframes typingBounce{0%,80%,to{opacity:.35;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}@keyframes slideup{0%{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%)}}@keyframes tlIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (width<=380px){.page{padding:6px 16px 100px}.topbar{padding:14px 16px 8px}.greeting h1{font-size:24px}.stat-grid,.badge-grid{gap:8px}}
