.w-app{--rail:var(--sidebar-w);min-height:100dvh;overflow-x:clip;background:var(--bg)}.w-app.collapsed{--rail:var(--sidebar-w-collapsed)}.w-main,.w-panel{min-height:100dvh}.w-canvas{width:100%;max-width:1240px;margin:0 auto;padding:clamp(10px,2vw,18px) clamp(16px,3vw,34px) 48px;display:flex;flex-direction:column;gap:clamp(14px,2vw,20px)}.w-panel:has(.w-pg-work) :is(.w-canvas,.w-crumbs){max-width:1680px}@media (min-width:1024px){.w-app{background:var(--dots) 0 0 /22px 22px,var(--sky);background-attachment:fixed}.w-main{padding:var(--shell-gap) var(--shell-gap) var(--shell-gap) calc(var(--rail) + var(--shell-gap) * 2);transition:padding-left .32s var(--ease)}.w-panel{min-height:calc(100dvh - var(--shell-gap) * 2);background:var(--canvas);border-radius:var(--r-panel);box-shadow:0 30px 60px -30px rgba(4,40,46,.35),0 0 0 1px rgba(255,255,255,.55)}}.w-crumbs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;width:100%;max-width:1240px;margin:0 auto;padding:clamp(16px,2.4vw,24px) clamp(16px,3vw,34px) 0;font-size:var(--fs-caption);font-weight:600;color:var(--text-2)}.w-crumbs a{transition:color var(--dur) var(--ease)}.w-crumbs a:hover{color:var(--primary-text)}.w-crumbs svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}.w-crumbs .cur{color:var(--text)}.w-side{display:none;position:fixed;top:var(--shell-gap);bottom:var(--shell-gap);left:var(--shell-gap);width:var(--rail);z-index:var(--z-nav);background:linear-gradient(180deg,var(--chrome-bg) 0,var(--chrome-bg-2) 100%);color:var(--shell-text);border-radius:var(--r-panel);padding:22px 14px 14px;flex-direction:column;box-shadow:0 24px 50px -24px rgba(4,40,46,.55);transition:width .32s var(--ease)}@media (min-width:1024px){.w-side{display:flex}}.w-side-head{position:relative;display:flex;align-items:center;min-height:46px;padding:0 8px 18px}.w-side-brand{display:inline-flex;align-items:center;overflow:hidden;white-space:nowrap}.w-collapse{position:absolute;right:-27px;top:4px;z-index:2;width:30px;height:30px;border-radius:var(--r-full);display:grid;place-items:center;cursor:pointer;background:var(--shell-ink);color:#fff;border:3px solid var(--canvas);box-shadow:0 6px 14px -6px rgba(4,40,46,.6);transition:background var(--dur) var(--ease)}.w-collapse svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4;transform:rotate(180deg);transition:transform .32s var(--ease)}.w-collapse:hover{background:var(--primary)}.collapsed .w-collapse svg{transform:none}.w-side-nav{flex:1 1;min-height:0;overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:2px;scrollbar-width:none}.w-side-nav::-webkit-scrollbar{display:none}.w-side-label{font-size:var(--fs-caption);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--shell-muted);padding:14px 14px 8px;white-space:nowrap;transition:opacity .2s var(--ease)}.w-side-group:first-child .w-side-label{padding-top:4px}.w-side-link{position:relative;display:flex;align-items:center;gap:12px;padding:11px 14px;margin-bottom:2px;border-radius:var(--r-md);font-size:var(--fs-label);font-weight:600;color:var(--shell-text);white-space:nowrap;transition:background var(--dur) var(--ease),color var(--dur) var(--ease),transform .16s var(--ease)}.w-side-link svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2;flex:0 0 auto;transition:transform var(--dur) var(--ease-spring)}.w-side-link:hover{background:var(--shell-hover);color:#fff}.w-side-link:hover svg{transform:scale(1.08)}.w-side-link:active{transform:scale(.98)}.w-side-link.on{background:rgba(255,255,255,.12);color:#fff;font-weight:700;box-shadow:inset 0 0 0 1px rgba(255,255,255,.06)}.w-side-link.on svg{stroke:#6FCAD5}.w-side-link.on:before{content:"";position:absolute;left:-14px;top:50%;width:4px;height:22px;margin-top:-11px;border-radius:0 var(--r-xs) var(--r-xs) 0;background:#6FCAD5;animation:olRise .3s var(--ease) both}.w-side-link .lbl{transition:opacity .2s var(--ease)}.w-side-promo{display:flex;align-items:center;gap:10px;margin:10px 0 8px;padding:12px;border-radius:var(--r-md);overflow:hidden;white-space:nowrap;background:linear-gradient(135deg,rgba(79,199,212,.22),rgba(255,111,94,.18));border:1px solid var(--shell-line);color:#fff;transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.w-side-promo:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.22)}.w-side-promo .ic{width:36px;height:36px;border-radius:var(--r-sm);flex:0 0 auto;display:grid;place-items:center;background:rgba(255,255,255,.14)}.w-side-promo .ic svg{width:18px;height:18px;stroke:#fff;fill:none;stroke-width:2}.w-side-promo .tx{display:flex;flex-direction:column;min-width:0}.w-side-promo b{font-size:var(--fs-body-sm);font-weight:700;overflow:hidden;text-overflow:ellipsis}.w-side-promo .tx span{font-size:var(--fs-caption);color:#FFB4AA;font-weight:700}.w-side-foot{position:relative}.w-side-user{width:100%;display:flex;align-items:center;gap:10px;overflow:hidden;padding:10px;border-radius:var(--r-md);cursor:pointer;text-align:left;background:rgba(255,255,255,.06);border:1px solid var(--shell-line);font-family:inherit;color:#fff;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease)}.w-side-user:hover{background:rgba(255,255,255,.1)}.w-side-user.on{border-color:rgba(111,202,213,.55)}.w-side-user .tx{flex:1 1;min-width:0;display:block}.w-side-user .nm{font-size:var(--fs-body-sm);font-weight:700}.w-side-user .nm,.w-side-user .sb{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-side-user .sb{font-size:var(--fs-caption);color:var(--shell-muted)}.w-side-user svg{width:16px;height:16px;stroke:var(--shell-muted);fill:none;stroke-width:2;flex:0 0 auto}.w-avatar-link{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:var(--r-full)}.w-avatar-link:hover{box-shadow:0 0 0 3px var(--primary-subtle)}.collapsed .w-side .brand-word,.collapsed .w-side .lbl,.collapsed .w-side-promo .tx,.collapsed .w-side-user .tx,.collapsed .w-side-user>svg{opacity:0;width:0;pointer-events:none}.collapsed .w-side-label{opacity:0;height:14px;padding:0}.collapsed .w-side-link{justify-content:center;padding:12px;gap:0}.collapsed .w-side-promo{justify-content:center;padding:10px;gap:0}.collapsed .w-side-user{justify-content:center;gap:0;padding:8px}.w-tabs{position:fixed;left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:var(--z-nav);display:flex;gap:2px;padding:6px;background:color-mix(in srgb,var(--chrome-bg) 94%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-radius:var(--r-lg);box-shadow:0 18px 40px -18px rgba(4,40,46,.7)}@media (min-width:1024px){.w-tabs{display:none}}@media (max-width:1023.98px){.w-canvas{padding-bottom:110px}}.w-tabs a{flex:1 1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:var(--r-md);font-size:var(--fs-caption);font-weight:600;color:var(--shell-muted);transition:background var(--dur) var(--ease),color var(--dur) var(--ease)}.w-tabs a span{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.w-tabs a svg{width:21px;height:21px;stroke:currentColor;fill:none;stroke-width:2;flex:0 0 auto;transition:transform var(--dur) var(--ease-spring)}.w-tabs a.on{color:#fff;font-weight:700;background:rgba(255,255,255,.12)}.w-tabs a.on svg{stroke:#6FCAD5;transform:translateY(-1px)}.w-pagehead{display:flex;align-items:flex-end;gap:12px 16px;flex-wrap:wrap-reverse;margin-bottom:4px}.w-pagehead .tx{flex:1 1 60ch;min-width:min(60ch,100%)}.eyebrow-soft{font-size:var(--fs-body-sm);color:var(--text-2);font-weight:600;min-height:20px}.w-pagehead h1{font-family:var(--disp);font-weight:800;font-size:var(--fs-title);letter-spacing:-.025em;line-height:1.15;margin-top:1px}.w-pagehead .wave{display:inline-block}.w-pagehead .sub{color:var(--text-2);font-size:var(--fs-label);margin-top:5px}.w-pagehead .tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-left:auto;flex:0 1 auto;min-width:0}.w-search{position:relative;display:none;flex:0 1 300px;min-width:220px}@media (min-width:768px){.w-search{display:block}}.w-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:17px;height:17px;stroke:var(--text-2);fill:none;stroke-width:2}.w-search input{width:100%;height:var(--ctl-lg);font-family:inherit;font-size:var(--fs-body-sm);color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:0 14px 0 40px;transition:border-color .12s,box-shadow .12s}.w-search input:focus-visible{border-color:var(--primary-text)}.w-bell,.w-bell-wrap{position:relative}.w-bell{width:var(--ctl-lg);height:var(--ctl-lg);border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border);display:grid;place-items:center;cursor:pointer;flex:0 0 auto}.w-bell:hover{border-color:var(--border-2)}.w-bell svg{width:19px;height:19px;stroke:var(--text-2);fill:none;stroke-width:2}.w-bell .dot{position:absolute;top:-3px;right:-3px;min-width:18px;height:18px;padding:0 4px;border-radius:var(--r-xs);background:var(--danger-strong);color:#fff;font-size:var(--fs-caption);font-weight:800;display:grid;place-items:center;border:2px solid var(--bg)}.w-pop{position:fixed;width:min(340px,calc(100vw - 32px));background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);z-index:var(--z-dropdown);overflow:hidden;animation:pickIn .16s ease both}.w-notifs .hd{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--border)}.w-notifs .hd b{font-family:var(--disp);font-size:var(--fs-label)}.w-notifs .hd button{background:none;border:none;font:inherit;font-size:var(--fs-caption);font-weight:700;color:var(--primary-text);cursor:pointer}.w-notifs .bd{max-height:340px;overflow-y:auto}.w-notifs .empty{padding:26px 16px;text-align:center;font-size:var(--fs-body-sm);color:var(--text-2)}.w-notifs .nrow{display:flex;gap:11px;padding:12px 16px;border-bottom:1px solid var(--border)}.w-notifs .nrow:last-child{border-bottom:none}.w-notifs .nrow.unread{background:var(--primary-subtle)}.w-notifs .nrow .ic{width:34px;height:34px;border-radius:var(--r-sm);display:grid;place-items:center;flex:0 0 auto}.w-notifs .nrow .ic svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.w-notifs .nrow .tx{display:block;min-width:0}.w-notifs .nrow .t{display:block;font-size:var(--fs-body-sm);font-weight:700}.w-notifs .nrow .b{line-height:1.45;margin-top:1px}.w-notifs .nrow .b,.w-notifs .nrow .w{display:block;font-size:var(--fs-caption);color:var(--text-2)}.w-notifs .nrow .w{font-weight:600;margin-top:3px}.w-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:clamp(16px,2vw,22px);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.w-card:hover{box-shadow:var(--shadow-card-hover);border-color:color-mix(in srgb,var(--primary) 18%,var(--border))}.w-card-head{gap:10px;margin-bottom:14px}.w-card-head,.w-card-head h2{display:flex;align-items:center}.w-card-head h2{flex:1 1;min-width:0;gap:9px;font-family:var(--disp);font-weight:700;font-size:var(--fs-body);letter-spacing:-.01em}.w-card-head h2 .ic{width:28px;height:28px;border-radius:var(--r-xs);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle);flex:0 0 auto}.w-card-head h2 .ic svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.w-card-head .lnk{font-size:var(--fs-caption);font-weight:700;color:var(--primary-text)}.w-card-head .lnk:hover{text-decoration:underline}.w-card-head .tag{font-size:var(--fs-caption);font-weight:700;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);padding:5px 10px;border-radius:var(--r-full)}.w-grid{display:grid;grid-gap:clamp(14px,2vw,20px);gap:clamp(14px,2vw,20px);grid-template-columns:1fr}@media (min-width:1024px){.w-grid.split{grid-template-columns:1.5fr 1fr}.w-grid.thirds{grid-template-columns:1fr .72fr 1.25fr}}@media (min-width:768px) and (max-width:1023.98px){.w-grid.thirds{grid-template-columns:1fr 1fr}.w-grid.thirds>:last-child{grid-column:1/-1}}.w-kpis{display:grid;grid-gap:clamp(14px,2vw,20px);gap:clamp(14px,2vw,20px);grid-template-columns:1fr 1fr}@media (min-width:1024px){.w-kpis{grid-template-columns:repeat(4,1fr)}}.w-kpi{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:18px;display:flex;align-items:flex-start;gap:12px;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}.w-kpi:hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover);border-color:color-mix(in srgb,var(--primary) 22%,var(--border))}.w-kpi .ic{transition:transform var(--dur) var(--ease-spring)}.w-kpi:hover .ic{transform:scale(1.08) rotate(-4deg)}.w-kpi .tx{flex:1 1;min-width:0;align-self:stretch;display:grid;grid-template-rows:auto 1fr auto}.w-kpi .k{font-size:var(--fs-caption);font-weight:600;color:var(--text-2)}.w-kpi .v{align-self:end;font-family:var(--disp);font-weight:800;font-size:var(--fs-display);letter-spacing:-.03em;line-height:1.1;margin-top:8px}.w-kpi .s{font-size:var(--fs-caption);color:var(--text-2);font-weight:600;margin-top:3px}.w-kpi .ic{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto}.w-kpi .ic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}@media (max-width:479.98px){.w-kpi{flex-direction:column-reverse;align-items:flex-start;gap:10px;padding:15px}.w-kpi .tx{width:100%}.w-kpi .ic{width:38px;height:38px;border-radius:var(--r-sm)}.w-kpi .ic svg{width:18px;height:18px}.w-kpi .v{margin-top:4px}}.t-primary{background:var(--primary-subtle);color:var(--on-primary-subtle)}.t-success{background:var(--success-subtle);color:var(--on-success-subtle)}.t-accent{background:var(--accent-subtle);color:var(--on-accent-subtle)}.t-info{background:var(--info-subtle);color:var(--on-info-subtle)}.t-warning{background:var(--warning-subtle);color:var(--on-warning-subtle)}.w-rows{list-style:none;display:flex;flex-direction:column}.w-rows>li{border-top:1px solid var(--border)}.w-rows>li:first-child{border-top:none}.w-row{display:flex;align-items:center;gap:12px;padding:13px 0}.w-row.link{margin:0 -8px;padding:13px 8px;border-radius:var(--r-sm);transition:background .12s}.w-row.link:hover{background:var(--surface-2)}.w-row.sm{padding:9px 8px}.w-rows.tight>li{border-top:none}.w-row .ic,.w-row .st,.w-row .tick{width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;flex:0 0 auto;background:var(--surface-2);color:var(--text-2)}.w-row.sm .st{width:32px;height:32px;border-radius:var(--r-xs)}.w-row .ic svg,.w-row .st svg,.w-row .tick svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:2}.w-row .st.done,.w-row .tick.done{background:var(--success-subtle);color:var(--on-success-subtle)}.w-row .st.in-progress,.w-row .tick{background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-row .tx{flex:1 1;min-width:0;display:block}.w-row .tx .t{display:block;font-size:var(--fs-label);font-weight:700;letter-spacing:-.01em}.w-row .tx .t .n{color:var(--text-2);font-weight:800}.w-row .tx .d{display:block;font-size:var(--fs-caption);color:var(--text-2);font-weight:600;margin-top:2px}.w-row>svg{width:18px;height:18px;stroke:var(--text-2);fill:none;stroke-width:2;flex:0 0 auto}.w-row .tag{font-size:var(--fs-caption);font-weight:700;padding:5px 10px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2);flex:0 0 auto;white-space:nowrap}.w-row .tag.done{background:var(--success-subtle);color:var(--on-success-subtle)}.w-row .tag.in-progress{background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-row .mini{display:none;align-items:center;gap:9px;flex:0 0 auto;width:128px}.w-row .mini.wide{width:168px}@media (min-width:768px){.w-row .mini{display:flex}}.w-row .mini .bar2{flex:1 1}.w-row .mini b{font-size:var(--fs-caption);font-weight:800;width:34px;text-align:right}.w-course-rows .w-row{display:grid;grid-template-columns:auto minmax(0,1fr) 24px}.w-course-rows .w-row .mini{width:auto}.w-course-rows .w-row>svg{justify-self:end}@media (min-width:768px){.w-course-rows .w-row{grid-template-columns:auto minmax(0,1fr) 96px 24px}}.w-goals{list-style:none;display:flex;flex-direction:column;gap:16px}.w-goals .tp{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px}.w-goals .tp .t{font-size:var(--fs-body-sm);font-weight:700}.w-goals .tp .v{font-weight:800}.w-goals .sb,.w-goals .tp .v{font-size:var(--fs-caption);color:var(--text-2)}.w-goals .sb{font-weight:600;margin-top:6px}.w-streak{background:var(--brand-grad-strong);border-color:transparent;color:#fff;flex-direction:column;text-align:center;box-shadow:var(--shadow-pop)}.w-streak,.w-streak .hd{display:flex;align-items:center}.w-streak .hd{gap:7px;font-size:var(--fs-caption);font-weight:700;align-self:flex-start;opacity:.9}.w-streak .hd svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}.w-streak .flame{width:64px;height:64px;border-radius:var(--r-full);background:rgba(255,255,255,.18);display:grid;place-items:center;margin:16px 0 12px}.w-streak .flame svg{width:30px;height:30px;stroke:#fff;fill:none;stroke-width:2}.w-streak .n{font-family:var(--disp);font-weight:800;font-size:var(--fs-display);line-height:1;letter-spacing:-.03em}.w-streak .u{font-size:var(--fs-body-sm);font-weight:700;opacity:.9;margin-top:2px}.w-streak .msg{font-size:var(--fs-caption);opacity:.85;margin-top:14px;line-height:1.5}.chart-wrap{position:relative;width:100%}.chart-tick{font-weight:600;fill:var(--text-2);font-family:var(--body)}.chart-tick,.chart-tip{font-size:var(--fs-caption)}.chart-tip{position:absolute;transform:translate(-50%,-100%);pointer-events:none;background:var(--text);color:var(--text-inv);border-radius:var(--r-xs);padding:6px 10px;white-space:nowrap;box-shadow:var(--shadow-md);display:flex;flex-direction:column;align-items:center;gap:1px}.chart-tip b{font-weight:800;font-size:var(--fs-caption)}.chart-tip span{opacity:.75}.chart-empty{position:absolute;inset:0;display:grid;place-items:center;font-size:var(--fs-caption);color:var(--text-2);font-weight:600;text-align:center;padding:0 20px}.donut-wrap{display:flex;align-items:center;gap:clamp(14px,3vw,26px);flex-wrap:wrap;justify-content:center}.donut{position:relative;flex:0 0 auto}.donut-mid{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.donut-mid b{font-family:var(--disp);font-weight:800;font-size:var(--fs-title);letter-spacing:-.03em}.donut-mid span{font-size:var(--fs-caption);color:var(--text-2);font-weight:600}.donut-legend{list-style:none;display:flex;flex-direction:column;gap:11px;flex:1 1;min-width:148px}.donut-legend li{display:flex;align-items:center;gap:9px;font-size:var(--fs-caption)}.donut-legend li.on{color:var(--text)}.donut-legend .sw{width:10px;height:10px;border-radius:var(--r-xs);flex:0 0 auto}.donut-legend .lb{flex:1 1;color:var(--text-2);font-weight:600}.donut-legend .vl{font-weight:800}.w-ph{text-align:center;padding:26px 12px}.w-ph .ic{width:48px;height:48px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--surface-2);color:var(--text-2);margin:0 auto 12px}.w-ph .ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}.w-ph b{font-family:var(--disp);font-size:var(--fs-label);font-weight:700}.w-ph p{font-size:var(--fs-caption);color:var(--text-2);margin:5px auto 14px;max-width:300px;line-height:1.5}.w-ph .btn{display:inline-flex}.w-courses{display:grid;grid-template-columns:1fr;grid-gap:clamp(14px,2vw,20px);gap:clamp(14px,2vw,20px)}@media (min-width:768px){.w-courses{grid-template-columns:1fr 1fr}}@media (min-width:1024px){.w-courses{grid-template-columns:repeat(3,1fr)}}.w-course{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:20px;transition:transform .15s,box-shadow .15s,border-color .15s}.w-course:not(.static):hover{transform:translateY(-3px);box-shadow:var(--shadow-card-hover);border-color:var(--border-2)}.w-course .ic{width:48px;height:48px;border-radius:var(--r-md);display:grid;place-items:center;margin-bottom:14px}.w-course .ic svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:2}.w-course h3{font-family:var(--disp);font-weight:700;font-size:var(--fs-title-sm);letter-spacing:-.01em;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.w-course.locked{opacity:.72}.w-course.locked .ic{filter:saturate(.35)}.w-lock-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--sans);font-size:var(--fs-caption);font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--text-2);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-full);padding:3px 8px 3px 6px}.w-lock-chip svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.2}.w-course .meta{font-size:var(--fs-caption);color:var(--text-2);font-weight:600;margin-top:4px}.w-course .prog{margin-top:16px}.w-course .prog .tp{display:flex;justify-content:space-between;font-size:var(--fs-caption);font-weight:600;color:var(--text-2);margin-bottom:7px}.w-course .prog .tp b{font-weight:800;color:var(--text)}.w-course .go{display:inline-flex;align-items:center;gap:6px;margin-top:16px;font-size:var(--fs-caption);font-weight:700;color:var(--primary-text)}.w-course .go svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2;transition:transform .15s}.w-course .go:last-child{margin-top:auto;padding-top:16px}.w-course:hover .go svg{transform:translateX(3px)}@media (prefers-reduced-motion:reduce){.w-course:hover .go svg,.w-course:not(.static):hover{transform:none}}.w-skel{min-height:190px;opacity:.55;animation:skel 1.3s ease-in-out infinite}@keyframes skel{0%,to{opacity:.4}50%{opacity:.7}}.w-seg{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:var(--ctl-md);padding:0 16px;border:1px solid var(--border);background:var(--surface);color:var(--text-2);font:inherit;font-size:var(--fs-label);font-weight:700;line-height:1.2;border-radius:var(--r-full);cursor:pointer;transition:all .12s}.w-seg:hover{border-color:var(--border-2);color:var(--text)}.w-seg.on{background:var(--primary-fill);border-color:var(--primary-text);color:var(--primary-contrast)}.w-back{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2);background:var(--surface);border:1px solid var(--border);padding:8px 14px;border-radius:var(--r-full)}.w-back:hover{border-color:var(--border-2);color:var(--text)}.w-back svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2;transform:rotate(180deg)}.w-coursehero{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.w-coursehero .ic{width:56px;height:56px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto}.w-coursehero .ic svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2}.w-coursehero .tx{flex:1 1;min-width:200px}.w-coursehero .tx b{font-family:var(--disp);font-size:var(--fs-title-sm);font-weight:700}.w-coursehero .tx p{font-size:var(--fs-caption);color:var(--text-2);font-weight:600;margin-top:2px}.w-coursehero .pr{display:flex;align-items:center;gap:10px;margin-top:12px;max-width:340px}.w-coursehero .pr .bar2{flex:1 1}.w-coursehero .pr b{font-size:var(--fs-caption);font-weight:800}.w-trophy{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.w-trophy .tro{width:72px;height:72px;border-radius:var(--r-lg);display:grid;place-items:center;flex:0 0 auto;background:var(--brand-grad-strong);color:#fff;box-shadow:var(--shadow-pop)}.w-trophy .tro svg{width:34px;height:34px;stroke:currentColor;fill:none;stroke-width:2}.w-trophy .tx{flex:1 1;min-width:220px}.w-trophy .tx b{font-family:var(--disp);font-size:var(--fs-title-sm);font-weight:800;letter-spacing:-.02em}.w-trophy .tx p{font-size:var(--fs-body-sm);color:var(--text-2);margin:4px 0 12px}.w-badges{list-style:none;display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}@media (min-width:480px){.w-badges{grid-template-columns:1fr 1fr}}@media (min-width:1024px){.w-badges{grid-template-columns:repeat(3,1fr)}}.w-badges li{border:1px solid var(--border);border-radius:var(--r-md);padding:16px;background:var(--surface-2);text-align:center;opacity:.62}.w-badges li.on{background:var(--surface);opacity:1;border-color:var(--border-2)}.w-badges li .ic{width:52px;height:52px;border-radius:var(--r-md);display:grid;place-items:center;margin:0 auto 11px;background:var(--border);color:var(--text-2)}.w-badges li .ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}.w-badges li b{font-family:var(--disp);font-size:var(--fs-label);font-weight:700}.w-badges li p{font-size:var(--fs-caption);color:var(--text-2);margin:4px 0 10px;line-height:1.45}.w-badges li .st{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-caption);font-weight:700;background:var(--border);padding:4px 10px;border-radius:var(--r-full)}.w-badges li .st.on{background:var(--success-subtle);color:var(--on-success-subtle)}.w-badges li .st svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.4}.w-profile{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.w-profile .av{width:76px;height:76px;border-radius:var(--r-full);flex:0 0 auto;background:var(--brand-grad);color:#fff;display:grid;place-items:center;font-family:var(--disp);font-weight:800;font-size:var(--fs-title);box-shadow:var(--shadow-pop)}.w-profile .tx{flex:1 1;min-width:200px}.w-profile .tx b{font-family:var(--disp);font-size:var(--fs-title-sm);font-weight:800;letter-spacing:-.02em}.w-profile .tx p{font-size:var(--fs-body-sm);color:var(--text-2);margin-top:2px}.w-profile .chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.chip-sm{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-caption);font-weight:700;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);padding:5px 11px;border-radius:var(--r-full);text-transform:capitalize}.chip-sm.on{background:var(--primary-subtle);border-color:transparent;color:var(--on-primary-subtle)}.chip-sm svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}.w-facts{list-style:none;display:flex;flex-direction:column}.w-facts li{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--border)}.w-facts li:first-child{border-top:none}.w-facts .k{font-size:var(--fs-caption);font-weight:600;color:var(--text-2);width:88px;flex:0 0 auto}.w-facts .v{font-size:var(--fs-body-sm);font-weight:700;word-break:break-word;text-transform:none}.w-logout{align-self:flex-start;display:inline-flex;align-items:center;gap:9px;font:inherit;font-size:var(--fs-body-sm);font-weight:700;color:var(--danger);cursor:pointer;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:12px 20px;transition:background .12s,border-color .12s}.w-logout:hover{background:var(--danger-subtle);border-color:transparent}.w-logout svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}.w-auth{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);background:var(--surface-2)}@media (min-width:1024px){.w-auth{grid-template-columns:42fr 58fr}}.w-auth-panel{position:relative;display:grid;place-items:center;padding:24px 16px;min-width:0}@media (min-width:1024px){.w-auth-panel{padding:32px 40px}}.w-auth :focus-visible{outline:2px solid var(--focus);outline-offset:2px}.w-auth .w-langopt:focus-visible{outline-offset:-2px}.w-auth-card{width:100%;max-width:420px}.w-auth-head{text-align:center;margin-bottom:22px}.w-auth-head .t{font-family:var(--disp);font-weight:700;font-size:var(--fs-title-sm);margin-top:16px}.w-auth-head .s{color:var(--text-2);font-size:var(--fs-label);margin-top:6px}.w-auth-alt{text-align:center;font-size:var(--fs-body-sm);color:var(--text-2);margin-top:18px}.w-auth-alt a{color:var(--primary-text);font-weight:700}.w-reg{max-width:440px;padding-top:44px;--reg-label:color-mix(in srgb,var(--text) 80%,var(--text-2));--reg-hover:color-mix(in srgb,var(--border-2) 70%,var(--text-2))}.w-reg-lang{position:absolute;top:16px;right:16px;z-index:var(--z-raised)}.w-lang.named{height:var(--ctl-md);padding:0 10px 0 12px;gap:7px;border-radius:var(--r-full);transition:border-color .15s ease-out}.w-lang.named .code{font-size:var(--fs-body-sm);font-weight:600;color:var(--text);letter-spacing:0}.w-lang.named svg:last-child{width:14px;height:14px}.w-reg-mhead{display:flex;flex-direction:column;align-items:center;margin-bottom:18px;text-align:center}.w-reg-mhead .tag{color:var(--text-2);font-size:var(--fs-body-sm);margin-top:8px}.w-reg-card.card{padding:20px}@media (min-width:480px){.w-reg-card.card{padding:28px}}.w-reg-head{text-align:center;margin-bottom:18px}.w-reg-nav{display:grid;grid-template-columns:1fr auto 1fr;margin-bottom:8px}.w-reg-back,.w-reg-nav{align-items:center;min-height:32px}.w-reg-back{justify-self:start;display:inline-flex;gap:4px;padding:0 8px;margin-left:-8px;border:0;border-radius:var(--r-xs);background:none;font:inherit;font-size:var(--fs-body-sm);font-weight:600;color:var(--primary-text);cursor:pointer;transition:color .15s ease-out}.w-reg-back:hover{color:var(--text)}.w-reg-back svg{width:16px;height:16px}.w-reg-dots{display:flex;gap:6px}.w-reg-dots i{width:8px;height:8px;border-radius:var(--r-xs);background:var(--border-2);transition:background-color .15s ease-out}.w-reg-dots i.on{background:var(--primary-hover)}.w-reg-dots i.cur{width:20px}.w-reg-head h1{font-family:var(--disp);font-weight:700;font-size:var(--fs-title-sm);line-height:1.25}.w-reg-head h1:focus{outline:none}.w-reg-head .s{color:var(--text-2);font-size:var(--fs-label);line-height:1.5;margin-top:6px}.w-reg-form{display:flex;flex-direction:column;gap:12px}.w-reg-note{font-size:var(--fs-caption);line-height:1.5;color:var(--text-2);text-align:left}.w-sf{border:0;padding:0;margin:0;min-width:0}.w-sf-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;padding:0;margin:0 0 6px}.w-sf-top .lb,.w-sf-top label{font-size:var(--fs-body-sm);font-weight:600;line-height:1.4;color:var(--reg-label)}.w-sf-req{flex:0 0 auto;font-size:var(--fs-caption);font-weight:500;color:var(--text-2)}.w-sf input:not([type=radio]),.w-sf select{display:block;width:100%;height:44px;padding:0 14px;border-radius:var(--r-sm);border:1px solid var(--border-2);background:var(--surface);color:var(--text);font-family:var(--body);font-size:var(--fs-body);transition:border-color .15s ease-out,color .15s ease-out}.w-sf input::placeholder{color:var(--text-2);opacity:1}.w-sf input:not([type=radio]):hover,.w-sf select:hover{border-color:var(--reg-hover)}.w-sf input:not([type=radio]):focus,.w-sf select:focus{border-color:var(--primary-text)}.w-sf select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7075' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:16px}.w-sf.err input:not([type=radio]),.w-sf.err select{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger-subtle)}.w-sf-help{min-height:18px;margin-top:6px;font-size:var(--fs-caption);line-height:1.45;color:var(--text-2);text-align:left}.w-sf.err>.w-sf-help{color:var(--on-danger-subtle);font-weight:500}.w-sf-pw{position:relative}.w-sf .w-sf-pw input{padding-right:48px}.w-sf-eye{position:absolute;top:2px;right:2px;width:40px;height:40px;display:grid;place-items:center;border:0;border-radius:var(--r-xs);background:none;color:var(--text-2);cursor:pointer;transition:color .15s ease-out}.w-sf-eye:hover{color:var(--text)}.w-sf-eye svg{width:18px;height:18px}.w-sf-meter{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:4px;gap:4px;margin-top:8px}.w-sf-meter i{height:4px;border-radius:var(--r-xs);background:var(--border);transition:background-color .15s ease-out}.w-sf-meter[data-score="1"] i:first-child{background:var(--danger)}.w-sf-meter[data-score="2"] i:nth-child(-n+2){background:var(--warning)}.w-sf-meter[data-score="3"] i{background:var(--success)}.w-sf-pwhelp{display:flex;align-items:center;justify-content:space-between;gap:12px}.w-sf-check{display:inline-flex;align-items:center;gap:6px;transition:color .15s ease-out}.w-sf-check svg{width:14px;height:14px;flex:0 0 auto}.w-sf-check.ok{color:var(--on-success-subtle)}.w-sf-level{flex:0 0 auto;font-weight:600;color:var(--text-2)}.w-sf-seg{display:grid;grid-gap:4px;gap:4px;padding:4px;border-radius:var(--r-sm);background:var(--bg)}.w-sf-seg label{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;height:36px;padding:0 8px;border-radius:var(--r-xs);cursor:pointer;white-space:nowrap;font-size:var(--fs-body-sm);font-weight:600;color:var(--text-2);transition:color .15s ease-out,background-color .15s ease-out}.w-sf-seg label span{overflow:hidden;text-overflow:ellipsis}.w-sf-seg input{position:absolute;opacity:0;width:0;height:0}.w-sf-seg label:hover{color:var(--text)}.w-sf-seg label.on{background:var(--surface);color:var(--primary-text);box-shadow:var(--shadow-sm)}.w-sf-seg label:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.w-sf.err .w-sf-seg{box-shadow:inset 0 0 0 1px var(--danger)}:lang(si) .w-sf-seg label,:lang(ta) .w-sf-seg label{font-size:var(--fs-caption);padding:0 4px}@media (max-width:479.98px){:lang(id) .w-sf-seg label{font-size:var(--fs-caption);padding:0 4px}}.w-rtype-list{display:flex;flex-direction:column;gap:10px}.w-rtype{position:relative;display:flex;align-items:center;gap:12px;padding:14px;border-radius:var(--r-md);border:1.5px solid var(--border-2);background:var(--surface);cursor:pointer;transition:border-color .15s ease-out,background-color .15s ease-out}.w-rtype:hover{border-color:var(--reg-hover)}.w-rtype input{position:absolute;opacity:0;width:0;height:0}.w-rtype:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.w-rtype.on{border-color:var(--primary-hover);background:var(--primary-subtle)}.w-rtype .ic{width:40px;height:40px;border-radius:var(--r-sm);flex:0 0 auto;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2);transition:color .15s ease-out,background-color .15s ease-out,border-color .15s ease-out}.w-rtype.on .ic{background:var(--surface);border-color:transparent;color:var(--primary-text)}.w-rtype .ic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}.w-rtype .tx{flex:1 1;min-width:0}.w-rtype .t{display:block;font-size:var(--fs-label);font-weight:600;line-height:1.35;color:var(--text)}.w-rtype .d{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;font-size:var(--fs-caption);line-height:1.45;color:var(--text-2);margin-top:2px}.w-rtype.on .d{color:var(--on-primary-subtle)}.w-rtype .ind{flex:0 0 auto;width:20px;height:20px;border-radius:var(--r-full);display:grid;place-items:center;border:1.5px solid var(--field-border);color:transparent;transition:background-color .15s ease-out,border-color .15s ease-out,color .15s ease-out}.w-rtype.on .ind{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--primary-contrast)}.w-rtype .ind svg{width:13px;height:13px}.w-grades .lb{display:block;font-size:var(--fs-body-sm);font-weight:600;color:var(--reg-label);margin:12px 0 6px}.w-grades .chips{display:flex;flex-wrap:wrap;gap:7px}.w-chip{position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;font-size:var(--fs-caption);font-weight:700;color:var(--text-2);background:var(--surface);border:1.5px solid var(--border-2);padding:8px 14px;border-radius:var(--r-full);transition:border-color .12s,background .12s,color .12s,box-shadow .12s}.w-chip input{position:absolute;opacity:0;width:0;height:0}.w-chip:hover{border-color:var(--text-2);color:var(--text)}.w-chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:2px}.w-chip.on{background:var(--primary-fill);border-color:var(--primary-text);color:var(--primary-contrast)}.w-reg .w-chip:has(input:focus-visible){box-shadow:none;outline:2px solid var(--focus);outline-offset:2px}.w-sf.err .w-chip:not(.on){border-color:var(--danger)}.w-reg-more{border-top:1px solid var(--border);padding-top:10px}.w-reg-more summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;cursor:pointer;list-style:none;font-size:var(--fs-body-sm);font-weight:600;color:var(--primary-text);border-radius:var(--r-xs);transition:color .15s ease-out}.w-reg-more summary::-webkit-details-marker{display:none}.w-reg-more summary:hover{color:var(--text)}.w-reg-more summary svg{width:16px;height:16px}.w-reg-more[open] summary svg{transform:rotate(180deg)}.w-reg-more .body{display:flex;flex-direction:column;gap:12px;margin-top:10px}.w-reg-submit.btn{min-height:46px}.w-reg .btn.busy[aria-disabled=true]{background:var(--primary-fill);color:var(--primary-contrast);cursor:progress}.w-reg-spin{width:16px;height:16px;flex:0 0 auto;border-radius:var(--r-full);border:2px solid;border-right:2px solid transparent;animation:w-spin .7s linear infinite}@media (prefers-reduced-motion:reduce){.w-reg-spin{animation-duration:2.4s!important}}.w-head-logo{display:inline-flex}.w-auth-brand{display:none}@media (min-width:1024px){.w-head-logo,.w-reg-mhead{display:none}.w-auth-brand{display:flex;flex-direction:column;justify-content:center;position:-webkit-sticky;position:sticky;top:0;align-self:start;height:100dvh;overflow:hidden;padding:48px clamp(40px,5vw,72px);color:#fff;background:radial-gradient(120% 120% at 100% 0,#12b1c4 0,transparent 55%),linear-gradient(150deg,#0a97a8,#077483 60%,#0a5b66)}}.w-brand-inner{position:relative;z-index:1;max-width:420px}.w-brand-logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:800;font-size:var(--fs-title-sm);color:#fff}.w-brand-logo .brand{color:#fff}.w-brand-logo .brand span span{color:#B6E4EA!important}.w-brand-logo .mark{background:#fff;box-sizing:content-box;padding:4px;border-radius:var(--r-sm)}.w-brand-title{font-family:var(--disp);font-weight:800;font-size:var(--fs-display);line-height:1.08;letter-spacing:-.02em;margin-top:28px}.w-brand-sub{color:rgba(255,255,255,.85);font-size:var(--fs-body);line-height:1.55;margin-top:16px}.w-brand-points{list-style:none;padding:0;margin:30px 0 0;display:flex;flex-direction:column;gap:14px}.w-brand-points li{display:flex;align-items:center;gap:12px;font-weight:600;font-size:var(--fs-body)}.w-brand-points .ic{width:34px;height:34px;border-radius:var(--r-xs);background:rgba(255,255,255,.16);display:grid;place-items:center;flex:0 0 auto}.w-brand-points .ic svg{stroke:#fff}.w-brand-decor{position:absolute;border-radius:var(--r-full);filter:blur(2px);z-index:0;pointer-events:none}.w-brand-decor.d1{width:340px;height:340px;right:-90px;top:-80px;background:rgba(255,255,255,.1);filter:blur(8px)}.w-brand-decor.d2{width:240px;height:240px;right:40px;bottom:-70px;background:rgba(255,255,255,.07);filter:blur(6px)}.w-link-btn{background:none;border:none;padding:0;cursor:pointer;font:inherit;font-weight:700;color:var(--primary-text)}.w-loading{min-height:60vh;display:grid;place-items:center}.w-loading:after{content:"";width:26px;height:26px;border-radius:var(--r-full);border:2.5px solid var(--border-2);border-top-color:var(--primary-text);animation:w-spin .7s linear infinite}@keyframes w-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.w-loading:after{animation-duration:2.4s}}.w-skel-stack{display:flex;flex-direction:column;gap:12px}.w-skel{border-radius:var(--r-md);background:linear-gradient(90deg,var(--surface-2) 0,var(--surface) 45%,var(--surface-2) 100%);background-size:200% 100%;animation:wShimmer 1.2s ease-in-out infinite}@keyframes wShimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.w-paper-grid{display:grid;grid-gap:14px;gap:14px;grid-template-columns:1fr}@media (min-width:768px){.w-paper-grid{grid-template-columns:repeat(3,1fr)}}.w-paper-card{display:flex;align-items:center;gap:14px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:18px 16px;transition:border-color .14s,transform .14s,box-shadow .14s}.w-paper-card:hover{border-color:color-mix(in srgb,var(--primary) 35%,var(--border));transform:translateY(-2px);box-shadow:var(--shadow-md)}.w-paper-card .ic{width:48px;height:48px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto}.w-paper-card .tx{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.w-paper-card .tx b{font-family:var(--disp);font-size:var(--fs-title-sm);font-weight:800;letter-spacing:-.02em}.w-paper-card .tx span{font-size:var(--fs-caption);color:var(--text-2);font-weight:600;line-height:1.4}.w-paper-card>svg{stroke:var(--text-2);flex:0 0 auto}.w-howto{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0;padding:0}.w-howto li{position:relative;padding-left:28px;font-size:var(--fs-body-sm);font-weight:600;color:var(--text-2);line-height:1.45}.w-howto li:before{content:"";position:absolute;left:0;top:4px;width:16px;height:16px;border-radius:var(--r-full);background:var(--primary-subtle);box-shadow:inset 0 0 0 5px var(--primary)}.w-bread{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:var(--fs-caption);font-weight:700;color:var(--text-2)}.w-bread a{color:var(--primary-text)}.w-bread a:hover{text-decoration:underline}.w-bread svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.w-paper-detail .hero{display:flex;align-items:center;gap:14px;margin-bottom:18px}.w-paper-detail .hero .ic{width:52px;height:52px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto}.w-paper-detail .hero .tx{flex:1 1;min-width:0}.w-paper-detail .hero .tx b{display:block;font-size:var(--fs-body);font-weight:800}.w-paper-detail .hero .tx span{display:block;font-size:var(--fs-caption);color:var(--text-2);font-weight:600;margin-top:3px}.w-paper-detail .badge{font-size:var(--fs-caption);font-weight:800;padding:6px 10px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2)}.w-paper-detail .badge.done{background:var(--success-subtle);color:var(--on-success-subtle)}.w-paper-detail .actions{display:flex;flex-wrap:wrap;gap:10px}.w-paper-detail .actions .btn{display:inline-flex;align-items:center;gap:8px}.w-ok{color:var(--on-success-subtle)}.w-err,.w-ok{font-size:var(--fs-body-sm);font-weight:700;margin:0 0 12px}.w-err{color:var(--danger)}.w-pdf{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--bg);display:flex;flex-direction:column}.w-pdf-bar{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--surface);border-bottom:1px solid var(--border)}.w-pdf-bar .tx{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.w-pdf-bar .tx b{font-size:var(--fs-label);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.w-pdf-bar .timer{font-size:var(--fs-caption);font-weight:800;color:var(--primary-text)}.w-pdf-bar .timer.done{color:var(--danger)}.w-pdf-frame{flex:1 1;width:100%;border:0;background:#fff}.w-icon-btn{width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--border);color:var(--text);cursor:pointer;flex:0 0 auto}.w-icon-btn:hover{border-color:var(--border-2)}.w-icon-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.w-gate{min-height:100dvh;display:grid;place-items:center;padding:24px;background:var(--bg)}.w-gate-card{width:100%;max-width:460px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:clamp(20px,4vw,32px);display:flex;flex-direction:column;gap:14px;text-align:center}.w-gate-card .ic{width:54px;height:54px;border-radius:var(--r-md);margin:0 auto;display:grid;place-items:center;background:color-mix(in srgb,var(--primary) 14%,transparent);color:var(--primary-text)}.w-gate-card .ic svg{width:26px;height:26px;stroke:currentColor;fill:none;stroke-width:2}.w-gate-card h2{font-family:var(--disp);font-weight:700;font-size:var(--fs-title-sm);letter-spacing:-.01em}.w-gate-card .chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.w-gate-card .lb{font-size:var(--fs-caption);font-weight:700;color:var(--text-2);margin-top:2px}.w-lang-wrap{position:relative;flex:0 0 auto}.w-lang{display:inline-flex;align-items:center;gap:6px;height:var(--ctl-lg);padding:0 12px;border-radius:var(--r-full);background:var(--surface);border:1px solid var(--border);cursor:pointer;font:inherit}.w-lang:hover{border-color:var(--border-2)}.w-lang svg{width:17px;height:17px;stroke:var(--text-2);fill:none;stroke-width:2}.w-lang .code{font-size:var(--fs-caption);font-weight:800;color:var(--text-2);letter-spacing:.01em}.w-langpop{width:min(190px,calc(100vw - 32px));padding:6px}.w-langopt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;padding:10px 12px;border:none;border-radius:var(--r-xs);background:none;font:inherit;font-size:var(--fs-label);font-weight:600;color:var(--text);cursor:pointer;text-align:left}.w-langopt:hover{background:var(--surface-2)}.w-langopt.on{color:var(--primary-text);font-weight:800}.w-langopt svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4;flex:0 0 auto}.w-langrow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}.w-langchip{padding:8px 15px;border-radius:var(--r-full);background:var(--surface);border:1.5px solid var(--border);font:inherit;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2);cursor:pointer}.w-langchip:hover{border-color:var(--border-2)}.w-langchip.on{background:var(--primary-fill);border-color:var(--primary-text);color:var(--primary-contrast)}.w-plan-add{display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:var(--r-xs);border:1px dashed var(--border-2);background:none;font:inherit;font-size:var(--fs-caption);font-weight:700;color:var(--primary-text);cursor:pointer}.w-plan-add:hover{background:var(--primary-subtle);border-style:solid}.w-plan-add svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4}.w-plan-form{display:grid;grid-gap:10px;gap:10px;padding:14px;margin-bottom:12px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-2)}.w-plan-form .two{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}@media (max-width:479.98px){.w-plan-form .two{grid-template-columns:1fr}}.w-plan-form input{width:100%;font-family:var(--body);font-size:var(--fs-body-sm);color:var(--text);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-xs);padding:10px 12px}.w-plan-form input:focus-visible{border-color:var(--primary-text)}.w-plan-form .row{display:flex;gap:8px;justify-content:flex-end}.w-rows .tick{padding:0}.w-rows .tick,.w-task-del{border:none;background:none;cursor:pointer}.w-task-del{padding:6px;border-radius:var(--r-xs);color:var(--text-2);display:grid;place-items:center;flex:0 0 auto}.w-task-del:hover{background:var(--danger-subtle,var(--surface-2));color:var(--danger)}.w-task-del svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.2}.w-rows .w-row.done .t{text-decoration:line-through;color:var(--text-2)}.w-auth-lang{margin-top:20px;padding-top:18px;border-top:1px solid var(--border)}.w-modal{margin:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);padding:0;width:min(480px,calc(100vw - 32px));max-height:min(90vh,720px);box-shadow:var(--shadow-lg);overflow:hidden}.w-modal::-webkit-backdrop{background:rgba(8,20,22,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.w-modal::backdrop{background:rgba(8,20,22,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.w-modal-head{display:flex;align-items:flex-start;gap:12px;padding:20px 20px 14px;border-bottom:1px solid var(--border)}.w-modal-head .tx{flex:1 1;min-width:0}.w-modal-head h2{font-family:var(--disp);font-size:var(--fs-title-sm);font-weight:700;letter-spacing:-.02em;color:var(--text);margin:0}.w-modal-head p{margin:3px 0 0;font-size:var(--fs-body-sm);color:var(--text-2)}.w-modal-head button{flex:0 0 auto;width:32px;height:32px;border-radius:var(--r-xs);display:grid;place-items:center;cursor:pointer;background:transparent;border:1px solid transparent;color:var(--text-2);transition:background .12s,color .12s}.w-modal-head button:hover{background:var(--surface-2);color:var(--text)}.w-modal-head button svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2}.w-modal-body{padding:18px 20px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.w-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px;border-top:1px solid var(--border)}.w-welcome{display:grid;grid-gap:clamp(14px,2vw,20px);gap:clamp(14px,2vw,20px);max-width:920px}.w-welcome-hero{position:relative;overflow:hidden;border-radius:var(--r-lg);padding:clamp(22px,3.5vw,36px);background:linear-gradient(125deg,#063A42,#0A7A88 60%,#0A97A8);color:#fff}.w-welcome-hero:after{content:"";position:absolute;right:-60px;top:-60px;width:220px;height:220px;border-radius:var(--r-full);background:radial-gradient(circle,rgba(255,111,94,.45),transparent 70%);pointer-events:none}.w-welcome-hero>*{position:relative;z-index:1}.w-welcome-hero .spark{width:52px;height:52px;border-radius:var(--r-md);display:grid;place-items:center;background:rgba(255,255,255,.14);margin-bottom:14px}.w-welcome-hero .spark svg{stroke:#fff}.w-welcome-hero h1{margin:0;font-family:var(--disp);font-weight:800;font-size:var(--fs-display);letter-spacing:-.03em;color:#fff}.w-welcome-hero>p{margin:8px 0 0;max-width:560px;color:rgba(255,255,255,.88);font-size:var(--fs-body);line-height:1.6}.w-welcome-hero .bonus{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:8px 14px;border-radius:var(--r-full);background:#fff;color:#063A42;font-size:var(--fs-body-sm);font-weight:700}.w-welcome-hero .bonus svg{stroke:var(--accent);flex:0 0 auto}.w-welcome-hero .how{list-style:none;margin:18px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 18px}.w-welcome-hero .how li{display:inline-flex;align-items:center;gap:7px;font-size:var(--fs-body-sm);font-weight:600;color:rgba(255,255,255,.92)}.w-welcome-hero .how svg{stroke:#9FE3EA}.w-starters{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}@media (min-width:768px){.w-starters{grid-template-columns:repeat(3,1fr)}}.w-starter{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface-2);transition:transform .14s,border-color .14s,box-shadow .14s}.w-starter:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--tint) 45%,var(--border));box-shadow:var(--shadow-card)}.w-starter.first{border-color:color-mix(in srgb,var(--tint) 55%,var(--border));background:color-mix(in srgb,var(--tint) 8%,var(--surface))}.w-starter .ic{width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;margin-bottom:4px;background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--tint)}.w-starter b{font-size:var(--fs-body);font-weight:800;letter-spacing:-.01em;line-height:1.35}.w-starter .meta{gap:5px;font-size:var(--fs-caption);color:var(--text-2);font-weight:600}.w-starter .go,.w-starter .meta{display:inline-flex;align-items:center}.w-starter .go{margin-top:auto;padding-top:10px;gap:6px;font-size:var(--fs-body-sm);font-weight:800;color:var(--primary-text)}.w-starter.first .go{color:var(--tint)}.w-welcome-skip{margin:0;text-align:center}.w-welcome-skip a{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-label);font-weight:700;color:var(--text-2)}.w-welcome-skip a:hover{color:var(--primary-text)}.w-invite-top{display:flex;gap:14px;align-items:flex-start}.w-invite .gift{width:46px;height:46px;border-radius:var(--r-md);flex:0 0 auto;display:grid;place-items:center;background:var(--accent-subtle);color:var(--on-accent-subtle)}.w-invite h2{margin:0;font-family:var(--disp);font-weight:800;font-size:var(--fs-title-sm);letter-spacing:-.02em}.w-invite .tx p{margin:4px 0 0;font-size:var(--fs-body-sm);line-height:1.55;color:var(--text-2)}.w-invite .tx .stats{color:var(--primary-text);font-weight:700}.w-invite-code{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding:12px 16px;border-radius:var(--r-md);border:1.5px dashed color-mix(in srgb,var(--primary) 45%,var(--border));background:var(--surface-2)}.w-invite-code .k{font-size:var(--fs-caption);font-weight:600;color:var(--text-2)}.w-invite-code b{font-family:var(--disp);font-size:var(--fs-title-sm);font-weight:800;letter-spacing:.14em;color:var(--text)}.w-invite-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.w-invite-actions .btn{flex:1 1 auto}.w-invite-actions .w-icon-btn{flex:0 0 auto;padding-inline:13px}.btn.w-wa{background:var(--brand-whatsapp);color:var(--on-brand-whatsapp)}.btn.w-wa:hover{background:color-mix(in srgb,var(--brand-whatsapp) 88%,#000)}.w-share-body{display:flex;gap:16px;align-items:center}.w-share-preview{width:108px;height:192px;flex:0 0 auto;border-radius:var(--r-md);object-fit:cover;box-shadow:0 10px 24px -12px rgba(6,58,66,.6)}.w-share-preview.empty{display:grid;place-items:center;color:var(--text-2);background:var(--surface-2);border:1px dashed var(--border-2);box-shadow:none}.w-share-body .tx p{margin:0 0 12px;font-size:var(--fs-body-sm);line-height:1.55;color:var(--text-2)}.w-hero{position:relative;overflow:hidden;display:grid;grid-gap:22px;gap:22px;grid-template-columns:1fr;padding:clamp(22px,3vw,32px);border-radius:var(--r-lg);background:var(--hero-grad-strong);color:#fff;box-shadow:0 26px 50px -28px rgba(8,96,108,.75)}@media (min-width:768px){.w-hero{grid-template-columns:1.5fr 1fr;align-items:center}}.w-hero:after{content:"";position:absolute;border-radius:var(--r-full);pointer-events:none;width:260px;height:260px;left:30%;bottom:-170px;background:radial-gradient(circle,rgba(255,111,94,.38),transparent 70%)}.w-hero>*{position:relative;z-index:1}.w-hero .chips{display:flex;flex-wrap:wrap;gap:8px}.w-hero .chip-g{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:var(--r-full);border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);font-size:var(--fs-caption);font-weight:700;color:#fff}.w-hero .chip-g svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.w-hero h2{margin:14px 0 0;font-family:var(--disp);font-weight:800;font-size:var(--fs-title);letter-spacing:-.025em;line-height:1.15;color:#fff}.w-hero p{margin:8px 0 0;max-width:520px;font-size:var(--fs-label);line-height:1.6;color:#fff}.w-hero .week{margin-top:18px;max-width:420px}.w-hero .week .tp{display:flex;justify-content:space-between;font-size:var(--fs-caption);font-weight:700;color:rgba(255,255,255,.9);margin-bottom:7px}.w-hero .week .bar{height:8px;border-radius:var(--r-full);background:rgba(255,255,255,.22);overflow:hidden}.w-hero .week .bar span{display:block;height:100%;border-radius:var(--r-full);background:#fff;transform-origin:left;animation:olGrow 1s var(--ease) .2s both}@keyframes olGrow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}.w-hero .cta{margin-top:20px;display:flex;flex-wrap:wrap;gap:10px}.w-hero .btn{background:#fff;color:var(--shell-ink)}.w-hero .btn:hover{background:#F0FAFB;box-shadow:0 12px 24px -12px rgba(0,0,0,.35)}.w-hero .pills{display:grid;grid-gap:10px;gap:10px}.w-hero .pills a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);color:#fff;transition:background var(--dur) var(--ease),transform var(--dur) var(--ease),border-color var(--dur) var(--ease)}.w-hero .pills a:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.4);transform:translateX(4px)}.w-hero .pills .ic{width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;background:rgba(255,255,255,.16);flex:0 0 auto}.w-hero .pills .ic svg{width:17px;height:17px;stroke:#fff;fill:none;stroke-width:2}.w-hero .pills .tx{flex:1 1;min-width:0;display:flex;flex-direction:column}.w-hero .pills b{font-size:var(--fs-label);font-weight:700}.w-hero .pills .tx span{font-size:var(--fs-caption);color:rgba(255,255,255,.78);font-weight:600}.w-hero .pills>a>svg{width:16px;height:16px;stroke:rgba(255,255,255,.8);fill:none;stroke-width:2;flex:0 0 auto}.w-theme svg{transition:transform .45s var(--ease-spring)}.w-theme:hover svg{transform:rotate(-20deg) scale(1.08)}.w-theme-pick>button{display:inline-flex;align-items:center;gap:7px}.w-theme-pick>button svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.w-pg-hero{position:relative;overflow:hidden;display:grid;grid-gap:16px;gap:16px;grid-template-columns:1fr;align-items:center;padding:clamp(20px,3vw,28px);border-radius:var(--r-lg);background:var(--hero-grad);color:#fff;box-shadow:0 26px 50px -28px rgba(8,96,108,.75)}@media (min-width:768px){.w-pg-hero{grid-template-columns:1.6fr 1fr}}.w-pg-hero h2{font-family:var(--disp);font-weight:800;font-size:var(--fs-title);letter-spacing:-.02em;line-height:1.2;color:#fff}.w-pg-hero p{margin-top:8px;max-width:560px;font-size:var(--fs-label);line-height:1.6;color:rgba(255,255,255,.88)}.w-pg-hero .credits{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:var(--r-md);background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3)}.w-pg-hero .credits svg{flex:0 0 auto}.w-pg-hero .credits b{display:block;font-size:var(--fs-label)}.w-pg-hero .credits span span{display:block;font-size:var(--fs-caption);color:rgba(255,255,255,.82);margin-top:2px;line-height:1.4}.w-pg-langs{display:grid;grid-gap:12px;gap:12px;grid-template-columns:1fr}@media (min-width:480px){.w-pg-langs{grid-template-columns:1fr 1fr}}@media (min-width:1280px){.w-pg-langs{grid-template-columns:repeat(4,1fr)}}.w-pg-lang{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--border);border-top:3px solid var(--lang);transition:transform .15s,box-shadow .15s}.w-pg-lang:hover{transform:translateY(-2px);box-shadow:var(--shadow-card-hover)}.w-pg-lang .badge-lang{font-family:var(--disp);font-weight:800;font-size:var(--fs-title-sm);color:var(--lang)}.w-pg-lang .d{font-size:var(--fs-caption);color:var(--text-2);line-height:1.5;flex:1 1}.w-pg-lang .go{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-caption);font-weight:700;color:var(--primary-text)}.w-pg-lessons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.w-pg-lessons a{display:flex;align-items:center;gap:12px;padding:11px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2);transition:border-color .12s,background .12s}.w-pg-lessons a:hover{border-color:var(--border-2);background:var(--surface)}.w-pg-lessons .st{width:30px;height:30px;border-radius:var(--r-xs);display:grid;place-items:center;flex:0 0 auto;background:var(--surface);border:1px solid var(--border);color:var(--text-2)}.w-pg-lessons a.done .st{background:var(--success-subtle);border-color:transparent;color:var(--on-success-subtle)}.w-pg-lessons a.in-progress .st{background:var(--primary-subtle);border-color:transparent;color:var(--on-primary-subtle)}.w-pg-lessons .tx{flex:1 1;min-width:0;display:flex;flex-direction:column}.w-pg-lessons .tx b{font-size:var(--fs-body-sm);font-weight:700}.w-pg-lessons .tx span{font-size:var(--fs-caption);color:var(--text-2);line-height:1.4}.w-pg-lessons .tag{font-size:var(--fs-caption);font-weight:700;color:var(--on-primary-subtle);background:var(--primary-subtle);padding:3px 8px;border-radius:var(--r-full)}.w-pg-lessons .dur{font-size:var(--fs-caption);color:var(--text-2);font-weight:600;white-space:nowrap}@media (max-width:479.98px){.w-pg-lessons .dur,.w-pg-lessons .tag{display:none}}.w-pg-lesson{display:grid;grid-gap:clamp(14px,2vw,20px);gap:clamp(14px,2vw,20px);grid-template-columns:minmax(0,1fr)}.w-pg-brief{position:relative;display:flex;flex-direction:column;gap:16px}@media (min-width:1280px){.w-pg-lesson{grid-template-columns:minmax(400px,1fr) minmax(0,1.35fr);align-items:start}.w-pg-lesson .w-pg-brief{position:-webkit-sticky;position:sticky;top:16px;max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}}@media (min-width:1536px){.w-pg-lesson{grid-template-columns:minmax(420px,1fr) minmax(0,1.75fr)}}.w-pg-brief .w-md{font-size:var(--fs-body);line-height:1.7}.w-pg-brief .w-md h2,.w-pg-brief .w-md h3{font-size:var(--fs-title-sm)}.w-pg-brief .w-md pre{font-size:var(--fs-body-sm);padding:12px 13px}.w-pg-brief .task{border-top:1px solid var(--border);padding-top:16px}.w-pg-brief .task h3{display:flex;gap:8px;font-family:var(--disp);font-size:var(--fs-title-sm);margin-bottom:8px;color:var(--primary-text)}.w-pg-brief .task h3,.w-pg-done{align-items:center;font-weight:700}.w-pg-done{align-self:flex-start;display:inline-flex;gap:5px;font-size:var(--fs-caption);padding:4px 10px;border-radius:var(--r-full);background:var(--success-subtle);color:var(--on-success-subtle)}.w-pg-pager{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--border);padding-top:12px;font-size:var(--fs-body-sm);font-weight:600}.w-pg-pager a{display:inline-flex;align-items:center;gap:6px;color:var(--primary-text);max-width:48%}.w-pg-pager a:hover{text-decoration:underline}.flip{transform:rotate(180deg)}.w-pg-pass{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border-radius:var(--r-md);background:var(--success-subtle);color:var(--on-success-subtle);border:1px solid color-mix(in srgb,var(--success) 30%,transparent);animation:pickIn .25s ease both}.w-pg-pass div{flex:1 1;min-width:200px;display:flex;flex-direction:column}.w-pg-pass b{font-size:var(--fs-label)}.w-pg-pass span{font-size:var(--fs-caption)}.w-md{font-size:var(--fs-label);line-height:1.65;color:var(--text);overflow-wrap:anywhere}.w-md>*+*{margin-top:10px}.w-md h1,.w-md h2,.w-md h3,.w-md h4{font-family:var(--disp);font-weight:700;line-height:1.3}.w-md h1,.w-md h2{font-size:var(--fs-title-sm)}.w-md h3,.w-md h4{font-size:var(--fs-body)}.w-md ol,.w-md ul{padding-left:20px}.w-md li+li{margin-top:4px}.w-md a{color:var(--primary-text);text-decoration:underline}.w-md code{font-family:var(--mono);font-size:.9em;background:var(--surface-2);border:1px solid var(--border);padding:1px 5px;border-radius:var(--r-xs);overflow-wrap:break-word;-webkit-box-decoration-break:clone;box-decoration-break:clone}.w-md pre{background:var(--code-bg-2);color:var(--code-fg);padding:12px 14px;border-radius:var(--r-sm);overflow-x:auto;white-space:pre;overflow-wrap:normal;word-break:normal;font-size:var(--fs-caption);line-height:1.55}.w-md pre code{background:none;border:0;padding:0;color:inherit;font-size:inherit}.w-md blockquote{border-left:3px solid var(--primary);padding-left:12px;color:var(--text-2)}.w-md table{border-collapse:collapse;font-size:var(--fs-body-sm)}.w-md td,.w-md th{border:1px solid var(--border);padding:5px 8px;text-align:left}.w-pg-work{display:grid;grid-gap:14px;gap:14px;grid-template-columns:minmax(0,1fr);min-width:0}.w-pg-split{display:none}@media (min-width:1280px){.w-pg-work{grid-template-columns:minmax(0,1fr) 12px var(--tutor-w,400px);column-gap:4px;align-items:start}.w-pg-split{display:grid;place-items:center;align-self:stretch;cursor:col-resize;touch-action:none;border-radius:var(--r-full)}.w-pg-split span{width:4px;height:44px;border-radius:var(--r-full);background:var(--border-2)}.w-pg-split:focus-visible span,.w-pg-split:hover span{background:var(--primary-text)}.w-pg-lesson .w-pg-work .w-pg-split{display:none}}.w-pg-lesson .w-pg-work{grid-template-columns:minmax(0,1fr)}@media (max-width:767.98px){.w-pg-lesson .w-pg-tutor .acts{grid-template-columns:1fr 1fr}}.w-pg-main{min-width:0;display:flex;flex-direction:column;border-radius:var(--r-lg);overflow:hidden;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card)}.w-pg-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 10px;background:var(--surface-2);border-bottom:1px solid var(--border)}.w-pg-bar .lang{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2);padding-left:4px}.w-pg-bar .sp{flex:1 1}.w-pg-bar .btn.ghost.on{background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-pg-editor{height:clamp(300px,46vh,520px);min-height:0}.w-pg-work.page .w-pg-editor{height:clamp(280px,38vh,440px)}.w-pg-stdin{display:flex;flex-direction:column;gap:6px;padding:10px 12px;background:var(--surface-2);border-top:1px solid var(--border)}.w-pg-stdin span{font-size:var(--fs-caption);font-weight:600;color:var(--text-2)}.w-pg-stdin textarea{font-family:var(--mono);font-size:var(--fs-body-sm);color:var(--text);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-xs);padding:8px 10px;resize:vertical}.w-pg-out{border-top:1px solid var(--border);background:var(--surface)}.w-pg-out .tabs{display:flex;gap:2px;padding:6px 8px 0;background:var(--surface-2);border-bottom:1px solid var(--border)}.w-pg-out .tabs button{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2);padding:9px 14px;border:0;border-radius:var(--r-xs) var(--r-xs) 0 0;background:transparent;cursor:pointer}.w-pg-out .tabs button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 0 var(--surface)}.w-pg-out .tabs .n{font-size:var(--fs-caption);padding:1px 6px;border-radius:var(--r-full);background:var(--danger-subtle);color:var(--on-danger-subtle)}.w-pg-out .tabs .n.ok{background:var(--success-subtle);color:var(--on-success-subtle)}.w-pg-out .pane{padding:0}.w-pg-out .hint{color:var(--text-2)}.w-pg-console,.w-pg-out .hint{font-size:var(--fs-label);padding:14px 16px}.w-pg-console{margin:0;min-height:180px;max-height:420px;overflow:auto;font-family:var(--mono);line-height:1.6;color:var(--code-fg);background:var(--code-bg-2);white-space:pre-wrap;overflow-wrap:anywhere}.w-pg-console .e{color:var(--code-err)}.w-pg-console .w{color:var(--code-warn)}.w-pg-console .m{color:var(--code-muted)}.w-pg-preview{display:block;width:100%;height:clamp(240px,34vh,420px);border:0;background:#fff}.w-pg-checks{list-style:none;margin:0;padding:12px 14px;display:flex;flex-direction:column;gap:8px;min-height:180px;max-height:420px;overflow:auto}.w-pg-checks li{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border-radius:var(--r-xs);background:var(--surface-2);border:1px solid var(--border);color:var(--text)}.w-pg-checks li>svg{flex:0 0 auto;margin-top:2px}.w-pg-checks li.ok>svg{color:var(--on-success-subtle)}.w-pg-checks li.no>svg{color:var(--on-danger-subtle)}.w-pg-checks b{font-size:var(--fs-label);font-weight:700}.w-pg-checks p{font-size:var(--fs-label);color:var(--text-2);margin-top:2px}.w-pg-checks .diff{display:grid;grid-template-columns:auto 1fr;grid-gap:4px 10px;gap:4px 10px;margin-top:8px;font-size:var(--fs-body-sm);color:var(--text-2)}.w-pg-checks .diff pre{margin:0;font-family:var(--mono);font-size:var(--fs-body-sm);color:var(--text);background:var(--surface);border:1px solid var(--border);padding:4px 8px;border-radius:var(--r-xs);white-space:pre-wrap}.w-pg-tutor{display:flex;flex-direction:column;min-width:0;height:min(720px,calc(100dvh - 140px));min-height:420px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card)}@media (min-width:1280px){.w-pg-work:not(.w-pg-lesson .w-pg-work) .w-pg-tutor{position:-webkit-sticky;position:sticky;top:16px;height:min(900px,calc(100dvh - 48px))}}.w-pg-tutor header{display:flex;align-items:center;gap:9px;padding:14px 16px 10px}.w-pg-tutor header .ic{width:30px;height:30px;border-radius:var(--r-xs);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-pg-tutor header b{font-family:var(--disp);font-size:var(--fs-title-sm);flex:1 1}.w-pg-tutor .credits{font-size:var(--fs-body-sm);font-weight:700;color:var(--on-primary-subtle);background:var(--primary-subtle);padding:4px 10px;border-radius:var(--r-full);white-space:nowrap}.w-pg-tutor .acts{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;padding:0 16px 12px}.w-pg-tutor .acts .btn{justify-content:flex-start;font-size:var(--fs-label);min-height:var(--ctl-md)}.w-pg-tutor .acts .cost{margin-left:auto;font-size:var(--fs-caption);font-weight:800;color:var(--text-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-full);padding:1px 8px}.w-pg-tutor .feed{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px 16px;border-top:1px solid var(--border);display:flex;flex-direction:column;gap:12px}.w-pg-tutor .empty{font-size:var(--fs-label);color:var(--text-2);line-height:1.55}.w-pg-tutor .entry h4{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--primary-text);margin-bottom:6px}.w-pg-tutor .entry h4 .q{font-size:var(--fs-label);font-weight:600;letter-spacing:0;text-transform:none;color:var(--text-2)}.w-pg-tutor .entry.loading{color:var(--text-2)}.w-pg-tutor .entry .err{font-size:var(--fs-label);color:var(--on-danger-subtle);background:var(--danger-subtle);padding:8px 10px;border-radius:var(--r-xs)}.w-pg-tutor .entry .w-md{font-size:var(--fs-body)}.w-pg-tutor .entry .w-md pre{font-size:var(--fs-body-sm)}.w-pg-tutor .ask{display:flex;gap:8px;align-items:flex-end;padding:12px 16px 14px;border-top:1px solid var(--border)}.w-pg-tutor .ask textarea{flex:1 1;resize:none;min-height:64px;font-family:var(--body);font-size:var(--fs-body);color:var(--text);background:var(--surface-2);border:1px solid var(--border-2);border-radius:var(--r-sm);padding:9px 11px}.w-pg-tutor .ask .btn{width:var(--ctl-lg);padding:0}.w-tutor-answer{display:grid;grid-gap:8px;gap:8px;margin-top:10px;padding:12px;border-radius:var(--r-sm);border:1px solid color-mix(in srgb,var(--success) 55%,var(--border));background:var(--success-subtle)}.w-tutor-answer h5{display:flex;align-items:center;gap:6px;margin:0;font-size:var(--fs-caption);font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--on-success-subtle)}.w-tutor-answer .btn svg,.w-tutor-answer h5 svg{stroke:currentColor;fill:none}.w-tutor-answer>.btn{justify-self:start;background:var(--surface)}.w-tutor-answer .body{display:grid;grid-gap:8px;gap:8px;min-width:0}.w-tutor-answer .for{margin:0;font-size:var(--fs-body-sm);font-weight:700;color:var(--text)}.w-tutor-answer pre{margin:0;max-width:100%;overflow-x:auto;white-space:pre;overflow-wrap:normal;word-break:normal;border-radius:var(--r-xs);padding:10px 12px;font-family:var(--mono);font-size:var(--fs-body-sm);line-height:1.55}.w-tutor-answer pre.code{background:var(--code-bg-2);color:var(--code-fg)}.w-tutor-answer pre.out{background:var(--surface);color:var(--text);border:1px solid var(--border)}.w-tutor-answer h6{margin:4px 0 0;font-size:var(--fs-caption);font-weight:800;color:var(--on-success-subtle);text-transform:uppercase;letter-spacing:.04em}.w-tutor-answer ul{margin:0;padding-left:18px;display:grid;grid-gap:4px;gap:4px;font-size:var(--fs-body-sm);color:var(--text)}.w-tutor-answer ul .w-md{font-size:inherit}.w-tutor-answer .row{display:flex;flex-wrap:wrap;gap:8px}.w-pg-tutor .ask textarea:focus-visible{border-color:var(--primary-text)}.w-pg-steps{display:flex;flex-direction:column;gap:9px;padding:10px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface-2)}.w-pg-steps.on{border-color:color-mix(in srgb,var(--warning) 60%,var(--border))}.w-pg-steps .sum{font-size:var(--fs-body-sm);line-height:1.5}.w-pg-steps .nav{display:flex;align-items:center;gap:8px}.w-pg-steps .nav input{flex:1 1;accent-color:var(--primary-text)}.w-pg-steps .nav .count{font-size:var(--fs-caption);font-weight:700;color:var(--text-2);white-space:nowrap}.w-pg-steps .line{display:flex;gap:8px;align-items:baseline;font-size:var(--fs-body-sm);line-height:1.5}.w-pg-steps .ln{flex:0 0 auto;font-size:var(--fs-caption);font-weight:800;padding:2px 7px;border-radius:var(--r-full);background:var(--warning-subtle);color:var(--on-warning-subtle)}.w-pg-steps .vars{width:100%;border-collapse:collapse;font-size:var(--fs-caption)}.w-pg-steps .vars th{text-align:left;font-size:var(--fs-caption);color:var(--text-2);font-weight:700;padding:3px 6px}.w-pg-steps .vars td{font-family:var(--mono);padding:4px 6px;border-top:1px solid var(--border);overflow-wrap:anywhere}.w-pg-steps .vars tr.chg td{background:var(--warning-subtle)}.w-pg-steps .lb{font-size:var(--fs-caption);font-weight:700;color:var(--text-2)}.w-pg-steps .out{margin:0;font-family:var(--mono);font-size:var(--fs-caption);background:var(--code-bg-2);color:var(--code-fg);padding:8px 10px;border-radius:var(--r-xs);white-space:pre-wrap;max-height:140px;overflow:auto}.w-pg-steps .note{font-size:var(--fs-caption);color:var(--text-2)}.w-pg-nopaste{display:flex;align-items:center;gap:8px;margin:0;padding:8px 12px;font-size:var(--fs-caption);font-weight:600;color:var(--on-warning-subtle);background:var(--warning-subtle);border-top:1px solid var(--border);animation:pickIn .2s ease both}.w-search-pop{position:fixed;z-index:var(--z-dropdown);max-width:calc(100vw - 32px);max-height:min(70vh,520px);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:6px;animation:pickIn .14s ease both}.w-search-group+.w-search-group{margin-top:4px;border-top:1px solid var(--border);padding-top:4px}.w-search-group .hd{padding:8px 10px 4px;font-size:var(--fs-caption);font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--text-2)}.w-search-opt{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:var(--r-sm);color:var(--text)}.w-search-opt svg{flex:0 0 auto;width:16px;height:16px;stroke:var(--text-2);fill:none;stroke-width:2}.w-search-opt .tx{min-width:0;display:flex;flex-direction:column}.w-search-opt b{font-size:var(--fs-body-sm);font-weight:700}.w-search-opt .tx span,.w-search-opt b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-search-opt .tx span{font-size:var(--fs-caption);color:var(--text-2)}.w-search-opt.on,.w-search-opt:hover{background:var(--primary-subtle)}.w-search-opt.on svg{stroke:var(--on-primary-subtle)}.w-search-msg{padding:14px 12px;font-size:var(--fs-body-sm);color:var(--text-2)}.w-search-msg.err{color:var(--on-danger-subtle)}.w-search-skel{display:grid;grid-gap:8px;gap:8px;padding:10px}.w-search-skel span{height:34px;border-radius:var(--r-xs);background:var(--surface-2);animation:skel 1.3s ease-in-out infinite}.w-search-all{display:flex;width:100%;align-items:center;justify-content:center;gap:6px;margin-top:6px;padding:10px;border:0;border-top:1px solid var(--border);background:none;border-radius:0 0 var(--r-sm) var(--r-sm);font:inherit;font-size:var(--fs-caption);font-weight:700;color:var(--on-primary-subtle);cursor:pointer}.w-search-all:hover{background:var(--surface-2)}.w-search-mobile{position:relative;display:block}@media (min-width:768px){.w-search-mobile{display:none}}.w-search-mobile svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:17px;height:17px;stroke:var(--text-2);fill:none;stroke-width:2}.w-search-mobile input{width:100%;font:inherit;font-size:var(--fs-label);color:var(--text);background:var(--surface);border:1px solid var(--border-2);border-radius:var(--r-full);padding:12px 14px 12px 40px}.w-search-btn{display:inline-grid}@media (min-width:768px){.w-search-btn{display:none}}.w-badges li h3{font-family:var(--disp);font-size:var(--fs-label);font-weight:700}.w-badge-bar{margin:-4px 0 16px}@media (min-width:1024px){.w-grid.split.second-wide{grid-template-columns:1fr 1.5fr}}@media (max-width:1023.98px){html{scroll-padding-bottom:calc(96px + env(safe-area-inset-bottom))}.w-canvas{padding-bottom:calc(110px + env(safe-area-inset-bottom))}}.w-state{max-width:520px;margin:clamp(24px,8vh,72px) auto;padding:clamp(24px,4vw,36px);display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-card)}.w-state,.w-state .ic{border-radius:var(--r-lg)}.w-state .ic{width:64px;height:64px;display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle);margin-bottom:6px}.w-state.danger .ic{background:var(--danger-subtle);color:var(--on-danger-subtle)}.w-state .ic svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:2}.w-state h1{font-family:var(--disp);font-size:var(--fs-title);font-weight:800;letter-spacing:-.02em}.w-state p{color:var(--text-2);font-size:var(--fs-label);line-height:1.6;max-width:40ch}.w-state .acts{flex-wrap:wrap;margin-top:10px}.w-state .acts,.w-state-page{display:flex;justify-content:center;gap:8px}.w-state-page{min-height:100dvh;flex-direction:column;align-items:center;padding:24px 16px;background:var(--bg)}.w-state-page .brand{margin-bottom:4px}.w-state-page .w-state{margin:0}.w-themeopt{display:inline-flex;align-items:center;gap:8px}.w-hero .kick{margin:0;font-size:var(--fs-caption);font-weight:700;letter-spacing:.02em;color:#fff}.w-hero .kick+h2{margin-top:6px}.w-hero .btn.ghost-light{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.7)}.w-hero .btn.ghost-light:hover{background:rgba(255,255,255,.12);box-shadow:none}.w-hero .w-skel-rows span{background:rgba(255,255,255,.22)}.w-today{display:grid;grid-gap:10px;gap:10px;align-content:start}.w-today .row{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:color-mix(in srgb,var(--shell-ink-2) 20%,transparent);border:1px solid rgba(255,255,255,.22);color:#fff}.w-today .row>svg{flex:0 0 auto}.w-today .row>span{display:flex;flex-direction:column;min-width:0}.w-today b{font-size:var(--fs-label);font-weight:700}.w-today .row>span>span{font-size:var(--fs-caption);color:rgba(255,255,255,.82)}.w-nextbadge{display:flex;align-items:center;gap:14px}.w-nextbadge .ic{width:52px;height:52px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-nextbadge .ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}.w-nextbadge .tx{display:flex;flex-direction:column;gap:2px}.w-nextbadge b{font-family:var(--disp);font-size:var(--fs-body)}.w-nextbadge .tx span{font-size:var(--fs-body-sm);color:var(--text-2)}.w-skel-rows{display:grid;grid-gap:10px;gap:10px}.w-skel-rows span{display:block;border-radius:var(--r-sm);background:var(--surface-2);animation:skel 1.3s ease-in-out infinite}.w-credit-strip{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:0;padding:12px 16px;border-radius:var(--r-md);background:var(--primary-subtle);color:var(--on-primary-subtle);font-size:var(--fs-body-sm)}.w-credit-strip b{font-weight:800}.w-inline-btn{border:0;background:none;padding:0 2px;font:inherit;font-size:var(--fs-caption);cursor:pointer}.w-hero,.w-pg-hero,.w-side,.w-tabs{--focus:var(--focus-on-dark)}.w-collapse:before{content:"";position:absolute;inset:-8px;border-radius:var(--r-full)}.w-card-head .lnk{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 4px;margin:-12px -4px}.w-skip{position:fixed;top:10px;left:10px;z-index:var(--z-toast);padding:10px 16px;border-radius:var(--r-full);background:var(--surface);color:var(--text);font-weight:700;box-shadow:var(--shadow-card);transform:translateY(-160%);transition:transform .15s}.w-skip:focus-visible{transform:none}.w-main:focus{outline:none}.chart-none{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:16px;border:1px dashed var(--border-2);border-radius:var(--r-md);color:var(--text-2)}.chart-none svg{width:22px;height:22px;stroke:var(--text-2);fill:none;stroke-width:2}.chart-none p{font-size:var(--fs-body-sm);max-width:32ch}.bar2{background:color-mix(in srgb,var(--text-2) 22%,transparent)}.bar2>span{min-width:6px}.w-pg-resize{height:12px;display:grid;place-items:center;cursor:row-resize;touch-action:none;background:var(--surface-2);border-top:1px solid var(--border)}.w-pg-resize span{width:44px;height:4px;border-radius:var(--r-full);background:var(--border-2)}.w-pg-resize:focus-visible span,.w-pg-resize:hover span{background:var(--primary-text)}.w-pg-tutor .acts{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}.w-pg-tutor .acts .btn{white-space:nowrap}.w-eyebrow-link{display:inline-flex;align-items:center;gap:5px;color:var(--primary-text);min-height:32px}.w-eyebrow-link:hover{text-decoration:underline}.w-course .ic,.w-kpi .ic,.w-row .ic{background:var(--primary-subtle);color:var(--on-primary-subtle)}.ol-icontile{display:grid;place-items:center;flex:0 0 auto;background:var(--primary-subtle);color:var(--on-primary-subtle)}.ol-icontile svg{stroke:currentColor;fill:none;stroke-width:2}.ol-icontile.sm{width:32px;height:32px;border-radius:var(--r-xs)}.ol-icontile.md{width:44px;height:44px;border-radius:var(--r-md)}.ol-icontile.lg{width:56px;height:56px;border-radius:var(--r-md)}.ol-icontile.success{background:var(--success-subtle);color:var(--on-success-subtle)}.ol-icontile.warning{background:var(--warning-subtle);color:var(--on-warning-subtle)}.ol-icontile.danger{background:var(--danger-subtle);color:var(--on-danger-subtle)}.w-badges li{opacity:1}.w-badges li:not(.on) .ic{background:var(--surface);border:1px dashed var(--border-2)}.w-badges li .st{color:var(--text-2)}.w-pg-lang .badge-lang{color:color-mix(in srgb,var(--lang) 62%,var(--text))}.w-day{display:grid;grid-gap:12px;gap:12px;margin-bottom:var(--gap,16px)}.w-day-note{display:flex;align-items:flex-start;gap:8px;margin:0;padding:10px 14px;border-radius:var(--r-md);background:var(--primary-subtle);color:var(--on-primary-subtle);font-size:var(--fs-label);font-weight:600;line-height:1.45}.w-day-note svg{flex:0 0 auto;margin-top:2px}.w-comeback h2{margin:0;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-comeback p{margin:6px 0 14px;color:var(--text-2);font-size:var(--fs-body);line-height:1.55}.w-qotd{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:4px 14px;gap:4px 14px;align-items:start}.w-qotd .ic{grid-row:span 2;width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-qotd.solved .ic{background:var(--primary-fill);color:var(--primary-contrast)}.w-qotd .tx{min-width:0}.w-qotd .kick{margin:0;font-size:var(--fs-body-sm);font-weight:700;color:var(--primary-text)}.w-qotd h2{margin:2px 0 0;font-family:var(--disp);font-size:var(--fs-title-sm);line-height:1.25}.w-qotd p{margin:4px 0 0;font-size:var(--fs-label);line-height:1.5;color:var(--text-2)}.w-qotd .btn{grid-column:2;justify-self:start;margin-top:10px;min-height:44px}.w-resume{display:flex;align-items:center;gap:14px;color:var(--text);text-decoration:none;min-height:64px}.w-resume:hover{border-color:var(--primary-text)}.w-resume .ic{width:40px;height:40px;border-radius:var(--r-sm);flex:0 0 auto;display:grid;place-items:center;background:var(--surface-2);color:var(--primary-text)}.w-resume .tx{display:flex;flex-direction:column;min-width:0;flex:1 1}.w-resume .kick{font-size:var(--fs-body-sm);font-weight:700;color:var(--primary-text)}.w-resume :is(b,h2){font-size:var(--fs-body);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-resume .muted{font-size:var(--fs-body-sm)}.w-live{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-label);font-weight:600;color:var(--text-2)}.w-live i{width:8px;height:8px;border-radius:var(--r-full);background:#12B27A;box-shadow:0 0 0 3px rgba(18,178,122,.2)}.w-goal{display:grid;grid-gap:6px;gap:6px;margin-bottom:12px;font-size:var(--fs-label);font-weight:600;color:var(--text-2)}.w-goal .bar{height:8px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden}.w-goal .bar i{display:block;height:100%;border-radius:inherit;background:var(--primary-fill)}.w-plan-suggest{margin:0 0 6px;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2)}.w-pills{display:flex;flex-wrap:wrap;gap:8px}.w-sub{margin:16px 0 8px;font-size:var(--fs-label);font-weight:700}.w-qotd-bar{align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.w-qotd-bar,.w-qotd-tracks{display:flex;flex-wrap:wrap}.w-qotd-tracks{gap:8px}.w-qotd-title{margin:0 0 10px;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-qotd-done{display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:12px}.w-qotd-done .ic{width:48px;height:48px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto;background:var(--primary-fill);color:var(--primary-contrast)}.w-qotd-done .tx{flex:1 1;min-width:200px}.w-qotd-done h2{margin:0;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-qotd-done dl{display:flex;gap:24px;margin:6px 0 0}.w-qotd-done dt{font-size:var(--fs-body-sm);color:var(--text-2);font-weight:600}.w-qotd-done dd{margin:0;font-size:var(--fs-title-sm);font-weight:800}.w-qotd-done p{margin:6px 0 0;font-size:var(--fs-label)}.w-qotd-done .btn{min-height:44px}.w-plan-suggest+.w-rows .tx{display:flex;align-items:center;min-height:44px;flex:1 1;color:inherit;text-decoration:none}.w-plan-suggest+.w-rows .tx:hover .t{color:var(--primary-text)}.w-feed-tabs{margin-bottom:12px}.w-feed{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-gap:10px;gap:10px}.w-feed-row{display:grid;grid-template-columns:40px minmax(0,1fr);grid-gap:12px;gap:12px;align-items:start}.w-feed-row .av{width:40px;height:40px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle);font-weight:800;font-size:var(--fs-title-sm)}.w-feed-row.system{background:var(--surface-2)}.w-feed-row.system .av{border-radius:var(--r-sm);background:var(--primary-fill);color:var(--primary-contrast)}.w-feed-row .tx{min-width:0}.w-feed-row .sys{font-size:var(--fs-body-sm);font-weight:800;color:var(--primary-text)}.w-feed-row p{margin:0;font-size:var(--fs-body);line-height:1.5;overflow-wrap:anywhere}.w-feed-row .when{font-size:var(--fs-body-sm);color:var(--text-2)}.w-feed-row .acts{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px;margin-top:4px}.w-feed-row .acts .lnk{display:inline-flex;align-items:center;min-height:44px;font-size:var(--fs-label);font-weight:700;color:var(--primary-text)}.w-feed-row .reacts{display:flex;gap:6px;margin-left:auto}.w-feed-row .reacts button{min-width:52px;min-height:44px;padding:0 12px;border-radius:var(--r-full);cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-label);font-weight:700}.w-feed-row .reacts button.on{border-color:var(--primary-text);background:var(--primary-subtle)}.w-code-row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0 0 4px}.w-code{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin:0 -10px;padding:2px 10px;border:0;border-radius:var(--r-sm);background:none;color:var(--text);cursor:pointer;font-family:var(--mono);font-size:var(--fs-title);font-weight:800;letter-spacing:.12em}.w-code:hover{background:var(--surface-2)}.w-code svg{flex:0 0 auto;stroke:var(--text-2);fill:none;stroke-width:2}.w-code-ok{display:inline-flex;align-items:center;font-size:var(--fs-body-sm);font-weight:700;color:var(--on-success-subtle)}.w-code-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.w-follow{display:grid;grid-gap:6px;gap:6px;margin-top:16px}.w-follow label{font-size:var(--fs-label);font-weight:700}.w-follow .row{display:flex;gap:8px}.w-follow input{flex:1 1;min-width:0;min-height:44px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-title-sm);letter-spacing:.08em;text-transform:uppercase}.w-people{list-style:none;margin:0;padding:0}.w-person{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 0;border-top:1px solid var(--border)}.w-person .tx{display:flex;flex-direction:column;min-width:0;flex:1 1 160px;font-size:var(--fs-body)}.w-person .tx .muted{font-size:var(--fs-body-sm)}.w-person .btns{display:flex;gap:6px}.w-person .btn{min-height:44px}.w-choices{display:grid;grid-gap:8px;gap:8px}.w-choice{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;min-height:44px;cursor:pointer;text-align:left;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);font:inherit}.w-choice.on{border-color:var(--primary-text);background:var(--primary-subtle)}.w-choice input{margin-top:3px;width:18px;height:18px;flex:0 0 auto;accent-color:var(--primary-fill)}.w-choice>span{display:flex;flex-direction:column;gap:2px}.w-choice b{font-size:var(--fs-body)}.w-choice span span{font-size:var(--fs-label);color:var(--text-2);line-height:1.45}.w-help{list-style:none;margin:0;padding:0;display:grid;grid-gap:14px;gap:14px}.w-help>li{display:flex;flex-direction:column;gap:4px;padding-top:12px;border-top:1px solid var(--border);font-size:var(--fs-label)}.w-help>li:first-child{border-top:0;padding-top:0}.w-help b{font-size:var(--fs-body)}.w-help .kick{font-size:var(--fs-body-sm);font-weight:700;color:var(--primary-text)}.w-help .ok{gap:6px}.w-help .lnk,.w-help .ok{display:inline-flex;align-items:center;font-weight:700;color:var(--primary-text)}.w-help .lnk{min-height:44px}.w-hints{display:grid;grid-gap:6px;gap:6px}.w-hint-got{margin:4px 0 0;font-size:var(--fs-label);line-height:1.5}.w-help-ask{margin-top:14px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2)}.w-help-ask p{margin:0 0 10px;font-size:var(--fs-label);line-height:1.5;color:var(--text-2)}.w-age-save{margin-top:12px}.w-age-save .btn,.w-feed~.btn,.w-follow .btn,.w-recap+.btn{min-height:44px}.w-recap{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));grid-gap:8px;gap:8px;margin:0 0 14px}.w-recap>div{padding:12px;border-radius:var(--r-md);background:var(--surface-2)}.w-recap dd{margin:0;font-size:var(--fs-title-sm);font-weight:800}.w-recap dt{font-size:var(--fs-body-sm);color:var(--text-2)}.w-practice-list{margin-top:12px}.w-practice-list .w-sub{margin-top:0}.w-practice-list .w-rows>li{border-top:0}.w-practice-list .w-rows>li+li{box-shadow:inset 0 1px 0 var(--border)}.w-practice-grades .w-seg{position:relative}.w-practice-grades .w-seg:after{content:"";position:absolute;inset:-3px 0}.w-practice-row{display:flex;align-items:center;gap:14px;min-height:64px;padding:10px 0;color:var(--text);text-decoration:none}.w-practice-row:hover h3{color:var(--primary-text)}.w-practice-row .ic{width:40px;height:40px;border-radius:var(--r-sm);flex:0 0 auto;display:grid;place-items:center;background:var(--surface-2);color:var(--primary-text)}.w-practice-row .ic.done{background:var(--primary-fill);color:var(--primary-contrast)}.w-practice-row .tx{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1}.w-practice-row h3{font-size:var(--fs-body);font-weight:700}.w-practice-row .muted{font-size:var(--fs-body-sm)}.w-practice-row .bar{height:6px;margin-top:4px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden}.w-practice-row .bar i{display:block;height:100%;background:var(--primary-fill)}.w-practice-home .go,.w-practice-row .go{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;font-size:var(--fs-label);font-weight:700;color:var(--primary-text)}.w-practice-dots{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;padding:0}.w-practice-dots li{width:22px;height:8px;border-radius:var(--r-full);background:var(--surface-2)}.w-practice-dots li.right{background:var(--primary-fill)}.w-practice-dots li.now{outline:2px solid var(--primary-text);outline-offset:2px}.w-practice-q .kick{margin:0 0 6px;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2)}.w-practice-q .prompt{font-size:var(--fs-title-sm);line-height:1.55}.w-practice-q .prompt p{margin:0 0 8px}.w-practice-form{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.w-practice-form input{flex:1 1 180px;min-width:0;min-height:52px;padding:0 16px;border-radius:var(--r-md);border:1.5px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-title-sm);font-weight:700}.w-practice-form input:focus-visible{outline:3px solid var(--focus);outline-offset:1px;border-color:var(--primary-text)}.w-practice-form input[aria-invalid]{border-color:var(--danger,#C2410C)}.w-practice-form .btn,.w-practice-form button{min-height:52px;flex:1 0 auto}.w-practice-choices{display:grid;grid-gap:10px;gap:10px;margin-top:14px}.w-practice-choice{min-height:52px;padding:10px 16px;border-radius:var(--r-md);text-align:left;border:1.5px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-title-sm);font-weight:600;cursor:pointer}.w-practice-choice.right,.w-practice-choice:hover:not(:disabled){border-color:var(--primary-text)}.w-practice-choice.right{background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-practice-choice.wrong{border-color:var(--danger,#C2410C)}.w-practice-wrong{margin:10px 0 0;font-size:var(--fs-body);font-weight:700;color:var(--danger,#C2410C)}.w-practice-hint-btn{min-height:44px;margin-top:6px;padding:0;background:none;border:0;font:inherit;font-size:var(--fs-label);cursor:pointer}.w-practice-hint{margin:10px 0 0;padding:10px 14px;border-radius:var(--r-md);background:var(--surface-2);font-size:var(--fs-body)}.w-practice-right{margin-top:14px;padding:14px;border-radius:var(--r-md);background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-practice-right b{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-title-sm)}.w-practice-right p{margin:6px 0 0;font-size:var(--fs-body);line-height:1.55}.w-practice-right .btn{margin-top:12px;min-height:48px}.w-practice-done{text-align:center}.w-practice-done .ic{width:56px;height:56px;margin:0 auto 10px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-fill);color:var(--primary-contrast)}.w-practice-done h2{margin:0;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-practice-done p{margin:6px 0 0;color:var(--text-2);font-size:var(--fs-body)}.w-practice-done .xp{font-size:var(--fs-title-sm);font-weight:800;color:var(--primary-text)}.w-practice-done .cta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:16px}.w-practice-done .btn{min-height:48px}.w-practice-home{margin-top:var(--gap,16px)}@media (max-width:479.98px){.w-practice-home .go{display:none}}.w-pub{max-width:720px;margin:0 auto;padding:16px 16px 40px;display:grid;grid-gap:16px;gap:16px;min-height:100dvh;align-content:start}.w-pub-brand{display:inline-flex;align-items:center;min-height:44px;justify-self:start}.w-pub-head{display:flex;align-items:center;gap:14px}.w-pub-head .tx{min-width:0}.w-pub-head h1{margin:0;font-family:var(--disp);font-size:var(--fs-title);line-height:1.25;overflow-wrap:anywhere}.w-pub-head .by{margin:4px 0 0;font-size:var(--fs-label)}.w-pub-head .by a{display:inline-flex;align-items:center;min-height:44px;color:var(--primary-text);font-weight:700}.w-pub-avatar{width:56px;height:56px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-pub-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}@media (min-width:480px){.w-pub-stats{grid-template-columns:repeat(3,minmax(0,1fr))}}.w-pub-stats li{display:grid;grid-gap:2px;gap:2px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text-2)}.w-pub-stats b{font-family:var(--disp);font-size:var(--fs-title);color:var(--text)}.w-pub-stats span{font-size:var(--fs-body-sm);color:var(--text-2);line-height:1.35}.w-pub .w-card .w-sub{margin-top:0}.w-pub-empty{margin:0;font-size:var(--fs-label);color:var(--text-2)}.w-pub-badges{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.w-pub-badges li{display:inline-flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:var(--r-full);border:1px solid var(--border);font-size:var(--fs-label);font-weight:700}.w-pub-badges .ic{width:32px;height:32px;border-radius:var(--r-full);display:grid;place-items:center}.w-pub-list{list-style:none;margin:0;padding:0}.w-pub-list li+li{border-top:1px solid var(--border)}.w-pub-list .row,.w-pub-list a{display:flex;align-items:center;gap:10px;min-height:48px;color:var(--text);font-size:var(--fs-body)}.w-pub-list .nm{flex:1 1;min-width:0;font-weight:700;overflow-wrap:anywhere}.w-pub-list .lang,.w-pub-list .st{font-size:var(--fs-body-sm);color:var(--text-2)}.w-pub-list .row{flex-wrap:wrap;padding:6px 0}.w-pub-list .row .btns{display:flex;gap:6px}.w-pub-list .row .btn{min-height:44px;height:auto}.w-pub-code{border-radius:var(--r-md);overflow:hidden;background:#282c34;min-height:80px}.w-pub-code .w-pg-editor{height:100%}.w-pub-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.w-pub-foot .btn{min-height:48px;height:auto}.w-pub-report{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 6px;background:none;border:0;font:inherit;font-size:var(--fs-label);font-weight:700;color:var(--text-2);cursor:pointer}.w-pub-report:hover{color:var(--text);text-decoration:underline}.w-pub-sent{margin:0;font-size:var(--fs-label);color:var(--text-2)}.w-pub-link{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.w-pub-link input{flex:1 1 200px;min-width:0;min-height:44px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--fs-label)}.w-pub-link .btn{min-height:44px;height:auto}.w-publish-field{display:grid;grid-gap:6px;gap:6px}.w-publish-field label{font-size:var(--fs-label);font-weight:700}.w-publish-field input{min-height:44px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-title-sm)}.w-publish-field .count{font-size:var(--fs-body-sm);color:var(--text-2);text-align:right}.w-publish-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:10px}.w-publish-bar .btn{min-height:44px;height:auto}.w-modal-head button{width:44px;height:44px;margin:-6px -6px 0 0}.w-kids{display:flex;gap:12px;align-items:flex-start}.w-kids .ic{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-kids h2{margin:0;font-size:var(--fs-title-sm);font-weight:800}.w-kids p{margin:4px 0 0;font-size:var(--fs-label);line-height:1.5;color:var(--text-2)}.w-record{display:grid;grid-gap:16px;gap:16px;max-width:760px}.w-record-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}.w-record-head h2{margin:0;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-record-head p{margin:4px 0 0;font-size:var(--fs-label);color:var(--text-2)}.w-record-head .btn{min-height:44px;height:auto}.w-record-totals{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px}@media (min-width:480px){.w-record-totals{grid-template-columns:repeat(3,minmax(0,1fr))}}.w-record-totals li{padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-md);display:grid;grid-gap:2px;gap:2px}.w-record-totals b{font-size:var(--fs-title-sm);font-family:var(--disp)}.w-record-totals span{font-size:var(--fs-body-sm);color:var(--text-2)}.w-record-list{width:100%;border-collapse:collapse;font-size:var(--fs-label)}.w-record-list td,.w-record-list th{text-align:left;padding:8px 6px;border-top:1px solid var(--border);vertical-align:top}.w-record-list th{font-size:var(--fs-body-sm);color:var(--text-2);font-weight:700;border-top:0}.w-record-list td:last-child{white-space:nowrap;color:var(--text-2)}@media print{@page{size:A4;margin:14mm}body,html{background:#fff!important;color:#000!important}body *{visibility:hidden}.w-record,.w-record *{visibility:visible;color:#000!important}.w-record{position:absolute;left:0;top:0;width:100%;max-width:none;gap:10px}.w-record .no-print{display:none!important}.w-record .w-card{box-shadow:none;border-color:#bbb;padding:10px 12px;page-break-inside:avoid;break-inside:avoid}.w-record-totals{grid-template-columns:repeat(3,1fr)}.w-record-totals li{border-color:#bbb}.w-record-list td,.w-record-list th{border-color:#ccc;padding:4px 6px;font-size:var(--fs-caption)}}.w-family-intro{display:flex;gap:14px;align-items:flex-start}.w-family-intro .ic{width:44px;height:44px;border-radius:var(--r-md);flex:0 0 auto;display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-family-intro .ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}.w-family-intro h2{margin:0;font-size:var(--fs-title-sm);font-weight:800}.w-family-intro p{margin:4px 0 8px;font-size:var(--fs-label);line-height:1.5;color:var(--text-2)}.w-family-intro ul{margin:0;padding-left:18px;font-size:var(--fs-body-sm);line-height:1.6;color:var(--text-2)}.w-family-open{min-height:52px}.w-kid-card .hd{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.w-kid-card .av{width:48px;height:48px;border-radius:var(--r-full);display:grid;place-items:center;flex:0 0 auto;background:var(--brand-grad);color:#fff;font-family:var(--disp);font-weight:800;font-size:var(--fs-title-sm)}.w-kid-card .tx{flex:1 1;min-width:0}.w-kid-card h2{margin:0;font-size:var(--fs-title-sm);font-weight:800;overflow-wrap:anywhere}.w-kid-card .tx p{margin:2px 0 0;font-size:var(--fs-body-sm);color:var(--text-2);font-weight:600}.w-kid-card .acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.w-kid-progress{margin-top:14px;border-top:1px solid var(--border);padding-top:14px}.w-kid-progress .nums{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.w-kid-progress .nums li{background:var(--surface-2);border-radius:var(--r-sm);padding:10px 8px;text-align:center}.w-kid-progress .nums b{display:block;font-family:var(--disp);font-size:var(--fs-title-sm);font-weight:800}.w-kid-progress .nums span{display:block;font-size:var(--fs-caption);color:var(--text-2);font-weight:600;line-height:1.3}.w-kid-progress .recent{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px;font-size:var(--fs-body-sm)}.w-kid-progress .recent li{display:flex;align-items:center;gap:8px}.w-kid-progress .recent svg{stroke:var(--text-2);fill:none;stroke-width:2;flex:0 0 auto}.w-kid-progress .recent .t{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}@media (max-width:479.98px){.w-kid-progress .nums{grid-template-columns:repeat(2,minmax(0,1fr))}}.w-pin-input{letter-spacing:.5em;font-size:var(--fs-title-sm)!important;max-width:160px}.k-app{min-height:100dvh;background:var(--bg);color:var(--text);font-size:18px;line-height:1.5;background-image:radial-gradient(circle at 12% 0,color-mix(in srgb,var(--primary) 12%,transparent),transparent 42%),radial-gradient(circle at 100% 30%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 38%)}.k-app main{outline:none}.k-screen{max-width:760px;margin:0 auto;padding:14px 16px 40px;display:flex;flex-direction:column;gap:16px}.k-app h1{font-family:var(--disp);font-weight:800;font-size:clamp(26px,6vw,34px);line-height:1.15;letter-spacing:-.02em;margin:0;overflow-wrap:anywhere}.k-app svg{flex:0 0 auto}.k-app a>svg,.k-app b>svg,.k-app button>svg,.k-app li>svg,.k-h2>svg{stroke:currentColor;fill:none;stroke-width:2.2}.k-btn{min-height:56px;padding:12px 24px;border-radius:var(--r-lg);border:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;background:var(--primary-fill);color:var(--primary-contrast);font:inherit;font-weight:800;font-size:19px;text-decoration:none;box-shadow:0 6px 0 color-mix(in srgb,var(--primary-fill) 60%,#000);transition:transform .1s,box-shadow .1s}.k-btn:active{transform:translateY(4px);box-shadow:0 2px 0 color-mix(in srgb,var(--primary-fill) 60%,#000)}.k-btn:disabled{background:var(--disabled-surface);color:var(--disabled-text);border-color:transparent;box-shadow:none;cursor:not-allowed}.k-btn.ghost{background:var(--surface);color:var(--primary-text);box-shadow:0 6px 0 var(--border-2);border:2px solid var(--border-2)}.k-btn.sm{min-height:48px;padding:8px 16px;font-size:16px;box-shadow:none}.k-link{background:none;border:none;color:var(--primary-text);font:inherit;font-weight:700;text-decoration:underline;cursor:pointer;min-height:56px;display:inline-flex;align-items:center;justify-content:center}.k-note{margin:0;padding:14px 16px;border-radius:var(--r-md);background:var(--danger-subtle);color:var(--on-danger-subtle);font-weight:700}.k-note.warn{background:var(--warning-subtle);color:var(--on-warning-subtle)}.k-card{background:var(--surface);border:2px solid var(--border);padding:20px}.k-card,.k-skel{border-radius:var(--r-lg)}.k-skel{background:var(--surface-2);animation:skel 1.4s ease-in-out infinite}.k-empty{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}.k-empty p{margin:0}.k-picker,.k-pin-screen{align-items:center;text-align:center;padding-top:32px}.k-who{list-style:none;margin:0;padding:0;width:100%;max-width:420px;display:grid;grid-gap:12px;gap:12px}.k-who button{width:100%;min-height:80px;padding:12px 18px;border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:22px;font-weight:800;display:flex;align-items:center;gap:14px;cursor:pointer;text-align:left}.k-who button:hover{border-color:var(--primary)}.k-who .nm{flex:1 1;min-width:0;overflow-wrap:anywhere}.k-app .av{width:56px;height:56px;border-radius:var(--r-full);display:grid;place-items:center;flex:0 0 auto;background:var(--brand-grad);color:#fff;font-family:var(--disp);font-weight:800;font-size:26px}.k-app .av.big{width:88px;height:88px;font-size:40px}.k-back{align-self:flex-start;min-height:56px;display:inline-flex;gap:8px;background:none;border:none;font:inherit;font-weight:700;color:var(--text-2);cursor:pointer}.k-back,.k-pin{align-items:center}.k-pin{display:flex;flex-direction:column;gap:20px;width:100%}.k-pin .dots{display:flex;gap:16px}.k-pin .dots span{width:22px;height:22px;border-radius:var(--r-full);border:3px solid var(--primary)}.k-pin .dots span.on{background:var(--primary)}.k-pin .keys{display:grid;grid-template-columns:repeat(3,minmax(64px,88px));grid-gap:12px;gap:12px}.k-pin .keys button{height:72px;border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-family:var(--disp);font-size:30px;font-weight:800;cursor:pointer;display:grid;place-items:center;box-shadow:0 4px 0 var(--border-2)}.k-pin .keys button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--border-2)}.k-pin .keys button:disabled{background:var(--disabled-surface);color:var(--disabled-text);border-color:transparent;box-shadow:none;cursor:not-allowed}@media (max-width:479.98px){.k-pin .keys button{height:62px}.k-pin .keys{gap:10px}}.k-hello{display:flex;align-items:center;gap:14px}.k-hello p{margin:4px 0 0}.k-hello p,.k-live{color:var(--text-2)}.k-live{margin:0;display:flex;align-items:center;gap:8px;font-weight:600}.k-live i{width:10px;height:10px;border-radius:var(--r-full);background:var(--success)}.k-h2{display:flex;align-items:center;gap:10px;margin:8px 0 0;font-family:var(--disp);font-size:24px;font-weight:800}.k-h2 svg{color:var(--primary-text)}.k-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:12px;gap:12px}@media (max-width:479.98px){.k-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}}.k-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.k-tile{min-height:120px;height:100%;padding:14px;border-radius:var(--r-lg);background:var(--surface);border:2px solid var(--border);color:var(--text);text-decoration:none;display:flex;flex-direction:column;gap:6px;box-shadow:0 5px 0 var(--border-2);transition:transform .1s,border-color .12s}.k-tile:hover{border-color:var(--primary)}.k-tile:active{transform:translateY(3px)}.k-tile b{font-size:18px;line-height:1.25;overflow-wrap:anywhere}.k-tile span{color:var(--text-2);font-size:16px}.k-tile .n{width:40px;height:40px;border-radius:var(--r-md);display:grid;place-items:center;font-family:var(--disp);font-weight:800;font-size:15px;background:var(--primary-subtle);color:var(--on-primary-subtle)}.k-tile.done{border-color:color-mix(in srgb,var(--success) 50%,var(--border))}.k-tile.done .n{background:var(--success-subtle);color:var(--on-success-subtle)}.k-tile.wide{min-height:88px;position:relative;padding-right:48px}.k-tile.wide>svg{position:absolute;right:16px;top:50%;transform:translateY(-50%);color:var(--success)}.k-blockly{width:100%;height:clamp(380px,58vh,560px);border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface);overflow:hidden;position:relative;z-index:0;isolation:isolate}.k-blockly .blocklyText{font-size:15px}.k-actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:12px;gap:12px}.k-actions .k-btn{white-space:nowrap}.k-output{background:#0F2326;color:#E7FAFB;border-radius:var(--r-lg);padding:14px 16px}.k-output h2{margin:0 0 6px;font-size:15px;text-transform:uppercase;letter-spacing:.06em;opacity:.7}.k-output pre{margin:0;font-family:var(--mono,ui-monospace,Menlo,monospace);font-size:18px;white-space:pre-wrap;overflow-wrap:anywhere}.k-output .err{margin:0;color:#FFC3B8;font-weight:700}.k-checks{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.k-checks li{display:flex;align-items:flex-start;gap:10px;padding:12px 14px;border-radius:var(--r-md);background:var(--danger-subtle);color:var(--on-danger-subtle);font-weight:700}.k-checks li.ok{background:var(--success-subtle);color:var(--on-success-subtle)}.k-checks small{display:block;font-weight:600;font-size:16px;margin-top:2px}.k-toggle{min-height:56px;border-radius:var(--r-md);border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:10px;cursor:pointer}.k-code p{margin:0 0 8px;color:var(--text-2)}.k-code pre{margin:0;background:#0F2326;color:#E7FAFB;border-radius:var(--r-lg);padding:14px 16px;overflow-x:auto;font-size:17px;line-height:1.5}.k-q{display:flex;flex-direction:column;gap:14px}.k-q .kick{margin:0;font-size:15px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em}.k-q .prompt{margin:0;font-size:24px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}.k-choices{display:grid;grid-gap:10px;gap:10px}.k-choices button{min-height:64px;padding:10px 18px;border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:21px;font-weight:800;cursor:pointer;text-align:left}.k-choices button.right{background:var(--success-subtle);border-color:var(--success);color:var(--on-success-subtle)}.k-choices button.wrong{background:var(--warning-subtle);border-color:var(--warning);color:var(--on-warning-subtle)}.k-answer{display:flex;gap:10px;flex-wrap:wrap}.k-answer input{flex:1 1 160px;min-width:0;min-height:64px;padding:10px 16px;border-radius:var(--r-lg);border:2px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-size:24px;font-weight:800}.k-answer input[aria-invalid]{border-color:var(--warning)}.k-answer .k-btn{flex:0 0 auto}.k-try{font-weight:800;color:var(--on-warning-subtle);background:var(--warning-subtle);padding:10px 14px}.k-hint,.k-try{margin:0;border-radius:var(--r-md)}.k-hint{padding:12px 14px;background:var(--info-subtle);color:var(--on-info-subtle)}.k-right{display:flex;flex-direction:column;gap:10px}.k-right b{display:inline-flex;align-items:center;gap:8px;color:var(--on-success-subtle);font-size:22px}.k-right p{margin:0}.k-paper{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}.k-paper p{margin:0}.k-pdf .w-pdf-bar .tx b{font-size:16px}.k-stars{display:inline-flex;gap:2px}.k-stars svg{fill:var(--surface-2);stroke:var(--border-2);stroke-width:1.5}.k-stars svg.on{fill:var(--warning);stroke:color-mix(in srgb,var(--warning) 70%,#000)}.k-app .k-stars svg,.k-tile .k-stars svg{stroke-width:1.5}.k-list .k-tile.wide{min-height:80px}.k-tile.wide b{display:inline-flex;align-items:center}.k-chess-task{display:flex;flex-direction:column;gap:8px;padding:16px 18px}.k-chess-task .kick{margin:0;font-size:15px;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em}.k-chess-task .prompt{margin:0;font-size:21px;font-weight:800;line-height:1.3;overflow-wrap:anywhere}.k-ok{margin:0;font-weight:800;color:var(--on-success-subtle);background:var(--success-subtle);padding:10px 14px;border-radius:var(--r-md)}.k-howto{margin:0;color:var(--text-2)}.k-board{width:100%;max-width:520px;margin:0 auto;aspect-ratio:1;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(8,minmax(0,1fr));border-radius:var(--r-md);overflow:hidden;border:4px solid #6b4f2a;box-shadow:0 6px 0 color-mix(in srgb,#6B4F2A 70%,#000);container-type:inline-size}.k-board .sq{position:relative;border:none;padding:0;margin:0;background:#F3E3C3;display:grid;place-items:center;cursor:pointer;font:inherit;min-width:0;min-height:0;overflow:hidden;touch-action:manipulation}.k-board .sq.dark{background:#B88B5A}.k-board .sq.last{background:color-mix(in srgb,#F2CB4C 55%,#F3E3C3)}.k-board .sq.dark.last{background:color-mix(in srgb,#F2CB4C 50%,#B88B5A)}.k-board .sq.picked{box-shadow:inset 0 0 0 4px var(--primary);background:color-mix(in srgb,var(--primary) 30%,#F3E3C3)}.k-board .sq.go:after{width:30%;height:30%;background:color-mix(in srgb,var(--primary-fill) 70%,transparent)}.k-board .sq.go:after,.k-board .sq.take:after{content:"";border-radius:var(--r-full);position:absolute}.k-board .sq.take:after{inset:6%;border:4px solid color-mix(in srgb,var(--primary-fill) 75%,transparent)}.k-board .sq:focus-visible{outline:3px solid var(--primary);outline-offset:-3px;z-index:1}.k-board .pc{font-size:11.5cqw;line-height:1;position:relative;z-index:1;font-family:Segoe UI Symbol,Noto Sans Symbols\ 2,Apple Symbols,DejaVu Sans,serif;-webkit-user-select:none;-moz-user-select:none;user-select:none}.k-board .pc.w{color:#FFFFFF;text-shadow:0 0 1px #1D1D1D,0 0 1px #1D1D1D,0 1px 1px #1D1D1D,1px 0 1px #1D1D1D,-1px 0 1px #1D1D1D,0 -1px 1px #1D1D1D}.k-board .pc.b{color:#1D1D1D;text-shadow:0 1px 0 rgba(255,255,255,.25)}.k-board .star{width:62%;height:62%;fill:var(--warning);stroke:color-mix(in srgb,var(--warning) 60%,#000);stroke-width:1.2}.k-board i{position:absolute;font-style:normal;font-size:11px;font-weight:800;line-height:1;opacity:.7;color:#3E2A12}.k-board .rk{left:3px;top:3px}.k-board .fl{right:3px;bottom:2px}.k-total{margin:0;display:flex;flex-direction:column;gap:2px;padding:14px 18px;border-radius:var(--r-lg);background:var(--warning-subtle);color:var(--on-warning-subtle)}.k-total b{font-family:var(--disp);font-size:26px}.k-stickers{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));grid-gap:10px;gap:10px}@media (max-width:479.98px){.k-stickers{grid-template-columns:repeat(2,minmax(0,1fr))}}.k-stickers li{min-height:130px;border-radius:var(--r-lg);border:2px dashed var(--border-2);background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:4px;padding:10px;color:var(--text-2)}.k-stickers li.on{border-style:solid;border-color:var(--border);background:var(--surface);color:var(--text)}.k-stickers .em{font-size:44px;line-height:1.1}.k-stickers li:not(.on) .em{font-family:var(--disp);font-weight:800}.k-stickers b{font-size:17px;overflow-wrap:anywhere}.k-stickers span:not(.em){font-size:15px}.k-outfit{align-items:center;text-align:center}.k-outfit .k-btn{width:100%}.k-app svg.dim{opacity:.35;filter:grayscale(1)}.k-app :focus-visible{outline:3px solid var(--focus);outline-offset:3px}.k-btn:disabled{transform:none;filter:none}.k-bar{position:-webkit-sticky;position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:10px;min-height:76px;margin:-14px -16px 0;padding:10px 16px;background:color-mix(in srgb,var(--bg) 86%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.k-round{position:relative;width:56px;height:56px;flex:0 0 auto;border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface);border:2px solid var(--border);color:var(--text);text-decoration:none;cursor:pointer;box-shadow:0 3px 0 var(--border-2);padding:0;font:inherit}.k-round:active{transform:translateY(2px);box-shadow:0 1px 0 var(--border-2)}.k-app .k-bar-title{flex:1 1;min-width:0;font-size:20px;line-height:1.15;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:break-word}@media (max-width:479.98px){.k-bar{flex-wrap:wrap;row-gap:4px}.k-app .k-bar-title{order:3;flex-basis:100%;font-size:22px;padding:0 2px}}.k-brand{flex:1 1;min-width:0;display:inline-flex;align-items:center;gap:10px;font-family:var(--disp);font-size:22px;font-weight:800}.k-brand-mark{width:40px;height:40px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-fill);color:var(--primary-contrast)}.k-bar-end{margin-left:auto;display:flex;align-items:center;gap:8px;flex:0 0 auto}.k-chip{display:inline-flex;align-items:center;gap:6px;height:40px;padding:0 14px 0 10px;border-radius:var(--r-full);background:var(--warning-subtle);color:var(--on-warning-subtle);font-weight:800;font-size:18px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.k-chapter-stars svg,.k-chip svg{fill:var(--warning);stroke:none}.k-exit{border-style:dashed;background:transparent;color:var(--text-2);box-shadow:none;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.k-exit .k-ring{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);transform:rotate(-90deg);pointer-events:none}.k-exit .k-ring circle{fill:none;stroke:var(--warning);stroke-width:4;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;opacity:0}.k-exit.holding{border-color:transparent;background:var(--warning-subtle);color:var(--on-warning-subtle)}.k-exit.holding .k-ring circle{opacity:1;stroke-dashoffset:0;transition:stroke-dashoffset 2s linear}.k-exit-tip{position:absolute;top:calc(100% + 10px);right:0;white-space:nowrap;padding:6px 12px;border-radius:var(--r-sm);background:var(--text);color:var(--bg);font-size:16px;font-weight:700;pointer-events:none}.k-skeleton{display:flex;flex-direction:column;gap:14px;width:100%}.k-skeleton.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px;max-width:420px}.k-skeleton .k-skel{display:block}.k-skeleton .row{height:104px;border-radius:var(--r-lg)}.k-skeleton .stop{width:76px;height:76px;border-radius:var(--r-full);margin:18px 0 18px calc(50% - 38px)}.k-skeleton .stop.s1{margin-left:calc(74% - 38px)}.k-skeleton .stop.s3{margin-left:calc(26% - 38px)}.k-skeleton .slot,.k-skeleton .tile{height:120px;border-radius:var(--r-lg)}.k-skeleton .board{width:100%;max-width:520px;aspect-ratio:1;margin:0 auto;border-radius:var(--r-md)}.k-skeleton .bar{height:14px;width:min(100%,420px);margin:0 auto;border-radius:var(--r-full)}.k-skeleton .card{height:280px;border-radius:var(--r-lg)}.k-skeleton .blocks{height:clamp(380px,58vh,560px);border-radius:var(--r-lg)}.k-error b{font-family:var(--disp);font-size:22px}.k-error p,.k-who button>svg{color:var(--text-2)}.k-app .av.tone-0{background:var(--primary-subtle);color:var(--on-primary-subtle)}.k-app .av.tone-1{background:var(--info-subtle);color:var(--on-info-subtle)}.k-app .av.tone-2{background:var(--accent-subtle);color:var(--on-accent-subtle)}.k-app .av.tone-3{background:var(--success-subtle);color:var(--on-success-subtle)}.k-app .av.tone-4{background:var(--warning-subtle);color:var(--on-warning-subtle)}.k-app .av.tone-5{background:var(--brand-grad);color:#fff}.k-grownups{margin-top:8px;color:var(--text-2)}.k-grownups,.k-pin-msg{width:100%;max-width:420px}.k-pin-msg{min-height:8px}.k-note.soft{background:var(--warning-subtle);color:var(--on-warning-subtle)}.k-shake{animation:k-shake .42s ease-in-out}@keyframes k-shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}.k-stats{list-style:none;margin:0;padding:14px 4px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.k-stats li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:2px;min-width:0;padding:0 6px}.k-stats li+li{border-left:2px solid var(--border)}.k-stats .ic{width:40px;height:40px;border-radius:var(--r-full);display:grid;place-items:center;margin-bottom:2px}.k-stats .ic svg{stroke:currentColor;fill:none;stroke-width:2.2}.k-stats .ic.flame{background:var(--accent-subtle);color:var(--accent)}.k-stats .ic.star{background:var(--warning-subtle);color:var(--warning)}.k-stats .ic.clock{background:var(--info-subtle);color:var(--info)}.k-stats b{font-family:var(--disp);font-size:26px;font-weight:800;line-height:1.1;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.k-stats span:not(.ic):not(.bar){font-size:16px;color:var(--text-2);font-weight:600;line-height:1.25}.k-stats .bar{display:block;width:80%;height:8px;border-radius:var(--r-full);background:var(--surface-2);overflow:hidden;margin-top:6px}.k-stats .bar i{display:block;height:100%;background:var(--success);border-radius:inherit}.k-map{display:flex;flex-direction:column;gap:6px;width:100%;max-width:520px;margin:0 auto}.k-chapter h3{margin:6px 0 10px;padding:10px 16px;border-radius:var(--r-md);background:var(--surface);border:2px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:6px 12px;flex-wrap:wrap;font-family:var(--disp);font-size:20px;font-weight:800}.k-chapter-stars{display:inline-flex;align-items:center;gap:6px;font-family:var(--body,inherit);font-size:16px;font-weight:700;color:var(--text-2)}.k-path,.k-path ol{position:relative}.k-path ol{list-style:none;margin:0;padding:0}.k-trail{position:absolute;inset:0;overflow:visible;pointer-events:none}.k-trail path{fill:none;stroke-width:7;stroke-linecap:round;stroke-dasharray:1 15}.k-trail .all{stroke:var(--border-2)}.k-trail .done{stroke:var(--warning)}.k-stop{position:relative;height:168px;--c:var(--primary);--c-sub:var(--primary-subtle);--c-on:var(--on-primary-subtle)}.k-stop.coding{--c:var(--info);--c-sub:var(--info-subtle);--c-on:var(--on-info-subtle)}.k-stop.maths{--c:var(--accent);--c-sub:var(--accent-subtle);--c-on:var(--on-accent-subtle)}.k-stop.english{--c:var(--success);--c-sub:var(--success-subtle);--c-on:var(--on-success-subtle)}.k-stop.locked{--c:var(--border-2);--c-sub:var(--surface-2);--c-on:var(--text-2)}.k-stop .stop{position:absolute;top:0;left:calc(var(--x) - 70px);width:140px;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--text);text-decoration:none}.k-stop a.stop:focus-visible{outline:none}.k-stop a.stop:focus-visible .circle{outline:3px solid var(--focus);outline-offset:4px}.k-stop .circle{position:relative;width:76px;height:76px;margin-top:4px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--c-sub);color:var(--c-on);border:4px solid var(--c);box-shadow:0 6px 0 color-mix(in srgb,var(--c) 60%,#000);transition:transform .12s}.k-stop .circle svg{stroke:currentColor;fill:none;stroke-width:2.2}.k-stop .k-glyph{font-size:38px}.k-stop.done .circle{background:var(--c);color:var(--surface)}.k-stop.locked .circle{box-shadow:0 4px 0 var(--border);border-style:dashed}.k-stop a.stop:active .circle{transform:translateY(4px);box-shadow:0 2px 0 color-mix(in srgb,var(--c) 60%,#000)}.k-stop .cap{position:relative;z-index:1;max-width:100%;margin-top:6px;padding:4px 10px 5px;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:center;gap:1px;background:var(--surface);border:2px solid var(--border)}.k-stop .label{text-align:center;font-size:18px;font-weight:800;line-height:1.2;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.k-stop.locked .cap{background:var(--surface-2);border-style:dashed}.k-stop.locked .label{color:var(--text-2);font-weight:700}.k-stop.now .circle{transform:scale(1.1)}.k-stop.now .circle:after{content:"";position:absolute;inset:-10px;border-radius:var(--r-full);border:4px solid var(--c);opacity:0;animation:k-pulse 1.8s ease-out infinite}.k-stop.now .cap{margin-top:12px;background:var(--c-sub);border-color:var(--c)}.k-stop.now .label{color:var(--c-on)}@keyframes k-pulse{0%{transform:scale(.9);opacity:.7}to{transform:scale(1.18);opacity:0}}.k-stop .pip{position:absolute;top:14px;pointer-events:none;animation:k-bob 2.4s ease-in-out infinite}.k-stop .pip.right{left:calc(var(--x) + 50px)}.k-stop .pip.left{left:calc(var(--x) - 102px)}@keyframes k-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.k-more{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.k-more-tile{min-height:88px;height:100%;padding:14px 14px 14px 16px;border-radius:var(--r-lg);display:flex;align-items:center;gap:14px;background:var(--surface);border:2px solid var(--border);box-shadow:0 5px 0 var(--border-2);color:var(--text);text-decoration:none}.k-more-tile:active{transform:translateY(3px);box-shadow:0 2px 0 var(--border-2)}.k-more-tile .ic{width:56px;height:56px;flex:0 0 auto;border-radius:var(--r-md);display:grid;place-items:center}.k-more-tile .ic svg{stroke:currentColor;fill:none;stroke-width:2.2}.k-more-tile.chess .ic{background:var(--primary-subtle);color:var(--on-primary-subtle);font-size:36px}.k-more-tile.stickers .ic{background:var(--warning-subtle);color:var(--on-warning-subtle)}.k-more-tile.papers .ic{background:var(--info-subtle);color:var(--on-info-subtle)}.k-more-tile .tx{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.k-more-tile b{font-size:20px;line-height:1.2}.k-more-tile .tx span{color:var(--text-2);font-size:16px;line-height:1.3}.k-more-tile>svg{color:var(--text-2)}.k-glyph{font-family:Segoe UI Symbol,Noto Sans Symbols\ 2,Apple Symbols,DejaVu Sans,serif;line-height:1;font-weight:400}.k-say{display:flex;align-items:flex-end;gap:10px}.k-say .bubble{position:relative;flex:1 1;min-width:0;margin:0 0 10px;padding:12px 16px;border-radius:var(--r-lg) var(--r-lg) var(--r-lg) var(--r-xs);background:var(--surface);border:2px solid var(--border);font-weight:700;line-height:1.4}.k-play{display:grid;grid-gap:12px;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.k-play-card{display:flex;flex-direction:column;gap:14px}.k-play-card .head{display:flex;align-items:center;gap:14px}.k-play-card .head .ic{width:56px;height:56px;flex:0 0 auto;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle)}.k-play-card .head .ic svg{stroke:currentColor;fill:none;stroke-width:2.2}.k-play-card .head b{display:block;font-size:20px;line-height:1.2}.k-play-card .head span:not(.ic){color:var(--text-2);font-size:16px}.k-levels{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.k-levels a{min-height:64px;padding:6px 4px;border-radius:var(--r-md);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:var(--surface-2);border:2px solid var(--border);color:var(--text);text-decoration:none;font-weight:800;font-size:18px;box-shadow:0 4px 0 var(--border-2)}.k-levels a:active{transform:translateY(3px);box-shadow:0 1px 0 var(--border-2)}.k-levels .k-stars svg{width:14px;height:14px}a.k-play-card{color:var(--text);text-decoration:none;box-shadow:0 5px 0 var(--border-2);justify-content:center}a.k-play-card .head .ic{background:var(--accent-subtle);color:var(--on-accent-subtle)}.k-lessons{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}@media (max-width:479.98px){.k-lessons{grid-template-columns:repeat(2,minmax(0,1fr))}}.k-lesson{min-height:132px;height:100%;padding:14px 10px;border-radius:var(--r-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;background:var(--surface);border:2px solid var(--border);box-shadow:0 5px 0 var(--border-2);color:var(--text);text-decoration:none}.k-lesson:active{transform:translateY(3px);box-shadow:0 2px 0 var(--border-2)}.k-lesson .piece{width:60px;height:60px;border-radius:var(--r-full);display:grid;place-items:center;font-size:40px;background:var(--primary-subtle);color:var(--on-primary-subtle)}.k-lesson.done{border-color:color-mix(in srgb,var(--success) 50%,var(--border))}.k-lesson.done .piece{background:var(--success-subtle);color:var(--on-success-subtle)}.k-lesson b{font-size:18px;line-height:1.2;overflow-wrap:anywhere}.k-puzzles{display:flex;flex-direction:column;gap:14px;padding:16px 14px}.k-puzzles h3{margin:0;display:flex;align-items:center;justify-content:space-between;gap:6px 10px;flex-wrap:wrap;font-family:var(--disp);font-size:20px}.k-puzzles h3 span{font-family:var(--body,inherit);font-size:16px;font-weight:700;color:var(--text-2)}.k-nums{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:8px;gap:8px}.k-nums a{position:relative;aspect-ratio:1;min-height:56px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface-2);border:3px solid var(--border-2);color:var(--text);text-decoration:none;font-family:var(--disp);font-size:22px;font-weight:800;box-shadow:0 4px 0 var(--border-2)}.k-nums a:active{transform:translateY(3px);box-shadow:0 1px 0 var(--border-2)}.k-nums a.done{background:var(--success-subtle);border-color:var(--success);color:var(--on-success-subtle);box-shadow:0 4px 0 color-mix(in srgb,var(--success) 60%,#000)}.k-nums .tick{position:absolute;top:-4px;right:-4px;width:24px;height:24px;border-radius:var(--r-full);display:grid;place-items:center;background:var(--success);color:var(--surface)}.k-nums .tick svg{stroke:currentColor;fill:none;stroke-width:3}@media (min-width:480px){.k-nums{grid-template-columns:repeat(8,minmax(0,1fr))}}.k-chess-task .slot{min-height:52px;display:flex;align-items:center}.k-chess-task .slot>p{width:100%}.k-chess-head{gap:8px;color:var(--text-2);font-weight:700}.k-chess-head,.k-win{display:flex;align-items:center}.k-win{position:relative;overflow:hidden;flex-direction:column;text-align:center;gap:10px;padding:24px 20px;border-color:color-mix(in srgb,var(--success) 50%,var(--border));background:var(--success-subtle)}.k-win b.title{font-family:var(--disp);font-size:30px;line-height:1.15;color:var(--text)}.k-win .k-stars svg{width:40px;height:40px}.k-win .k-stars svg.on{animation:k-star-in .5s cubic-bezier(.3,1.6,.5,1) both}.k-win .k-stars svg:nth-child(2){animation-delay:.15s}.k-win .k-stars svg:nth-child(3){animation-delay:.3s}.k-win .pts{display:inline-flex;align-items:center;gap:6px;padding:4px 14px;border-radius:var(--r-full);background:var(--surface);font-weight:800;color:var(--on-success-subtle)}.k-win .acts{width:100%;max-width:420px;display:grid;grid-gap:12px;gap:12px;margin-top:6px}.k-win .acts .k-btn{width:100%}@keyframes k-star-in{0%{transform:scale(0) rotate(-40deg)}to{transform:scale(1) rotate(0)}}.k-burst{position:absolute;inset:0;pointer-events:none}.k-burst i{position:absolute;left:50%;top:30%;width:10px;height:14px;border-radius:var(--r-xs);background:var(--k);opacity:0;animation:k-pop 1.2s cubic-bezier(.15,.7,.3,1) var(--d) forwards}@keyframes k-pop{0%{transform:translate(-50%,-50%) rotate(0) scale(.3);opacity:1}to{transform:translate(calc(-50% + var(--tx)),calc(-50% + var(--ty))) rotate(var(--r)) scale(1);opacity:0}}.k-progress{list-style:none;margin:0 auto;padding:0;width:100%;max-width:480px;display:flex;gap:6px}.k-progress li{flex:1 1;height:12px;border-radius:var(--r-full);background:var(--surface-2);border:2px solid var(--border)}.k-progress li.right{background:var(--success);border-color:var(--success)}.k-progress li.now{border-color:var(--primary);background:var(--primary-subtle)}.k-q.big{align-items:center;text-align:center;padding:28px 18px;gap:18px;width:100%;max-width:560px;margin:0 auto}.k-q.big .prompt{font-size:clamp(26px,7vw,34px);line-height:1.25}.k-q.big .k-answer{flex-direction:column;width:100%;max-width:360px}.k-q.big .k-answer input{flex:none;width:100%;text-align:center;font-size:30px;min-height:72px}.k-q.big .k-answer .k-btn{width:100%}.k-answer input:focus-visible{border-color:var(--primary)}.k-q.big .k-choices{width:100%;max-width:420px}.k-q.big .k-choices button{text-align:center}.k-q.big .k-right{align-items:center;width:100%;max-width:420px}.k-q.big .k-right .k-btn{width:100%}.k-q.big .k-hint,.k-q.big .k-try{width:100%;max-width:420px}.k-total{flex-direction:row;align-items:center;gap:14px}.k-total>div{display:flex;flex-direction:column;min-width:0}.k-total .k-glyph-star{width:52px;height:52px;flex:0 0 auto;border-radius:var(--r-full);display:grid;place-items:center;background:var(--surface)}.k-total .k-glyph-star svg{fill:var(--warning);stroke:none}.k-total p{margin:0}@media (prefers-reduced-motion:reduce){.k-shake,.k-stop .pip,.k-stop.now .circle:after,.k-win .k-stars svg.on{animation:none}.k-burst{display:none}}@media (max-width:479.98px){.k-play-card .head .ic,a.k-play-card .head .ic{width:44px;height:44px;border-radius:var(--r-md)}.k-levels a{font-size:17px}}.k-error .acts{width:100%;max-width:360px;display:grid;grid-gap:12px;gap:12px}.w-en-intro{display:flex;flex-direction:column;gap:12px}.w-en-intro>p{margin:0;color:var(--text-2);line-height:1.55}.w-en-h2,.w-en-intro h2{margin:0;font-family:var(--disp);font-size:var(--fs-body);font-weight:700}.w-en-h2{margin:6px 0 -4px}.w-en-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));grid-gap:8px;gap:8px}.w-en-level{display:flex;flex-direction:column;gap:2px;text-align:left;min-height:44px;padding:10px 12px;border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--surface);color:var(--text);font:inherit;cursor:pointer}.w-en-level b{font-size:var(--fs-label)}.w-en-level span{font-size:var(--fs-caption);color:var(--text-2);line-height:1.35}.w-en-level:hover{border-color:var(--border-2)}.w-en-level.on{border-color:var(--primary-text);background:var(--primary-subtle)}.w-en-level.on span{color:var(--on-primary-subtle)}.w-en-note{margin:0;display:flex;align-items:center;gap:6px;font-size:var(--fs-caption);color:var(--text-2)}.w-en-grid{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px;grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.w-en-scenario{display:flex;align-items:center;gap:12px;height:100%;color:var(--text);text-decoration:none}.w-en-scenario .em{width:46px;height:46px;flex:0 0 auto;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-subtle);color:var(--primary-text)}.w-en-scenario .tx{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:3px}.w-en-scenario b{font-size:var(--fs-label)}.w-en-scenario .tx span{font-size:var(--fs-caption);color:var(--text-2);line-height:1.4}.w-en-scenario>svg{color:var(--text-2);flex:0 0 auto}.w-bubble{display:flex;flex-direction:column;gap:8px;min-width:0;max-width:100%;padding:10px 14px;border-radius:var(--r-md);font-size:var(--fs-body);line-height:1.5}.w-bubble p{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.w-bubble.neutral{background:var(--surface);border:1px solid var(--border);color:var(--text)}.w-bubble.brand{background:var(--primary-fill);color:var(--primary-contrast)}.w-bubble.start{border-top-left-radius:var(--r-xs)}.w-bubble.end{border-top-right-radius:var(--r-xs)}.w-panel:has(.w-en-chat){display:flex;flex-direction:column;height:100dvh;min-height:0}@media (min-width:1024px){.w-panel:has(.w-en-chat){height:calc(100dvh - var(--shell-gap) * 2);min-height:0}}.w-panel:has(.w-en-chat) .w-canvas{flex:1 1 auto;min-height:0}@media (min-width:1024px){.w-panel:has(.w-en-chat) .w-canvas{padding-bottom:18px}}.w-en-chat{flex:1 1 auto;min-height:0;width:100%;display:grid;grid-template-rows:auto auto minmax(120px,1fr) auto;grid-gap:12px;gap:12px}@media (max-width:767.98px){.w-en-chat{grid-template-rows:auto minmax(96px,1fr) auto;gap:10px}.w-en-brief .w-en-tools{margin-top:12px}.w-en-brief .w-en-restart{margin-left:0}}.w-en-brief{padding:14px 18px}.w-en-brief>summary{display:none}.w-en-brief .body{display:flex;gap:12px;align-items:flex-start}.w-en-brief .em{width:44px;height:44px;flex:0 0 auto;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-subtle);color:var(--primary-text)}.w-en-brief .tx{min-width:0;flex:1 1}.w-en-brief p{margin:0 0 4px;font-size:var(--fs-body-sm);line-height:1.5;color:var(--text-2)}.w-en-brief .who{color:var(--text);font-weight:700;font-size:var(--fs-label)}.w-en-brief .meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:8px 0 0}@media (max-width:767.98px){.w-en-brief{padding:0}.w-en-brief>summary{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 14px;cursor:pointer;list-style:none}.w-en-brief>summary::-webkit-details-marker{display:none}.w-en-brief>summary .em{width:36px;height:36px;border-radius:var(--r-sm)}.w-en-brief>summary .tx{display:flex;flex-direction:column;line-height:1.3}.w-en-brief>summary b{font-size:var(--fs-label);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-en-brief>summary .prog{font-size:var(--fs-caption);color:var(--text-2);font-weight:600}.w-en-brief>summary .chev{margin-left:auto;color:var(--text-2);transition:transform var(--dur) var(--ease)}.w-en-brief[open]>summary .chev{transform:rotate(180deg)}.w-en-brief .body{padding:0 14px 14px;max-height:40dvh;overflow-y:auto}.w-en-brief .body>.em{display:none}}.w-en-tag{font-size:var(--fs-caption);font-weight:700;padding:3px 9px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2);border:1px solid var(--border)}.w-en-steps{margin:8px 0 2px}.w-en-steps .hd{font-size:var(--fs-caption);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2);margin:0 0 6px}.w-en-steps ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px}.w-en-steps li{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body-sm);color:var(--text)}.w-en-steps .box{width:18px;height:18px;flex:0 0 auto;display:grid;place-items:center;border-radius:var(--r-xs);border:1.5px solid var(--field-border)}.w-en-steps li.done .box{background:var(--success-subtle);border-color:var(--on-success-subtle);color:var(--on-success-subtle)}.w-en-steps li.done{color:var(--text-2)}.w-en-credits{display:inline-block}.w-en-credits summary{display:inline-flex;align-items:center;gap:8px;min-height:24px;cursor:pointer;list-style:none}.w-en-credits summary::-webkit-details-marker{display:none}.w-en-credits .what{font-size:var(--fs-caption);font-weight:700;color:var(--primary-text);text-decoration:underline;text-underline-offset:2px}.w-en-credits p{margin:6px 0 0;font-size:var(--fs-body-sm);color:var(--text-2);max-width:60ch}.w-en-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.w-en-speed{display:flex;gap:6px}.w-en-target{display:inline-flex;align-items:center;gap:8px;min-height:var(--ctl-md);padding:0 6px 0 12px;border:1px solid var(--border);border-radius:var(--r-full);background:var(--surface);font-size:var(--fs-body-sm);font-weight:600;color:var(--text-2)}.w-en-target svg{stroke:currentColor;fill:none;flex:0 0 auto}.w-en-target select{min-height:36px;border:0;background:transparent;color:var(--text);max-width:12rem}.w-en-restart,.w-en-target select{font:inherit;font-weight:700;cursor:pointer}.w-en-restart{margin-left:auto;display:inline-flex;align-items:center;gap:6px;min-height:var(--ctl-md);padding:0 14px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--primary-text);font-size:var(--fs-label)}.w-en-restart:hover{border-color:var(--border-2)}.w-en-scroll{display:flex}.w-en-log,.w-en-scroll{position:relative;min-height:0}.w-en-log{flex:1 1;overflow-y:auto;overscroll-behavior:contain;scroll-padding-block-end:16px;padding:4px 2px 16px;border-radius:var(--r-md);scrollbar-width:thin;scrollbar-color:var(--border-2) transparent}.w-en-log:focus-visible{outline-offset:-2px}.w-en-lines{list-style:none;margin:0;padding:0}.w-en-line,.w-en-lines{display:flex;flex-direction:column;gap:4px}.w-en-line.first:not(:first-child){margin-top:12px}.w-en-line.partner{align-items:flex-start}.w-en-line.learner{align-items:flex-end}.w-en-line .who{font-size:var(--fs-caption);font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.w-en-line .stack{display:flex;flex-direction:column;gap:6px;max-width:min(560px,78%)}.w-en-line.partner .stack{align-items:flex-start}.w-en-line.learner .stack{align-items:flex-end}.w-en-line .acts{display:flex;flex-wrap:wrap;gap:6px}.w-en-listen{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:var(--ctl-sm);padding:0 10px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface-2);color:var(--primary-text);font:inherit;font-size:var(--fs-caption);font-weight:700;cursor:pointer}.w-en-listen:after{content:"";position:absolute;inset:-6px 0}.w-en-listen.on{background:var(--primary-subtle);color:var(--on-primary-subtle);border-color:var(--primary-text)}.w-en-listen.small{min-width:var(--ctl-sm);padding:0;justify-content:center}.w-en-listen.small:after{inset:-6px}.w-en-listen[aria-disabled=true]{background:var(--disabled-surface);color:var(--disabled-text);border-color:transparent;cursor:not-allowed}.w-en-listen svg{stroke:currentColor;fill:none}.w-en-listen .cost{min-width:18px;height:18px;padding:0 5px;border-radius:var(--r-full);display:grid;place-items:center;color:var(--on-primary-subtle);font-size:var(--fs-caption);font-weight:800}.w-en-listen .cost,.w-en-tr{background:var(--primary-subtle)}.w-en-tr{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:10px 12px;border-radius:var(--r-xs);color:var(--text)}.w-en-tr p{margin:0}.w-en-tr .eyebrow{font-size:var(--fs-caption);font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--on-primary-subtle)}.w-en-tr .muted{color:var(--on-primary-subtle);font-size:var(--fs-body-sm)}.w-en-tr .err{color:var(--on-danger-subtle);font-size:var(--fs-body-sm)}.w-en-tr .note{font-size:var(--fs-caption);color:var(--on-primary-subtle)}.w-en-tr .w-en-listen{background:var(--surface)}.w-en-line .dots{display:inline-flex;gap:4px;padding:6px 0}.w-en-line .dots i{width:7px;height:7px;border-radius:var(--r-full);background:var(--text-2);animation:w-en-dot 1.2s ease-in-out infinite}.w-en-line .dots i:nth-child(2){animation-delay:.15s}.w-en-line .dots i:nth-child(3){animation-delay:.3s}@keyframes w-en-dot{0%,80%,to{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.w-en-line .dots i{animation:none}}.w-en-ok{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:var(--fs-body-sm)}.w-en-ok>p{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--on-success-subtle);font-weight:700}.w-en-ok .xp{margin-left:4px;color:var(--on-warning-subtle);font-size:var(--fs-caption)}.w-en-ok details{display:flex;flex-direction:column;align-items:flex-end}.w-en-ok summary{cursor:pointer;color:var(--primary-text);font-weight:700;font-size:var(--fs-caption);min-height:24px}.w-en-ok details p{margin:4px 0 0;padding:8px 10px;border-radius:var(--r-xs);background:var(--surface-2);color:var(--text-2);text-align:left}.w-en-feedback{width:100%;padding:10px 12px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--border);font-size:var(--fs-body-sm);line-height:1.5;display:flex;flex-direction:column;gap:8px;text-align:left}.w-en-feedback p{margin:0}.w-en-feedback .head{font-size:var(--fs-caption);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--text-2)}.w-en-feedback ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.w-en-feedback .fix{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.w-en-feedback .fix>svg{color:var(--text-2);flex:0 0 auto}.w-en-feedback del{color:var(--on-danger-subtle);background:var(--danger-subtle);text-decoration-thickness:1.5px}.w-en-feedback del,.w-en-feedback ins{padding:1px 6px;border-radius:var(--r-xs);overflow-wrap:anywhere}.w-en-feedback ins{color:var(--on-success-subtle);background:var(--success-subtle);text-decoration:none;font-weight:700}.w-en-feedback details summary{cursor:pointer;color:var(--primary-text);font-weight:700;font-size:var(--fs-caption);min-height:24px}.w-en-feedback details p{color:var(--text-2);margin-top:4px}.w-en-feedback .tip{color:var(--text-2);background:var(--surface-2);padding:8px 10px;border-radius:var(--r-xs)}.w-en-feedback .xp{color:var(--on-warning-subtle);font-weight:700;font-size:var(--fs-caption)}.w-en-complete{margin-top:16px}.w-en-complete .w-card{display:flex;gap:14px;align-items:flex-start;border-color:color-mix(in srgb,var(--success) 45%,var(--border))}.w-en-complete .ic{width:44px;height:44px;flex:0 0 auto;border-radius:var(--r-md);display:grid;place-items:center;background:var(--success-subtle);color:var(--on-success-subtle)}.w-en-complete h2{margin:0 0 4px;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-en-complete p{margin:0;color:var(--text-2);font-size:var(--fs-body-sm)}.w-en-complete .xp{color:var(--on-warning-subtle);font-weight:700;margin-top:4px}.w-en-complete .row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.w-en-jump{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:6px;min-height:var(--ctl-md);padding:0 16px;border-radius:var(--r-full);border:1px solid var(--border);background:var(--surface);color:var(--primary-text);box-shadow:var(--shadow-pop);font:inherit;font-size:var(--fs-label);font-weight:700;cursor:pointer;white-space:nowrap}.w-en-jump svg{stroke:currentColor;fill:none}.w-en-compose,.w-en-foot{display:flex;flex-direction:column;gap:10px}.w-en-compose{padding:14px}.w-en-compose textarea{width:100%;resize:none;min-height:0;overflow-y:hidden;padding:10px 12px;border-radius:var(--r-xs);border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--fs-title-sm);line-height:1.45}.w-en-compose textarea:focus-visible{border-color:var(--primary-text)}.w-en-compose textarea[readonly]{color:var(--text-2)}.w-en-compose .row{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:10px}.w-en-compose .hint{flex:1 1 200px;line-height:1.4}.w-en-compose .count,.w-en-compose .hint{font-size:var(--fs-caption);color:var(--text-2)}.w-en-compose .count{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.w-en-compose .count.full{color:var(--on-danger-subtle)}.w-en-compose .note{display:flex;gap:6px;align-items:flex-start;margin:0;font-size:var(--fs-caption);color:var(--text-2);line-height:1.4}.w-en-compose .note .short{display:none}@media (max-width:767.98px){.w-en-compose{padding:12px;gap:8px}.w-en-compose .note .long{display:none}.w-en-compose .note .short{display:inline}.w-en-compose .hint.keys{display:none}}.w-en-compose .note svg{flex:0 0 auto;margin-top:1px;stroke:currentColor;fill:none}.w-en-compose .low{display:flex;gap:6px;align-items:center;margin:0;padding:8px 10px;border-radius:var(--r-xs);background:var(--warning-subtle);color:var(--on-warning-subtle);font-size:var(--fs-body-sm);font-weight:600}.w-en-mic{display:inline-flex;align-items:center;gap:6px;min-height:var(--ctl-lg);padding:0 16px;border-radius:var(--r-full);border:1px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-label);font-weight:700;line-height:1.2;cursor:pointer}.w-en-mic:hover:not(:disabled){border-color:var(--primary-text);color:var(--primary-text)}.w-en-mic.on{background:var(--danger-subtle);border-color:var(--danger);color:var(--on-danger-subtle)}.w-en-mic:disabled{background:var(--disabled-surface);color:var(--disabled-text);border-color:transparent;box-shadow:none;cursor:not-allowed}.w-en-rec{display:flex;align-items:center;gap:10px;padding:6px 6px 6px 12px;border-radius:var(--r-xs);background:var(--danger-subtle);color:var(--on-danger-subtle);font-size:var(--fs-body-sm);font-weight:700}.w-en-rec .dot{width:10px;height:10px;border-radius:var(--r-full);background:var(--danger);animation:w-en-pulse 1.2s ease-in-out infinite}.w-en-rec .lbl{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.w-en-rec .meter{--level:0;display:inline-flex;align-items:center;gap:3px;height:20px}.w-en-rec .meter i{width:4px;height:100%;border-radius:var(--r-full);background:currentColor;transform:scaleY(calc(.2 + var(--level) * var(--k, 1) * .8));transition:transform .08s linear}.w-en-rec .meter i:first-child,.w-en-rec .meter i:nth-child(5){--k:.55}.w-en-rec .meter i:nth-child(2),.w-en-rec .meter i:nth-child(4){--k:.8}.w-en-rec .cancel{position:relative;margin-left:auto;display:inline-flex;align-items:center;gap:4px;min-height:var(--ctl-sm);padding:0 12px;border-radius:var(--r-full);border:1px solid;background:transparent;color:inherit;font:inherit;cursor:pointer}.w-en-rec .cancel:after{content:"";position:absolute;inset:-6px 0}.w-en-rec svg{stroke:currentColor;fill:none}@keyframes w-en-pulse{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.w-en-rec .dot{animation:none}}@media (hover:none) and (pointer:coarse){.w-en-compose .hint.keys{visibility:hidden}}.w-en-out{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.w-en-out .ic{width:44px;height:44px;flex:0 0 auto;border-radius:var(--r-md);display:grid;place-items:center;background:var(--warning-subtle);color:var(--on-warning-subtle)}.w-en-out>div{flex:1 1 260px}.w-en-out h2{margin:0 0 4px;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-en-out p{margin:0;color:var(--text-2);font-size:var(--fs-body-sm)}.k-more-tile.english .ic{background:var(--success-subtle);color:var(--on-success-subtle)}.k-lesson .piece:not(.k-glyph){font-size:34px}.k-lesson-sub{font-size:16px;color:var(--text-2)}.k-en .k-en-pic{font-size:64px;line-height:1}.k-en-gap{margin:0;font-size:24px;font-weight:800;line-height:1.5}.k-en-gap .blank{display:inline-block;min-width:3.2em;padding:0 10px;margin:0 4px;border-radius:var(--r-sm);border:2px dashed var(--border-2);color:var(--text-2);background:var(--surface-2)}.k-en-gap .blank.filled{border-style:solid;border-color:var(--success);color:var(--on-success-subtle);background:var(--success-subtle)}.k-en-play{align-self:center;gap:10px}.k-en-play svg{stroke:currentColor;fill:none}.k-en-play.on{border-color:var(--primary)}.k-en-cards{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));grid-gap:12px;gap:12px}.k-en-cards button{min-height:120px;padding:12px;border-radius:var(--r-lg);border:2px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:19px;font-weight:800;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.k-en-cards button .em{font-size:52px;line-height:1}.k-en-cards button.right{background:var(--success-subtle);border-color:var(--success);color:var(--on-success-subtle)}.k-en-cards button.wrong{background:var(--warning-subtle);border-color:var(--warning);color:var(--on-warning-subtle)}.k-en-words{width:100%}.k-en-words button{text-align:center}.k-en-tray{width:100%;min-height:72px;padding:10px;border-radius:var(--r-lg);border:2px dashed var(--border-2);background:var(--surface-2);display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:center}.k-en-tray .placeholder{font-size:18px;color:var(--text-2);font-weight:700}.k-en-bank{width:100%;display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.k-en-tile{min-height:56px;min-width:56px;padding:8px 16px;border-radius:var(--r-md);border:2px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-size:21px;font-weight:800;cursor:pointer;box-shadow:0 4px 0 var(--border-2)}.k-en-tile:active{transform:translateY(3px);box-shadow:0 1px 0 var(--border-2)}.k-en-tile:disabled{opacity:.35;box-shadow:none;cursor:default}.k-en-tile.in{background:var(--primary-subtle);color:var(--on-primary-subtle);border-color:var(--primary);box-shadow:none}.k-en-tile.in.right{background:var(--success-subtle);color:var(--on-success-subtle);border-color:var(--success);opacity:1}.k-en-actions{width:100%;display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));grid-gap:12px;gap:12px}.k-en-say{font-size:22px;font-weight:800}.w-pub:has(.w-cert-page){max-width:980px}.w-cert-page{display:grid;grid-gap:16px;gap:16px}.w-cert-verified{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--r-md);background:var(--success-subtle);color:var(--on-success-subtle);border:1px solid color-mix(in srgb,var(--success) 30%,transparent)}.w-cert-verified>svg{flex:0 0 auto;width:30px;height:30px;padding:6px;border-radius:var(--r-full);background:var(--success);color:#fff;stroke:currentColor;fill:none;stroke-width:2.4}.w-cert-verified div{display:flex;flex-direction:column}.w-cert-verified b{font-size:var(--fs-label)}.w-cert-verified span{font-size:var(--fs-body-sm)}.w-cert-paper{container-type:inline-size;aspect-ratio:297/210;width:100%;background:#FFFDF8;color:#12262A;border-radius:var(--r-xs);box-shadow:var(--shadow-card);overflow:hidden;position:relative;background-image:radial-gradient(circle at 0 0,rgba(10,151,168,.1) 0 22%,transparent 22.2%),radial-gradient(circle at 100% 100%,rgba(255,111,94,.1) 0 20%,transparent 20.2%)}.w-cert-frame{position:absolute;inset:3cqw;border:.35cqw solid #0a7a88;border-radius:1.2cqw;box-shadow:inset 0 0 0 .6cqw #FFFDF8,inset 0 0 0 .75cqw rgba(10,122,136,.35);display:grid;grid-template-rows:auto 1fr auto;padding:3.2cqw 4.4cqw 2.8cqw}.w-cert-top{display:flex;align-items:center;justify-content:space-between;gap:2cqw}.w-cert-brand{display:inline-flex;align-items:center;gap:1cqw;font-family:var(--disp);font-weight:800;font-size:2.8cqw;color:#0B3B42}.w-cert-brand img.mark{width:4.8cqw;height:4.8cqw;border-radius:1.4cqw;flex:0 0 auto}.w-cert-brand .o{color:#0A97A8}.w-cert-kind{font-size:1.45cqw;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#0A7A88;border:.18cqw solid;border-radius:var(--r-full);padding:.5cqw 1.6cqw}.w-cert-body{align-self:center;text-align:center;display:grid;grid-gap:.9cqw;gap:.9cqw}.w-cert-body p{margin:0}.w-cert-heading{font-family:var(--disp);font-size:4.3cqw;font-weight:800;letter-spacing:-.01em;color:#0B3B42;line-height:1.1}.w-cert-small{font-size:1.75cqw;color:#4B5D61;letter-spacing:.02em}.w-cert-name{font-size:5.6cqw;line-height:1.15;color:#0A7A88;padding:.4cqw 6cqw 1cqw;border-bottom:.2cqw solid rgba(10,122,136,.35);justify-self:center;max-width:92%;overflow-wrap:anywhere}.w-cert-name,.w-cert-title{font-family:var(--disp);font-weight:700}.w-cert-title{font-size:3.2cqw;color:#12262A;line-height:1.2}.w-cert-foot{display:grid;grid-template-columns:1fr auto 1fr;align-items:end;grid-gap:2cqw;gap:2cqw}.w-cert-foot>div{display:flex;flex-direction:column;gap:.3cqw;font-size:1.35cqw;color:#4B5D61}.w-cert-foot>div.end{text-align:right;align-items:flex-end}.w-cert-foot b{font-size:1.85cqw;color:#12262A;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.02em}.w-cert-foot small{font-size:1.15cqw;color:#6B7B7F;overflow-wrap:anywhere}.w-cert-seal{width:9cqw;height:9cqw;border-radius:var(--r-full);display:grid;place-items:center;color:#fff;background:radial-gradient(circle at 35% 30%,#2FBCCB,#0A7A88 70%);box-shadow:0 0 0 .6cqw rgba(10,122,136,.16)}.w-cert-seal svg{width:4.6cqw;height:4.6cqw;stroke:currentColor;fill:none;stroke-width:2}.w-cert-actions{display:flex;flex-wrap:wrap;gap:10px}.w-cert-actions .btn{min-height:48px}.w-cert-more{margin:0;font-size:var(--fs-label)}.w-cert-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:12px;gap:12px}.w-cert-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.w-cert-row .seal{width:48px;height:48px;border-radius:var(--r-full);display:grid;place-items:center;flex:0 0 auto;color:#fff;background:radial-gradient(circle at 35% 30%,#2FBCCB,#0A7A88 70%)}.w-cert-earned .ic svg,.w-cert-empty .ic svg,.w-cert-row .seal svg{stroke:currentColor;fill:none;stroke-width:2}.w-cert-row .tx{flex:1 1;min-width:180px;display:flex;flex-direction:column;gap:2px}.w-cert-row .kind{font-size:var(--fs-caption);font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--primary-text)}.w-cert-row h2{margin:0;font-family:var(--disp);font-size:var(--fs-title-sm);line-height:1.3}.w-cert-row p{margin:0;font-size:var(--fs-body-sm);color:var(--text-2)}.w-cert-row .acts{display:flex;gap:8px;flex-wrap:wrap}.w-cert-row .acts .btn{min-height:44px}.w-cert-empty{display:grid;justify-items:center;text-align:center;grid-gap:8px;gap:8px;padding:28px 20px}.w-cert-empty .ic{width:56px;height:56px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-cert-empty h2{margin:4px 0 0;font-family:var(--disp);font-size:var(--fs-title-sm)}.w-cert-empty p{margin:0;max-width:46ch;color:var(--text-2);font-size:var(--fs-label);line-height:1.55}.w-cert-empty .acts{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:6px}.w-cert-empty .acts .btn{min-height:48px}.w-cert-earned{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 18px;border-radius:var(--r-md);background:linear-gradient(120deg,var(--primary-subtle),color-mix(in srgb,var(--warning-subtle) 70%,var(--primary-subtle)));color:var(--on-primary-subtle);border:1px solid color-mix(in srgb,var(--primary) 26%,transparent);animation:pickIn .25s ease both}.w-cert-earned .ic{width:44px;height:44px;border-radius:var(--r-full);display:grid;place-items:center;flex:0 0 auto;color:#fff;background:radial-gradient(circle at 35% 30%,#2FBCCB,#0A7A88 70%)}.w-cert-earned div{flex:1 1;min-width:200px;display:flex;flex-direction:column}.w-cert-earned b{font-size:var(--fs-body)}.w-cert-earned span{font-size:var(--fs-body-sm)}.w-cert-earned .btn{min-height:44px}@media print{.w-cert-page,.w-cert-page *{visibility:visible}.w-cert-page .no-print{display:none!important}.w-cert-paper{position:fixed;left:0;top:0;width:297mm;height:210mm;aspect-ratio:auto;border-radius:0;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact}}[data-track=python]{--wc:var(--track-python);--wc-subtle:var(--track-python-subtle);--on-wc-subtle:var(--on-track-python-subtle)}[data-track=java]{--wc:var(--track-java);--wc-subtle:var(--track-java-subtle);--on-wc-subtle:var(--on-track-java-subtle)}[data-track=web]{--wc:var(--track-web);--wc-subtle:var(--track-web-subtle);--on-wc-subtle:var(--on-track-web-subtle)}[data-track=react]{--wc:var(--track-react);--wc-subtle:var(--track-react-subtle);--on-wc-subtle:var(--on-track-react-subtle)}[data-track=english]{--wc:var(--track-english);--wc-subtle:var(--track-english-subtle);--on-wc-subtle:var(--on-track-english-subtle)}.w-wc-grid{list-style:none;margin:0;padding:0;display:grid;grid-gap:14px;gap:14px;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr))}.w-wc-card{display:flex;flex-direction:column;gap:10px;border-top:4px solid var(--wc,var(--primary))}.w-wc-card .hd,.w-wc-hero .hd{display:flex;align-items:center;gap:12px}.w-wc-card .tx,.w-wc-hero .tx{flex:1 1;min-width:0;display:flex;flex-direction:column}.w-wc-card h2{margin:0;font-family:var(--disp);font-size:var(--fs-title-sm);line-height:1.25}.w-wc-card .sum{margin:0;font-size:var(--fs-label);line-height:1.5;color:var(--text-2);flex:1 1}.w-wc-card .ft{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.w-wc-card .ft .btn{min-height:44px}.w-wc-card .st{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2)}.w-wc-card .st.ok{color:var(--on-success-subtle)}.w-wc-card .st svg{stroke:currentColor;fill:none;stroke-width:2.4}.w-wc-icon{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto;background:var(--wc-subtle,var(--primary-subtle));color:var(--on-wc-subtle,var(--on-primary-subtle))}.w-wc-icon svg{stroke:currentColor;fill:none;stroke-width:2}.w-wc-ring{position:relative;display:grid;place-items:center;flex:0 0 auto}.w-wc-ring svg{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}.w-wc-ring circle{fill:none;stroke-width:6}.w-wc-ring .track{stroke:var(--border)}.w-wc-ring .fill{stroke:var(--wc,var(--primary));stroke-linecap:round;transition:stroke-dasharray .4s var(--ease)}.w-wc-ring b{position:relative;font-family:var(--disp);font-size:var(--fs-title-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.w-wc-ring b small{font-size:var(--fs-caption);color:var(--text-2);font-weight:700}.w-wc-note{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-body-sm);color:var(--text-2)}.w-wc-hero .note svg,.w-wc-note svg{flex:0 0 auto;stroke:currentColor;fill:none;stroke-width:2}.w-wc-hero{display:grid;grid-gap:12px;gap:12px;border-top:4px solid var(--wc,var(--primary))}.w-wc-hero .tx p{margin:2px 0 0;font-size:var(--fs-label);line-height:1.5}.w-wc-hero .meta{margin:0;font-weight:700;font-size:var(--fs-label)}.w-wc-hero .note{display:flex;align-items:center;gap:8px;margin:0;font-size:var(--fs-body-sm);color:var(--text-2)}.w-wc-hero .btn{justify-self:start;min-height:48px}.w-wc-days{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.w-wc-days .row{display:flex;align-items:center;gap:12px;min-height:60px;padding:10px 12px;border-radius:var(--r-sm);border:1px solid var(--border);background:var(--surface);color:inherit;text-decoration:none}.w-wc-days a.row:hover{border-color:var(--primary-text);background:var(--surface-2)}.w-wc-days .locked .row{background:var(--surface-2);color:var(--text-2)}.w-wc-days .n{width:36px;height:36px;border-radius:var(--r-full);display:grid;place-items:center;flex:0 0 auto;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-wc-days .n.done{background:var(--success-subtle);color:var(--on-success-subtle)}.w-wc-days .n.locked{background:var(--border);color:var(--text-2)}.w-wc-days .go,.w-wc-days .n svg{stroke:currentColor;fill:none;stroke-width:2.2}.w-wc-days .tx{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.w-wc-days .tx b{font-size:var(--fs-label);line-height:1.3}.w-wc-days .tx span{font-size:var(--fs-body-sm);color:var(--text-2)}.w-wc-days .go{flex:0 0 auto;color:var(--text-2)}.w-wc-write{display:grid;grid-gap:16px;gap:16px}.w-wc-write .w-card{display:grid;grid-gap:10px;gap:10px}.w-wc-text{width:100%;min-height:220px;resize:none;overflow:hidden;padding:14px 16px;border-radius:var(--r-sm);border:1px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-family:var(--body);font-size:var(--fs-title-sm);line-height:1.6}.w-wc-text:focus-visible{border-color:var(--primary-text)}.w-wc-write-ft{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.w-wc-live{margin:0;font-size:var(--fs-body-sm);font-weight:700;color:var(--on-warning-subtle)}.w-wc-live:empty{display:none}.w-wc-checked ol{list-style:none;margin:0;padding:0;display:grid;grid-gap:2px;gap:2px;font-size:var(--fs-body);line-height:1.6}.w-wc-checked li{display:grid;grid-template-columns:2.5ch minmax(0,1fr) auto;grid-gap:12px;gap:12px;align-items:baseline;padding:4px 8px;border-radius:var(--r-xs)}.w-wc-checked li.has{background:var(--surface-2)}.w-wc-checked .n{color:var(--text-2);font-size:var(--fs-caption);font-weight:700;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.w-wc-checked .tx{white-space:pre-wrap;overflow-wrap:anywhere;min-height:1.6em}.w-wc-checked mark{background:none;color:inherit;-webkit-text-decoration:underline wavy var(--danger);text-decoration:underline wavy var(--danger);text-decoration-thickness:1.5px;text-underline-offset:4px}.w-wc-mistakes ul{list-style:none;margin:0;padding:0;display:grid}.w-wc-mistakes li{display:grid;grid-gap:4px;gap:4px;padding:12px 0;border-top:1px solid var(--border)}.w-wc-mistakes li:first-child{border-top:0;padding-top:0}.w-wc-mistakes .ln{font-size:var(--fs-caption);font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.04em}.w-wc-mistakes .fix{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:var(--fs-body)}.w-wc-mistakes .fix>svg{color:var(--text-2);stroke:currentColor;fill:none}.w-wc-mistakes del{color:var(--on-danger-subtle);background:var(--danger-subtle);text-decoration-thickness:1.5px}.w-wc-mistakes del,.w-wc-mistakes ins{padding:1px 6px;border-radius:var(--r-xs);overflow-wrap:anywhere}.w-wc-mistakes ins{color:var(--on-success-subtle);background:var(--success-subtle);text-decoration:none;font-weight:700}.w-wc-mistakes .why{margin:0;font-size:var(--fs-body-sm);color:var(--text-2)}.w-wc-mistakes .ok{display:inline-flex;align-items:center;gap:4px;font-size:var(--fs-caption);font-weight:700;color:var(--on-success-subtle)}.w-wc-mistakes .ok svg{stroke:currentColor;fill:none;stroke-width:2.4}.w-wc-write-ft .count{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-body-sm);font-weight:700;color:var(--text-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.w-wc-write-ft .count.ok{color:var(--on-success-subtle)}.w-wc-write-ft .count svg{stroke:currentColor;fill:none;stroke-width:2.4}.w-wc-write p.muted{margin:0;display:flex;align-items:center;gap:6px}.w-wc-write p.muted svg{stroke:currentColor;fill:none;stroke-width:2}.w-cert-facts{margin:0;display:grid;grid-gap:1px;gap:1px;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));background:var(--border);border:1px solid var(--border);border-radius:var(--r-md);overflow:hidden}.w-cert-facts div{background:var(--surface);padding:10px 14px;display:grid;grid-gap:2px;gap:2px}.w-cert-facts dt{font-size:var(--fs-caption);color:var(--text-2)}.w-cert-facts dd{margin:0;font-weight:700;font-size:var(--fs-body);overflow-wrap:anywhere}.w-cert-facts dd.code{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;letter-spacing:.04em}.w-wc-brief .task:first-child{margin-top:0;padding-top:0;border-top:0}.w-av{flex:0 0 auto;border-radius:var(--r-full);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle);font-weight:800;line-height:1}.w-av.sys{width:40px;height:40px;border-radius:var(--r-sm);background:var(--primary-fill);color:var(--primary-contrast)}.w-av-link{display:inline-flex;border-radius:var(--r-full)}.w-pname{font-weight:800;color:var(--text);text-decoration:none;overflow-wrap:anywhere}a.w-pname:hover{color:var(--primary-text);text-decoration:underline}.w-feed-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.w-feed-top .w-feed-tabs{margin-bottom:0}.w-feed-links{display:flex;flex-wrap:wrap;gap:8px}.w-feed-top :is(.w-seg,.btn){position:relative}.w-feed-top :is(.w-seg,.btn):after{content:"";position:absolute;inset:-3px 0}.w-posts{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:12px;gap:12px;margin-bottom:12px}.w-post{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:10px;gap:10px;padding:16px;min-width:0}.w-post.system{background:var(--surface-2)}.w-post-head{display:flex;align-items:flex-start;gap:12px}.w-post-head .who{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:2px}.w-post-head .sys{font-size:var(--fs-body-sm);font-weight:800;color:var(--primary-text)}.w-post-head .line{margin:0;font-size:var(--fs-body);font-weight:400;line-height:1.5;overflow-wrap:anywhere}.w-post-head .when{font-size:var(--fs-body-sm);color:var(--text-2)}.w-post-head .aud,.w-post-head .when{display:inline-flex;align-items:center;gap:4px}.w-post-head .aud svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}.w-more{position:relative;flex:0 0 auto;width:44px;height:44px;margin:-8px -8px 0 0;border-radius:var(--r-sm);border:0;background:none;display:grid;place-items:center;color:var(--text-2);cursor:pointer}.w-more:after{content:"";position:absolute;inset:min(0px,calc((100% - 44px) / 2))}.w-more:hover{background:var(--surface-2);color:var(--text)}.w-more svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.w-menupop{width:min(220px,calc(100vw - 32px))}.w-menupop .w-langopt.danger{color:var(--danger)}.w-menupop .w-langopt{min-height:44px}.w-post-body p{margin:0;font-size:var(--fs-body);line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.w-snippet{margin:10px 0 0;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--border);background:#1f2430}.w-snippet figcaption{display:flex;align-items:center;gap:6px;padding:7px 12px;font-size:var(--fs-caption);font-weight:700;color:#c7d0dc;background:#282e3b;border-bottom:1px solid #343b4a}.w-snippet figcaption svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}.w-snippet pre{margin:0;padding:12px 14px;max-height:360px;overflow:auto;color:#e6edf3;font-family:var(--mono,ui-monospace,Menlo,monospace);font-size:var(--fs-body-sm);line-height:1.55;-moz-tab-size:4;tab-size:4}.w-snippet pre:focus-visible{outline:2px solid var(--primary-text);outline-offset:-2px}.w-post-cta{justify-self:start;display:inline-flex;align-items:center;gap:6px;min-height:44px;font-size:var(--fs-label);font-weight:700;color:var(--primary-text);text-decoration:none}.w-post-cta:hover{text-decoration:underline}.w-post-cta svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.2}.w-post-note{margin:0;font-size:var(--fs-body-sm);color:var(--on-danger-subtle)}.w-post-counts{display:flex;justify-content:space-between;gap:10px;font-size:var(--fs-body-sm);color:var(--text-2)}.w-post-counts a{color:var(--text-2);text-decoration:none}.w-post-counts a:hover{color:var(--primary-text);text-decoration:underline}.w-post-counts>span{display:inline-flex;align-items:center;gap:6px}.w-post-counts .heart{width:18px;height:18px;border-radius:var(--r-full);display:grid;place-items:center;background:#E5484D;color:#fff}.w-post-counts .heart svg{width:10px;height:10px;fill:currentColor;stroke:currentColor}.w-post-acts{display:flex;align-items:center;gap:4px;padding-top:6px;border-top:1px solid var(--border);flex-wrap:wrap}.w-post-acts .cmt,.w-post-acts .like{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 14px;border-radius:var(--r-full);border:0;background:none;color:var(--text-2);font:inherit;font-size:var(--fs-label);font-weight:700;cursor:pointer;text-decoration:none}.w-post-acts .cmt:hover,.w-post-acts .like:hover{background:var(--surface-2);color:var(--text)}.w-post-acts svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}.w-post-acts .like.on{color:#E5484D}.w-post-acts .like.on svg{fill:currentColor}.w-post-acts .small-reacts{display:inline-flex;gap:6px;margin-left:auto}.w-post-acts .small-reacts button{min-width:48px;min-height:44px;padding:0 10px;border-radius:var(--r-full);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:4px;border:1px solid var(--border);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-label);font-weight:700}.w-post-acts .small-reacts button.on{border-color:var(--primary-text);background:var(--primary-subtle)}.w-post-acts .small-reacts .clap{color:var(--warning)}.w-post-acts .small-reacts .fire{color:var(--accent)}.w-post-all{font-size:var(--fs-body-sm);font-weight:700;color:var(--primary-text);text-decoration:none;min-height:32px;display:inline-flex;align-items:center}.w-post-all:hover{text-decoration:underline}.w-cmts{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);grid-gap:10px;gap:10px}.w-cmt,.w-cmts.preview{gap:8px}.w-cmt{display:flex;align-items:flex-start}.w-cmt .bub{flex:1 1;gap:2px;padding:8px 12px}.w-cmt.quick .bub{background:var(--primary-subtle);border-color:transparent}.w-cmt .hd{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:var(--fs-body-sm)}.w-cmt .hd .when{font-size:var(--fs-caption);color:var(--text-2)}.w-cmt .bub p{font-size:var(--fs-label);line-height:1.45}.w-cmt .w-more{margin:0;width:40px;height:40px}.w-cmts-card{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:12px;gap:12px;min-width:0}.w-cmts-card .w-sub{margin:0}.w-cmts-more{justify-self:start;min-height:44px;font-weight:700}.w-cmt-compose{display:grid;grid-gap:10px;gap:10px;padding-top:12px;border-top:1px solid var(--border);scroll-margin-top:90px}.w-cmt-form{display:flex;gap:8px;align-items:flex-end}.w-cmt-form textarea,.w-compose-form textarea{flex:1 1;min-width:0;width:100%;resize:vertical;min-height:48px;padding:10px 12px;border-radius:var(--r-md);border:1.5px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-size:var(--fs-title-sm);line-height:1.45}.w-cmt-form textarea:focus-visible,.w-compose-form select:focus-visible,.w-compose-form textarea:focus-visible{border-color:var(--primary-text)}.w-cmt-form .btn{min-height:44px}.w-quick{display:flex;flex-wrap:wrap;gap:8px}.w-quick-chip{min-height:44px;padding:0 14px;border-radius:var(--r-full);border:1px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-label);font-weight:700;cursor:pointer}.w-quick-chip:hover{border-color:var(--primary-text);background:var(--primary-subtle)}.w-quick-chip:disabled{background:var(--disabled-surface);color:var(--disabled-text);border-color:transparent;box-shadow:none;cursor:not-allowed}.w-compose{padding:14px 16px}.w-compose-start{display:flex;align-items:center;gap:10px}.w-compose-fake{flex:1 1;min-width:0;min-height:48px;padding:0 16px;border-radius:var(--r-full);text-align:left;cursor:pointer;border:1px solid var(--border-2);background:var(--surface-2);color:var(--text-2);font:inherit;font-size:var(--fs-body);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.w-compose-fake:hover{border-color:var(--primary-text);color:var(--text-2)}.w-compose-share{flex:0 0 auto;display:inline-flex;align-items:center;gap:6px;min-height:48px;padding:0 12px;border-radius:var(--r-full);border:0;background:none;color:var(--primary-text);font:inherit;font-size:var(--fs-label);font-weight:700;cursor:pointer}.w-compose-share:hover{background:var(--primary-subtle)}.w-compose-share svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}@media (max-width:479.98px){.w-compose-share span{display:none}.w-compose-share{width:48px;justify-content:center}}.w-compose-form{display:grid;grid-gap:10px;gap:10px}.w-compose-form textarea.mono{font-family:var(--mono,ui-monospace,Menlo,monospace);font-size:var(--fs-label);background:#1f2430;color:#e6edf3;border-color:#343b4a}.w-compose-code{display:grid;grid-gap:8px;gap:8px}.w-compose-code .row{display:flex;align-items:center;gap:10px;font-size:var(--fs-label);font-weight:700}.w-compose-form select{min-height:40px;padding:0 10px;border-radius:var(--r-md);border:1px solid var(--border-2);background:var(--surface);color:var(--text);font:inherit;font-size:var(--fs-label)}.w-compose-count,.w-compose-rules{margin:0;font-size:var(--fs-body-sm);color:var(--text-2)}.w-compose-bar{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.w-compose-bar .grow{flex:1 1}.w-compose-bar .btn{min-height:44px}.w-compose-aud{display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}.w-compose-aud svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}.w-compose-aud select{min-height:44px}.w-compose-done{display:flex;align-items:center;gap:6px;margin:0 0 10px;font-size:var(--fs-label);font-weight:700;color:var(--on-success-subtle)}.w-compose-done svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2.4}.w-share-strip{display:flex;flex-wrap:wrap;align-items:center;gap:12px}.w-share-strip .ic{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;flex:0 0 auto;background:var(--accent-subtle,var(--primary-subtle));color:var(--on-accent-subtle,var(--on-primary-subtle))}.w-share-strip .ic svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2}.w-share-strip .tx{flex:1 1 200px;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-label);color:var(--text-2)}.w-share-strip .tx h2{color:var(--text);font-size:var(--fs-body);font-weight:700}.w-share-strip .btn{min-height:44px}.w-share-group h3{margin:0 0 6px;font-size:var(--fs-body-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--text-2)}.w-share-group ul,.w-share-miles ul{list-style:none;margin:0;padding:0}.w-share-group li,.w-share-miles li{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:8px 0;border-top:1px solid var(--border)}.w-share-group li:first-child,.w-share-miles li:first-child{border-top:0}.w-share-group .nm,.w-share-miles .nm{flex:1 1 140px;min-width:0;font-weight:700;font-size:var(--fs-label);overflow-wrap:anywhere}.w-share-miles li>svg{width:17px;height:17px;stroke:var(--primary-text);fill:none;stroke-width:2}.w-share-group .btn,.w-share-miles .btn,.w-share-one .btn{min-height:44px}.w-share-group .ok,.w-share-ok{display:inline-flex;align-items:center;gap:5px;font-size:var(--fs-body-sm);font-weight:700;color:var(--on-success-subtle)}.w-share-group .ok svg,.w-share-ok svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2.4}.w-share-group .err,.w-share-one .err{flex-basis:100%;font-size:var(--fs-body-sm);color:var(--on-danger-subtle)}.w-share-one{display:inline-flex;flex-wrap:wrap;align-items:center;gap:6px}.w-badges li .w-share-ok,.w-badges li .w-share-one{margin-top:8px}.w-badges li .w-share-one .btn{min-height:40px}.w-feed-empty{display:grid;justify-items:center;grid-gap:10px;gap:10px;text-align:center;padding:28px 20px;color:var(--text-2)}.w-feed-empty>svg{width:24px;height:24px;stroke:var(--primary-text);fill:none;stroke-width:2}.w-feed-empty h2{margin:0;font-size:var(--fs-title-sm);color:var(--text)}.w-feed-empty p{margin:0;max-width:420px;font-size:var(--fs-label);line-height:1.5}.w-follow-btn{display:inline-flex;flex-direction:column;align-items:flex-end;gap:4px}.w-follow-btn .btn{min-height:44px;white-space:nowrap}.w-follow-btn .btn svg{width:15px;height:15px}.w-follow-err{font-size:var(--fs-caption);color:var(--on-danger-subtle);max-width:220px;text-align:right}.w-disc .w-sub{margin-top:0}.w-disc-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:0;gap:0}.w-disc-card{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}.w-disc-card:first-child{border-top:0;padding-top:4px}.w-disc-card .tx{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:1px;font-size:var(--fs-body-sm);color:var(--text-2)}.w-disc-card .tx .w-pname{font-size:var(--fs-body)}.w-disc-card .lvl{color:var(--text-2)}.w-disc-card .lvl,.w-disc-card .mut{font-weight:700;font-size:var(--fs-caption)}.w-disc-card .mut{color:var(--primary-text)}@media (min-width:1024px){.w-disc-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:24px}.w-disc-card:nth-child(2){border-top:0;padding-top:4px}}.w-disc-foot{margin:4px 0 16px}.w-disc-minor{display:grid;justify-items:start;grid-gap:8px;gap:8px}.w-disc-minor .ic{width:44px;height:44px;border-radius:var(--r-md);display:grid;place-items:center;background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-disc-minor .ic svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2}.w-disc-minor h2{margin:0;font-size:var(--fs-title-sm)}.w-disc-minor p{margin:0;color:var(--text-2);font-size:var(--fs-label);line-height:1.5}.w-lp-head{display:grid;grid-gap:14px;gap:14px}.w-lp-head .top{display:flex;align-items:flex-start;gap:14px}.w-lp-head .tx{flex:1 1;min-width:0;display:grid;grid-gap:4px;gap:4px}.w-lp-head h1{margin:0;font-family:var(--disp);font-size:var(--fs-title);letter-spacing:-.02em;line-height:1.15;display:flex;flex-wrap:wrap;align-items:center;gap:8px;overflow-wrap:anywhere}.w-lp-chip,.w-lp-head h1 .you{font-family:var(--body);font-size:var(--fs-caption);font-weight:800;letter-spacing:0;padding:4px 10px;border-radius:var(--r-full);background:var(--primary-subtle);color:var(--on-primary-subtle)}.w-lp-head .meta{margin:0;font-size:var(--fs-label);color:var(--text-2)}.w-lp-head .row{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.w-lp-head .row .btn{min-height:44px}.w-lp-counts{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-label);color:var(--text-2)}.w-lp-counts a{color:var(--text);font-weight:700;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}.w-lp-counts a:hover{color:var(--primary-text);text-decoration:underline}.w-lp-stats{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.w-lp-stats li{display:grid;grid-template-columns:auto 1fr;align-items:center;grid-column-gap:8px;column-gap:8px;padding:12px 14px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--border)}.w-lp-stats li svg{grid-row:span 2;width:18px;height:18px;stroke:var(--primary-text);fill:none;stroke-width:2}.w-lp-stats b{font-size:var(--fs-title-sm);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.w-lp-stats span{font-size:var(--fs-caption);color:var(--text-2)}.w-lp-tabs{margin-bottom:12px}.w-lp-certs,.w-lp-courses,.w-lp-weeks{list-style:none;margin:0;padding:0;display:grid;grid-gap:8px;gap:8px}.w-lp-certs a,.w-lp-courses a,.w-lp-weeks a{display:flex;align-items:center;gap:12px;min-height:52px;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--border);color:var(--text);text-decoration:none}.w-lp-certs a:hover,.w-lp-courses a:hover,.w-lp-weeks a:hover{border-color:var(--primary-text)}.w-lp-certs .ic,.w-lp-courses .ic{width:38px;height:38px;border-radius:var(--r-sm);display:grid;place-items:center;flex:0 0 auto}.w-lp-certs .ic{background:var(--accent-subtle,var(--primary-subtle));color:var(--on-accent-subtle,var(--on-primary-subtle))}.w-lp-certs svg,.w-lp-courses svg,.w-lp-weeks svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:2;flex:0 0 auto}.w-lp-certs .tx,.w-lp-courses .tx{flex:1 1;min-width:0;display:grid;grid-gap:3px;gap:3px;font-size:var(--fs-body-sm);color:var(--text-2)}.w-lp-certs .tx b,.w-lp-courses .tx b{font-size:var(--fs-body);color:var(--text)}.w-lp-weeks .nm{flex:1 1;min-width:0;font-weight:700}.w-lp-weeks .st{font-size:var(--fs-caption);font-weight:700;padding:4px 10px;border-radius:var(--r-full);background:var(--surface-2);color:var(--text-2)}.w-lp-weeks .st.on{background:var(--success-subtle);color:var(--on-success-subtle)}