.lp{--lp-ink:var(--text);--lp-ink-soft:var(--muted);--lp-paper:var(--surface);--lp-radius:var(--r-lg);--lp-ease:var(--ease);background:var(--bg);min-height:100vh;color:var(--text-body);font-family:var(--sans);-webkit-font-smoothing:antialiased;flex-direction:column;display:flex}.lp *,.lp :before,.lp :after{box-sizing:border-box}.lp>main{flex:1}.lp-wrap{width:100%;max-width:1400px;margin:0 auto;padding:0 24px}.lp-only-desktop{display:none}@media (width>=1024px){.lp-wrap{padding:0 40px}.lp-only-desktop{display:inline-flex}.lp-only-mobile{display:none}}.lp-btn{border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font:inherit;white-space:nowrap;cursor:pointer;transition:background var(--d2) var(--ease), border-color var(--d2) var(--ease), transform var(--d1) var(--ease);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:12px 24px;font-size:16px;font-weight:500;line-height:24px;text-decoration:none;display:inline-flex}.lp-btn:hover{background:var(--accent-deep)}.lp-btn:active{transform:translateY(1px)}.lp-btn:disabled{opacity:.5;cursor:default;transform:none}.lp-btn.secondary{background:var(--surface);color:var(--text);border-color:var(--border)}.lp-btn.secondary:hover{background:var(--surface);border-color:var(--border-strong)}.lp-btn.dark{background:var(--text);color:#fff}.lp-btn.dark:hover{background:#000}.lp-btn.small{padding:8px 16px;font-size:15px}.lp-header{z-index:40;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);background:#ffffffd9;position:sticky;top:0}.lp-header-inner{align-items:center;gap:20px;height:64px;display:flex}.lp-logo{color:var(--text);letter-spacing:-.01em;align-items:center;gap:8px;font-size:18px;font-weight:600;text-decoration:none;display:inline-flex}.lp-logo-mark{background:url(/favicon.svg) 50%/contain no-repeat;flex:none;width:22px;height:22px}.lp-nav{gap:20px;min-width:0;margin-left:8px}.lp-nav a{color:var(--muted);white-space:nowrap;transition:color var(--d2) var(--ease);font-size:15px;font-weight:500;text-decoration:none}@media (width>=1280px){.lp-nav{gap:28px}}.lp-only-wide{display:none}@media (width>=1280px){.lp-only-wide{display:inline-flex}}.lp-nav a:hover{color:var(--text)}.lp-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.lp-lang{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);gap:2px;padding:3px}.lp-lang button{border-radius:var(--r-pill);color:var(--muted);font:inherit;letter-spacing:.02em;cursor:pointer;transition:color var(--d2) var(--ease), background var(--d2) var(--ease);background:0 0;border:0;padding:5px 10px;font-size:13px;font-weight:600}.lp-lang button:hover:not(.on){color:var(--text)}.lp-lang button.on{background:var(--text);color:#fff}.lp-menu{position:relative}.lp-menu summary{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);width:40px;height:40px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;list-style:none;display:inline-flex}.lp-menu summary::-webkit-details-marker{display:none}.lp-menu-panel{z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);width:min(320px,100vw - 48px);box-shadow:var(--shadow-3);gap:4px;padding:12px;display:grid;position:absolute;top:48px;right:0}.lp-menu-panel>a{border-radius:var(--r-sm);color:var(--text);padding:10px 12px;font-weight:500;text-decoration:none}.lp-menu-panel>a:hover{background:var(--sunk)}.lp-menu-panel .lang-list{border-top:1px solid var(--border);margin-top:4px;padding-top:8px}.lp-eyebrow{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px;font-size:12px;display:block}.lp-h1{color:var(--text);letter-spacing:-.03em;text-wrap:balance;margin:24px 0 0;font-size:clamp(40px,6vw,72px);font-weight:500;line-height:1.05}.lp-h2{color:var(--text);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(28px,3vw,36px);font-weight:500;line-height:1.15}.lp-mark{background:var(--accent);color:var(--text);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.15em;padding:0 .08em}.lp-lead{max-width:576px;color:var(--muted);margin:20px 0 0;font-size:18px;line-height:1.55}.lp-fine{color:var(--faint);margin:16px 0 0;font-size:14px}.lp-icon-circle{background:var(--accent);width:40px;height:40px;color:var(--text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.lp-icon-circle.small{width:32px;height:32px}.lp-inline-link{color:var(--text);border-bottom:1px solid var(--border-strong);transition:border-color var(--d2) var(--ease);align-items:center;gap:6px;padding-bottom:2px;font-weight:500;text-decoration:none;display:inline-flex}.lp-inline-link:hover{border-color:var(--text)}.lp-section{padding:40px 0}.lp-section-head{max-width:720px;margin-bottom:28px}.lp-section-head .lp-lead{margin-top:12px}@media (width>=1024px){.lp-section{padding:56px 0}}.lp-dots{background-image:var(--dot);background-size:var(--dot-size);pointer-events:none;height:600px;max-height:100%;position:absolute;inset:0 0 auto;-webkit-mask-image:linear-gradient(#000 40%,#0000);mask-image:linear-gradient(#000 40%,#0000)}.lp-error{border:1px solid var(--bad-line);border-radius:var(--r-md);background:var(--bad-soft);color:var(--bad);margin:12px 0 0;padding:10px 16px;font-size:15px}.lp-hero{padding:40px 0 32px;position:relative;overflow:clip visible}.lp-hero-grid,.lp-tutors,.lp-steps,.lp-features,.lp-pricing,.lp-invite,.lp-start{grid-template-columns:minmax(0,1fr)}.lp-hero-copy,.lp-hero-aside{min-width:0}.lp-hero-grid{align-items:center;gap:40px;display:grid;position:relative}@media (width>=1024px){.lp-hero{padding:72px 0 48px}.lp-hero-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:64px}}.lp-badge{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-1);color:var(--text-body);transition:border-color var(--d2) var(--ease);align-items:center;gap:8px;padding:6px 12px 6px 8px;font-size:14px;text-decoration:none;display:inline-flex}.lp-badge:hover{border-color:var(--border-strong)}.lp-badge-chip{border-radius:var(--r-pill);background:var(--accent);color:var(--on-accent);padding:2px 10px;font-size:13px;font-weight:500}.lp-search{max-width:640px;margin-top:28px;position:relative}.lp-search-field{border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface);box-shadow:var(--shadow-1);transition:border-color var(--d2) var(--ease), box-shadow var(--d2) var(--ease);align-items:center;gap:8px;padding:6px 6px 6px 16px;display:flex}.lp-search-field:focus-within{border-color:var(--text);box-shadow:0 0 0 4px #e0ff8299}.lp-search-icon{color:var(--muted);flex:none}.lp-search-field input{min-width:0;color:var(--text);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:8px 0;font-size:17px}.lp-search-field input::placeholder{color:var(--faint)}.lp-search-btn{border-radius:var(--r-pill);padding:10px 20px}.lp-search-pop{z-index:30;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-3);padding:6px;position:absolute;top:calc(100% + 8px);left:0;right:0}.lp-search-pop ul{margin:0;padding:0;list-style:none}.lp-search-opt{border-radius:var(--r-sm);cursor:pointer;align-items:center;gap:12px;padding:8px 10px;display:flex}.lp-search-opt.active{background:var(--sunk)}.lp-search-opt b{color:var(--text);font-weight:500;display:block}.lp-search-opt small{color:var(--muted);font-size:13px;display:block}.lp-search-none{color:var(--muted);margin:0;padding:12px 14px;font-size:15px}.lp-search-none a{color:var(--text)}@media (width<=639px){.lp-search-field{border-radius:var(--r-lg);flex-wrap:wrap;padding:6px}.lp-search-icon{margin-left:10px}.lp-search-field input{flex-basis:calc(100% - 44px);padding:8px 4px}.lp-search-btn{border-radius:var(--r-md);width:100%}}.lp-chips{flex-wrap:wrap;gap:8px;margin-top:16px;display:flex}.lp-chip{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);white-space:nowrap;transition:border-color var(--d2) var(--ease), background var(--d2) var(--ease);align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.lp-chip:hover{border-color:var(--border-strong);background:var(--accent-soft)}.lp-chip.ghost{color:var(--muted);border-style:dashed}@media (width<=639px){.lp-chips{scrollbar-width:none;flex-wrap:nowrap;margin-left:-24px;margin-right:-24px;padding:4px 24px;overflow-x:auto}.lp-chips::-webkit-scrollbar{display:none}}.lp-hero-aside{justify-content:center;display:flex}.lp-float{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);width:100%;max-width:420px;box-shadow:var(--shadow-4);padding:24px;position:relative;overflow:hidden}.lp-float:before,.lp-share:before{content:"";background-image:var(--dot);background-size:var(--dot-size);opacity:.6;pointer-events:none;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.lp-float>*,.lp-share>*{position:relative}.lp-mock-top{align-items:center;gap:14px;display:flex}.lp-mock-avatar{background:var(--accent);width:56px;height:56px;color:var(--text);border-radius:50%;flex:none;justify-content:center;align-items:center;font-size:22px;font-weight:600;display:inline-flex}.lp-mock-name{color:var(--text);font-size:18px;font-weight:600}.lp-mock-head{color:var(--muted);margin-top:2px;font-size:14px}.lp-mock-tags{flex-wrap:wrap;gap:6px;margin-top:16px;display:flex}.lp-tag{border-radius:var(--r-pill);background:var(--sunk);color:var(--text);padding:4px 10px;font-size:13px;font-weight:500}.lp-mock-row{color:var(--text);align-items:center;gap:8px;margin-top:12px;font-weight:500;display:flex}.lp-mock-row.muted{color:var(--muted);font-size:14px;font-weight:400}.lp-mock-btn{width:100%;margin-top:18px}.lp-mock-embedded{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);margin-top:16px;padding:20px;position:relative}.lp-mock-embedded .lp-mock-btn{margin-top:14px}.lp-mock-tick{background:var(--accent);width:26px;height:26px;color:var(--text);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.lp-deck-wrap{width:100%;max-width:420px}.lp-deck{height:248px;margin:10px 0 36px;padding:0;list-style:none;animation:5s ease-in-out infinite alternate lp-levitate;position:relative}@keyframes lp-levitate{to{transform:translateY(-10px)}}.lp-deck-card{transition:transform .65s var(--ease-spring), opacity .45s var(--ease);will-change:transform, opacity;position:absolute;inset:0}.lp-deck-card a{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);height:100%;box-shadow:var(--shadow-4);color:var(--text);flex-direction:column;gap:10px;padding:24px;text-decoration:none;display:flex;position:relative;overflow:hidden}.lp-deck-card a:before{content:"";background-image:var(--dot);background-size:var(--dot-size);opacity:.6;pointer-events:none;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000,#0000 70%);mask-image:linear-gradient(#000,#0000 70%)}.lp-deck-card a>*{position:relative}.lp-deck-icon{border-radius:var(--r-md);background:var(--accent);width:44px;height:44px;color:var(--text);justify-content:center;align-items:center;display:inline-flex}.lp-deck-card b{letter-spacing:-.01em;font-size:20px;font-weight:600}.lp-deck-card small{-webkit-line-clamp:2;color:var(--muted);-webkit-box-orient:vertical;font-size:14px;line-height:1.45;display:-webkit-box;overflow:hidden}.lp-deck-cta{align-items:center;gap:6px;margin-top:auto;font-size:15px;font-weight:600;display:inline-flex}.lp-deck-card.is-front{z-index:3}.lp-deck-card.is-mid,.lp-deck-card.is-back,.lp-deck-card.is-hidden,.lp-deck-card.is-out{pointer-events:none}.lp-deck-card.is-mid{z-index:2;transform:translateY(16px)scale(.95)rotate(1.4deg)}.lp-deck-card.is-back{z-index:1;transform:translateY(32px)scale(.9)rotate(-1.6deg)}.lp-deck-card.is-hidden{z-index:0;opacity:0;transition:opacity .3s var(--ease);transform:translateY(32px)scale(.9)}.lp-deck-card.is-out{z-index:4;opacity:0;transform:translate(45%,-16%)rotate(8deg)}@media (prefers-reduced-motion:reduce){.lp-deck{animation:none}.lp-deck-card{transition:none}}.lp-topics{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=640px){.lp-topics{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}}@media (width>=1024px){.lp-topics{grid-template-columns:repeat(4,minmax(0,1fr))}}.lp-topic{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);transition:border-color var(--d2) var(--ease), transform var(--d2) var(--ease), box-shadow var(--d2) var(--ease);flex-direction:column;gap:6px;padding:18px;text-decoration:none;display:flex}.lp-topic:hover{border-color:var(--border-strong);box-shadow:var(--shadow-1);transform:translateY(-1px)}.lp-topic-name{margin-top:8px;font-size:16px;font-weight:600}.lp-topic-blurb{color:var(--muted);font-size:14px;line-height:1.45}@media (width<=639px){.lp-topic{padding:14px}.lp-topic-blurb{display:none}}.lp-sunken{border-radius:var(--r-xl);background:var(--sunk);padding:32px 24px}@media (width>=1024px){.lp-sunken{padding:48px}}.lp-steps{gap:24px;margin:0;padding:0;list-style:none;display:grid}@media (width>=768px){.lp-steps{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}}.lp-step-n{background:var(--accent);width:32px;height:32px;color:var(--text);font-family:var(--mono);border-radius:50%;justify-content:center;align-items:center;font-size:15px;display:inline-flex}.lp-step h3{color:var(--text);margin:14px 0 6px;font-size:18px;font-weight:500}.lp-step p{color:var(--muted);margin:0;line-height:1.5}.lp-sunken .lp-inline-link{margin-top:28px}.lp-frame{border:1.5px solid var(--text);border-radius:var(--r-xl);background:var(--surface);box-shadow:12px 12px 0 0 var(--text);margin-bottom:12px;margin-right:12px;overflow:hidden}.lp-frame-bar{border-bottom:1.5px solid var(--text);gap:6px;padding:12px 16px;display:flex}.lp-frame-bar i{border:1.5px solid var(--text);background:var(--surface);border-radius:50%;width:10px;height:10px}.lp-frame-bar i:first-child{background:var(--accent)}.lp-split{display:grid}@media (width>=768px){.lp-split{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.lp-stage{background:var(--text);background-position:50%;background-size:cover;min-height:300px;position:relative}@media (width>=768px){.lp-stage{min-height:460px}}.lp-stage-label{border-radius:var(--r-pill);color:var(--text);background:#ffffffeb;padding:5px 12px;font-size:13px;font-weight:500;position:absolute;top:14px;left:14px}.lp-stage-controls{justify-content:center;gap:8px;display:flex;position:absolute;bottom:12px;left:0;right:0}.lp-stage-controls span{border-radius:var(--r-pill);color:#fff;background:#1d2020bf;padding:6px 12px;font-size:12px}.lp-lesson-pane{align-items:center;min-width:0;display:flex}.lp-lesson-pane>*{width:100%}.lp-demo-note{color:var(--muted);text-align:center;margin:14px 0 0;font-size:14px}.lp-graph{gap:14px;padding:20px 22px 22px;display:grid}.lp-graph-top .lp-eyebrow{margin-bottom:8px}.lp-graph-task,.lp-graph-now{color:var(--text-body);margin:0;font-size:15px;line-height:1.5}.lp-graph-now{color:var(--muted);margin-top:4px}.lp-graph-eq{border-radius:var(--r-sm);background:var(--sunk);color:var(--text);font-family:var(--mono);white-space:nowrap;padding:1px 8px;font-size:15px;font-weight:500;display:inline-block}.lp-graph-eq.target{background:var(--accent)}.lp-graph-svg{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);touch-action:none;-webkit-user-select:none;user-select:none;width:100%;max-width:420px;height:auto;margin:0 auto;display:block;overflow:visible}.lp-graph-dot{fill:#1d202029}.lp-graph-region{fill:#e0ff828c;transition:fill var(--d2) var(--ease)}.lp-graph.right .lp-graph-region{fill:#c8ec5fcc}.lp-graph-axis{stroke:var(--text);stroke-width:1.5px}.lp-graph-arrow{fill:var(--text)}.lp-graph-tick{fill:var(--muted);font-family:var(--mono);font-size:11px}.lp-graph-line{stroke:var(--text);stroke-width:2.5px;stroke-linecap:round}.lp-graph-handle{cursor:grab;outline:none}.lp-graph-handle.dragging{cursor:grabbing}.lp-graph-halo{fill:#e0ff8200;transition:fill var(--d2) var(--ease)}.lp-graph-handle:hover .lp-graph-halo,.lp-graph-handle.dragging .lp-graph-halo,.lp-graph-handle:focus-visible .lp-graph-halo{fill:#e0ff8299}.lp-graph-knob{fill:#fff;stroke:var(--text);stroke-width:2px}.lp-graph-core{fill:var(--text)}.lp-graph-label{fill:var(--text);font-family:var(--mono);paint-order:stroke;stroke:#fff;stroke-width:3px;stroke-linejoin:round;font-size:11px}.lp-graph-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.lp-graph-hint{color:var(--faint);font-size:13px}.lp-graph-msg{border-radius:var(--r-md);align-items:flex-start;gap:8px;min-height:62px;margin:0;padding:10px 12px;font-size:14px;line-height:1.45;display:flex}.lp-graph-msg.none{visibility:hidden}.lp-graph-msg .ic{flex:none;margin-top:2px}.lp-graph-msg.right{background:var(--ok-soft);color:var(--ok)}.lp-graph-msg.wrong{background:var(--warn-soft);color:var(--warn)}@media (width<=767px){.lp-graph{padding:16px}}.lp-features{gap:16px;display:grid}@media (width>=640px){.lp-features{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=1024px){.lp-features{grid-template-columns:repeat(3,minmax(0,1fr))}}.lp-feature-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:22px}.lp-feature-card h3{color:var(--text);margin:14px 0 6px;font-size:16px;font-weight:500}.lp-feature-card p{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.lp-chip-row{flex-wrap:wrap;gap:6px;margin-top:12px;display:flex}.lp-fchip{border-radius:var(--r-sm);background:var(--sunk);color:var(--text);font-family:var(--mono);padding:4px 8px;font-size:12px}.lp-fchip b{color:var(--ok)}.lp-tutors{align-items:center;gap:32px;display:grid}@media (width>=1024px){.lp-tutors{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}}.lp-ticks{gap:10px;margin:20px 0 0;padding:0;list-style:none;display:grid}.lp-ticks li{color:var(--text-body);align-items:flex-start;gap:10px;display:flex}.lp-ticks .ic{color:var(--accent-text);flex:none;margin-top:3px}.lp-cta-row{flex-wrap:wrap;gap:12px;margin-top:24px;display:flex}.lp-cta-row.center{justify-content:center}.lp-consent{color:var(--faint);margin:12px 0 0;font-size:13px}.lp-consent a{color:inherit;text-underline-offset:3px;text-decoration:underline}.lp-share{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);padding:24px;position:relative;overflow:hidden}.lp-url{border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font-family:var(--mono);align-items:center;gap:10px;padding:8px 8px 8px 14px;font-size:14px;display:flex}.lp-url span{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.lp-url b{border-radius:var(--r-pill);background:var(--accent);font-family:var(--sans);align-items:center;gap:4px;padding:5px 10px;font-size:13px;font-weight:500;display:inline-flex}.lp-share-caption{color:var(--muted);margin:16px 0 0;font-size:14px}.lp-pricing{align-items:start;gap:20px;display:grid}@media (width>=768px){.lp-pricing{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}}.lp-price-card{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);flex-direction:column;padding:32px;display:flex;position:relative}.lp-price-card.featured{border-color:var(--text)}.lp-price-card h3{color:var(--text);margin:0;font-size:18px;font-weight:500}.lp-price-badge{border-radius:var(--r-pill);background:var(--accent);color:var(--text);padding:4px 12px;font-size:13px;font-weight:500;position:absolute;top:-13px;left:24px}.lp-price{color:var(--text);letter-spacing:-.03em;margin:16px 0 8px;font-size:clamp(44px,5vw,64px);font-weight:500;line-height:1}.lp-price-period{color:var(--muted);letter-spacing:0;font-size:16px;font-weight:400}.lp-price-card .lp-ticks{margin:16px 0 24px}.lp-price-card .lp-btn{align-self:flex-start}.lp-plans-title{color:var(--muted);margin:0 0 8px;font-size:14px}.lp-plans{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;margin:0 0 24px;display:grid}.lp-plans div{border-radius:var(--r-sm);background:var(--sunk);justify-content:space-between;gap:8px;padding:8px 12px;font-size:14px;display:flex}.lp-plans dt{color:var(--muted)}.lp-plans dd{color:var(--text);margin:0;font-weight:500}.lp-plans-terms{color:var(--faint);margin:16px 0 0;font-size:13px}.lp-plans-terms a{color:inherit;text-underline-offset:3px;text-decoration:underline}.lp-marks{color:var(--muted);flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:24px;font-size:14px;display:flex}.lp-marks-row{flex-wrap:wrap;gap:8px;display:inline-flex}.lp-marks-row img{border-radius:var(--r-sm);background:#fff;width:auto;height:32px}.lp-invite{border-radius:var(--r-xl);background:var(--sunk);align-items:center;gap:16px;padding:24px;display:grid}@media (width>=1024px){.lp-invite{grid-template-columns:minmax(0,1fr) auto auto;gap:32px;padding:28px 32px}}.lp-invite h3{color:var(--text);margin:0;font-size:18px;font-weight:500}.lp-invite p{color:var(--muted);margin:4px 0 0;font-size:15px}.lp-code-form{gap:8px;display:flex}.lp-code-form input{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);width:160px;min-width:0;color:var(--text);font:inherit;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;flex:1;padding:11px 14px;font-size:15px}.lp-code-form input:focus{border-color:var(--text);outline:0}.lp-faq-wrap{max-width:900px;margin-left:0}.lp-faq details{border-bottom:1px solid var(--border)}.lp-faq details:first-child{border-top:1px solid var(--border)}.lp-faq summary{color:var(--text);cursor:pointer;justify-content:space-between;align-items:center;gap:16px;padding:20px 0;font-size:16px;font-weight:500;list-style:none;display:flex}.lp-faq summary::-webkit-details-marker{display:none}.lp-faq summary .ic{color:var(--muted);transition:transform var(--d2) var(--ease);flex:none}.lp-faq details[open] summary .ic{transform:rotate(180deg)}.lp-faq details p{max-width:720px;color:var(--muted);margin:0 0 20px;line-height:1.55}.lp-final{border:1px solid var(--border);border-radius:var(--r-xl);background:var(--surface);text-align:center;padding:56px 24px;position:relative;overflow:hidden}.lp-final>*{position:relative}.lp-final .lp-dots{height:100%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000,#0000 70%);mask-image:radial-gradient(#000,#0000 70%)}.lp-final .lp-fine{margin-top:16px}.lp-footer{border-top:1px solid var(--border);margin-top:24px;padding:40px 0 32px}.lp-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;display:grid}.lp-footer-brand{grid-column:1/-1}.lp-footer-brand p{max-width:260px;color:var(--muted);margin:12px 0 0;font-size:14px}@media (width>=1024px){.lp-footer-grid{grid-template-columns:1.6fr repeat(4,1fr);gap:32px}.lp-footer-brand{grid-column:auto}}.lp-footer-col{align-content:start;gap:10px;display:grid}.lp-footer-col h3{color:var(--faint);letter-spacing:.06em;text-transform:uppercase;margin:0 0 4px;font-size:13px;font-weight:600}.lp-footer-col a,.lp-footer-col span{color:var(--text-body);font-size:15px;text-decoration:none}.lp-footer-col a:hover{color:var(--text);text-underline-offset:3px;text-decoration:underline}.lp-footer-bottom{border-top:1px solid var(--border);color:var(--faint);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:32px;padding-top:20px;font-size:14px;display:flex}.lp-page{padding:32px 24px 56px}@media (width>=1024px){.lp-page{padding:48px 40px 72px}}.lp-breadcrumb{color:var(--muted);align-items:center;gap:6px;margin-bottom:20px;font-size:14px;text-decoration:none;display:inline-flex}.lp-breadcrumb:hover{color:var(--text)}.lp-page-head{align-items:center;gap:16px;display:flex}.lp-page-head .lp-icon-circle{width:48px;height:48px}.lp-page h1{color:var(--text);letter-spacing:-.03em;margin:0;font-size:clamp(32px,4vw,48px);font-weight:500;line-height:1.1}.lp-page .lp-search{margin-top:24px}.lp-empty{border:1px dashed var(--border-strong);border-radius:var(--r-xl);background:var(--surface);text-align:center;margin-top:28px;padding:32px 24px}.lp-empty h2{color:var(--text);margin:0 0 8px;font-size:22px;font-weight:500}.lp-empty p{max-width:520px;color:var(--muted);margin:0 auto}.lp-empty .lp-cta-row{justify-content:center}.lp-topic-row{margin-top:40px}.lp-topic-row h2{color:var(--text);margin:0 0 12px;font-size:18px;font-weight:500}.lp-start{grid-template-columns:minmax(0,520px);place-content:start center;min-height:70vh;padding:48px 24px 80px;display:grid}@media (width>=1024px){.lp-start{padding:80px 40px 96px}}.lp-start-card h1{color:var(--text);letter-spacing:-.03em;margin:0 0 10px;font-size:clamp(32px,4vw,48px);font-weight:500;line-height:1.1}.lp-start-card>p{color:var(--muted);margin:0 0 26px;font-size:17px}.lp-role{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--sunk);gap:2px;margin:12px 0 22px;padding:4px;display:inline-flex}.lp-role button{border-radius:var(--r-pill);color:var(--muted);font:inherit;cursor:pointer;transition:color var(--d2) var(--ease), background var(--d2) var(--ease);background:0 0;border:0;padding:8px 16px;font-size:15px;font-weight:500}.lp-role button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow-1)}.lp-start-lead{color:var(--muted);margin:0 0 6px;font-size:16px;line-height:1.5}.lp-start-card .lp-error{margin:0 0 16px}.lp-start-card .lp-hint a{color:var(--text);text-underline-offset:3px;text-decoration:underline}.lp-auth{flex-direction:column;gap:12px;max-width:380px;display:flex}.lp-auth-divider{color:var(--muted);text-align:center;font-size:14px}.lp-auth input{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);color:var(--text);font:inherit;padding:12px 14px;font-size:16px}.lp-auth input:focus{border-color:var(--text);outline:0}.lp-hint{color:var(--muted);margin:4px 0 0;font-size:14px}.lp-avatar{object-fit:cover;background:var(--sunk);border-radius:50%;flex:none;justify-content:center;align-items:center;display:inline-flex}.lp-avatar-initials{background:var(--accent);color:var(--text);letter-spacing:-.02em;font-weight:600}.lp-tutor-grid{gap:12px;display:grid}@media (width>=768px){.lp-tutor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}@media (width>=1280px){.lp-tutor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.lp-tutor-card{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);transition:border-color var(--d2) var(--ease), transform var(--d2) var(--ease), box-shadow var(--d2) var(--ease);gap:14px;padding:18px;text-decoration:none;display:flex}.lp-tutor-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-1);transform:translateY(-1px)}.lp-tutor-card-body{gap:6px;min-width:0;display:grid}.lp-tutor-card-body b{font-size:17px;font-weight:600}.lp-tutor-card-head{color:var(--muted);font-size:14px;line-height:1.4}.lp-tutor-card-meta{flex-wrap:wrap;gap:6px;display:flex}.lp-tutor-card-foot{color:var(--text-body);font-size:14px;font-weight:500}.lp-profile-grid{grid-template-columns:minmax(0,1fr);gap:32px;display:grid}@media (width>=1024px){.lp-profile-grid{grid-template-columns:minmax(0,1fr) 340px;grid-template-areas:"head aside""main aside";column-gap:48px}.lp-profile-head{grid-area:head}.lp-profile-main{grid-area:main}.lp-profile-aside{grid-area:aside}}.lp-profile-head{align-items:center;gap:24px;display:flex}.lp-profile-head .lp-lead{margin-top:8px}.lp-profile-meta{color:var(--text-body);flex-wrap:wrap;gap:8px 16px;margin:10px 0 0;font-weight:500;display:flex}.lp-profile-main{gap:28px;max-width:720px;display:grid}.lp-profile-main .lp-chips{margin-top:0}.lp-profile-h2{color:var(--text);margin:0 0 10px;font-size:18px;font-weight:500}.lp-profile-bio{color:var(--text-body);white-space:pre-line;margin:0 0 12px;line-height:1.6}.lp-profile-cta{gap:12px;max-width:none;display:grid}.lp-profile-cta .lp-fine{margin:0}@media (width<=639px){.lp-profile-head{flex-direction:column;align-items:flex-start;gap:16px}}.lp-stars{color:var(--border-strong);letter-spacing:1px;white-space:nowrap;line-height:1;display:inline-block;position:relative}.lp-stars-fill{color:#e0a400;position:absolute;inset:0 auto 0 0;overflow:hidden}.lp-rating-line{color:var(--text-body);align-items:center;gap:6px;font-size:14px;display:inline-flex}.lp-rating-line b{color:var(--text);font-weight:600}.lp-rating-line>span{color:var(--muted)}.lp-star-input{gap:2px;display:inline-flex}.lp-star-input button{color:var(--border-strong);cursor:pointer;transition:color var(--d1) var(--ease), transform var(--d1) var(--ease);background:0 0;border:0;padding:2px;font-size:28px;line-height:1}.lp-star-input button.on{color:#e0a400}.lp-star-input button:hover{transform:scale(1.1)}.lp-tag-accent{background:var(--accent-soft);color:var(--accent-text);margin-left:6px}.lp-fine-bad{color:var(--bad)}.lp-review-form{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--sunk);gap:10px;margin:0 0 20px;padding:18px;display:grid}.lp-review-form h3{color:var(--text);margin:0;font-size:16px;font-weight:500}.lp-review-form .lp-fine{margin:0}.lp-review-form textarea,.lp-request-form input,.lp-request-form textarea{border:1px solid var(--border-strong);border-radius:var(--r-md);background:var(--surface);width:100%;color:var(--text);font:inherit;padding:10px 12px;font-size:15px}.lp-review-form textarea:focus,.lp-request-form input:focus,.lp-request-form textarea:focus{border-color:var(--text);outline:0}.lp-review-form .lp-cta-row{align-items:center;margin-top:4px}.lp-reviews{gap:14px;margin:0;padding:0;list-style:none;display:grid}.lp-review{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);padding:14px 16px}.lp-review-head{flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.lp-review-head b{color:var(--text);font-weight:600}.lp-review-head span{color:var(--faint)}.lp-review p{color:var(--text-body);white-space:pre-line;margin:8px 0 0;line-height:1.55}.lp-docs{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}@media (width>=640px){.lp-docs{grid-template-columns:repeat(3,minmax(0,1fr))}}.lp-doc{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text);transition:border-color var(--d2) var(--ease);gap:6px;padding:10px;text-decoration:none;display:grid}.lp-doc:hover{border-color:var(--border-strong)}.lp-doc img{aspect-ratio:4/3;object-fit:cover;border-radius:var(--r-sm);background:var(--sunk);width:100%;display:block}.lp-doc b{font-size:14px;font-weight:500;line-height:1.35}.lp-doc small{color:var(--muted);font-size:12px}.lp-dialog{border:1.5px solid var(--text);border-radius:var(--r-xl);background:var(--surface);width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);color:var(--text-body);box-shadow:12px 12px 0 0 var(--text);padding:22px 24px 24px;overflow:auto}.lp-dialog::backdrop{background:#1d202073}.lp-dialog-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.lp-dialog-head h2{color:var(--text);letter-spacing:-.01em;margin:0;font-size:22px;font-weight:500}.lp-dialog-close{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);color:var(--text);cursor:pointer;flex:none;justify-content:center;align-items:center;width:36px;height:36px;display:inline-flex}.lp-dialog-sub{margin:6px 0 16px}.lp-slots h3{color:var(--text);margin:0 0 10px;font-size:16px;font-weight:500}.lp-slot-day{margin-bottom:12px}.lp-slot-day b{color:var(--muted);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.lp-slot-row{flex-wrap:wrap;gap:6px;display:flex}.lp-slot{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font:inherit;font-family:var(--mono);cursor:pointer;transition:border-color var(--d2) var(--ease), background var(--d2) var(--ease);padding:7px 12px;font-size:14px}.lp-slot:hover{border-color:var(--text);background:var(--accent-soft)}.lp-request-form{gap:12px;display:grid}.lp-request-form label{color:var(--muted);gap:6px;font-size:14px;display:grid}.lp-request-chosen{flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0;display:flex}.lp-request-chosen .lp-inline-link{font:inherit;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;margin:0;font-weight:500}.lp-honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-9999px}.lp-dialog-sent{justify-items:start;gap:12px;padding:8px 0;display:grid}.lp-dialog-sent p{color:var(--text-body);margin:0;font-size:16px;line-height:1.5}.lp-reveal{opacity:0;transition:opacity var(--d3) var(--ease), transform var(--d3) var(--ease);transform:translateY(8px)}.lp-reveal.on{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.lp-reveal{opacity:1;transition:none;transform:none}}.lp-auth-form{flex-direction:column;gap:10px;display:flex}.lp-sent{border-radius:var(--r-md);background:var(--accent-soft);color:var(--text-body);align-items:flex-start;gap:8px;margin:0;padding:12px 14px;font-size:15px;line-height:1.45;display:flex}.lp-sent .ic{color:var(--accent-text);flex:none;margin-top:2px}.lp-code-block{border-top:1px solid var(--border);gap:12px;margin-top:8px;padding-top:16px;display:grid}.lp-code-block .lp-inline-link{font:inherit;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;justify-self:start;padding:0 0 2px;font-weight:500}.lp-start-card>p{color:var(--muted);font-size:16px}.lp-user{max-width:180px;color:var(--muted);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:6px;font-size:14px;display:inline-flex;overflow:hidden}.lp-menu-panel>button{border-radius:var(--r-sm);color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:10px 12px;font-weight:500}.lp-menu-panel>button:hover{background:var(--sunk)}.lp-notice{border:1px solid var(--accent-deep);border-radius:var(--r-md);background:var(--accent-soft);color:var(--text-body);align-items:center;gap:8px;margin:12px 0 0;padding:10px 16px;font-size:15px;display:flex}.lp-notice .ic{color:var(--accent-text);flex:none}.lp-profile-hero{padding:32px 0 48px;position:relative}.lp-profile-hero .lp-dots{height:440px}@media (width>=1024px){.lp-profile-hero{padding:56px 0 64px}}.lp-profile-grid{position:relative}@media (width>=1024px){.lp-profile-grid{grid-template-columns:minmax(0,1fr) 360px;align-items:start;gap:48px 56px}}.lp-profile-head{align-items:flex-start;gap:28px}.lp-profile-head>div{min-width:0}.lp-profile-head .lp-avatar{border:1px solid var(--border);box-shadow:var(--shadow-1);background:var(--surface);border-radius:28px}.lp-profile-head .lp-eyebrow{margin-bottom:8px}.lp-profile-head h1{color:var(--text);letter-spacing:-.03em;overflow-wrap:anywhere;margin:0;font-size:clamp(32px,4.5vw,52px);font-weight:500;line-height:1.05}.lp-profile-head .lp-lead{max-width:640px;color:var(--text-body);margin-top:12px}.lp-profile-meta{gap:8px 18px;margin-top:16px;font-size:15px;font-weight:400}.lp-profile-meta>span{align-items:center;gap:6px;display:inline-flex}.lp-profile-meta .ic{color:var(--muted)}.lp-socials{flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none;display:flex}.lp-socials a{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);transition:border-color var(--d2) var(--ease), background var(--d2) var(--ease);align-items:center;gap:8px;padding:7px 12px 7px 9px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}.lp-socials a:hover{border-color:var(--text);background:var(--accent-soft)}.lp-socials.compact a{padding:8px}.lp-tutor-page .lp-profile-main{gap:40px}.lp-tutor-page .lp-profile-h2{letter-spacing:-.01em;margin-bottom:14px;font-size:22px}.lp-tutor-page .lp-profile-bio{font-size:17px;line-height:1.65}.lp-profile-how{border-radius:var(--r-lg);background:var(--sunk);gap:14px;margin:0;padding:20px;list-style:none;display:grid}.lp-profile-how li{color:var(--text-body);align-items:flex-start;gap:12px;font-size:15px;line-height:1.45;display:flex}.lp-profile-how .lp-step-n{flex:none;width:28px;height:28px;font-size:14px}@media (width>=768px){.lp-profile-how{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:24px}.lp-profile-how li{flex-direction:column;gap:10px}}.lp-tutor-page .lp-profile-cta{gap:14px;padding:24px;position:sticky;top:88px}.lp-tutor-page .lp-profile-cta .lp-btn{width:100%}.lp-tutor-page .lp-profile-cta hr{border:0;border-top:1px solid var(--border);margin:2px 0}.lp-price-block{gap:4px;display:grid}.lp-price-label{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:12px}.lp-price-value{color:var(--text);letter-spacing:-.02em;font-size:28px;font-weight:500;line-height:1.15}.lp-price-value.small{letter-spacing:0;color:var(--text-body);font-size:17px;font-weight:500}.lp-contact-gate{gap:10px;display:grid}.lp-contact-masked{border:1px dashed var(--border-strong);border-radius:var(--r-md);color:var(--text);font-family:var(--mono);justify-content:space-between;align-items:center;gap:10px;padding:10px 10px 10px 12px;font-size:15px;display:flex}.lp-contact-masked>span{text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:8px;min-width:0;display:inline-flex;overflow:hidden}.lp-contact-masked .ic{color:var(--muted);flex:none}.lp-contact-masked button{border-radius:var(--r-sm);background:var(--text);color:#fff;font:inherit;cursor:pointer;border:0;flex:none;padding:7px 12px;font-size:14px;font-weight:500}.lp-contact-masked button:hover{background:#000}.lp-gate-panel{border-radius:var(--r-md);background:var(--accent-soft);color:var(--text-body);padding:14px 16px;font-size:14px;line-height:1.5}.lp-gate-panel b{color:var(--text);margin-bottom:4px;font-size:15px;display:block}.lp-gate-panel .lp-btn{margin-top:12px}.lp-review-summary{align-items:center;gap:16px;margin-bottom:18px;display:flex}.lp-review-summary b{color:var(--text);letter-spacing:-.03em;font-size:44px;font-weight:500;line-height:1}.lp-review-summary>div{gap:4px;display:grid}.lp-review-summary span{color:var(--muted);font-size:14px}.lp-profile-tutorcta{margin:8px auto 64px}.lp-profile-tutorcta .lp-sunken{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px 32px;padding:28px 24px;display:flex}@media (width>=1024px){.lp-profile-tutorcta .lp-sunken{padding:36px 40px}}.lp-profile-tutorcta h2{color:var(--text);letter-spacing:-.02em;margin:0 0 6px;font-size:24px;font-weight:500}.lp-profile-tutorcta p{max-width:520px;color:var(--muted);margin:0}.lp-profile-tutorcta .lp-cta-row{margin:0}.lp-profile-bar{z-index:30;padding:12px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--border);-webkit-backdrop-filter:blur(12px);background:#ffffffeb;justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;inset:auto 0 0}.lp-profile-bar>div{flex:auto;min-width:0}.lp-profile-bar b{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:16px;font-weight:500;display:block;overflow:hidden}.lp-profile-bar small{color:var(--muted);font-size:12px;display:block}.lp-profile-bar .lp-btn{flex:0 auto;min-width:0;padding:10px 16px;font-size:15px}.lp-tutor-page main{padding-bottom:96px}@media (width>=1024px){.lp-profile-bar{display:none}.lp-tutor-page main{padding-bottom:0}}.lp-auth-toggle{font:inherit;cursor:pointer;background:0 0;border-top:0;border-left:0;border-right:0;align-self:flex-start;margin:0;font-size:14px}.lp-hint-bad{color:var(--bad)}.lp-tutor-card{position:relative}.lp-fav{z-index:2;border:1px solid var(--border);background:var(--surface);width:34px;height:34px;color:var(--muted);cursor:pointer;transition:color var(--d1) var(--ease), border-color var(--d1) var(--ease), transform var(--d1) var(--ease);border-radius:50%;place-items:center;display:grid;position:absolute;top:10px;right:10px}.lp-fav:hover{color:var(--bad);border-color:var(--bad);transform:scale(1.06)}.lp-fav.on{color:var(--bad);border-color:var(--bad)}.lp-fav.on .ic path{fill:currentColor}.lp-fav-full.on{color:var(--bad);border-color:var(--bad)}.lp-fav-full.on .ic path{fill:currentColor}.lp-fav.counted{border-radius:var(--r-pill);align-items:center;gap:4px;width:auto;min-width:34px;padding:0 10px 0 8px;display:inline-flex}.lp-fav-n{font-size:13px;font-weight:600;line-height:1}.lp-fav-full .lp-fav-count{border-radius:var(--r-pill);background:var(--sunk);color:var(--text);padding:1px 8px;font-size:13px;font-weight:600}.lp-fav-full.on .lp-fav-count{background:var(--bad-soft);color:var(--bad)}.lp-reviews-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;display:flex}.lp-reviews-head .lp-profile-h2{margin-bottom:0}.lp-review-dialog{margin:12px 0 0}@font-face{font-family:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/onest-cyrillic-ext-DOFToQv1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/onest-cyrillic-DayYxulF.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/onest-latin-ext-QAhDxQuo.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Onest;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/onest-latin-Dun_Rd-l.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#fff;--surface:#fff;--sunk:#f2f3f3;--border:#e5e6e6;--border-strong:#c9cccc;--border-loud:#7a8286;--border-ink:#1d2020;--text:#1d2020;--text-body:#22242a;--muted:#5a6d77;--faint:#768086;--accent:#e0ff82;--accent-deep:#c8ec5f;--accent-soft:#f4ffd6;--accent-tint:#e0ff8259;--accent-text:#3b5200;--on-accent:#1d2020;--ok:#1d7a4f;--ok-bright:#2f9e6e;--ok-soft:#e6f4ea;--ok-line:#9fd3b6;--bad:#c0362b;--bad-soft:#fdece9;--bad-line:#eeb2a9;--warn:#8a5a08;--warn-soft:#fdf3e0;--dot:radial-gradient(circle, #1d202014 1px, transparent 1px);--dot-size:12px 12px;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s7:32px;--s8:40px;--s9:56px;--s10:72px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:24px;--r-pill:999px;--radius:var(--r-md);--sans:"Onest", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--serif:var(--sans);--mono:ui-monospace, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--t-display:clamp(32px, 6vw, 48px);--t-h1:24px;--t-h2:19px;--t-h3:16px;--t-body:16px;--t-sm:14px;--t-xs:13px;--t-micro:12px;--lh-tight:1.15;--lh-head:1.3;--lh-body:1.55;--shadow-1:0 1px 2px #0000000a, 0 1px 3px #0000000a;--shadow-2:0 2px 8px #0000000f;--shadow-3:0 8px 24px #0000001a;--shadow-4:0 2px 4px -2px #00000014, 0 24px 48px -12px #00000024;--ease:cubic-bezier(.25, 0, 0, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--d1:.12s;--d2:.2s;--d3:.32s}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--border-ink);outline-offset:2px;border-radius:var(--r-sm)}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font:var(--t-body) / var(--lh-body) var(--sans);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{font-family:var(--serif);line-height:var(--lh-head);letter-spacing:-.01em}button,input,select,textarea{font:inherit;color:inherit}select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%236b635e' stroke-width='1.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 11px center;background-repeat:no-repeat;background-size:11px 8px;padding-right:32px}select:disabled{opacity:.55;cursor:default}input[type=date],input[type=time]{appearance:none;min-height:40px}input[type=date]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}input[type=time]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer}input[type=checkbox]{accent-color:var(--accent-text);width:16px;height:16px}select.field,.pair select{padding-right:32px}.shell{max-width:780px;padding:var(--s6) var(--s4) 96px;margin:0 auto}.masthead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:20px;display:flex}.app-layout{grid-template-columns:220px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:4px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.01em;padding:0 10px 16px;font-size:18px;font-weight:700}.nav-list{flex-direction:column;gap:2px;display:flex}.nav-item{color:var(--text);border-radius:8px;padding:8px 10px;font-size:15px;text-decoration:none;display:block}.nav-item:hover{background:var(--bg)}.nav-item.on{background:var(--accent-soft);color:var(--accent-text);font-weight:500}.sidebar-foot{padding-top:var(--s3);border-top:1px solid var(--border);margin-top:auto}.acct{position:relative}.acct-trigger{align-items:center;gap:var(--s2);width:100%;padding:var(--s2);border-radius:var(--r-md);color:var(--text);text-align:left;cursor:pointer;transition:background-color var(--d1) var(--ease), border-color var(--d1) var(--ease);background:0 0;border:1px solid #0000;font-size:15px;display:flex}.acct-trigger:hover,.acct.open .acct-trigger{background:var(--bg);border-color:var(--border)}.acct-trigger svg:last-child{color:var(--muted);transition:transform var(--d2) var(--ease);margin-left:auto}.acct.open .acct-trigger svg:last-child{transform:rotate(180deg)}.acct-mono{background:var(--accent-tint);width:28px;height:28px;color:var(--accent-text);border-radius:50%;flex:none;place-items:center;font-size:13px;font-weight:600;line-height:1;display:grid}.acct-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.acct-pop{bottom:calc(100% + var(--s2));min-width:196px;padding:var(--s2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);z-index:40;transform-origin:bottom;animation:acct-in var(--d2) var(--ease);position:absolute;left:0;right:0;box-shadow:0 12px 32px #211e1d24,0 2px 6px #211e1d0f}@keyframes acct-in{0%{opacity:0;transform:translateY(6px)scale(.97)}}@media (prefers-reduced-motion:reduce){.acct-pop{animation:none}.acct-trigger svg:last-child{transition:none}}.acct-pop-head{margin:var(--s1) var(--s2) var(--s2);letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:12px;font-weight:600}.acct-item{align-items:center;gap:var(--s2);width:100%;padding:var(--s2);border-radius:var(--r-sm,8px);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;font-size:15px;text-decoration:none;display:flex}.acct-item:hover{background:var(--bg)}.acct-item.active{color:var(--accent-text)}.acct-item.danger{color:var(--bad)}.acct-item.danger:hover{background:var(--bad-soft)}.acct-sep{height:1px;margin:var(--s2) 0;background:var(--border)}.lang-list{flex-direction:column;display:flex}.lang-option{justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s2);border-radius:var(--r-sm,8px);color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;font-size:15px;display:flex}.lang-option:hover{background:var(--bg)}.lang-option.on{color:var(--accent-text);font-weight:600}.lang-picker{position:relative}.lang-trigger{border:1.5px solid var(--lp-ink,var(--border));border-radius:var(--r-pill);color:inherit;cursor:pointer;background:0 0;align-items:center;gap:6px;padding:7px 12px;font-size:14px;display:inline-flex}.lang-trigger:hover{background:#0000000a}.lang-picker.compact .lang-trigger-label{display:none}.lang-pop{min-width:172px;padding:var(--s2);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);z-index:60;animation:acct-in var(--d2) var(--ease);position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #211e1d24}.app-main{width:100%;max-width:860px;padding:24px 20px 64px}.app-main.wide{max-width:none}@media (width<=860px){.app-layout{grid-template-columns:minmax(0,1fr)}.sidebar{border-right:none;border-bottom:1px solid var(--border);flex-direction:row;align-items:center;gap:10px;height:auto;padding:10px 12px;position:static;overflow-x:auto}.brand{padding:0 6px 0 0;font-size:16px}.nav-list{flex-direction:row;gap:4px}.nav-item{white-space:nowrap;padding:6px 10px}.sidebar-foot{border-top:none;border-left:1px solid var(--border);white-space:nowrap;margin-top:0;margin-left:auto;padding:0 0 0 10px}.acct-name,.acct-trigger svg:last-child{display:none}.acct-pop{top:calc(100% + var(--s2));transform-origin:100% 0;bottom:auto;left:auto;right:0}@keyframes acct-in{0%{opacity:0;transform:translateY(-6px)scale(.97)}}}.md p{margin:0 0 8px}.md p:last-child{margin-bottom:0}.md ul,.md ol{margin:0 0 8px;padding-left:22px}.md code{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:1px 5px;font-size:.92em}.md .katex-display{padding:4px 0;overflow:auto hidden}.katex{font-size:1.06em}.symbar{gap:6px;margin-top:8px;display:flex}.sym{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:8px;min-width:40px;padding:6px 10px;font-size:16px}.sym:hover{border-color:var(--accent);color:var(--accent-text)}.math-preview{border:1px dashed var(--border);border-radius:8px;min-height:38px;margin-top:8px;padding:8px 12px;overflow-x:auto}.drag-item.dragging{z-index:5;opacity:.85;position:relative}.drag-item.drag-target>*{outline:2px dashed var(--accent);outline-offset:2px}.icon.grip{cursor:grab;color:var(--muted);background:0 0;border:none}.points-label{color:var(--muted);align-items:center;gap:4px;font-size:13px;display:inline-flex}.field.points{width:64px;padding:4px 8px}.pagebar .field.page-title{flex:1;min-width:120px;padding:6px 10px}.pagebar .dots .drag-item{display:inline-block}.room{grid-template-columns:minmax(280px, var(--split,50%)) 6px minmax(0, 1fr);height:100vh;display:grid}.room-divider{cursor:col-resize;background:var(--border);touch-action:none}.room-divider:hover{background:var(--accent)}.room-video{background:#0f1115;flex-direction:column;min-height:0;display:flex}.room-video .prompt{color:#e5e7eb}.room-video .score,.room-video .hint{color:#9ca3af}.stage{flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.stage-remote{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.stage-empty{text-align:center;padding:12px}.stage-local{border:1px solid #fff3;border-radius:10px;width:22%;min-width:88px;max-width:180px;position:absolute;bottom:10px;right:10px}.room-controls{justify-content:center;gap:8px;padding:10px;display:flex}.room-controls .btn.ghost{color:#e5e7eb;background:0 0;border-color:#ffffff40}.room-lesson{padding:24px 28px 64px;overflow-y:auto}.room.pip{display:block}.room.pip .room-video{z-index:60;cursor:grab;touch-action:none;border-radius:14px;width:300px;position:fixed;overflow:hidden;box-shadow:0 12px 40px #0006}.room.pip .stage{flex:none;height:170px}@media (width<=860px){.room{grid-template-rows:40vh minmax(0,1fr);grid-template-columns:1fr}.room-divider{display:none}}.masthead h1{letter-spacing:-.01em;margin:0;font-size:20px}.masthead .sub{color:var(--muted);font-size:14px}.pagebar{align-items:center;gap:var(--s3);margin-bottom:var(--s4);flex-wrap:wrap;display:flex}.pagebar .title{flex:1;min-width:0;font-weight:600}.page-count{color:var(--muted);font-size:var(--t-sm);font-variant-numeric:tabular-nums;white-space:nowrap}.steps{flex-wrap:wrap;flex:180px;gap:30px 5px;min-width:0;display:flex}.step{border-radius:var(--r-pill);background:var(--sunk);cursor:pointer;min-width:24px;height:8px;transition:background-color var(--d2) var(--ease);border:none;flex:1;padding:0;position:relative}.step:after{content:"";position:absolute;inset:-14px 0}.step.done{background:var(--ok-bright)}.step[aria-current=true]{background:var(--text)}.step.done[aria-current=true]{background:var(--ok-bright);box-shadow:0 0 0 2px var(--surface), 0 0 0 3.5px var(--text)}.nav{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-md);cursor:pointer;width:44px;height:44px;color:var(--muted);transition:border-color var(--d1) var(--ease), color var(--d1) var(--ease);place-items:center;display:grid}@media (hover:hover){.nav:hover:not(:disabled){border-color:var(--text);color:var(--text)}}.nav:disabled{opacity:.35;cursor:default}.peer-chip{border:1px solid var(--accent-tint);background:var(--accent-soft);color:var(--accent-text);border-radius:var(--r-pill);padding:var(--s1) var(--s3);font-size:var(--t-sm);white-space:nowrap;cursor:pointer;transition:border-color var(--d1) var(--ease);font-weight:600}.peer-chip.here{cursor:default}@media (hover:hover){.peer-chip:not(.here):hover{border-color:var(--accent-text)}}.peer-answer{margin-top:var(--s3);padding-top:var(--s3);border-top:1px dashed var(--border);font-size:var(--t-sm);color:var(--text);overflow-wrap:anywhere}.peer-answer.empty{color:var(--muted)}.peer-answer-name{color:var(--muted);font-weight:600}.peer-answer-mark{margin-left:var(--s2);padding:1px var(--s2);border-radius:var(--r-pill);font-weight:600}.peer-answer-mark.ok{background:var(--ok-soft);color:var(--ok)}.peer-answer-mark.bad{background:var(--bad-soft);color:var(--bad)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);padding:var(--s5);margin-bottom:var(--s3)}.prompt{margin:0 0 14px;font-weight:500}.banner{align-items:center;gap:var(--s3);margin:0 0 var(--s4);padding:var(--s3) var(--s4);border-radius:var(--r-md);font-family:var(--serif);font-size:var(--t-h2);font-weight:600;line-height:var(--lh-head);overflow-wrap:anywhere;border:1px solid #0000;display:flex}.banner-emoji{flex:none;font-size:1.4em;line-height:1}.banner-accent{background:var(--accent-soft);border-color:var(--accent-tint);color:var(--accent-text)}.banner-ok{background:var(--ok-soft);border-color:var(--ok-line);color:var(--ok)}.banner-warn{background:var(--warn-soft);border-color:var(--accent-tint);color:var(--warn)}.banner-bad{background:var(--bad-soft);border-color:var(--bad-line);color:var(--bad)}.banner-neutral{background:var(--sunk);border-color:var(--border);color:var(--text)}.prompt-block{margin-bottom:14px}.prompt-block .prompt:last-child{margin-bottom:0}.prompt-img{border-radius:8px;max-width:100%;display:block}.crop{background:var(--bg);border-radius:8px;width:100%;position:relative;overflow:hidden}.crop img{max-width:none;display:block;position:absolute}.hint{color:var(--muted);margin-top:10px;font-size:13px}.hint.warn-past{color:var(--bad)}.options{gap:var(--s2);flex-direction:column;display:flex}.option{align-items:flex-start;gap:var(--s3);min-height:52px;padding:var(--s3) var(--s4);border:1.5px solid var(--border-strong);border-radius:var(--r-md);cursor:pointer;background:var(--surface);text-align:left;width:100%;color:var(--text);transition:border-color var(--d1) var(--ease), background-color var(--d1) var(--ease), transform var(--d1) var(--ease);display:flex}.option:before{content:"";border:1.5px solid var(--border-loud);border-radius:var(--r-pill);background:var(--surface);flex:none;width:22px;height:22px;margin-top:1px;transition:inherit}.options[data-multiple] .option:before{border-radius:6px}.option[aria-pressed=true]{border-color:var(--text);background:var(--accent-soft)}.option[aria-pressed=true]:before{border-color:var(--text);background:var(--text);box-shadow:inset 0 0 0 3.5px var(--surface)}.options[data-multiple] .option[aria-pressed=true]:before{box-shadow:none;background:var(--text) url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5 9 17.5 20 6.5' stroke='white' stroke-width='2.6' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 14px no-repeat}@media (hover:hover){.option:hover:not(.locked){border-color:var(--text);transform:translateY(-1px)}}.option:active:not(.locked){transform:translateY(0)scale(.995)}.option.right{border-color:var(--ok);background:var(--ok-soft)}.option.right:before{border-color:var(--ok);background:var(--ok);box-shadow:none}.option.wrong{border-color:var(--bad);background:var(--bad-soft)}.option.wrong:before{border-color:var(--bad);background:var(--bad);box-shadow:none}.option.missed{border-style:dashed;border-color:var(--ok);background:var(--surface)}.option.missed:before{border-color:var(--ok);background:var(--surface);box-shadow:none;border-style:dashed}.option.locked{cursor:default}.mark{padding-left:var(--s2);font-size:var(--t-xs);white-space:nowrap;align-items:center;gap:4px;margin-left:auto;font-weight:600;display:inline-flex}.mark.right{color:var(--ok)}.mark.wrong{color:var(--bad)}.multi-hint{margin:0 0 var(--s3);border-radius:var(--r-pill);background:var(--accent-tint);color:var(--accent-text);font-size:var(--t-xs);align-items:center;gap:5px;padding:4px 12px;font-weight:600;display:inline-flex}.field,.blank{border:1px solid var(--border);background-color:var(--bg);border-radius:8px;padding:9px 11px}.field{width:100%;max-width:320px}.blank{text-align:center;vertical-align:baseline;border-radius:6px;width:9ch;margin:0 3px;padding:2px 8px;display:inline-block}.field:focus,.blank:focus,.pair select:focus{outline:2px solid var(--accent);outline-offset:1px}.field.right,.blank.right{border-color:var(--ok);background:var(--ok-soft)}.field.wrong,.blank.wrong{border-color:var(--bad);background:var(--bad-soft)}.unit{color:var(--muted);margin-left:8px}.cloze-body{line-height:2.1}.pairs{flex-direction:column;gap:8px;display:flex}.pair{align-items:center;gap:10px;display:flex}.pair .left{flex:1;min-width:0}.pair select{border:1px solid var(--border);background-color:var(--bg);border-radius:8px;flex:1;min-width:0;padding:9px 11px}.pair select.right{border-color:var(--ok)}.pair select.wrong{border-color:var(--bad)}.actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:20px;display:flex}.btn{background:var(--accent);color:var(--on-accent);border-radius:var(--radius);cursor:pointer;border:none;padding:10px 18px;font-weight:500;text-decoration:none}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{color:var(--muted);border:1px solid var(--border);background:0 0}.score{color:var(--muted);font-size:14px}.explain{border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 8px 8px 0;margin-top:10px;padding:10px 12px;font-size:14px}.hero h2{letter-spacing:-.01em;margin:0 0 10px;font-size:24px}.hero .btn{margin-top:14px;text-decoration:none;display:inline-block}.notice{border-radius:var(--radius);margin-top:12px;margin-bottom:14px;padding:10px 14px;font-size:14px}.notice.info{border:1px solid var(--accent);background:var(--accent-soft);color:var(--accent-text)}.notice.bad{border:1px solid var(--bad);background:var(--bad-soft);color:var(--bad)}.linklike{color:var(--accent-text);cursor:pointer;font-size:inherit;background:0 0;border:none;padding:0;text-decoration:underline}.summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:18px}.summary .big{margin:6px 0;font-size:30px;font-weight:650}.form{flex-direction:column;gap:10px;display:flex}.field-row{align-items:center;gap:10px;margin-bottom:10px;display:flex}.form .field-row{margin-bottom:0}.field-row .label{color:var(--muted);flex:0 0 130px;font-size:14px}.label.tight{color:var(--muted);white-space:nowrap;flex:none;font-size:14px}.field.wide{flex:1;min-width:0;max-width:none}textarea.field{resize:vertical;font:inherit}.check{color:var(--muted);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.check.tight{gap:0}.rows{flex-direction:column;gap:8px;display:flex}.row{align-items:center;gap:8px;display:flex}.icon{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:8px;flex:0 0 32px;width:32px;height:32px;line-height:1}.icon:hover{border-color:var(--bad);color:var(--bad)}.btn.small{padding:6px 12px;font-size:14px}.tab{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;border-radius:8px;min-width:32px;height:32px}.tab.on{border-color:var(--accent);color:var(--accent-text);background:var(--accent-soft)}.ex-head{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.badge{color:var(--accent-text);background:var(--accent-soft);border-radius:999px;padding:3px 10px;font-size:12px}.ex-tools{gap:6px;display:flex}.savebar{background:var(--bg);border-top:1px solid var(--border);gap:10px;margin-top:18px;padding:12px 0;display:flex;position:sticky;bottom:0}.list-item{justify-content:space-between;align-items:center;gap:12px;display:flex}.code{letter-spacing:.12em;margin:4px 0 10px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:28px;font-weight:600}.who-row{align-items:center;gap:12px;min-width:0;display:flex}.chip{border-radius:50%;flex:0 0 12px;width:12px;height:12px}.ord{min-width:22px;color:var(--muted);font-variant-numeric:tabular-nums;display:inline-block}.calbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;display:flex}.cal-title{text-transform:capitalize;flex:1;min-width:140px;font-weight:600}.viewswitch{gap:4px;display:flex}.month{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.month-head{color:var(--muted);text-align:center;padding-bottom:2px;font-size:12px}.month-cell{border:1px solid var(--border);background:var(--surface);cursor:pointer;text-align:left;border-radius:8px;flex-direction:column;gap:4px;min-height:78px;padding:6px;display:flex;position:relative}.month-cell:hover{border-color:var(--accent)}.month-cell.muted{opacity:.45}.month-cell.today{border-color:var(--accent)}.month-date{color:var(--muted);font-size:13px}.month-cell.today .month-date{color:var(--accent-text);font-weight:700}.month-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-left:3px;font-size:11px}.month-dots{flex-wrap:wrap;align-items:center;gap:3px;margin-top:auto;display:flex}.month-dots i{border-radius:50%;width:7px;height:7px;display:block}.grid-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);max-height:calc(100vh - 160px);position:relative;overflow:auto}.grid-head{z-index:3;grid-template-columns:52px repeat(var(--cols,7), minmax(0, 1fr));background:var(--surface);border-bottom:1px solid var(--border);display:grid;position:sticky;top:0}.grid-wrap.day .grid-head,.grid-wrap.day .grid-body{--cols:1}.grid-wrap.week .grid-head,.grid-wrap.week .grid-body{--cols:7}.col-head{color:var(--muted);border-left:1px solid var(--border);justify-content:center;align-items:center;gap:4px;padding:9px 8px;font-size:13px;display:flex}.col-head.today{color:var(--accent-text);font-weight:600}.grid-body{grid-template-columns:52px repeat(var(--cols,7), minmax(0, 1fr));display:grid;position:relative}.axis{position:relative}.axis-h{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px;position:absolute;right:6px;transform:translateY(-50%)}.col{border-left:1px solid var(--border);position:relative}.col.today{background:var(--accent-soft)}.hline{border-top:1px solid var(--border);opacity:.55;position:absolute;left:0;right:0}.nowline{border-top:2px solid var(--bad);z-index:2;position:absolute;left:0;right:0}.ev{z-index:1;border:1px solid var(--border);border-left:3px solid var(--accent);background:var(--surface);cursor:pointer;text-align:left;border-radius:6px;flex-direction:column;gap:1px;padding:4px 7px;line-height:1.25;transition:box-shadow .12s,border-color .12s;display:flex;position:absolute;overflow:hidden}.ev:hover{border-color:var(--accent);box-shadow:0 1px 6px #1012151a}.ev.done{opacity:.55}.ev.cancelled{opacity:.5;text-decoration:line-through}.ev-time{color:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.ev-moved{color:var(--accent-text);margin-left:4px}.ev-who{font-size:12px;font-weight:600}.ev-who,.ev-tz{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ev-tz{color:var(--muted);font-size:11px}.win-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.modal{z-index:50;background:#10121573;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal-card{background:var(--surface);border-radius:var(--radius);width:100%;max-width:460px;max-height:85vh;padding:18px;overflow:auto}.slotdays{flex-direction:column;gap:12px;margin:10px 0;display:flex}.slotgrid{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:6px;display:grid}.slotgrid .tab{font-variant-numeric:tabular-nums;height:36px}@media (width<=860px){.grid-wrap.week .grid-head,.grid-wrap.week .grid-body{min-width:640px}.month-cell{min-height:58px}}.splitter{border:1px solid var(--border);cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:8px;width:100%;margin:10px 0;position:relative;overflow:hidden}.splitter img{pointer-events:none;width:100%;display:block}.region{border:2px solid var(--accent);pointer-events:none;background:#2563eb1f;border-radius:4px;position:absolute}.region.draft{border-style:dashed}.region-no{background:var(--accent);color:var(--on-accent);border-radius:4px 0;padding:3px 6px;font-size:12px;line-height:1;position:absolute;top:-1px;left:-1px}a.item-title{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong,var(--border));text-decoration-color:var(--border-strong,var(--border));text-underline-offset:3px;font-weight:600}a.item-title:hover{color:var(--accent-text);text-decoration-color:currentColor}span.item-title{color:var(--text);font-weight:600}@media (width<=520px){.pair,.field-row{flex-direction:column;align-items:stretch;gap:4px}.field-row .label{flex:none}}.badge.muted{color:var(--muted);background:var(--bg)}.col{cursor:pointer}.ev{cursor:grab;touch-action:none}.ev:active{cursor:grabbing}.col.dropping{background:var(--accent-soft)}.drag-ghost{z-index:40;pointer-events:none;border:1px solid var(--accent);border-left:3px solid var(--accent);background:var(--surface);opacity:.95;border-radius:6px;flex-direction:column;gap:1px;padding:4px 7px;line-height:1.25;display:flex;position:fixed;overflow:hidden;box-shadow:0 6px 18px #1012152e}.picker{flex:1;min-width:0;position:relative}.picker-list{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:8px;max-height:240px;padding:4px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto;box-shadow:0 6px 18px #1012151f}.picker-row{text-align:left;cursor:pointer;background:0 0;border:none;border-radius:6px;align-items:center;gap:9px;width:100%;padding:8px 10px;display:flex}.picker-row.on{background:var(--accent-soft);color:var(--accent-text)}.picker-empty{color:var(--muted);padding:10px;font-size:14px}.graph-svg{border-radius:var(--radius);width:100%;max-width:620px;margin-top:10px;display:block}.issues{margin:10px 0 0;padding-left:20px;font-size:13px}.issues .warning{color:var(--warn)}.issues .error{color:var(--bad)}.ic{vertical-align:-.15em;flex:none}.page-head{margin-bottom:var(--s6)}.page-back{margin-bottom:var(--s2);color:var(--muted);font-size:var(--t-sm);align-items:center;gap:4px;text-decoration:none;display:inline-flex}.page-back:hover{color:var(--accent-text)}.page-head-row{justify-content:space-between;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;display:flex}.page-title{font-size:var(--t-h1);margin:0;font-weight:700}.page-sub{color:var(--muted);font-size:var(--t-sm);margin:4px 0 0}.page-actions{gap:var(--s2);flex-wrap:wrap;display:flex}.skeleton{flex-direction:column;gap:10px;display:flex}.skeleton-bar{border-radius:var(--r-pill);background:linear-gradient(90deg, var(--sunk) 25%, var(--bg) 37%, var(--sunk) 63%);height:12px;animation:shimmer 1.4s var(--ease) infinite;background-size:400% 100%}.skeleton-bar:nth-child(2){width:78%}.skeleton-bar:nth-child(3){width:52%}@keyframes shimmer{0%{background-position:100% 0}to{background-position:0 0}}.empty{text-align:center;align-items:center;gap:var(--s2);padding:var(--s8) var(--s5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:var(--s3);flex-direction:column;display:flex}.empty-art{width:56px;height:56px;margin-bottom:var(--s1);border-radius:var(--r-pill);background:var(--accent-tint);color:var(--accent-text);place-items:center;display:grid}.empty-title{font-size:var(--t-h2);margin:0;font-weight:700}.empty-body{max-width:42ch;color:var(--muted);font-size:var(--t-sm);margin:0}.empty-action{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;justify-content:center;display:flex}.ring-track{stroke:var(--sunk)}.ring-fill{stroke:var(--accent);transition:stroke-dasharray var(--d3) var(--ease)}.ring.done .ring-fill{stroke:var(--ok-bright)}.bar{border-radius:var(--r-pill);background:var(--sunk);width:100%;height:6px;overflow:hidden}.bar-fill{height:100%;width:var(--pct,0%);border-radius:inherit;background:var(--accent);transition:width var(--d3) var(--ease);display:block}.bar.done .bar-fill{background:var(--ok-bright)}.stats{gap:var(--s3);margin-bottom:var(--s3);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));display:grid}.stat{padding:var(--s4) var(--s5);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);color:inherit;flex-direction:column;gap:2px;text-decoration:none;display:flex}.stat-value{font-family:var(--serif);font-size:30px;font-weight:800;line-height:1.05}.stat-label{color:var(--muted);font-size:var(--t-xs)}@media (hover:hover){a.stat:hover{border-color:var(--border-strong);background:var(--accent-soft)}}.verdict{border-radius:var(--r-pill);font-size:var(--t-xs);align-items:center;gap:5px;margin-top:10px;padding:4px 12px 4px 8px;font-weight:600;display:inline-flex}.verdict.right{background:var(--ok-soft);color:var(--ok)}.verdict.wrong{background:var(--bad-soft);color:var(--bad)}.verdict-row{align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.retry-btn{color:var(--accent-text);font-size:var(--t-xs);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;padding:4px 2px;font-weight:600;text-decoration:underline}.runbar{z-index:5;align-items:center;gap:var(--s3);margin-top:var(--s5);padding:var(--s6) 0 calc(var(--s3) + env(safe-area-inset-bottom));background:linear-gradient(to top, var(--bg) 58%, transparent);flex-wrap:wrap;display:flex;position:sticky;bottom:0}.runbar .spacer{flex:1}.reset-link{padding:var(--s2) 0;color:var(--muted);font-size:var(--t-xs);cursor:pointer;text-underline-offset:2px;background:0 0;border:none;text-decoration:underline}.reset-confirm{align-items:center;gap:var(--s2);font-size:var(--t-xs);color:var(--muted);display:inline-flex}.result{margin-top:var(--s6);padding:var(--s8) var(--s6);text-align:center;background:var(--surface);border:1.5px solid var(--border-ink);border-radius:var(--r-xl);animation:result-in var(--d3) var(--ease-spring) both}@keyframes result-in{0%{opacity:0;transform:scale(.97)translateY(8px)}}.result-band{border-radius:var(--r-pill);font-size:var(--t-xs);align-items:center;gap:6px;padding:5px 14px;font-weight:700;display:inline-flex}.result.high .result-band{background:var(--ok-soft);color:var(--ok)}.result.mid .result-band{background:var(--accent-tint);color:var(--accent-text)}.result.low .result-band{background:var(--sunk);color:var(--muted)}.result-score{font-family:var(--serif);font-size:var(--t-display);margin:var(--s4) 0 var(--s1);font-variant-numeric:tabular-nums;font-weight:800;line-height:1.05}.result-of{color:var(--muted);font-weight:400}.result-note{color:var(--muted);font-size:var(--t-sm);margin:0}.result-map{margin:var(--s5) 0 0;flex-wrap:wrap;justify-content:center;gap:6px;padding:0;list-style:none;display:flex}.result-pip{border:1.5px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);width:30px;height:30px;color:var(--muted);font-size:var(--t-micro);cursor:pointer;font-variant-numeric:tabular-nums;place-items:center;padding:0;font-weight:700;display:grid}.result-pip.right{border-color:var(--ok-line);background:var(--ok-soft);color:var(--ok)}.result-pip.wrong{border-color:var(--bad-line);background:var(--bad-soft);color:var(--bad)}.result-actions{justify-content:center;gap:var(--s2);margin-top:var(--s6);flex-wrap:wrap;display:flex}.masthead h1{font-size:var(--t-h1)}.avatar{border-radius:var(--r-pill);width:32px;height:32px;font-size:var(--t-sm);color:var(--text);text-transform:uppercase;flex:none;place-items:center;font-weight:700;display:grid}.who{align-items:center;gap:var(--s2);display:inline-flex}.due{border-radius:var(--r-pill);font-size:var(--t-xs);background:var(--sunk);color:var(--muted);align-items:center;gap:4px;padding:3px 10px;font-weight:600;display:inline-flex}.due.over{background:var(--bad-soft);color:var(--bad)}.due.today{background:var(--accent-tint);color:var(--accent-text)}.due.done{background:var(--ok-soft);color:var(--ok)}.row-text{flex:1;min-width:0}@media (width<=640px){.shell{padding:var(--s5) var(--s4) calc(96px + env(safe-area-inset-bottom))}.card{padding:var(--s4)}.card .prompt-img,.card .crop{margin-inline:calc(-1 * var(--s4));width:calc(100% + 2 * var(--s4));border-radius:0;max-width:none}.field{max-width:100%}.row{flex-wrap:wrap}.row .row-text{flex:100%}.step{height:10px}.step:after{inset:-17px 0}.btn{min-height:44px}.btn.small{min-height:40px}.icon{width:40px;height:40px}.result{padding:var(--s7) var(--s4)}}.card-title{margin:0 0 var(--s4);font-size:var(--t-h2);font-weight:700}.hw-list{flex-direction:column;display:flex}.hw-row{align-items:center;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--border);display:flex}.hw-row:first-child{border-top:none;padding-top:0}.hw-row.done .item-title{color:var(--muted)}.hw-meta{align-items:center;gap:var(--s2);flex-wrap:wrap;margin-top:3px;display:flex}.hw-row .item-title{display:block}.try-demo{margin:var(--s5) 0 0;color:var(--muted);font-size:var(--t-sm);text-align:center}.join{min-height:100vh;padding:var(--s6) var(--s4);place-items:center;display:grid}.join-card{width:100%;max-width:440px;padding:var(--s8) var(--s7);background:var(--surface);border:1.5px solid var(--border-ink);border-radius:var(--r-xl);text-align:center}.join-title{margin:0 0 var(--s3);font-size:32px;font-weight:800;line-height:1.1}.join-title em{color:var(--accent-deep);font-style:italic}.join-sub{margin:0 0 var(--s6);color:var(--muted)}.join-primary{justify-content:center;align-items:center;width:100%;min-height:46px;display:inline-flex}.join-hint{margin:var(--s3) 0 0;color:var(--muted);font-size:var(--t-xs);line-height:1.45}.join-hint.bad{color:var(--bad)}.join-or{align-items:center;gap:var(--s3);margin:var(--s6) 0;color:var(--muted);font-size:var(--t-xs);display:flex}.join-or:before,.join-or:after{content:"";background:var(--border);flex:1;height:1px}.join-form{gap:var(--s3);flex-direction:column;display:flex}.join-field{text-align:center;background:var(--surface);border-width:1.5px;max-width:none;min-height:46px}@media (width<=640px){.join-card{padding:var(--s7) var(--s5)}.join-title{font-size:27px}}.list{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:var(--s3);overflow:hidden}.list-row{align-items:center;gap:var(--s3);min-height:60px;padding:var(--s3) var(--s4);border-top:1px solid var(--border);display:flex}.list-row:first-child{border-top:none}@media (hover:hover){.list-row:hover{background:var(--accent-soft)}}.list-row .item-title{display:block}.list-row .score{margin-top:1px;display:block}.nav-item{align-items:center;gap:var(--s2);color:var(--muted);display:flex}.nav-item.on{background:var(--accent-soft);color:var(--text);box-shadow:inset 3px 0 var(--accent);font-weight:600}.brand{font-family:var(--serif);font-size:22px;font-weight:800}.ex-card{padding-top:0;overflow:visible}.ex-card .ex-head{margin:0 calc(-1 * var(--s5)) var(--s4);padding:var(--s2) var(--s5);background:var(--bg);border-bottom:1px solid var(--border);border-radius:var(--r-lg) var(--r-lg) 0 0}.ex-card.warning{border-left:3px solid var(--warn)}.ex-card.error{border-left:3px solid var(--bad)}.ex-flag{border-radius:var(--r-pill);font-size:var(--t-micro);align-items:center;gap:4px;padding:3px 9px;font-weight:600;display:inline-flex}.ex-flag.warning{background:var(--warn-soft);color:var(--warn)}.ex-flag.error{background:var(--bad-soft);color:var(--bad)}.ex-menu,.add-more{margin-left:auto;position:relative}.add-more{margin-left:0}.ex-menu>summary,.add-more>summary{cursor:pointer;justify-content:center;align-items:center;gap:4px;list-style:none;display:inline-flex}.ex-menu>summary::-webkit-details-marker{display:none}.add-more>summary::-webkit-details-marker{display:none}.ex-menu-list,.add-more-list{z-index:20;min-width:190px;padding:var(--s1);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);box-shadow:var(--shadow-3);flex-direction:column;margin-top:4px;display:flex;position:absolute;right:0}.add-more-list{margin-top:0;bottom:calc(100% + 4px);left:0;right:auto}.ex-menu-list button,.add-more-list button{align-items:center;gap:var(--s2);width:100%;padding:var(--s2) var(--s3);border-radius:var(--r-sm);color:var(--text);font-size:var(--t-sm);text-align:left;cursor:pointer;background:0 0;border:none;display:flex}.ex-menu-list button:hover,.add-more-list button:hover{background:var(--bg)}.ex-menu-list button.danger{color:var(--bad)}.ex-menu-list button.danger:hover{background:var(--bad-soft)}.addbar{align-items:center;gap:var(--s2);margin:var(--s5) 0 var(--s4);flex-wrap:wrap;display:flex}.addbar .btn{align-items:center;gap:5px;display:inline-flex}.call-btn{border-radius:var(--r-pill);color:#f3f0ee;cursor:pointer;width:44px;height:44px;transition:background-color var(--d1) var(--ease);background:#ffffff1a;border:1px solid #ffffff38;place-items:center;display:grid}@media (hover:hover){.call-btn:hover{background:#fff3}}.call-btn.off{background:var(--bad);border-color:var(--bad);color:#fff}@media (width<=640px){.pagebar{gap:var(--s2)}.pagebar .title{flex:100%;order:1}.pagebar>.nav:first-child{order:2}.page-count{order:3}.steps{order:4}.pagebar>.nav:last-child{order:5}}.page-tab{min-width:44px;padding:0 var(--s2);align-items:baseline;gap:4px;display:inline-flex}.page-tab-c{font-size:var(--t-micro);color:var(--muted);font-variant-numeric:tabular-nums}.page-tab.on .page-tab-c{color:var(--accent-text)}.pick-list{border:1px solid var(--border);border-radius:var(--r-md);flex-direction:column;display:flex;overflow:hidden}.pick-row{align-items:center;gap:var(--s3);width:100%;min-height:48px;padding:var(--s2) var(--s4);border:none;border-top:1px solid var(--border);background:var(--surface);color:var(--text);text-align:left;cursor:pointer;display:flex}.pick-row:first-child{border-top:none}@media (hover:hover){.pick-row:hover{background:var(--accent-soft)}}.legal{background:var(--bg);flex-direction:column;min-height:100vh;display:flex}.legal-head{justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s5) var(--s6);display:flex}.legal-brand{font-family:var(--font-display,inherit);color:var(--text);font-size:20px;font-weight:700;text-decoration:none}.legal-body{width:100%;max-width:680px;padding:var(--s6) var(--s6) var(--s9);flex:1;margin:0 auto}.legal-body h1{margin:0 0 var(--s2);font-size:28px}.legal-updated{color:var(--muted);font-size:var(--t-sm);margin:0 0 var(--s6)}.legal-body h2{margin:var(--s6) 0 var(--s2);font-size:17px}.legal-body p{margin:0 0 var(--s3);line-height:1.6}.legal-body a{color:var(--accent-text)}.legal-foot{gap:var(--s5);padding:var(--s5) var(--s6);border-top:1px solid var(--border);color:var(--muted);font-size:var(--t-sm);flex-wrap:wrap;display:flex}.legal-foot a{color:var(--muted)}.parent-page{background:var(--bg);min-height:100vh}.parent-head{justify-content:space-between;align-items:center;gap:var(--s4);padding:var(--s5) var(--s6);display:flex}.parent-body{max-width:640px;padding:var(--s4) var(--s4) var(--s9);margin:0 auto}.parent-body h1{margin:0 0 var(--s2);font-size:26px}.parent-row{justify-content:space-between;align-items:center;gap:var(--s3);padding:var(--s3) 0;border-top:1px solid var(--border);display:flex}.parent-row:first-of-type{border-top:none}.parent-badge{padding:2px var(--s3);border-radius:var(--r-pill);font-size:var(--t-sm);white-space:nowrap;background:var(--sunk);color:var(--muted);font-weight:600}.parent-badge.ok{background:var(--ok-soft);color:var(--ok)}.parent-badge.mid{background:var(--accent-soft);color:var(--accent-text)}.due-overdue{color:var(--bad);font-weight:600}a.today-row{color:inherit;border-radius:var(--r-md);padding:var(--s2) var(--s2);margin:0 calc(-1 * var(--s2));text-decoration:none}@media (hover:hover){a.today-row:hover{background:var(--accent-soft)}}.today-row.past{opacity:.5}.live-badge{padding:2px var(--s3);border-radius:var(--r-pill);background:var(--ok-soft);color:var(--ok);font-size:var(--t-sm);white-space:nowrap;font-weight:600}.today-open{color:var(--accent-text);font-size:var(--t-sm);white-space:nowrap;font-weight:600}.hw-score{font-size:var(--t-sm);color:var(--muted);white-space:nowrap;font-weight:600}.hw-score.ok{color:var(--ok)}.today-row .when{white-space:nowrap}.btn.lead-on{border-color:var(--accent-text);color:var(--accent-text);background:var(--accent-soft)}.pdf-grid{gap:var(--s3);margin:var(--s4) 0;max-height:420px;padding:var(--s1);grid-template-columns:repeat(auto-fill,minmax(110px,1fr));display:grid;overflow-y:auto}.pdf-thumb{border:2px solid var(--border);border-radius:var(--r-md);background:var(--surface);cursor:pointer;transition:border-color var(--d1) var(--ease);padding:0;position:relative;overflow:hidden}.pdf-thumb img{width:100%;height:auto;display:block}.pdf-thumb.picked{border-color:var(--accent-text);box-shadow:0 0 0 2px var(--accent-tint)}.pdf-thumb-n{border-radius:var(--r-pill);background:var(--surface);border:1px solid var(--border);font-size:var(--t-sm);font-variant-numeric:tabular-nums;padding:1px 7px;position:absolute;bottom:4px;right:4px}.pdf-thumb.picked .pdf-thumb-n{background:var(--accent-text);border-color:var(--accent-text);color:#fff}.course-row{padding:var(--s2) 0}.due.done.partial{background:var(--accent-soft);color:var(--accent-text)}.answers-panel{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border)}.answer-row{padding:var(--s3) 0;border-bottom:1px dashed var(--border)}.answer-row:last-child{border-bottom:none;padding-bottom:0}.answer-prompt{margin:0 0 var(--s1);font-weight:500}.answer-key{margin:var(--s1) 0 0}.contact-tutor .hint{margin-top:0;margin-bottom:10px}.contact-tutor .btn{white-space:normal;text-align:left;line-height:1.4}.install-hint .prompt{margin-bottom:8px}.contact-foot{margin:var(--s3) 0 var(--s5);justify-content:center;display:flex}.contact-foot .hint{text-align:center;margin:0}.ai-panel textarea.field{resize:vertical;width:100%}.practice-buttons{flex-direction:column;align-items:flex-start;gap:8px;margin-top:10px;display:flex}.practice-buttons .btn{white-space:normal;text-align:left;line-height:1.4}.practice-one{margin-top:var(--s4);border-top:1px dashed var(--border);padding-top:var(--s3)}.room-lesson.lasering{cursor:crosshair}.laser-dot{pointer-events:none;z-index:50;border-radius:50%;width:14px;height:14px;margin:-7px 0 0 -7px;transition:left 80ms linear,top 80ms linear,opacity .25s;position:fixed}.laser-dot.tutor{background:var(--accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--accent) 25%, transparent), 0 0 14px 2px color-mix(in srgb, var(--accent) 60%, transparent)}.laser-dot.student{background:var(--ok-bright);box-shadow:0 0 0 4px color-mix(in srgb, var(--ok-bright) 25%, transparent), 0 0 14px 2px color-mix(in srgb, var(--ok-bright) 60%, transparent)}.room-lesson.board{flex-direction:column;padding:0;display:flex;overflow:hidden}.room-lesson.board .masthead{margin-bottom:12px;padding:16px 28px 0}.room.pip .room-lesson.board{height:100vh}.board-wrap{flex:1;min-height:0;position:relative}.board-surface{touch-action:none;-webkit-user-select:none;user-select:none;background:radial-gradient(circle, var(--border) 1px, transparent 1px) 0 0 / 24px 24px, var(--surface);width:100%;height:100%;display:block}.board-surface.tool-pen{cursor:crosshair}.board-surface.tool-eraser{cursor:cell}.board-surface.tool-hand{cursor:grab}.board-toolbar{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;gap:10px;padding:10px 8px;display:flex;position:absolute;top:50%;left:16px;transform:translateY(-50%);box-shadow:0 6px 24px #00000014}.board-toolbar .call-btn.tool-on{background:var(--accent);color:var(--on-accent)}.board-hint{color:var(--muted);pointer-events:none;text-align:center;padding:0 24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.board-notice{position:absolute;bottom:16px;left:50%;transform:translate(-50%)}@media (width<=860px){.board-toolbar{flex-direction:row;top:auto;bottom:12px;left:50%;transform:translate(-50%)}}.board-confirm{z-index:10;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 12px 40px #0000002e}.board-file{cursor:pointer;justify-content:center;align-items:center;display:inline-flex}.board-wrap.board-drop .board-surface{outline:3px dashed var(--accent);outline-offset:-3px}.stabs{margin-bottom:var(--s4);border-bottom:1px solid var(--border);gap:4px;display:flex}.stab{color:var(--muted);border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px;font-size:15px;text-decoration:none;display:inline-flex}.stab.on{color:var(--ink);border-bottom-color:var(--accent)}.stab .ic{opacity:.75}.stab.on .ic{opacity:1;color:var(--accent)}a.who{color:inherit;text-decoration:none}.next-lesson .nl-when{margin:0;font-size:20px;font-weight:500}.nl-count{color:var(--muted);font-variant-numeric:tabular-nums;margin-top:8px;display:inline-block}.nl-count.live{color:var(--accent);font-weight:500}.summary-link{justify-content:space-between;align-items:center;gap:var(--s3);color:inherit;text-decoration:none;display:flex}.summary-link:hover{border-color:var(--accent)}.summary-link .ic{color:var(--muted);flex:none}.recovery-nudge{margin-bottom:var(--s3);border-radius:var(--radius);background:var(--accent-tint);color:var(--ink);align-items:center;gap:8px;padding:10px 14px;font-size:14px;text-decoration:none;display:flex}.recovery-nudge .ic{color:var(--accent);flex:none}@media (width<=860px){.stabs{z-index:40;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom,0);border-bottom:none;justify-content:space-around;gap:0;margin:0;position:fixed;inset:auto 0 0}.stab{border-top:2px solid #0000;border-bottom:none;flex-direction:column;flex:1;justify-content:center;gap:2px;margin:0;padding:8px 4px 6px;font-size:11px}.stab.on{border-top-color:var(--accent)}.shell main{padding-bottom:calc(72px + env(safe-area-inset-bottom,0px))}}.ai-lesson{margin-bottom:var(--s5)}.ai-lesson-title{text-align:center;margin:0 0 var(--s3);font-size:24px}.ai-lesson-box{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);flex-direction:column;gap:10px;padding:12px 14px;transition:border-color .15s;display:flex;box-shadow:0 2px 14px #0000000a}.ai-lesson-box:focus-within{border-color:var(--accent)}.ai-lesson-box>.ic{color:var(--accent);flex:none;margin-bottom:8px}.ai-lesson-box.busy{opacity:.7}.ai-lesson-input{resize:none;min-width:0;font:inherit;color:inherit;background:0 0;border:none;flex:1;max-height:160px;padding:8px 0;line-height:1.5}.ai-lesson-input:focus{outline:none}.ai-lesson-box .btn{flex:none}.ai-lesson .hint{text-align:center}.ai-lesson-wait{animation:1.6s ease-in-out infinite ai-pulse}@keyframes ai-pulse{0%,to{opacity:.55}50%{opacity:1}}@media (prefers-reduced-motion:reduce){.ai-lesson-wait{animation:none}}.ai-lesson-bar{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.ai-lesson-bar .btn,.ai-lesson-bar .field{flex:none}.ai-lesson-bar .field.small{width:auto;padding:7px 28px 7px 10px;font-size:14px}.ai-lesson-bar>.btn:last-child{margin-left:auto}.ai-lesson-bar .btn.off{opacity:.5;pointer-events:none}.ai-lesson-files{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.ai-lesson-files li{border:1px solid var(--border);background:var(--bg);border-radius:8px;width:56px;height:72px;position:relative;overflow:hidden}.ai-lesson-files img{object-fit:cover;width:100%;height:100%;display:block}.ai-lesson-files .icon{background:var(--surface);border:1px solid var(--border);border-radius:50%;width:20px;height:20px;padding:0;font-size:12px;line-height:1;position:absolute;top:2px;right:2px}.md-h{margin:var(--s3) 0 var(--s1);font-size:17px;font-weight:600}.mk{flex-wrap:wrap;gap:10px;margin-top:10px;display:flex}.mk-group{background:var(--bg);border:1px solid var(--border);border-radius:10px;gap:4px;padding:3px;display:flex}.mk-key{background:var(--surface);min-width:38px;height:34px;color:var(--ink);cursor:pointer;border:none;border-radius:7px;padding:0 8px;font-family:Georgia,Times New Roman,serif;font-size:15px;line-height:1}.mk-key:hover{background:var(--accent-tint)}.mk-key:active{transform:translateY(1px)}.mk-key:disabled{opacity:.5;cursor:default}@media (width<=560px){.mk{gap:6px}.mk-key{min-width:34px;height:36px;font-size:14px}}.fbar{margin:4px 0 0 140px}.fbar>.btn.small{padding:3px 8px;font-size:13px}.fbar .mk{margin-top:6px}.fbar .math-preview{max-width:520px}.fbar .hint{margin-top:6px}.answer-keys{margin-left:140px}@media (width<=520px){.fbar,.answer-keys{margin-left:0}}.legal-body ul{margin:0 0 var(--s3);padding-left:1.3em;line-height:1.6}.legal-body li+li{margin-top:var(--s1)}.legal-requisites{gap:var(--s2) var(--s5);margin:var(--s3) 0 0;padding:var(--s4);border:1px solid var(--border);border-radius:var(--r-md);grid-template-columns:max-content minmax(0,1fr);display:grid}.legal-requisites div{display:contents}.legal-requisites dt{color:var(--muted)}.legal-requisites dd{overflow-wrap:anywhere;font-variant-numeric:tabular-nums;margin:0}@media (width<=480px){.legal-requisites{grid-template-columns:minmax(0,1fr);gap:0}.legal-requisites dd{margin-bottom:var(--s2)}}.profile-status{align-items:center;gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.profile-pill{border-radius:var(--r-pill);background:var(--sunk);color:var(--muted);font-size:var(--t-sm);align-items:center;padding:4px 12px;font-weight:500;display:inline-flex}.profile-pill.live{background:var(--accent);color:var(--on-accent)}.profile-photo-row{align-items:center;gap:var(--s4);margin:var(--s2) 0;display:flex}.profile-two{gap:var(--s3);margin-top:var(--s3);display:grid}@media (width>=640px){.profile-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}.profile-chips{gap:var(--s2);margin:var(--s2) 0 var(--s4);flex-wrap:wrap;display:flex}.profile-chip{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--text);font:inherit;font-size:var(--t-sm);cursor:pointer;transition:border-color var(--d2) var(--ease), background var(--d2) var(--ease);align-items:center;gap:6px;padding:7px 12px;font-weight:500;display:inline-flex}.profile-chip:hover:not(:disabled){border-color:var(--border-strong)}.profile-chip.on{background:var(--accent);border-color:var(--accent-deep);color:var(--on-accent)}.profile-chip:disabled{opacity:.5;cursor:default}.profile-slug{align-items:center;gap:var(--s2);display:flex}.profile-slug>span{color:var(--muted);font-family:var(--mono);font-size:var(--t-sm);white-space:nowrap}.profile-slug .field{min-width:0;font-family:var(--mono);flex:1}.profile-switch{align-items:center;gap:var(--s3);margin:var(--s4) 0 var(--s2);cursor:pointer;font-weight:500;display:flex}.profile-switch input{width:20px;height:20px;accent-color:var(--text)}.hint.error{color:var(--bad)}.inbox-item{padding:var(--s3) 0;border-top:1px solid var(--border)}.inbox-item:first-of-type{border-top:0}.inbox-head{justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.inbox-head b{font-size:var(--t-h3)}.inbox-status{border-radius:var(--r-pill);background:var(--sunk);color:var(--muted);font-size:var(--t-xs);padding:2px 10px;font-weight:500}.inbox-status.pending{background:var(--accent);color:var(--on-accent)}.inbox-status.accepted{background:var(--ok-soft);color:var(--ok)}.inbox-when{margin:var(--s1) 0 0;align-items:center;gap:6px;font-weight:500;display:flex}.inbox-contact,.inbox-message{margin:var(--s1) 0 0;color:var(--muted);font-size:var(--t-sm)}.inbox-message{white-space:pre-line}.inbox-accepted{margin-top:var(--s3);padding:var(--s3);border-radius:var(--r-md);background:var(--ok-soft)}.profile-rating{align-items:center;gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.doc-list{gap:var(--s2);margin:var(--s2) 0 var(--s3);padding:0;list-style:none;display:grid}.doc-row{align-items:center;gap:var(--s3);padding:var(--s2);border:1px solid var(--border);border-radius:var(--r-md);grid-template-columns:72px minmax(0,1fr) auto;display:grid}.doc-row img{object-fit:cover;border-radius:var(--r-sm);background:var(--sunk);width:72px;height:54px;display:block}.doc-row b{font-weight:500;display:block}.doc-row small{color:var(--muted)}.doc-form{gap:var(--s2);margin-top:var(--s2);padding:var(--s3);border:1px dashed var(--border-strong);border-radius:var(--r-md);display:grid}.doc-preview{border-radius:var(--r-sm);border:1px solid var(--border);max-width:220px;max-height:160px;display:block}.card label.prompt,.pf-label{margin:0;font-weight:500;display:block}.pf-field{margin-top:var(--s4);gap:6px;display:grid}.pf-field:first-child,.pf-grid .pf-field{margin-top:0}.pf-field .field{max-width:none}.pf-field .hint,.pf-field .profile-chips{margin:2px 0 0}.pf-grid{gap:var(--s3);margin-top:var(--s4);display:grid}@media (width>=640px){.pf-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}textarea.field.pf-bio{min-height:170px;line-height:1.5}.pf-social{align-items:center;gap:var(--s2);display:flex}.pf-social .ic{color:var(--muted);flex:none}.pf-social .field{flex:1;min-width:0;max-width:none}.pf-label-block{margin-bottom:var(--s2)}.profile-switch{margin:var(--s3) 0 var(--s1)}.profile-switch+.hint{margin:0 0 var(--s2)}.req-row{align-items:center;gap:var(--s2) var(--s3);padding:var(--s2) 0;border-top:1px solid var(--border);flex-wrap:wrap;display:flex}.req-row:first-of-type{border-top:0}.req-row .row-text{flex:200px;gap:2px;min-width:0;display:grid}.req-status{border-radius:var(--r-pill);font-size:var(--t-xs);white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:500;display:inline-flex}.req-status.pending{background:var(--sunk);color:var(--muted)}.req-status.accepted{background:var(--ok-soft);color:var(--ok)}.req-status.declined{background:var(--bad-soft);color:var(--bad)}.tutor-switch{gap:var(--s2);margin:0 0 var(--s3);flex-wrap:wrap;display:flex}.tutor-switch button{border:1px solid var(--border);border-radius:var(--r-pill);background:var(--surface);color:var(--muted);font:inherit;font-size:var(--t-sm);cursor:pointer;padding:6px 14px;font-weight:500}.tutor-switch button.on{border-color:var(--text);background:var(--text);color:var(--surface);cursor:default}.tutor-switch button:disabled:not(.on){opacity:.6}.stat-grid{gap:var(--s3);margin:var(--s2) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}@media (width>=640px){.stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}.review-prompt{border-color:var(--accent-deep);background:var(--accent-soft)}.row-link{color:inherit;border-radius:var(--r-sm);text-decoration:none}.row-link:hover{background:var(--sunk)}.row-link .ic{color:var(--muted);flex:none}.stab{position:relative}.stab-badge{border-radius:var(--r-pill);background:var(--bad);color:#fff;text-align:center;min-width:17px;height:17px;padding:0 4px;font-size:11px;font-weight:600;line-height:17px;position:absolute;top:2px;right:max(8px,50% - 26px)}.board-toolbar .call-btn{background:var(--surface);border-color:var(--border-strong);color:var(--text)}@media (hover:hover){.board-toolbar .call-btn:hover{background:var(--sunk)}}.board-toolbar .call-btn.tool-on{background:var(--accent);border-color:var(--accent-deep);color:var(--on-accent)}.board-toolbar .call-btn.tool-danger{border-color:var(--bad);color:var(--bad)}.board-surface.tool-text{cursor:text}.board-text-input{z-index:5;border:1.5px dashed var(--border-loud);border-radius:var(--r-sm);background:var(--surface);min-width:220px;max-width:min(420px,80%);color:var(--text);font:inherit;resize:none;padding:6px 8px;line-height:1.3;position:absolute}.board-text-input:focus{border-color:var(--text);outline:none}.room-finish{margin-left:auto}.room-ended{align-content:center;min-height:60vh;display:grid}.student-shell:before{content:"";z-index:-1;background-image:var(--dot);background-size:var(--dot-size);pointer-events:none;position:fixed;inset:0;-webkit-mask-image:linear-gradient(#000 35%,#0000 90%);mask-image:linear-gradient(#000 35%,#0000 90%)}.app-dialog{width:min(420px,100vw - 40px);padding:var(--s5);border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--text)}.app-dialog::backdrop{background:#1d202073}.app-dialog-head{justify-content:space-between;align-items:flex-start;gap:var(--s2);display:flex}.app-dialog-head .prompt{margin:0}.app-dialog-form{gap:var(--s2);margin-top:var(--s3);display:flex}.app-dialog-form .field{min-width:0;font-family:var(--mono);flex:1}.row-link .ic+.ic{margin-left:2px}
