@font-face{font-family:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(../media/3dbe685087e51055-s.3go3gb1_xu4rn.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:600;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.1hey5yyym6mz_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(../media/3dbe685087e51055-s.3go3gb1_xu4rn.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:700;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.1hey5yyym6mz_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(../media/3dbe685087e51055-s.3go3gb1_xu4rn.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Sora;font-style:normal;font-weight:800;font-display:swap;src:url(../media/6bd983bd58a87a3d-s.p.1hey5yyym6mz_.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Sora Fallback;src:local(Arial);ascent-override:85.29%;descent-override:25.5%;line-gap-override:0.0%;size-adjust:113.73%}.sora_ad438178-module__alkySq__className{font-family:Sora,Sora Fallback;font-style:normal}.sora_ad438178-module__alkySq__variable{--font-sora:"Sora", "Sora Fallback"}
@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:500;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/7fea77d1d19108bf-s.2y65deuc30pmy.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/1bcd0e671759a44c-s.2qt3tdwt-y9x_.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/e15f58668ad64cb8-s.3cvcemwuzoywn.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/90c51ce8fb754fe8-s.02z5rrbg5nt92.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/57215795b8570f5c-s.2rixgazldzomk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Sans;font-style:normal;font-weight:700;font-stretch:100%;font-display:swap;src:url(../media/03fc1b4a8d284b5e-s.p.0wiir8udbzjvx.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Sans Fallback;src:local(Arial);ascent-override:101.32%;descent-override:27.18%;line-gap-override:0.0%;size-adjust:101.17%}.ibm_plex_sans_660a49b1-module__iBdcIa__className{font-family:IBM Plex Sans,IBM Plex Sans Fallback;font-style:normal}.ibm_plex_sans_660a49b1-module__iBdcIa__variable{--font-plex:"IBM Plex Sans", "IBM Plex Sans Fallback"}
:root{--bg:#f5f5f7;--surface:#fff;--surface-2:#fafafc;--ink:#1d1d1f;--ink-2:#424245;--muted:#6e6e73;--faint:#a1a1a6;--line:#e5e5ea;--line-2:#d2d2d7;--navy:#0b1220;--navy-2:#14213b;--navy-ink:#eef2f8;--navy-muted:#9aa6bb;--orange:#ff7a1a;--orange-2:#ff9a3d;--orange-soft:#fff1e6;--blue:#0a6cff;--blue-soft:#eaf2ff;--green:#1f9d55;--green-soft:#e6f6ec;--red:#e5484d;--red-soft:#fdecec;--yellow:#ffb400;--radius:22px;--shadow:0 1px 2px #0000000a, 0 8px 28px -12px #0000001f;--font-display:var(--font-sora), "Sora", system-ui, sans-serif;--font-body:var(--font-plex), "IBM Plex Sans", system-ui, sans-serif;--sidebar:252px}*{box-sizing:border-box}html,body{margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:16px;line-height:1.5}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}button:disabled{cursor:not-allowed}:focus-visible{outline-offset:2px;border-radius:10px;outline:3px solid #0a6cff59}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.025em;color:var(--ink);margin:0}strong{font-weight:600}.eyebrow{font:600 12px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.eyebrow.orange{color:var(--orange)}.eyebrow.blue{color:var(--blue)}.title-xl{font:700 clamp(30px, 4.4vw, 48px)/1.06 var(--font-display);letter-spacing:-.035em}.title-l{font:700 clamp(22px, 2.6vw, 28px)/1.15 var(--font-display);letter-spacing:-.025em}.title-m{font:600 19px/1.25 var(--font-display);letter-spacing:-.015em}.muted{color:var(--muted)}.accent{color:var(--blue)}.stack{flex-direction:column;display:flex}.row{align-items:center;display:flex}.gap-4{gap:4px}.gap-8{gap:8px}.gap-12{gap:12px}.gap-16{gap:16px}.gap-24{gap:24px}.gap-32{gap:32px}.gap-48{gap:48px}.h-hero{font:700 clamp(30px, 4.4vw, 46px)/1.06 var(--font-display);letter-spacing:-.035em}.h-section{font:700 22px/1.2 var(--font-display)}.accent-o{color:var(--orange)}.eyebrow.green{color:var(--green)}.eyebrow.purple{color:#7c3aed}.btn{height:52px;font:600 16px var(--font-body);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:0 24px;transition:transform .12s,filter .15s,background .15s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.98)}.btn-orange,.btn-action{background:var(--orange);color:#fff;box-shadow:0 8px 20px -10px #ff7a1ae6}.btn-orange:hover,.btn-action:hover{filter:brightness(1.05)}.btn-green{background:var(--green);color:#fff}.btn-red{background:var(--red);color:#fff}.btn-blue{background:var(--orange);color:#fff}.btn-ghost,.btn-light{background:var(--surface);color:var(--ink);border:1px solid var(--line-2)}.btn-ghost:hover,.btn-light:hover{background:var(--surface-2)}.btn-quiet{color:var(--blue);background:0 0;border-radius:0;height:auto;padding:6px 0;font-weight:600}.btn:disabled{opacity:.4;box-shadow:none}.btn-block{width:100%}.btn-sm{height:40px;padding:0 16px;font-size:14px}.shell{min-height:100dvh}.sidebar{width:var(--sidebar);background:var(--navy);color:var(--navy-ink);z-index:30;flex-direction:column;padding:28px 18px;display:flex;position:fixed;inset:0 auto 0 0}.sidebar .brand{padding:0 8px 28px}.side-nav{flex-direction:column;gap:4px;display:flex}.side-nav a{height:44px;color:var(--navy-muted);border-radius:12px;align-items:center;gap:12px;padding:0 12px;font-weight:500;transition:background .15s,color .15s;display:flex}.side-nav a:hover{color:var(--navy-ink);background:#ffffff0d}.side-nav a.active{color:#fff;background:#ffffff17}.side-nav .count{background:var(--orange);color:#fff;border-radius:99px;place-items:center;min-width:22px;height:22px;margin-left:auto;padding:0 7px;font-size:12px;font-weight:700;display:grid}.side-user{background:#ffffff0d;border-radius:14px;align-items:center;gap:10px;margin-top:auto;padding:12px;display:flex}.side-user b{color:#fff;font-size:14px;display:block}.side-user small{color:var(--navy-muted);font-size:12px}.main{margin-left:var(--sidebar);padding:44px clamp(24px,4vw,64px) 72px}.main-inner{max-width:1180px;margin:0 auto}.mobile-top,.tabbar{display:none}.brand{align-items:center;gap:10px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--blue), var(--orange));width:34px;height:34px;font:800 13px var(--font-display);color:#fff;border-radius:10px;flex:none;place-items:center;display:grid}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text b{font:700 16px var(--font-display);letter-spacing:-.01em}.brand-text small{opacity:.65;font-size:11px}.avatar-btn{background:var(--navy-2);color:#fff;width:34px;height:34px;font:700 14px var(--font-display);border-radius:50%;flex:none;place-items:center;display:grid}.streak{background:var(--orange-soft);color:#c2410c;border-radius:999px;align-items:center;gap:6px;height:34px;padding:0 12px;font-size:14px;font-weight:600;display:inline-flex}@media (max-width:1023px){.sidebar{display:none}.main{padding:20px 20px calc(96px + env(safe-area-inset-bottom));margin-left:0}.mobile-top{z-index:20;-webkit-backdrop-filter:saturate(180%)blur(18px);background:#f5f5f7d9;justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex;position:sticky;top:0}.tabbar{z-index:30;padding:8px 6px calc(8px + env(safe-area-inset-bottom));-webkit-backdrop-filter:saturate(180%)blur(18px);border-top:1px solid var(--line);background:#ffffffdb;grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.tabbar a{color:var(--faint);flex-direction:column;align-items:center;gap:3px;padding:4px 0;font-size:11px;font-weight:500;display:flex;position:relative}.tabbar a.active{color:var(--orange)}.tabbar svg{width:24px;height:24px}.tabbar .dot{background:var(--orange);border-radius:50%;width:8px;height:8px;position:absolute;top:2px;left:calc(50% + 8px)}}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:24px}.panel{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-pad{padding:24px}.notice{color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:12px 14px;font-size:13px}.badge{height:26px;color:var(--muted);background:#f0f0f3;border-radius:99px;align-items:center;gap:4px;padding:0 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.green{background:var(--green-soft);color:var(--green)}.badge.orange{background:var(--orange-soft);color:#c2410c}.badge.blue{background:var(--blue-soft);color:var(--blue)}.progress{background:#e8e8ed;border-radius:99px;height:6px;overflow:hidden}.progress>span{border-radius:inherit;background:var(--blue);height:100%;transition:width .4s;display:block}.progress.orange>span{background:var(--orange)}.progress.light{background:#e8e8ed}.stars{color:#d2d2d7;gap:2px;display:inline-flex}.stars .on{color:var(--yellow)}.dash-head{justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:28px;display:flex}.dash-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}@media (max-width:1023px){.dash-grid{grid-template-columns:1fr;gap:16px}.dash-head{margin-bottom:18px}}.hero{color:var(--navy-ink);background:radial-gradient(520px 260px at 92% 8%, #ff7a1a47, transparent 70%), radial-gradient(600px 300px at 0% 100%, #0a6cff40, transparent 70%), var(--navy);border-radius:28px;flex-direction:column;justify-content:flex-end;gap:10px;min-height:320px;padding:clamp(26px,4vw,44px);display:flex;position:relative;overflow:hidden;box-shadow:0 30px 60px -30px #0b12208c}.hero .eyebrow{color:var(--orange-2)}.hero h2{color:#fff;font:700 clamp(30px, 4.2vw, 46px)/1.04 var(--font-display);letter-spacing:-.035em}.hero p{color:var(--navy-muted);margin:0;font-size:17px}.hero .meta{color:var(--navy-muted);flex-wrap:wrap;gap:16px;margin:6px 0 18px;font-size:14px;display:flex}.hero .meta span{align-items:center;gap:6px;display:inline-flex}.hero .btn{align-self:flex-start;height:56px;padding:0 30px;font-size:17px}.hero .bar{max-width:320px;margin-bottom:8px}.hero .bar .progress{background:#ffffff24}@media (max-width:600px){.hero{border-radius:24px;min-height:300px}.hero .btn{align-self:stretch}}.side-cards{flex-direction:column;gap:16px;display:flex}.week-dots{gap:8px;margin:14px 0 10px;display:flex}.week-dots i{background:#e8e8ed;border-radius:99px;flex:1;height:8px}.week-dots i.done{background:var(--green)}.week-dots i.now{background:var(--orange)}.link-row{align-items:center;gap:14px;padding:18px 20px;display:flex}.link-row .ic{border-radius:12px;flex:none;place-items:center;width:42px;height:42px;display:grid}.link-row .t{flex:1;min-width:0}.link-row .t b{font-size:15px;display:block}.link-row .t small{color:var(--muted);font-size:13px}.chev{color:var(--faint)}.timeline{flex-direction:column;display:flex;position:relative}.tl-week{padding-bottom:6px;padding-left:44px;position:relative}.tl-week:before{content:"";background:var(--line);width:2px;position:absolute;top:34px;bottom:-6px;left:15px}.tl-week:last-child:before{display:none}.tl-node{width:32px;height:32px;font:700 13px var(--font-display);background:var(--surface);border:2px solid var(--line-2);color:var(--muted);border-radius:50%;place-items:center;display:grid;position:absolute;top:8px;left:0}.tl-week.done .tl-node{background:var(--green);border-color:var(--green);color:#fff}.tl-week.now .tl-node{background:var(--orange);border-color:var(--orange);color:#fff;box-shadow:0 0 0 6px var(--orange-soft)}.tl-head{align-items:center;gap:12px;padding:10px 0 12px;display:flex}.tl-head .t{flex:1}.tl-head .t b{font:600 17px var(--font-display);letter-spacing:-.015em;display:block}.tl-head .t small{color:var(--muted);font-size:14px}.tl-week.locked .tl-head .t b{color:var(--faint)}.tl-lessons{flex-direction:column;margin:0 0 18px;display:flex;overflow:hidden}.tl-lesson{border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:14px 18px;transition:background .12s;display:flex}.tl-lesson:last-child{border-bottom:0}.tl-lesson:hover{background:var(--surface-2)}.tl-lesson .st{border:2px solid var(--line-2);width:28px;height:28px;color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.tl-lesson.done .st{background:var(--green);border-color:var(--green);color:#fff}.tl-lesson.now .st{border-color:var(--orange);color:var(--orange)}.tl-lesson .t{flex:1;min-width:0}.tl-lesson .t b{font-size:15px;font-weight:600;display:block}.tl-lesson .t small{color:var(--muted);font-size:13px}.concept{min-width:36px;height:26px;font:700 12px var(--font-display);letter-spacing:.02em;border-radius:8px;place-items:center;padding:0 8px;display:inline-grid}.concept.EX{color:#13703b;background:#e6f6ec}.concept.MB{color:#0a56cc;background:#eaf2ff}.concept.BO{color:#6d28d9;background:#f1ecff}.concept.SU{color:#a35a00;background:#fff4e0}.concept.IN{background:var(--red-soft);color:#b42318}.lesson-list{flex-direction:column;display:flex;overflow:hidden}.lesson-item{background:var(--surface);border-bottom:1px solid var(--line);align-items:center;gap:14px;padding:16px 20px;display:flex}.lesson-item:last-child{border-bottom:0}.lesson-item .idx{width:32px;height:32px;font:700 13px var(--font-display);color:var(--muted);background:#f0f0f3;border-radius:50%;flex:none;place-items:center;display:grid}.lesson-item.done .idx{background:var(--green);color:#fff}.lesson-item.current .idx{background:var(--orange);color:#fff}.lesson-item .body{flex:1;min-width:0}.lesson-item h3{font-size:15px;font-family:var(--font-body);letter-spacing:0;font-weight:600}.lesson-item p{color:var(--muted);margin:2px 0 0;font-size:13px}.stat-row{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.stat{border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);padding:22px}.stat b{font:700 30px var(--font-display);letter-spacing:-.03em;display:block}.stat small{color:var(--muted);font-size:13px}.score-num{width:76px;height:76px;font:800 26px var(--font-display);color:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.field{flex-direction:column;gap:6px;display:flex}.field label{color:var(--ink-2);font-size:13px;font-weight:600}.dark-input,.input{background:var(--surface);border:1px solid var(--line-2);height:52px;color:var(--ink);font:500 16px var(--font-body);border-radius:14px;outline:none;padding:0 16px;transition:border-color .15s,box-shadow .15s}.dark-input:focus,.input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #0a6cff1f}textarea.dark-input{resize:vertical;height:auto;min-height:120px;padding:14px 16px}.auth-wrap{grid-template-columns:1.1fr 1fr;min-height:100dvh;display:grid}@media (max-width:900px){.auth-wrap{grid-template-columns:1fr}.auth-art{display:none!important}}.auth-art{background:var(--navy);color:var(--navy-ink);flex-direction:column;justify-content:center;gap:32px;padding:56px;display:flex;position:relative;overflow:hidden}.auth-art:before{content:"";background:radial-gradient(700px 400px at 15% 25%,#0a6cff38,#0000 70%),radial-gradient(500px 400px at 90% 85%,#ff7a1a33,#0000 70%);position:absolute;inset:0}.auth-art>*{position:relative}.auth-art h1{color:#fff}.auth-art .muted{color:var(--navy-muted)}.auth-form{justify-content:center;align-items:center;padding:32px 20px;display:flex}.only-mobile{display:none}@media (max-width:900px){.only-mobile{display:block}}.mini-phone{background:#1a2337;border:1px solid #ffffff1f;border-radius:34px;width:260px;padding:8px;box-shadow:0 40px 80px -30px #000000e6}.mini-phone .screen{background:var(--surface);border-radius:27px;gap:10px;padding:18px;min-height:0!important}.lesson-shell{background:var(--surface);flex-direction:column;min-height:100dvh;display:flex}.lesson-top{z-index:10;background:var(--surface);align-items:center;gap:16px;width:100%;max-width:760px;height:64px;margin:0 auto;padding:0 20px;display:flex;position:sticky;top:0}.icon-btn{width:40px;height:40px;color:var(--muted);background:#f0f0f3;border-radius:50%;flex:none;place-items:center;display:grid}.icon-btn:hover{color:var(--ink)}.lesson-top .progress{flex:1;height:8px}.lesson-top .count{color:var(--muted);text-align:right;min-width:44px;font-size:13px;font-weight:600}.lesson-stage{flex:1;justify-content:center;display:flex}.device{width:100%;display:flex}.screen{width:100%;max-width:760px;min-height:calc(100dvh - 64px);color:var(--ink);flex-direction:column;margin:0 auto;display:flex}.screen-head{padding:28px 20px 0}.screen-head .kicker{font:600 12px/1 var(--font-body);letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}.screen-head h2{font:700 clamp(24px, 3.6vw, 34px)/1.12 var(--font-display);letter-spacing:-.03em;margin-top:10px}.screen-body{flex-direction:column;flex:1;gap:16px;padding:22px 20px 28px;display:flex}.screen-foot{padding:16px 20px calc(16px + env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(16px);border-top:1px solid var(--line);background:#ffffffeb;position:sticky;bottom:0}.screen-foot>.row{max-width:520px;margin:0 auto}.screen-foot.ok{background:var(--green-soft);border-color:#c4e8d2}.screen-foot.bad{background:var(--red-soft);border-color:#f7cfd0}.feedback{align-items:flex-start;gap:12px;max-width:520px;margin:0 auto 14px;display:flex}.feedback b{font:700 18px var(--font-display);display:block}.screen-foot.ok .feedback{color:#13703b}.screen-foot.bad .feedback{color:#b42318}.feedback p{color:var(--ink-2);margin:2px 0 0;font-size:15px}.phrase-card{background:var(--surface-2);border:1px solid var(--line);border-radius:24px;padding:clamp(20px,3vw,30px)}.phrase-en{font:700 clamp(28px, 5vw, 40px)/1.12 var(--font-display);color:var(--ink);letter-spacing:-.03em}.phrase-pt{color:var(--muted);margin-top:10px;font-size:17px}.phrase-note{color:var(--ink-2);background:var(--blue-soft);border-radius:16px;padding:14px 16px;font-size:15px}.sounds{background:var(--orange-soft);color:#9a3412;border-radius:14px;align-items:center;gap:10px;margin-top:14px;padding:10px 14px;font-size:15px;display:flex}.sounds b{letter-spacing:.01em;font-weight:700}.sounds small{color:#c2410c;opacity:.8;font-size:12px}.audio-row{align-items:center;gap:12px;margin-top:18px;display:flex}.play{background:var(--blue);color:#fff;border-radius:50%;flex:none;place-items:center;width:52px;height:52px;transition:transform .12s;display:grid}.play:active{transform:scale(.94)}.play.slow{background:var(--blue-soft);width:44px;height:44px;color:var(--blue)}.play.playing{animation:1s infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 8px #0a6cff26}}.wave{flex:1;align-items:center;gap:3px;height:28px;display:flex}.wave i{background:#d2d2d7;border-radius:3px;flex:1;max-width:4px;height:30%}.wave.on i{background:var(--blue);animation:.9s ease-in-out infinite wave}@keyframes wave{0%,to{height:25%}50%{height:95%}}.speed-label{color:var(--muted);font-size:13px}.coach{align-items:flex-start;gap:14px;display:flex}.coach-bubble{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:6px 22px 22px;flex:1;padding:18px 20px;font-size:17px;line-height:1.55}.coach-bubble p{margin:0 0 10px}.coach-bubble p:last-child{margin:0}.coach-bubble strong{color:var(--ink)}.coach-audio{background:var(--surface);border:1px solid var(--line-2);color:var(--ink-2);border-radius:999px;align-items:center;gap:10px;margin-top:14px;padding:8px 14px 8px 8px;font-size:14px;font-weight:600;display:inline-flex}.coach-audio .play{width:34px;height:34px}.curiosity{letter-spacing:.06em;text-transform:uppercase;color:#7c3aed;align-items:center;gap:6px;font-size:12px;font-weight:700;display:inline-flex}.ex-line{background:var(--surface-2);border:1px solid var(--line);text-align:left;width:100%;color:var(--ink);border-radius:16px;align-items:center;gap:12px;padding:14px 16px;display:flex}.ex-line .t{flex:1;min-width:0}.ex-line .t b{color:var(--ink);font:600 17px var(--font-display);letter-spacing:-.01em;display:block}.ex-line .t small{color:var(--muted);font-size:14px}.ex-line .t em{color:#c2410c;margin-top:2px;font-size:13px;font-style:normal;display:block}.mini-play{background:var(--blue-soft);width:38px;height:38px;color:var(--blue);border-radius:50%;flex:none;place-items:center;display:grid}.option{text-align:left;background:var(--surface);border:1.5px solid var(--line-2);width:100%;color:var(--ink);border-radius:18px;align-items:center;gap:12px;padding:18px;font-size:17px;font-weight:500;transition:border-color .12s,background .12s;display:flex}.option:hover:not(:disabled){border-color:#9fc2ff}.option.selected{border-color:var(--blue);background:var(--blue-soft)}.option.correct{border-color:var(--green);background:var(--green-soft);color:#13703b}.option.wrong{border-color:var(--red);background:var(--red-soft);color:#b42318}.option .key{width:28px;height:28px;color:var(--muted);background:#f0f0f3;border-radius:8px;flex:none;place-items:center;font-size:13px;font-weight:700;display:grid}.quote{background:var(--surface-2);border:1px solid var(--line);border-radius:20px;align-items:center;gap:14px;padding:16px;display:flex}.quote .t b{font:700 20px var(--font-display);color:var(--ink);display:block}.quote .t small{color:var(--muted)}.tiles{flex-wrap:wrap;gap:10px;display:flex}.tile{background:var(--surface);border:1.5px solid var(--line-2);color:var(--ink);border-bottom-width:3px;border-radius:14px;padding:12px 16px;font-size:17px;font-weight:600;transition:transform .1s}.tile:active{transform:translateY(1px)}.tile.used{visibility:hidden}.answer-zone{border:2px dashed var(--line-2);background:var(--surface-2);border-radius:18px;flex-wrap:wrap;align-content:flex-start;gap:10px;min-height:72px;padding:12px;display:flex}.match-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.match-btn{background:var(--surface);border:1.5px solid var(--line-2);color:var(--ink);border-radius:16px;min-height:60px;padding:16px 14px;font-size:16px;font-weight:500}.match-btn.sel{border-color:var(--blue);background:var(--blue-soft)}.match-btn.done{background:var(--green-soft);color:#13703b;opacity:.75;border-color:#c4e8d2}.match-btn.err{border-color:var(--red);background:var(--red-soft);animation:.3s shake}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}.text-input{border:1.5px solid var(--line-2);width:100%;font:500 19px var(--font-body);color:var(--ink);background:var(--surface);border-radius:18px;outline:none;padding:18px}.text-input:focus{border-color:var(--blue);box-shadow:0 0 0 4px #0a6cff1f}.dialogue{flex-direction:column;gap:12px;display:flex}.bubble-row{align-items:flex-end;gap:10px;display:flex}.bubble-row.right{flex-direction:row-reverse}.bubble{text-align:left;max-width:80%;color:var(--ink);background:#f0f0f3;border-radius:20px 20px 20px 6px;padding:12px 16px;transition:box-shadow .2s}.bubble-row.right .bubble{background:var(--blue-soft);border-radius:20px 20px 6px}.bubble.active{box-shadow:0 0 0 3px #0a6cff59}.bubble b{font-size:17px;font-weight:600;display:block}.bubble small{color:var(--muted);margin-top:3px;font-size:14px;display:block}.bubble .who{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;font-size:11px;font-weight:700}.segmented{background:#ececf0;border-radius:12px;gap:2px;padding:3px;display:inline-flex}.segmented button{color:var(--muted);border-radius:9px;padding:7px 12px;font-size:13px;font-weight:600}.segmented button.on,.segmented .on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px #0000001a}.blurred{filter:blur(6px);-webkit-user-select:none;user-select:none}.mic{color:#fff;background:var(--orange);border-radius:50%;place-items:center;width:88px;height:88px;margin:0 auto;transition:transform .12s;display:grid;box-shadow:0 14px 30px -12px #ff7a1ae6}.mic.rec{background:var(--red);animation:1.2s infinite micpulse}@keyframes micpulse{0%{box-shadow:0 0 #e5484d73}to{box-shadow:0 0 0 22px #e5484d00}}.mic:disabled{opacity:.5}.heard{text-align:center;min-height:24px;color:var(--muted);font-size:16px;font-style:italic}.score-big{align-items:center;gap:18px;display:flex}.metric{color:var(--ink-2);grid-template-columns:110px 1fr 36px;align-items:center;gap:10px;font-size:14px;display:grid}.details{color:var(--muted);font-size:14px}.details summary{cursor:pointer;color:var(--ink-2);font-weight:600}.correction{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:10px 14px;font-size:14px}.grid-nums{grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:10px;display:grid}.num-tile{aspect-ratio:1;background:var(--surface-2);border:1.5px solid var(--line);color:var(--ink);border-radius:18px;flex-direction:column;justify-content:center;align-items:center;transition:border-color .12s,transform .12s;display:flex}.num-tile b{font:800 30px var(--font-display);color:var(--ink)}.num-tile small{color:var(--muted);font-size:13px}.num-tile.on{border-color:var(--blue);transform:scale(1.04)}.chat{flex-direction:column;gap:10px;display:flex}.goals{flex-wrap:wrap;gap:6px;display:flex}.goal{color:var(--muted);background:#f0f0f3;border-radius:99px;padding:6px 12px;font-size:13px;font-weight:600}.goal.done{background:var(--green-soft);color:#13703b}.mode-pill{letter-spacing:.06em;text-transform:uppercase;color:#6d28d9;background:#f1ecff;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:700}.shadow-steps{grid-template-columns:1fr 1fr;gap:10px;display:grid}.shadow-step{background:var(--surface-2);border:1.5px solid var(--line);color:var(--muted);border-radius:16px;padding:14px;font-size:14px}.shadow-step b{color:var(--ink);margin-bottom:2px;font-size:15px;display:block}.shadow-step.on{border-color:var(--blue);background:var(--blue-soft)}.shadow-step.ok{background:var(--green-soft);border-color:#c4e8d2}.result-hero{text-align:center;padding-top:8px}.result-score{justify-content:center;align-items:center;gap:22px;margin:18px 0 8px;display:flex}.result-score .n{font:800 64px/1 var(--font-display);letter-spacing:-.04em}.result-score .concept{border-radius:10px;min-width:52px;height:34px;font-size:15px}.summary-stars{justify-content:center;gap:6px;margin:6px 0;display:flex}.cycles{text-align:left;flex-direction:column;gap:8px;display:flex}.cycle{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;align-items:center;gap:12px;padding:12px 16px;font-size:14px;display:flex}.cycle b{flex:1}.rate{justify-content:center;gap:12px;display:flex}.rate button{background:var(--surface-2);border:1.5px solid var(--line);border-radius:18px;width:64px;height:64px;font-size:28px;transition:transform .12s,border-color .12s}.rate button.on{border-color:var(--orange);background:var(--orange-soft);transform:scale(1.06)}.pop{animation:.5s cubic-bezier(.2,1.6,.4,1) both pop}@keyframes pop{0%{opacity:0;transform:scale(.3)}to{opacity:1;transform:scale(1)}}.fade-in{animation:.35s both fade}@keyframes fade{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.hide-mobile{display:inline-flex}@media (max-width:1023px){.hide-mobile{display:none}}.bia{border-radius:50%;flex:none;place-items:center;display:inline-grid;position:relative}.bia img{object-fit:cover;border-radius:50%;width:100%;height:100%;transition:transform .3s;display:block;box-shadow:0 0 0 2px #fff,0 6px 16px -6px #00000059}.bia.speaking:after{content:"";border:3px solid var(--orange);border-radius:50%;animation:1.2s ease-out infinite biaring;position:absolute;inset:-5px}.bia.speaking img{animation:1.8s ease-in-out infinite biabob}.bia-wave{background:var(--orange);border-radius:99px;align-items:center;gap:2px;height:18px;padding:0 5px;display:flex;position:absolute;bottom:-2px;right:-4px;box-shadow:0 0 0 2px #fff}.bia-wave i{background:#fff;border-radius:2px;width:3px;animation:.7s ease-in-out infinite biabar}.bia-wave i:nth-child(2){animation-delay:.15s}.bia-wave i:nth-child(3){animation-delay:.3s}@keyframes biaring{0%{opacity:.9;transform:scale(.96)}to{opacity:0;transform:scale(1.18)}}@keyframes biabob{50%{transform:scale(1.03)rotate(-1deg)}}@keyframes biabar{0%,to{height:4px}50%{height:11px}}.howto{background:var(--surface-2);border:1px solid var(--line);color:var(--ink-2);border-radius:16px;align-items:center;gap:12px;padding:12px 14px;font-size:15px;display:flex}.howto b{color:var(--ink)}.howto .replay{color:var(--blue);white-space:nowrap;margin-left:auto;font-size:13px;font-weight:600}.gap-sentence{font:700 clamp(24px, 4.4vw, 34px)/1.3 var(--font-display);letter-spacing:-.02em}.gap-slot{border-bottom:3px solid var(--blue);min-width:110px;color:var(--blue);text-align:center;margin:0 6px;display:inline-block}.gap-slot.ok{border-color:var(--green);color:var(--green)}.gap-slot.bad{border-color:var(--red);color:var(--red)}.diff-ok{color:var(--green);font-weight:600}.diff-bad{color:var(--red);text-decoration:line-through}.diff-miss{color:var(--orange);font-weight:600}.bia-lead{background:linear-gradient(135deg, var(--orange-soft), #fff);border:1px solid #ffe0c7;border-radius:18px;align-items:center;gap:12px;margin:20px 20px 0;padding:12px 16px;display:flex}.bia-lead p{color:var(--ink-2);margin:0;font-size:16px;line-height:1.45}.transcript{background:var(--surface);border:1px dashed var(--line-2);color:var(--ink-2);border-radius:16px;margin-top:10px;padding:14px 16px;font-size:15px;line-height:1.6}.transcript b{color:var(--blue);font-weight:600}.deep-card{text-align:left;background:linear-gradient(135deg, var(--blue-soft), #fff);width:100%;color:var(--ink);border:1.5px solid #cfe0ff;border-radius:20px;align-items:center;gap:14px;padding:18px;transition:transform .12s,border-color .15s;display:flex}.deep-card:hover{border-color:var(--blue)}.deep-card:active{transform:scale(.99)}.deep-card .deep-ic{background:var(--blue);color:#fff;border-radius:14px;flex:none;place-items:center;width:46px;height:46px;display:grid}.deep-card .t{flex:1}.deep-card .t b{font:700 18px var(--font-display);letter-spacing:-.01em;display:block}.deep-card .t small{color:var(--muted);font-size:14px;line-height:1.45}.deep-open{background:var(--surface-2);color:var(--ink-2);border:1.5px solid #cfe0ff;border-radius:20px;padding:18px 20px;font-size:16px;line-height:1.6}.deep-open p{margin:0 0 10px}.deep-open p:last-child{margin:0}.deep-open strong{color:var(--ink)}.dict-slots{flex-wrap:wrap;align-items:flex-end;gap:10px;display:flex}.dict-slots .slot{border-bottom:3px solid var(--line-2);min-width:44px;font:600 20px var(--font-display);letter-spacing:.06em;color:var(--muted);text-align:center;padding:6px 4px 4px}.dict-slots .slot.ok{border-color:var(--green);color:var(--green)}.dict-slots .slot.typo{border-color:var(--orange);color:#c2410c}.dict-slots .slot.bad{border-color:var(--red);color:var(--red)}.dict-slots small{color:var(--muted);margin-left:4px;font-size:13px}.suggest{background:var(--blue-soft);border:1px solid #cfe0ff;border-radius:16px;max-width:520px;margin-bottom:12px;margin-left:auto;margin-right:auto;padding:12px 14px}.suggest b{font:600 17px var(--font-display);color:var(--ink);display:block}.suggest small{color:var(--muted);font-size:13px}.side-logout{height:38px;color:var(--navy-muted);border-radius:10px;align-items:center;gap:8px;margin-top:auto;margin-bottom:10px;padding:0 12px;font-size:14px;display:flex}.side-logout:hover{color:#fff;background:#ffffff0d}.side-logout+.side-user{margin-top:0}.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:14px 16px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:14px 16px}.table tr:last-child td{border-bottom:0}.level{align-items:flex-end;gap:4px;height:18px;display:flex}.level i{background:var(--line-2);border-radius:3px;width:6px;height:6px;transition:height 80ms,background 80ms}.level i.on{background:var(--green);height:18px}
