:root{--color-bg:#f6f8fe;--color-bg-tint:#edf1fc;--color-card-bg:#fff;--color-illustration-bg:#e3eafb;--color-text:#101a38;--color-text-muted:#3d4763;--color-text-faint:#566181;--color-border:#dbe2f4;--color-accent:#1d4ed8;--color-accent-dark:#173da6;--color-accent-soft:#e2eafd;--color-accent-soft-2:#c3d3fb;--color-accent-2:#0f1c44;--color-success-bg:oklch(94% .05 145);--color-success-border:oklch(80% .08 145);--color-success-text:oklch(28% .1 145);--color-retry-bg:#fdecec;--color-retry-border:#f3b3b3;--color-retry-text:#8f1d1d;--color-retry-strong:#d92d20;--color-technical-bg:#eef1f9;--color-technical-border:#d3daee;--color-technical-text:#232c49;--font-display:"Manrope", system-ui, sans-serif;--font-body:"Work Sans", system-ui, sans-serif}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);margin:0}a{color:var(--color-accent);text-decoration:none}a:hover{color:var(--color-accent-dark)}a:focus-visible,button:focus-visible{outline:3px solid var(--color-accent-soft-2);outline-offset:2px;border-radius:6px}h1,h2,h3{font-family:var(--font-display);margin:0}.btn-primary{background:var(--color-accent);color:#f4f7ff;font-family:var(--font-display);cursor:pointer;box-shadow:0 12px 26px -14px color-mix(in srgb, var(--color-accent) 75%, transparent);border:none;border-radius:11px;padding:14px 26px;font-size:16px;font-weight:700;transition:transform .18s,box-shadow .25s,background .25s}.btn-primary:hover{background:var(--color-accent-dark);box-shadow:0 18px 34px -16px color-mix(in srgb, var(--color-accent) 80%, transparent);transform:translateY(-2px)}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:var(--color-text-muted);border:1.5px solid var(--color-border);cursor:pointer;font-size:16px;font-weight:600;font-family:var(--font-body);background:0 0;border-radius:11px;padding:14px 26px;transition:transform .18s,color .25s,border-color .25s,background .25s}.btn-secondary:hover{background:var(--color-accent-soft);border-color:var(--color-accent-soft-2);color:var(--color-accent-dark);transform:translateY(-2px)}.btn-secondary:active{transform:translateY(0)}.badge{border-radius:999px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-level{background:var(--color-accent-soft);color:var(--color-accent-dark)}.badge-cat{color:#3d4763;background:#eef1f9}.badge-type{color:var(--color-accent-2);background:#d9e5fd}.streak-badge{color:var(--color-accent-2);white-space:nowrap;align-items:center;gap:4px;font-size:14px;font-weight:700;display:inline-flex}html{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}#root{min-height:100svh}.navbar{z-index:60;-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--color-border);background:#ffffffd6;justify-content:space-between;align-items:center;padding:14px 96px;display:flex;position:sticky;top:0}.navbar-wordmark{color:var(--color-text);align-items:center;display:flex}.navbar-wordmark:hover{color:var(--color-text)}.navbar-logo{width:48px;height:48px;transition:transform .3s cubic-bezier(.2,.7,.2,1);display:block}.navbar-wordmark:hover .navbar-logo{transform:rotate(-6deg)scale(1.06)}.navbar-links{align-items:center;gap:36px;display:flex}.navbar-link{color:var(--color-text);padding:4px 0;font-size:15px;transition:color .2s;position:relative}.navbar-link:after{content:"";background:var(--color-accent);transform-origin:0;border-radius:3px;height:2.5px;transition:transform .28s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.navbar-link:hover,.navbar-link.active{color:var(--color-accent)}.navbar-link:hover:after,.navbar-link.active:after{transform:scaleX(1)}.navbar-link.active{font-weight:600}.navbar-account{align-items:center;gap:14px;display:flex}.navbar-account-name{color:var(--color-text-muted);font-size:14px;font-weight:600}.navbar-signout{border:1.5px solid var(--color-border);color:var(--color-text-muted);font-family:var(--font-body);cursor:pointer;background:0 0;border-radius:9px;padding:8px 14px;font-size:13.5px;font-weight:600}.navbar-signout:hover{background:var(--color-bg-tint)}@media (width<=720px){.navbar{flex-wrap:wrap;gap:12px;padding:16px 20px}.navbar-links{flex-wrap:wrap;gap:16px}}.home-page{background:var(--color-bg);flex-direction:column;display:flex;overflow-x:clip}.reveal{opacity:0;transition:opacity .7s,transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:none}.home-hero{isolation:isolate;align-items:center;gap:56px;padding:64px 96px 72px;display:flex;position:relative;overflow:hidden}.home-hero-bg{z-index:-1;position:absolute;inset:0;overflow:hidden}.home-grid{background-image:linear-gradient(color-mix(in srgb, var(--color-accent) 9%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--color-accent) 9%, transparent) 1px, transparent 1px);opacity:.55;background-size:44px 44px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(90% 85% at 30% 20%,#000 30%,#0000 75%);mask-image:radial-gradient(90% 85% at 30% 20%,#000 30%,#0000 75%)}.home-blob{filter:blur(70px);opacity:.5;border-radius:50%;animation:14s ease-in-out infinite alternate home-drift;position:absolute}.home-blob-a{background:radial-gradient(circle,#2f6bff 0%,#0000 65%);width:480px;height:480px;top:-160px;right:-80px}.home-blob-b{background:radial-gradient(circle,#9db9ff 0%,#0000 65%);width:420px;height:420px;animation-delay:-5s;bottom:-180px;left:-120px}.home-blob-c{opacity:.22;background:radial-gradient(circle,#0f1c44 0%,#0000 65%);width:300px;height:300px;animation-delay:-9s;top:32%;left:44%}@keyframes home-drift{0%{transform:translate(0)scale(1)}to{transform:translate(-34px,30px)scale(1.08)}}.home-hero-copy{flex-direction:column;gap:20px;max-width:580px;animation:.8s cubic-bezier(.2,.7,.2,1) both home-rise;display:flex}@keyframes home-rise{0%{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}.home-badge{letter-spacing:.04em;text-transform:uppercase;color:var(--color-accent-dark);border:1px solid var(--color-border);background:#fff;border-radius:999px;align-self:flex-start;align-items:center;gap:9px;padding:8px 15px;font-size:12.5px;font-weight:700;display:inline-flex;box-shadow:0 10px 26px -18px #1d4ed88c}.home-live-dot{background:var(--color-accent);border-radius:50%;width:9px;height:9px;position:relative}.home-live-dot:after{content:"";border:2px solid var(--color-accent);opacity:.55;border-radius:50%;animation:1.8s ease-out infinite home-ping;position:absolute;inset:-5px}@keyframes home-ping{0%{opacity:.8;transform:scale(.5)}to{opacity:0;transform:scale(1.25)}}.home-hero-copy h1{letter-spacing:-.02em;font-size:48px;font-weight:800;line-height:1.08}.home-highlight{color:var(--color-accent);white-space:nowrap;position:relative}.home-highlight:after{content:"";z-index:-1;background:linear-gradient(90deg, var(--color-accent-soft-2), var(--color-accent-soft));border-radius:6px;height:.32em;position:absolute;bottom:2px;left:-2%;right:-2%}.home-hero-copy p{color:var(--color-text-muted);max-width:52ch;font-size:17px;line-height:1.65}.home-hero-actions{flex-wrap:wrap;gap:14px;margin-top:8px;display:flex}.home-cta{align-items:center;gap:10px;display:inline-flex}.home-cta span{transition:transform .25s}.home-cta:hover span{transform:translate(4px)}.home-stats{flex-wrap:wrap;gap:12px;margin:14px 0 0;padding:0;display:flex}.home-stat{border:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffd1;border-radius:16px;flex:140px;padding:13px 16px;transition:transform .25s,box-shadow .25s}.home-stat:hover{transform:translateY(-3px);box-shadow:0 18px 34px -22px #1d4ed88c}.home-stat dt{letter-spacing:.07em;text-transform:uppercase;color:var(--color-text-faint);font-size:11.5px;font-weight:700}.home-stat dd{align-items:baseline;gap:8px;margin:6px 0 0;display:flex}.home-stat strong{font-family:var(--font-display);color:var(--color-accent-dark);font-size:26px;font-weight:800}.home-stat span{color:var(--color-text-muted);font-size:13px}.home-hero-visual{flex-shrink:0;width:460px;animation:7s ease-in-out infinite home-float;position:relative}@keyframes home-float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.home-video-card{border:1px solid var(--color-border);background:#fff;border-radius:24px;padding:14px;position:relative;box-shadow:0 30px 60px -28px #0f1c4473,0 18px 40px -24px #1d4ed880}.home-video-frame{aspect-ratio:4/3.4;background:#0f1c44;border-radius:17px;position:relative;overflow:hidden}.home-video-frame video{object-fit:cover;width:100%;height:100%;display:block}.home-video-foot{justify-content:space-between;align-items:center;gap:12px;padding:12px 6px 2px;display:flex}.home-video-meta{flex-direction:column;gap:2px;display:flex}.home-video-meta strong{font-family:var(--font-display);font-size:16px}.home-video-meta span{color:var(--color-text-muted);font-size:12.5px}.home-video-link{background:var(--color-accent-soft);border-radius:10px;padding:9px 15px;font-size:13.5px;font-weight:700;transition:background .25s,transform .2s}.home-video-link:hover{background:var(--color-accent-soft-2);transform:translateY(-1px)}.home-chip{border-radius:14px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:700;animation:5s ease-in-out infinite home-chip-float;display:inline-flex;position:absolute;box-shadow:0 16px 32px -18px #0f1c4480}.home-chip-b{background:var(--color-accent);color:#fff;animation-delay:-2.5s;bottom:64px;right:-42px}@keyframes home-chip-float{0%,to{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-10px)rotate(1deg)}}.home-ring{border:2px dashed color-mix(in srgb, var(--color-accent) 45%, transparent);border-radius:50%;width:150px;height:150px;animation:26s linear infinite home-spin;position:absolute;top:-44px;right:-30px}@keyframes home-spin{to{transform:rotate(360deg)}}.home-dots{background-image:radial-gradient(var(--color-accent-soft-2) 2.2px, transparent 2.2px);opacity:.9;background-size:14px 14px;width:130px;height:84px;position:absolute;bottom:-24px;left:-38px}.home-marquee{background:var(--color-accent-2);color:#dbe4ff;border-top:3px solid var(--color-accent);padding:13px 0;overflow:hidden}.home-marquee-track{width:max-content;animation:36s linear infinite home-marquee;display:flex}.home-marquee:hover .home-marquee-track{animation-play-state:paused}.home-marquee-group{align-items:center;padding-right:8px;display:flex}.home-marquee-item{font-family:var(--font-display);letter-spacing:.05em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:16px;padding:0 16px;font-size:13.5px;font-weight:700;display:inline-flex}.home-marquee-item i{color:#7fa1ff;font-style:normal}@keyframes home-marquee{to{transform:translate(-50%)}}.home-section-head{text-align:center;flex-direction:column;gap:12px;max-width:640px;margin:0 auto;display:flex}.home-section-head h2{letter-spacing:-.015em;font-size:32px;font-weight:800}.home-section-head p{color:var(--color-text-muted);margin:0;font-size:15.5px;line-height:1.6}.home-kicker{letter-spacing:.1em;text-transform:uppercase;color:var(--color-accent);background:var(--color-accent-soft);border:1px solid var(--color-accent-soft-2);border-radius:999px;align-self:center;padding:7px 14px;font-size:12px;font-weight:800}.home-kicker-light{background:#ffffffa6}.home-steps{flex-direction:column;gap:36px;padding:72px 96px 64px;display:flex}.home-steps-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.home-step{border:1px solid var(--color-border);background:#fff;border-radius:20px;flex-direction:column;gap:10px;padding:26px 22px 24px;transition:transform .28s,box-shadow .28s,border-color .28s;display:flex;position:relative;overflow:hidden}.home-step:before{content:"";background:linear-gradient(90deg, var(--color-accent), var(--color-accent-2));opacity:0;height:5px;transition:opacity .28s;position:absolute;inset:0 0 auto}.home-step:hover{border-color:var(--color-accent-soft-2);transform:translateY(-7px);box-shadow:0 26px 48px -26px #1d4ed88c}.home-step:hover:before{opacity:1}.home-step-num{font-family:var(--font-display);color:var(--color-accent-soft-2);font-size:44px;font-weight:800;line-height:1;position:absolute;top:10px;right:16px}.home-step-icon{background:var(--color-accent-soft);border:1px solid var(--color-accent-soft-2);border-radius:15px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.home-step h3{font-size:17px;font-weight:800}.home-step p{color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.6}.home-differentiators{background:radial-gradient(700px 320px at 12% 8%, #2f6bff29, transparent 65%), radial-gradient(700px 320px at 88% 92%, #0f1c4424, transparent 65%), var(--color-bg-tint);flex-direction:column;gap:36px;padding:72px 96px;display:flex}.home-differentiators-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.home-differentiator-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:20px;flex-direction:column;gap:12px;padding:28px 26px;transition:transform .28s,box-shadow .28s;display:flex}.home-differentiator-card:hover{transform:translateY(-7px)scale(1.01);box-shadow:0 28px 52px -28px #0f1c4466}.home-diff-icon{background:linear-gradient(135deg, var(--color-accent-soft), #fff);border:1px solid var(--color-accent-soft-2);border-radius:16px;justify-content:center;align-items:center;width:54px;height:54px;display:flex}.home-differentiator-title{font-family:var(--font-display);font-size:16.5px;font-weight:800;line-height:1.4}.home-differentiator-text{color:var(--color-text-muted);font-size:14px;line-height:1.6}.home-cta-band{color:#fff;background:linear-gradient(120deg,#1d4ed8 0%,#173da6 45%,#0f1c44 100%);border-radius:28px;margin:8px 96px 72px;padding:56px 56px 52px;position:relative;overflow:hidden}.home-cta-glow{background:radial-gradient(420px 220px at 85% 20%,#ffffff3d,#0000 65%),radial-gradient(520px 280px at 8% 90%,#7fa1ff66,#0000 65%);animation:10s ease-in-out infinite alternate home-drift;position:absolute;inset:0}.home-cta-content{flex-direction:column;gap:14px;max-width:640px;display:flex;position:relative}.home-cta-content h2{letter-spacing:-.015em;font-size:34px}.home-cta-content p{color:#ffffffdb;margin:0;line-height:1.6}.home-cta-actions{flex-wrap:wrap;gap:12px;margin-top:10px;display:flex}.home-cta-white{color:var(--color-accent-dark);font-weight:800;font-family:var(--font-display);background:#fff;border-radius:12px;padding:14px 26px;transition:transform .2s,box-shadow .25s}.home-cta-white:hover{color:var(--color-accent-dark);transform:translateY(-2px);box-shadow:0 18px 34px -16px #00000080}.home-cta-ghost{color:#fff;border:1.5px solid #ffffff73;border-radius:12px;padding:14px 22px;font-weight:700;transition:background .25s,transform .2s}.home-cta-ghost:hover{color:#fff;background:#ffffff24;transform:translateY(-2px)}.home-footer{border-top:1px solid var(--color-border);background:#fff;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:30px 96px 36px;display:flex}.home-footer-brand{align-items:center;gap:13px;display:flex}.home-footer-logo{object-fit:cover;border:2px solid var(--color-accent-soft-2);border-radius:50%;width:46px;height:46px}.home-footer-wordmark{font-family:var(--font-display);font-size:16px;font-weight:800}.home-footer-tag{color:var(--color-text-muted);font-size:12.5px}.home-footer-links{gap:26px;font-size:14px;font-weight:600;display:flex}@media (width<=1100px){.home-hero{gap:40px;padding:48px 48px 60px}.home-steps,.home-differentiators{padding-left:48px;padding-right:48px}.home-cta-band{margin-left:48px;margin-right:48px}.home-footer{padding-left:48px;padding-right:48px}.home-steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-hero-visual{width:400px}}@media (width<=900px){.home-hero{flex-direction:column;padding:40px 24px 48px}.home-hero-visual{width:100%;max-width:480px}.home-chip-b{right:8px}.home-differentiators,.home-footer{padding-left:24px;padding-right:24px}.home-differentiators-grid{grid-template-columns:1fr}.home-steps{gap:28px;padding:56px 24px 48px}.home-cta-band{margin:8px 24px 56px;padding:40px 28px}.home-cta-content h2{font-size:27px}}@media (width<=480px){.home-hero-copy h1{font-size:31px}.home-hero-copy p{font-size:15px}.home-hero-actions{flex-direction:column;align-items:stretch}.home-highlight{white-space:normal}.home-steps-grid{grid-template-columns:1fr}.home-stat strong{font-size:22px}}@media (prefers-reduced-motion:reduce){.home-blob,.home-hero-visual,.home-chip,.home-ring,.home-cta-glow,.home-marquee-track,.home-live-dot:after{animation:none}.reveal{opacity:1;transition:none;transform:none}}.home-daily{margin:36px 0 0;padding:0 clamp(20px,5vw,64px)}.home-daily-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:18px;flex-wrap:wrap;align-items:center;gap:18px;max-width:880px;margin:0 auto;padding:14px 18px 14px 14px;display:flex}.home-daily-thumb{object-fit:cover;background:var(--color-illustration-bg);border-radius:12px;flex-shrink:0;width:84px;height:84px}.home-daily-text{flex-direction:column;flex:1;gap:2px;min-width:160px;display:flex}.home-daily-text strong{font-family:var(--font-display);font-size:22px}.home-daily-text span:last-child{color:var(--color-text-muted);font-size:13px}.learn-page{flex-direction:column;display:flex}.learn-header{flex-flow:wrap;justify-content:space-between;align-items:center;gap:16px;padding:24px 96px 8px;display:flex}.learn-header>div:first-child{flex-direction:column;gap:8px;display:flex}.learn-streak-card{background:var(--color-bg-tint);border:1px solid var(--color-border);border-radius:14px;align-items:center;gap:10px;padding:10px 18px;display:flex}.learn-streak-flame{font-size:26px;line-height:1}.learn-streak-count{font-family:var(--font-display);color:var(--color-accent-2);font-size:20px;font-weight:800;line-height:1.1}.learn-streak-label{color:var(--color-text-muted);white-space:nowrap;font-size:12px}.learn-header h1{font-size:32px;font-weight:800}.learn-header p{color:var(--color-text-muted);font-size:15px}.learn-tabs{gap:12px;padding:20px 96px;display:flex}.learn-tab{border:1px solid var(--color-border);background:var(--color-card-bg);color:var(--color-text-muted);cursor:pointer;font-size:14px;font-weight:600;font-family:var(--font-body);border-radius:999px;padding:9px 18px}.learn-tab.active{background:var(--color-accent);color:oklch(99% .005 200);border-color:var(--color-accent)}.learn-content{flex-direction:column;gap:36px;padding:8px 96px 40px;display:flex}.learn-alphabet-hero{background:linear-gradient(120deg, var(--color-accent) 0%, var(--color-accent-2) 100%);color:#fff;box-shadow:0 18px 34px -20px color-mix(in srgb, var(--color-accent) 70%, transparent);border-radius:18px;align-items:center;gap:18px;padding:22px 26px;display:flex}.learn-alphabet-hero-icon{background:#ffffff29;border:1px solid #ffffff4d;border-radius:16px;flex-shrink:0;justify-content:center;align-items:center;width:60px;height:60px;display:flex}.learn-alphabet-hero-text{flex-direction:column;flex-grow:1;gap:6px;display:flex}.learn-alphabet-hero-kicker{letter-spacing:.08em;text-transform:uppercase;opacity:.85;font-size:12px;font-weight:700}.learn-alphabet-hero h2{margin:0;font-size:22px}.learn-alphabet-hero p{opacity:.9;margin:0;font-size:14px;line-height:1.5}.learn-alphabet-hero .badge-type{color:#fff;background:#ffffff2e;flex-shrink:0}@media (width<=900px){.learn-alphabet-hero{flex-direction:column;align-items:flex-start}}.learn-empty{color:var(--color-text-muted);text-align:center;padding:40px 0;font-size:15px}.learn-category{flex-direction:column;gap:16px;display:flex}.learn-category h2{font-size:19px;font-weight:700}.learn-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.sign-card{background:var(--color-card-bg);border:1px solid var(--color-border);color:var(--color-text);border-radius:14px;flex-direction:column;gap:12px;padding:20px;display:flex}.sign-card:hover{border-color:var(--color-accent);color:var(--color-text)}.sign-card-illustration{background:var(--color-illustration-bg);border-radius:10px;justify-content:center;align-items:center;width:100%;height:110px;display:flex;position:relative;overflow:hidden}.sign-card-thumbnail{object-fit:cover;width:100%;height:100%}.sign-card-mastered{background:oklch(55% .14 145);border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;display:flex;position:absolute;top:8px;right:8px}.sign-card-name{font-family:var(--font-display);font-size:17px;font-weight:700}.sign-card-badges{gap:8px;display:flex}@media (width<=900px){.learn-header,.learn-tabs,.learn-content{padding-left:24px;padding-right:24px}.learn-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}.sign-detail-page{flex-direction:column;display:flex}.sign-detail-not-found{flex-direction:column;flex-grow:1;justify-content:center;align-items:center;gap:12px;padding:40px;display:flex}.sign-detail-breadcrumb{color:var(--color-text-faint);padding:16px 96px 0;font-size:14px}.sign-detail-title-row{flex-wrap:wrap;align-items:center;gap:14px;padding:12px 96px 0;display:flex}.sign-detail-title-row h1{font-size:36px;font-weight:800}.sign-detail-body{flex-wrap:wrap;align-items:flex-start;gap:48px;padding:32px 96px 48px;display:flex}.sign-detail-illustration-col{flex-direction:column;flex-shrink:0;gap:14px;width:480px;max-width:100%;display:flex}.sign-detail-section-label{font-family:var(--font-display);color:var(--color-text-muted);font-size:15px;font-weight:700}.sign-detail-illustration{background:var(--color-illustration-bg);border:1px solid var(--color-border);border-radius:16px;flex-direction:column;justify-content:center;align-items:center;gap:14px;width:100%;height:360px;display:flex}.sign-detail-video{object-fit:cover;background:#000;border-radius:15px;width:100%;height:100%}.sign-detail-illustration-caption{color:var(--color-text-muted);font-size:13px;font-weight:600}.sign-detail-info-col{flex-direction:column;flex-grow:1;gap:28px;min-width:280px;display:flex}.sign-detail-steps{flex-direction:column;gap:12px;margin:14px 0 0;padding:0;list-style:none;display:flex}.sign-detail-steps li{align-items:flex-start;gap:14px;font-size:15px;line-height:1.6;display:flex}.sign-detail-step-number{background:var(--color-accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.sign-detail-tip{color:oklch(32% .04 70);background:oklch(95% .03 90);border-left:3px solid oklch(55% .1 85);border-radius:10px;padding:16px 20px;font-size:14px;line-height:1.55}.sign-detail-source{color:var(--color-text-faint);font-size:12.5px;line-height:1.5}.sign-detail-pending{color:var(--color-text-muted);flex-direction:column;gap:12px;max-width:520px;padding:40px 96px 64px;line-height:1.6;display:flex}@media (width<=900px){.sign-detail-breadcrumb,.sign-detail-title-row,.sign-detail-body,.sign-detail-pending{padding-left:24px;padding-right:24px}}.practice-page{flex-direction:column;min-height:100svh;display:flex}.practice-prepare-wrap{flex-grow:1;justify-content:center;align-items:center;padding:24px;display:flex}.practice-prepare-card{background:var(--color-card-bg);border:1px solid var(--color-border);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:20px;width:560px;max-width:100%;padding:40px;display:flex}.practice-back-link{color:var(--color-text-faint);align-self:flex-start;font-size:13px}.practice-prepare-card h1{font-size:26px;font-weight:800}.practice-prepare-card>p{color:var(--color-text-muted);margin:0;font-size:15px;line-height:1.5}.practice-tips{background:var(--color-bg-tint);text-align:left;border-radius:12px;flex-direction:column;gap:12px;width:100%;margin:0;padding:20px 22px;font-size:14px;list-style:none;display:flex}.practice-tips li{padding-left:26px;position:relative}.practice-tips li:before{content:"";border:2px solid var(--color-accent);border-radius:50%;width:16px;height:16px;position:absolute;top:3px;left:0}.practice-sign-picker{flex-direction:column;gap:10px;width:100%;display:flex}.practice-sign-option{border:1.5px solid var(--color-border);color:var(--color-text);border-radius:12px;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:15px;font-weight:600;display:flex}.practice-sign-option:hover{border-color:var(--color-accent);color:var(--color-text)}.practice-error{background:var(--color-technical-bg);border:1px solid var(--color-technical-border);width:100%;color:var(--color-technical-text);text-align:left;border-radius:10px;padding:12px 16px;font-size:14px}.practice-actions{flex-direction:column;gap:12px;width:100%;display:flex}.practice-full-width{width:100%}.practice-link-as-button{box-sizing:border-box;display:block}.practice-page-active{background:var(--color-bg);height:100svh;overflow:hidden}.practice-topbar{justify-content:space-between;align-items:center;padding:22px 64px;display:flex}.practice-wordmark{font-family:var(--font-display);font-size:18px;font-weight:800}.practice-current-sign{color:var(--color-text-muted);font-size:14px}.practice-exit-link{color:var(--color-text-faint);cursor:pointer;font-size:14px;font-family:var(--font-body);background:0 0;border:none;padding:0}.practice-exit-link:hover{color:var(--color-text)}.practice-camera-area{flex-direction:column;flex-grow:1;justify-content:center;gap:16px;min-height:0;padding:8px 64px 24px;display:flex}.practice-camera-frame{aspect-ratio:4/3;background:oklch(22% .01 240);border-radius:18px;width:100%;max-height:65vh;margin:0 auto;position:relative;overflow:hidden}.practice-video{object-fit:cover;width:100%;height:100%;display:block;transform:scaleX(-1)}.practice-overlay-wrap{position:absolute;inset:0}.hand-overlay-canvas{width:100%;height:100%;display:block;transform:scaleX(-1)}.practice-hand-indicator{color:oklch(90% .01 240);background:oklch(30% .01 240/.75);border-radius:999px;align-items:center;gap:8px;padding:7px 14px;font-size:13px;font-weight:600;display:flex;position:absolute;top:18px;left:18px}.practice-hand-indicator-dot{background:oklch(70% .02 240);border-radius:50%;width:8px;height:8px}.practice-hand-indicator.detected .practice-hand-indicator-dot{background:oklch(75% .16 145)}.practice-hand-indicator.detected{color:oklch(95% .02 145);background:oklch(30% .1 145/.85)}.practice-camera-caption{color:oklch(85% .01 240);background:oklch(20% .01 240/.55);border-radius:999px;padding:6px 12px;font-size:13px;position:absolute;bottom:18px;left:18px}.feedback-banner{border-radius:14px;align-items:center;gap:16px;padding:16px 22px;display:flex}@keyframes feedback-shake{0%,to{transform:translate(0)}15%{transform:translate(-7px)}30%{transform:translate(6px)}45%{transform:translate(-5px)}60%{transform:translate(4px)}75%{transform:translate(-2px)}}.feedback-text{flex-grow:1}.feedback-title{font-family:var(--font-display);font-size:15px;font-weight:700}.feedback-subtitle{font-size:13px;line-height:1.4}.feedback-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text)}.feedback-retry{background:var(--color-retry-bg);border:2px solid var(--color-retry-strong);color:var(--color-retry-text);box-shadow:0 0 0 4px color-mix(in srgb, var(--color-retry-strong) 18%, transparent);animation:.45s feedback-shake}.feedback-retry .feedback-title{align-items:center;gap:8px;display:flex}.feedback-retry .feedback-title:before{content:"✕";background:var(--color-retry-strong);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;font-weight:800;display:inline-flex}.practice-camera-frame.feedback-error-frame{outline:4px solid var(--color-retry-strong);outline-offset:-4px;animation:.45s feedback-shake}@media (prefers-reduced-motion:reduce){.feedback-retry,.practice-camera-frame.feedback-error-frame{animation:none}}.practice-session-stats{text-align:center;color:var(--color-text-faint);font-size:13px}.practice-technical-banner{background:var(--color-technical-bg);border:1px solid var(--color-technical-border);color:var(--color-technical-text);border-radius:14px;padding:16px 22px;font-size:14px;line-height:1.5}@media (width<=720px){.practice-topbar,.practice-camera-area{padding-left:20px;padding-right:20px}}.practice-success-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-left:auto;display:flex}.practice-picker-search{border:1.5px solid var(--color-border);width:100%;font:inherit;color:var(--color-text);background:var(--color-card-bg);border-radius:12px;padding:13px 16px;font-size:15px}.practice-picker-search:focus{outline:3px solid var(--color-accent-soft-2);outline-offset:2px;border-color:var(--color-accent)}.practice-picker-group{width:100%;font-family:var(--font-display);color:var(--color-text-muted);text-align:left;margin:8px 0 -4px;font-size:14px;font-weight:700}.practice-success-wrap{flex-direction:column;gap:12px;width:100%;display:flex}.practice-share-link{color:var(--color-accent);align-self:center;font-size:14px;font-weight:700}.practice-account-prompt{border:1px solid var(--color-accent-soft-2);background:var(--color-accent-soft);color:var(--color-text);text-align:left;border-radius:12px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;font-size:14px;display:flex}.practice-account-prompt span{flex:1;min-width:200px}.teachers-page{flex-direction:column;display:flex}.teachers-header{flex-direction:column;gap:6px;padding:24px 96px 8px;display:flex}.teachers-header h1{font-size:30px;font-weight:800}.teachers-header p{color:var(--color-text-muted);font-size:15px}.teachers-notice{background:var(--color-technical-bg);border:1px solid var(--color-technical-border);color:var(--color-technical-text);border-radius:10px;margin:16px 96px 0;padding:12px 18px;font-size:13.5px;line-height:1.5}.teachers-content{padding:24px 96px 56px}.teachers-table{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:16px;padding:8px 28px}.teachers-row{border-bottom:1px solid var(--color-border);grid-template-columns:2fr 1.4fr 1.6fr 1fr;align-items:center;gap:12px;padding:16px 0;display:grid}.teachers-row:last-child{border-bottom:none}.teachers-row-head{border-bottom:1.5px solid var(--color-border);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;padding-bottom:14px;font-size:13px;font-weight:700}.teachers-student-name{font-size:15px;font-weight:600}.teachers-current-sign{color:var(--color-text-muted);font-size:14px}.teachers-progress-cell{align-items:center;display:flex}.teachers-mobile-label{display:none}.teachers-progress-bar-group{align-items:center;gap:10px;width:100%;display:flex}.teachers-bar-track{background:var(--color-border);border-radius:999px;width:100%;height:8px;overflow:hidden}.teachers-bar-fill{background:var(--color-accent);border-radius:999px;height:100%}.teachers-progress-value{flex-shrink:0;width:34px;font-size:13px;font-weight:600}.teachers-last-practiced{color:var(--color-text-faint);font-size:13px}@media (width<=900px){.teachers-header,.teachers-content{padding-left:24px;padding-right:24px}.teachers-notice{margin-left:24px;margin-right:24px}}@media (width<=640px){.teachers-row{flex-direction:column;align-items:stretch;gap:6px;padding:16px 0;display:flex}.teachers-row-head{display:none}.teachers-row>[data-label]{justify-content:space-between;align-items:center;gap:12px;display:flex}.teachers-row>[data-label]:before{content:attr(data-label);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;font-size:12px;font-weight:700}.teachers-progress-cell{gap:12px}.teachers-mobile-label{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;font-size:12px;font-weight:700;display:block}.teachers-progress-bar-group{flex:auto;width:auto;min-width:0}}.teachers-invite-link{color:var(--color-accent);white-space:nowrap;font-weight:700}.no-camera-disclaimer{background:var(--color-technical-bg);border:1px solid var(--color-technical-border);color:var(--color-technical-text);border-radius:10px;padding:12px 16px;font-size:13.5px;line-height:1.5}.no-camera-actions{flex-wrap:wrap;gap:12px;display:flex}.auth-page{flex-direction:column;min-height:100svh;display:flex}.auth-wrap{flex-grow:1;justify-content:center;align-items:center;padding:32px 20px;display:flex}.auth-card{background:var(--color-card-bg);border:1px solid var(--color-border);border-radius:18px;flex-direction:column;gap:18px;width:100%;max-width:420px;padding:32px;display:flex}.auth-card h1{font-size:24px}.auth-card p.auth-subtitle{color:var(--color-text-muted);margin:-12px 0 0;font-size:14.5px}.auth-role-tabs{background:var(--color-bg-tint);border-radius:11px;gap:8px;padding:4px;display:flex}.auth-role-tab{font-family:var(--font-body);color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:8px;flex:1;padding:10px 12px;font-size:14px;font-weight:600}.auth-role-tab.active{background:var(--color-card-bg);color:var(--color-text);box-shadow:0 1px 3px oklch(0% 0 0/.08)}.auth-field{flex-direction:column;gap:6px;display:flex}.auth-field label{color:var(--color-text-muted);font-size:13.5px;font-weight:600}.auth-field input{border:1.5px solid var(--color-border);font-size:15px;font-family:var(--font-body);color:var(--color-text);background:var(--color-card-bg);border-radius:10px;padding:12px 14px}.auth-field input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.auth-hint{color:var(--color-text-faint);margin:-2px 0 0;font-size:13px}.auth-error{background:var(--color-retry-bg);border:1px solid var(--color-retry-border);color:var(--color-retry-text);border-radius:10px;padding:11px 14px;font-size:13.5px}.auth-success{background:var(--color-success-bg);border:1px solid var(--color-success-border);color:var(--color-success-text);border-radius:10px;padding:11px 14px;font-size:13.5px;line-height:1.5}.auth-code-reveal{background:var(--color-bg-tint);border:1px solid var(--color-border);text-align:center;border-radius:10px;padding:14px}.auth-code-reveal .auth-code-value{font-family:var(--font-display);letter-spacing:.12em;color:var(--color-accent);font-size:26px;font-weight:800}.auth-code-reveal .auth-code-label{color:var(--color-text-muted);margin-top:4px;font-size:12.5px}.auth-switch{text-align:center;color:var(--color-text-muted);font-size:14px}.logros-page{flex-direction:column;display:flex}.logros-header{flex-direction:column;gap:8px;padding:24px 96px 8px;display:flex}.logros-header h1{font-size:32px;font-weight:800}.logros-header p{color:var(--color-text-muted);font-size:15px}.logros-content{padding:24px 96px 56px}.logros-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.logro-card{background:var(--color-card-bg);border:1px solid var(--color-border);text-align:center;border-radius:14px;flex-direction:column;align-items:center;gap:8px;padding:24px 20px;display:flex}.logro-card.locked{opacity:.55}.logro-icon{font-size:36px;line-height:1}.logro-name{font-family:var(--font-display);font-size:15px;font-weight:700}.logro-description{color:var(--color-text-muted);font-size:13px;line-height:1.5}.logros-empty{color:var(--color-text-muted);text-align:center;margin-top:24px;font-size:14px}@media (width<=900px){.logros-header,.logros-content{padding-left:24px;padding-right:24px}.logros-grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}}.logros-topics{flex-direction:column;gap:14px;max-width:720px;margin-bottom:36px;display:flex}.logros-topics h2,.logros-badges-title{font-family:var(--font-display);margin:0;font-size:22px;font-weight:800}.logros-badges-title{margin-bottom:20px}.logros-topic{flex-direction:column;gap:6px;font-size:14px;display:flex}.logros-topic-head{color:var(--color-text);justify-content:space-between;font-weight:600;display:flex}.logros-topic-head span:last-child{color:var(--color-text-muted);font-weight:500}.logros-topic-track{background:var(--color-accent-soft);border-radius:999px;height:10px;overflow:hidden}.logros-topic-fill{background:var(--color-accent);border-radius:999px;height:100%;transition:width .6s}
