@font-face{font-family:Inter;src:url(/fonts/inter-regular.woff) format("woff");font-weight:400;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-medium.woff) format("woff");font-weight:500;font-display:swap}@font-face{font-family:Inter;src:url(/fonts/inter-semibold.woff) format("woff");font-weight:600 700;font-display:swap}@font-face{font-family:"LF Serif";src:url(/fonts/lf-serif.woff) format("woff");font-weight:400 700;font-display:swap;size-adjust:88%}@font-face{font-family:"LF Serif";src:url(/fonts/lf-serif-italic.woff) format("woff");font-weight:400 700;font-style:italic;font-display:swap;size-adjust:88%}:root{--bg: #faf9f6;--surface: #fdfcfa;--surface-2: #f3f1ec;--ink: #151515;--ink-2: #3a3936;--muted: #6f6e69;--line: #e8e5de;--line-strong: #d6d2c9;--green: #151515;--green-deep: #000000;--green-ink: #151515;--green-soft: #f0eee8;--ok: #3d6b55;--ok-soft: #eaf0ec;--brass: #9a8a6a;--brass-light: #cdbf9f;--brass-soft: #f3efe6;--danger: #9c4a40;--danger-soft: #f6e9e6;--serif: "LF Serif", "Georgia", serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--r-panel: 6px;--r-control: 4px;--shadow: none;--shadow-pop: 0 40px 90px -40px rgba(21, 21, 21, .35)}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.6;letter-spacing:-.003em;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--green);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:1px solid var(--ink);outline-offset:2px;border-radius:6px}h1,h2,h3{margin:0;font-weight:400}.serif,.page-title,.brand-name,.hero-date,.stat-value,.big-number,.assign-title,.lib-title,.modal-head h2,.auth-quote,.score-big,.game-score{font-weight:500}.serif{font-family:var(--serif);letter-spacing:-.01em}.page-title{font-family:var(--serif);font-size:46px;line-height:1.05;letter-spacing:-.015em}.section-title{font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.muted{color:var(--muted)}.small{font-size:13px}.num{font-variant-numeric:tabular-nums}.shell{display:grid;grid-template-columns:252px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;display:flex;flex-direction:column;gap:22px;padding:36px 20px;background:var(--bg);border-right:1px solid var(--line)}.brand{padding:0 10px}.brand-name{font-family:var(--serif);font-size:28px;line-height:1.1}.brand-sub{font-size:12.5px;color:var(--muted);margin-top:4px}.brand-rule{width:24px;height:1px;background:var(--ink);margin:16px 0 0}.nav{display:flex;flex-direction:column;gap:2px}.back-label{max-width:46ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.back-btn{display:inline-flex;align-items:center;gap:6px;margin:0 0 14px -4px;padding:6px 10px 6px 6px;border:0;border-radius:8px;background:transparent;color:var(--muted);font:inherit;font-size:14px;cursor:pointer}.back-btn:hover{color:var(--ink);background:var(--surface-2)}.nav-group{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px}.nav-group:first-child{margin-top:0}.nav a{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-control);color:var(--muted);font-weight:400;text-decoration:none;transition:color .15s}.nav a:hover{color:var(--ink);text-decoration:none}.nav a.active{color:var(--ink);font-weight:500}.nav a.active svg{stroke-width:2}.nav svg{width:18px;height:18px;flex:none}.nav .count{margin-left:auto;min-width:22px;padding:0 7px;height:22px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:11.5px;font-weight:500;display:inline-flex;align-items:center;justify-content:center}.sidebar-foot{margin-top:auto;padding:14px 10px 0;border-top:1px solid var(--line)}.who{font-weight:600;font-size:14px}.who-role{font-size:12.5px;color:var(--muted)}.main{min-width:0;overflow-x:clip}.content{max-width:1080px;margin:0 auto;padding:56px 48px 96px}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:40px;flex-wrap:wrap}.page-head .lead{margin-top:10px;color:var(--muted)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);box-shadow:var(--shadow);padding:28px}.panel+.panel{margin-top:24px}.grid>*{min-width:0}.grid>.panel+.panel,.assign-layout>.panel+.panel{margin-top:0}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.grid{display:grid;gap:24px}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-main{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start}.stack{display:flex;flex-direction:column;gap:20px}.row{display:flex;align-items:center;gap:12px}.row-between{display:flex;align-items:center;justify-content:space-between;gap:12px}.wrap{flex-wrap:wrap}.hero{position:relative;overflow:hidden;border-radius:var(--r-panel);padding:36px;color:#fff;background:var(--ink)}.hero:after{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border-radius:3px;border:1px solid rgba(255,255,255,.1);pointer-events:none}.hero-label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:#fff9}.hero-date{font-family:var(--serif);font-size:56px;line-height:1.02;margin-top:12px;letter-spacing:-.015em}.hero-time{font-family:var(--serif);color:var(--brass-light)}.hero-meta{margin-top:14px;color:#ffffffd1}.hero-actions{margin-top:22px;display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1}.hero .btn-light{background:#fff;color:var(--ink)}.hero .btn-light:hover{background:#ffffffd9}.hero .btn-ghost-light{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3)}.hero .btn-ghost-light:hover{background:#ffffff14}.pass{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0 10px}.pass i{width:14px;height:14px;border-radius:50%;background:var(--ink)}.pass i.used{background:transparent;box-shadow:inset 0 0 0 1px var(--line-strong)}.big-number{font-family:var(--serif);font-size:52px;line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:42px;padding:0 22px;border-radius:999px;border:1px solid transparent;cursor:pointer;font-weight:500;font-size:14px;background:var(--green);color:#fff;text-decoration:none;white-space:nowrap;transition:background .15s,border-color .15s}.btn:hover{background:var(--green-deep);text-decoration:none}.btn:disabled{opacity:.3;cursor:default}.btn-secondary{background:transparent;color:var(--ink);border-color:var(--line-strong)}.btn-secondary:hover{background:transparent;border-color:var(--ink)}.btn-quiet{background:transparent;color:var(--muted);padding:0 10px}.btn-quiet:hover{background:transparent;color:var(--ink)}.btn-danger{background:transparent;color:var(--danger);border-color:#e3c9c3}.btn-danger:hover{background:var(--danger-soft)}.btn-sm{height:34px;padding:0 16px;font-size:13px;border-radius:999px}.btn svg{width:16px;height:16px}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:12px;font-weight:500;color:var(--muted);letter-spacing:.06em;text-transform:uppercase}.field .hint{font-size:12.5px;color:var(--muted)}.input,.select,.textarea{width:100%;height:44px;padding:0 14px;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-control);transition:border-color .15s,box-shadow .15s}.textarea{height:auto;min-height:96px;padding:11px 14px;resize:vertical;line-height:1.5}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--ink);box-shadow:none}.form{display:flex;flex-direction:column;gap:16px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.check{display:flex;align-items:center;gap:10px;font-size:14px}.check input{width:18px;height:18px;accent-color:var(--green);flex:none}.list{display:flex;flex-direction:column}.list-item{display:flex;align-items:center;gap:14px;padding:14px 4px;border-top:1px solid var(--line)}.list-item:first-child{border-top:0}.list-item.clickable{cursor:pointer;border-radius:var(--r-control);padding-left:10px;padding-right:10px}.list-item.clickable:hover{background:var(--surface-2)}.list-main{flex:1;min-width:0}.list-title{font-weight:500}.list-sub{font-size:13.5px;color:var(--muted)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.time-chip{flex:none;width:64px;text-align:center;font-family:var(--serif);font-size:23px;font-weight:500;color:var(--ink)}.avatar{flex:none;width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--line-strong);color:var(--ink);font-family:var(--serif);font-weight:500;font-size:17px}.badge{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:500;white-space:nowrap;background:transparent;color:var(--ink-2);border:1px solid var(--line-strong)}.badge-green{background:var(--ok-soft);color:var(--ok);border-color:transparent}.badge-brass{background:var(--brass-soft);color:#6e5f40;border-color:transparent}.badge-red{background:var(--danger-soft);color:var(--danger);border-color:transparent}.stat-label{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.stat-value{font-family:var(--serif);font-size:40px;line-height:1.1;margin-top:8px}.stat-note{font-size:13px;color:var(--muted);margin-top:2px}.bar{height:2px;background:var(--line);overflow:hidden}.bar>span{display:block;height:100%;background:var(--ink)}.tabs{display:flex;gap:24px;border-bottom:1px solid var(--line);margin-bottom:32px;overflow-x:auto;scrollbar-width:none}.tabs button{border:0;background:none;cursor:pointer;padding:0 0 12px;font-weight:400;color:var(--muted);border-bottom:1px solid transparent;margin-bottom:-1px;white-space:nowrap}.tabs button:hover{color:var(--ink)}.tabs button.active{color:var(--ink);border-bottom-color:var(--ink)}.day-group+.day-group{margin-top:22px}.day-head{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.day-head .serif{font-size:26px}.day-head.today .serif{text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}.empty{text-align:center;padding:34px 16px;color:var(--muted)}.empty .serif{font-size:26px;color:var(--ink);margin-bottom:6px}.report-block+.report-block{margin-top:18px}.report-block h4{margin:0 0 6px;font-size:12px;color:var(--muted);font-weight:500;letter-spacing:.08em;text-transform:uppercase}.report-block p{margin:0;white-space:pre-line}.files{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.file{display:flex;align-items:center;gap:4px;min-width:0;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface);padding:6px}.file-main{flex:1;min-width:0;display:flex;align-items:center;gap:12px;border:0;background:none;cursor:pointer;text-align:left;padding:0}.file-main:hover .file-name{text-decoration:underline;text-underline-offset:3px}.file-thumb{flex:none;width:52px;height:52px;border-radius:3px;overflow:hidden;background:var(--surface-2);display:flex;align-items:center;justify-content:center}.file-thumb img{width:100%;height:100%;object-fit:cover}.file-kind{font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.08em}.file-text{min-width:0;display:flex;flex-direction:column}.file-name{font-weight:500;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-size{font-size:12.5px;color:var(--muted)}.assign-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}.assign-head{display:flex;gap:18px;align-items:flex-start;padding-bottom:20px;border-bottom:1px solid var(--line);margin-bottom:22px}.assign-icon{flex:none;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--ink);border:1px solid var(--line-strong)}.assign-icon svg{width:22px;height:22px}.assign-title{font-family:var(--serif);font-size:38px;line-height:1.15;letter-spacing:-.01em}.assign-meta{color:var(--muted);font-size:14px;margin-top:6px}.instructions{white-space:pre-line;line-height:1.65}.work-card{position:sticky;top:24px}.work-status{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.score-big{font-family:var(--serif);font-size:52px;line-height:1;color:var(--ink)}.assign-row{display:flex;align-items:center;gap:16px;padding:16px 12px;border-top:1px solid var(--line);cursor:pointer;border-radius:var(--r-control)}.assign-row:first-child{border-top:0}.assign-row:hover{background:var(--surface-2)}.assign-row .assign-icon{width:40px;height:40px}.assign-row .assign-icon svg{width:19px;height:19px}.counter{text-align:center;min-width:64px}.counter b{display:block;font-family:var(--serif);font-size:28px;font-weight:500;line-height:1.1}.counter span{font-size:12px;color:var(--muted)}.quiz{display:flex;flex-direction:column;gap:14px}.question{border:1px solid var(--line);border-radius:var(--r-panel);padding:18px;background:var(--surface)}.question.ok{border-color:#c5d7cc;background:#f6f9f7}.question.bad{border-color:#ecc9c0;background:#fdf6f4}.question-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:12px}.question-prompt{font-weight:500;white-space:pre-line}.question-points{font-size:12.5px;color:var(--muted);white-space:nowrap}.option{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:var(--r-control);cursor:pointer;border:1px solid var(--line);margin-top:8px;background:var(--surface)}.option:hover{border-color:var(--line-strong)}.option input{width:18px;height:18px;accent-color:var(--green);flex:none}.option.selected{border-color:var(--ink);background:var(--green-soft)}.option.correct{border-color:var(--ok);background:var(--ok-soft)}.option.wrong{border-color:var(--danger);background:var(--danger-soft)}.answer-note{font-size:13.5px;margin-top:10px}.answer-note.ok{color:var(--ok)}.answer-note.bad{color:var(--danger)}.q-edit{border:1px solid var(--line);border-radius:var(--r-panel);padding:16px;background:var(--surface-2)}.q-edit+.q-edit{margin-top:12px}.q-option-row{display:flex;align-items:center;gap:8px;margin-top:8px}.q-option-row input[type=radio]{width:18px;height:18px;accent-color:var(--green);flex:none}.student-pick{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.student-pick label{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-control);cursor:pointer;background:var(--surface)}.student-pick label.on{border-color:var(--ink);background:var(--green-soft)}.student-pick input{width:17px;height:17px;accent-color:var(--green)}.day-chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}.day-chip{flex:none;width:58px;padding:8px 0;border-radius:var(--r-control);border:1px solid var(--line);background:var(--surface);display:flex;flex-direction:column;align-items:center;gap:2px;cursor:pointer;color:var(--muted)}.day-chip b{font-family:var(--serif);font-weight:500;font-size:25px;color:var(--ink);line-height:1.1}.day-chip.on{background:var(--green);border-color:var(--green);color:#fffc}.day-chip.on b{color:#fff}.time-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}.time-btn{height:42px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;cursor:pointer;font-family:var(--serif);font-size:20px;font-weight:500;color:var(--ink)}.time-btn:hover{border-color:var(--green)}.time-btn.on{background:var(--green);border-color:var(--green);color:#fff}.window-day{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.window-actions{display:flex;flex-direction:column;align-items:flex-end;gap:0}.window-day:first-of-type{border-top:0}.window-name{font-weight:600;font-size:14.5px}.window-list{display:flex;flex-direction:column;gap:6px}.legal-page{min-height:100vh;background:var(--bg);padding:40px 16px 80px}.legal-wrap{max-width:760px;margin:0 auto}.legal-text p{margin:0 0 12px;white-space:pre-line;line-height:1.65}.accept-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding:12px 0;border-top:1px solid var(--line)}.accept-row:first-child{border-top:0;padding-top:0}.accept-row .check{flex:1;min-width:220px}.accept-doc{flex-basis:100%;max-height:360px;overflow-y:auto;background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:16px 18px;font-size:14px}.month-card{border:1px solid var(--line);border-radius:var(--r-panel);padding:18px 20px;background:var(--surface)}.month-card+.month-card{margin-top:12px}.month-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}.month-stats b{display:block;font-family:var(--serif);font-weight:500;font-size:30px;line-height:1.15}.month-stats span{font-size:12.5px;color:var(--muted)}.lib-filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.lib-filters .input{flex:1;min-width:220px;height:40px}.lib-filters .select{width:auto;height:40px}.lib-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:24px 26px}.lib-title{font-family:var(--serif);font-size:26px;line-height:1.25}.lib-private{margin-top:14px;padding:12px 14px;border-radius:var(--r-control);background:var(--brass-soft);color:#5a4d33;font-size:14px;display:flex;flex-direction:column;gap:8px}.lib-private>div{display:flex;gap:8px;align-items:flex-start}.lib-private summary{cursor:pointer;font-weight:600}.lib-private details .instructions{margin-top:6px;color:var(--ink)}.row-check{width:18px;height:18px;accent-color:var(--green);flex:none}.select-bar{position:sticky;top:12px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--ink);color:#fff;padding:10px 14px 10px 18px;border-radius:999px;margin-bottom:14px;box-shadow:var(--shadow-pop)}.select-bar .btn-secondary{background:#ffffff1a;color:#fff;border-color:#ffffff40}.pick-row{display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:var(--r-control);cursor:pointer;border:1px solid transparent}.pick-row:hover{background:var(--surface-2)}.pick-row.on{background:var(--green-soft);border-color:var(--line-strong)}.pick-row input{width:18px;height:18px;accent-color:var(--green);margin-top:3px;flex:none}.room-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.board-frame{display:block;width:100%;height:68vh;min-height:420px;border:0;background:var(--surface-2)}.tg-card{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.steps{margin:14px 0 0;padding-left:20px;line-height:1.7}.steps li+li{margin-top:6px}code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.9em;background:var(--surface-2);border:1px solid var(--line);border-radius:6px;padding:1px 5px}.game{border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface-2);padding:16px}.game-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;flex-wrap:wrap}.game-type{font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.game-foot{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.game-result{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap;padding:12px 16px;border-radius:var(--r-control);background:var(--brass-soft);color:#5a4d33}.game-result.perfect{background:var(--ok-soft);color:var(--ok)}.game-score{font-family:var(--serif);font-size:32px;line-height:1.1}.chip{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:6px 16px;border-radius:999px;border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:15px;font-weight:400;transition:transform .08s,background .12s,border-color .12s}.chip:hover:not(:disabled){border-color:var(--ink)}.chip:active:not(:disabled){transform:scale(.97)}.chip.on{background:var(--green-soft);border-color:var(--ink);color:var(--ink)}.chip.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.chip.bad{background:var(--danger-soft);border-color:#e2b3a8;color:var(--danger)}.chip:disabled{cursor:default}.mark{flex:none;width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:#fff}.mark.ok{background:var(--ok)}.mark.bad{background:var(--danger)}.expected{font-size:13.5px;color:var(--danger)}.match-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.match-col{display:flex;flex-direction:column;gap:8px}.match-hint{grid-column:1 / -1;margin:4px 0 0}.card-btn{display:flex;flex-wrap:wrap;align-items:center;gap:8px;text-align:left;min-height:48px;padding:10px 14px;border-radius:var(--r-control);border:1px solid var(--line-strong);background:var(--surface);cursor:pointer;font-size:15px;font-weight:400}.card-btn>span:first-child{flex:1;min-width:0}.card-btn.on{border-color:var(--ink);background:var(--green-soft)}.card-btn.target:hover{border-color:var(--green)}.card-btn.ok{border-color:var(--ok);color:var(--ok)}.card-btn.bad{border-color:#e2b3a8}.card-btn .expected{flex-basis:100%}.card-btn:disabled{cursor:default;color:inherit}.order-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-panel);padding:12px 14px}.order-card.ok{border-color:var(--ok)}.order-card.bad{border-color:#e2b3a8}.order-line{display:flex;align-items:center;gap:10px}.order-num{flex:none;width:24px;height:24px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:600;color:var(--muted)}.order-built{flex:1;display:flex;flex-wrap:wrap;gap:6px;min-height:42px;align-items:center;padding:2px 0;border-bottom:1px solid var(--line-strong)}.order-pool{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;padding-left:34px}.order-card .expected{margin-top:8px;padding-left:34px}.gap-bank{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;padding-bottom:14px;border-bottom:1px solid var(--line)}.gap-text{font-size:16.5px;line-height:2.4;white-space:pre-line}.gap-input{height:34px;padding:0 8px;margin:0 2px;border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;font:inherit;font-size:16px;text-align:center;color:var(--ink);font-weight:500}.gap-input:focus{outline:none;background:var(--green-soft)}.gap-input.ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.gap-input.bad{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.gap-slot{display:inline-flex;align-items:center;justify-content:center;min-width:84px;height:34px;padding:0 10px;margin:0 2px;vertical-align:middle;border:1px dashed var(--line-strong);border-radius:999px;background:var(--surface);cursor:pointer;font:inherit;font-size:15.5px;font-weight:500;color:var(--ink)}.gap-slot.filled{border-style:solid;border-color:var(--ink);background:var(--green-soft)}.gap-slot.target{border-color:var(--ink)}.gap-slot.ok{border:1px solid var(--ok);background:var(--ok-soft);color:var(--ok)}.gap-slot.bad{border:1px solid var(--danger);background:var(--danger-soft);color:var(--danger)}.gap-fix{font-size:13px;color:var(--ok);background:var(--ok-soft);border-radius:6px;padding:1px 6px;margin-left:2px}.buckets{display:grid;gap:10px}.bucket{border:1px dashed var(--line-strong);border-radius:var(--r-panel);background:var(--surface);padding:10px;min-height:120px;cursor:pointer}.bucket.target:hover{border-color:var(--ink);background:var(--surface-2)}.bucket-name{font-weight:500;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;color:var(--muted)}.bucket-items{display:flex;flex-wrap:wrap;gap:6px}.result-line{display:flex;align-items:center;gap:10px;margin-top:12px;font-size:13.5px;color:var(--muted);flex-wrap:wrap}.result-pill{font-weight:500;color:#6e5f40;background:var(--brass-soft);border-radius:999px;padding:3px 10px}.result-pill.perfect{color:var(--ok);background:var(--ok-soft)}.mistakes{margin:0;padding-left:18px;line-height:1.7}.bad-text{color:var(--danger);text-decoration:line-through}.type-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.type-card{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:16px;text-align:left;cursor:pointer;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface)}.type-card:hover{border-color:var(--ink)}.type-ill{display:flex;gap:4px;align-items:center;margin-bottom:8px;font-size:12px}.type-ill i{font-style:normal;font-weight:500;padding:3px 8px;border-radius:999px;background:var(--green-soft);color:var(--green-ink)}.type-ill b{color:var(--muted);font-weight:400}.type-ill u{display:inline-block;width:34px;height:20px;border-bottom:1px solid var(--ink);text-decoration:none}.game-editor{border:1px solid var(--line);border-radius:var(--r-panel);padding:16px;background:var(--surface-2)}.pair-head,.pair-row{display:grid;grid-template-columns:1fr 1fr 34px;gap:8px;align-items:center}.pair-head{margin-bottom:6px;padding:0 2px}.pair-row+.pair-row{margin-top:6px}.pair-row .input{height:40px}.group-edit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}.meta-label{display:block;font-size:11.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.today-section{margin-bottom:32px}.today{display:flex;flex-direction:column;border-top:1px solid var(--ink)}.today-empty{border-top:1px solid var(--ink)}.today-card{display:grid;grid-template-columns:108px minmax(0,1fr);gap:24px;padding:26px 0;border-bottom:1px solid var(--line)}.today-card.past{opacity:.6}.today-card.past:hover{opacity:1}.today-time{display:flex;flex-direction:column;gap:2px}.today-time .serif{font-size:38px;line-height:1;font-weight:500}.today-card.current .today-time .serif{text-decoration:underline;text-underline-offset:8px;text-decoration-thickness:1px}.today-body{min-width:0}.today-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.today-name{font-size:30px;line-height:1.1;font-weight:500;color:var(--ink)}.today-name:hover{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.brief{margin:18px 0 0;display:grid;gap:12px}.brief>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:16px}.brief dt{font-size:12px;color:var(--muted);letter-spacing:.04em;padding-top:2px}.brief dd{margin:0;font-size:14.5px;min-width:0}.brief-note{display:block;margin-top:6px;padding-left:12px;border-left:1px solid var(--ink);color:var(--ink-2);font-style:italic}.brief-hw{display:flex;flex-direction:column;gap:6px}.brief-hw a{display:flex;align-items:center;justify-content:space-between;gap:10px;color:var(--ink);min-width:0}.brief-hw a:hover .truncate{text-decoration:underline;text-underline-offset:3px}.brief-warn{color:var(--danger)}.today-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}.seg{display:flex;flex-wrap:wrap;gap:6px}.seg button{height:36px;padding:0 16px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;cursor:pointer;font-size:13.5px;color:var(--ink-2)}.seg button:hover{border-color:var(--ink)}.seg button.on{background:var(--ink);border-color:var(--ink);color:var(--bg)}.seg-quiet{gap:18px}.seg-quiet button{height:auto;padding:4px 0;border:0;border-radius:0;color:var(--muted);border-bottom:1px solid transparent}.seg-quiet button:hover{color:var(--ink)}.seg-quiet button.on{background:none;color:var(--ink);border-bottom-color:var(--ink)}.finish-unit{display:flex;flex-direction:column;gap:12px;padding:18px 0 4px;border-top:1px solid var(--line)}.unit-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-top:28px;padding:20px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}.unit-strip-title{font-size:28px;line-height:1.15;font-weight:500;margin-top:2px}.unit-code{flex:none;min-width:44px;font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink)}.unit-list{display:flex;flex-direction:column;margin-top:18px;border-top:1px solid var(--line)}.unit-row{display:flex;align-items:center;gap:14px;width:100%;padding:12px 4px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left;cursor:pointer;color:var(--ink)}.unit-row:hover:not(:disabled){background:var(--surface-2)}.unit-row:disabled{cursor:default}.unit-row .unit-title{flex:1;min-width:0}.unit-row.passed,.unit-row.passed .unit-code{color:var(--muted)}.unit-row.current{background:var(--green-soft)}.unit-block{border-bottom:1px solid var(--line)}.unit-block:last-child{border-bottom:0}.unit-block-head{display:flex;align-items:center;gap:14px;padding:16px 20px;cursor:pointer}.unit-block-head:hover,.unit-block.open .unit-block-head{background:var(--surface-2)}.unit-editor{padding:20px;border-top:1px solid var(--line)}.words-hero{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap}.vocab-stats{display:flex;gap:36px;flex-wrap:wrap}.vocab-stats>div{display:flex;flex-direction:column}.vocab-stats b{font-size:44px;line-height:1;font-weight:500}.vocab-stats span{font-size:12px;color:var(--muted);letter-spacing:.06em;margin-top:6px}.vocab-table{width:100%;border-collapse:collapse}.vocab-table td{padding:12px 6px;border-bottom:1px solid var(--line);vertical-align:middle}.vocab-table td:first-child{width:36px;padding-left:0}.vocab-term{width:40%}.vocab-term .serif{font-size:21px;font-weight:500;line-height:1.2;display:block}.vocab-example{display:block;font-style:italic;margin-top:2px}.vocab-tr{font-size:14.5px}.vocab-tr-sm{display:none}.vocab-meta{white-space:nowrap;text-align:right}.vocab-meta .small{display:block;margin-top:4px}.vocab-actions{white-space:nowrap;text-align:right}.box-dots{display:inline-flex;gap:4px}.box-dots i{width:6px;height:6px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line-strong)}.box-dots i.on{background:var(--ink);box-shadow:none}.flash{max-width:640px;margin:0 auto}.flash-card{display:block;width:100%;height:280px;margin:24px 0;padding:0;border:0;background:none;cursor:pointer;perspective:1200px;color:var(--ink)}.flash-inner{position:relative;display:block;width:100%;height:100%;transition:transform .6s cubic-bezier(.2,.7,.2,1);transform-style:preserve-3d}.flash-card.flipped .flash-inner{transform:rotateY(180deg)}.flash-face{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:24px;text-align:center;backface-visibility:hidden;border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-panel)}.flash-back{transform:rotateY(180deg);background:var(--surface-2)}.flash-big{font-size:42px;line-height:1.12;font-weight:500}.flash-example{font-style:italic;color:var(--muted);font-size:15px;max-width:46ch}.flash-ipa{font-family:Charis SIL,Doulos SIL,Gentium Plus,Lucida Sans Unicode,Segoe UI,sans-serif;color:var(--muted);font-size:18px;letter-spacing:.02em}.voice-pick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px}.voice-pick select{width:auto;min-width:220px;max-width:100%}.flash-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}.flash-done{text-align:center;padding:40px 10px}.flash-done p{margin:10px 0 24px}.words-strip{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:18px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);color:var(--ink)}.words-strip:hover{text-decoration:none}.words-strip-title{display:block;font-size:26px;line-height:1.15;font-weight:500;margin-top:2px}@media (max-width: 760px){.today-card{grid-template-columns:1fr;gap:10px;padding:22px 0}.today-time{flex-direction:row;align-items:baseline;gap:10px}.today-time .serif{font-size:30px}.today-name{font-size:26px}.brief>div{grid-template-columns:1fr;gap:2px}.vocab-stats{gap:22px}.vocab-stats b{font-size:34px}.vocab-term{width:auto}.vocab-tr{display:none}.vocab-tr-sm{display:block;font-size:14px;margin-top:2px}.vocab-table .hide-sm{display:none}.flash-big{font-size:32px}.flash-card{height:240px}.unit-row .hide-sm{display:none}.unit-block-head{padding:14px 16px}.unit-editor{padding:16px}.words-strip-title{font-size:21px}}.side-tools{display:flex;flex-direction:column;gap:2px;margin-top:-12px}.search-btn,.bell-btn{display:flex;align-items:center;gap:12px;width:100%;padding:9px 12px;border:0;background:none;cursor:pointer;color:var(--muted);font-size:14.5px;border-radius:var(--r-control);text-align:left}.search-btn:hover,.bell-btn:hover{color:var(--ink)}.search-btn kbd{margin-left:auto}kbd{font-family:var(--sans);font-size:11px;color:var(--muted);border:1px solid var(--line-strong);border-radius:4px;padding:1px 5px}.bell,.bell-btn{position:relative}.bell-count{margin-left:auto;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:11px;font-weight:500;display:inline-flex;align-items:center;justify-content:center}.bell.compact .icon-btn{position:relative}.bell.compact .bell-count{position:absolute;top:0;right:-2px;min-width:17px;height:17px;font-size:10px;padding:0 4px}.bell-panel{position:absolute;left:0;top:calc(100% + 6px);z-index:40;width:360px;max-width:calc(100vw - 32px);background:var(--bg);border:1px solid var(--line-strong);border-radius:var(--r-panel);box-shadow:var(--shadow-pop)}.bell.compact .bell-panel{left:auto;right:-40px;position:absolute}.bell-head{display:flex;justify-content:space-between;align-items:center;padding:12px 14px 8px;border-bottom:1px solid var(--line)}.bell-list{max-height:min(70vh,520px);overflow-y:auto}.bell-panel[style*=fixed]{z-index:120}.bell-empty{padding:22px 16px;color:var(--muted);font-size:14px}.bell-item{display:flex;flex-direction:column;gap:2px;width:100%;text-align:left;padding:12px 14px;border:0;border-bottom:1px solid var(--line);background:none;cursor:pointer;color:var(--ink)}.bell-item:hover{background:var(--surface-2)}.bell-item:last-child{border-bottom:0}.bell-title{font-size:14.5px;color:var(--ink-2)}.bell-item.unread .bell-title{color:var(--ink);font-weight:600}.bell-item.unread .bell-title:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--ink);margin-right:8px;vertical-align:2px}.bell-body{font-size:13.5px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.bell-when{font-size:12px;color:var(--muted);margin-top:2px}.palette-overlay{padding-top:12vh}.palette{width:100%;max-width:600px;background:var(--bg);border-radius:var(--r-panel);box-shadow:var(--shadow-pop);overflow:hidden;animation:rise .15s ease-out}.palette-input{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line);color:var(--muted)}.palette-input input{flex:1;min-width:0;border:0;background:none;outline:none;font-size:17px;color:var(--ink)}.palette-list{max-height:min(55vh,440px);overflow-y:auto;padding:6px}.palette-group{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:10px 12px 4px}.palette-item{display:flex;align-items:center;gap:12px;width:100%;padding:10px 12px;border:0;border-radius:var(--r-control);background:none;cursor:pointer;text-align:left;color:var(--ink)}.palette-item[aria-selected=true]{background:var(--green-soft)}.palette-item svg{color:var(--muted);flex:none}.palette-label{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.palette-hint{margin-left:auto;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:45%}.palette-empty{padding:20px;color:var(--muted);text-align:center}.palette-foot{padding:10px 18px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}.week-panel{padding:14px}.week-scroll{overflow-x:auto}.week{min-width:720px}.week-head{display:grid;grid-template-columns:52px repeat(7,1fr);border-bottom:1px solid var(--line)}.week-day{padding:8px 6px 10px;font-size:12px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.week-day b{font-family:var(--serif);font-size:22px;font-weight:500;color:var(--ink);text-transform:none;letter-spacing:0;margin-left:4px}.week-day.is-today b{text-decoration:underline;text-underline-offset:5px;text-decoration-thickness:1px}.week-body{display:grid;grid-template-columns:52px 1fr;padding-top:10px}.week-hours>div{position:relative;border-top:1px solid transparent}.week-hours span{position:absolute;top:-8px;right:8px;font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.week-cols{position:relative;display:grid;grid-template-columns:repeat(7,1fr)}.week-col{position:relative;border-left:1px solid var(--line);cursor:copy;background-image:linear-gradient(to bottom,var(--line) 1px,transparent 1px);background-size:100% 56px}.week-col:hover{background-color:var(--surface-2)}.week-col.is-today{background-color:color-mix(in srgb,var(--green-soft) 60%,transparent)}.week-now{position:absolute;left:0;right:0;height:0;border-top:1px solid var(--danger);pointer-events:none}.week-now:before{content:"";position:absolute;left:-4px;top:-4px;width:7px;height:7px;border-radius:50%;background:var(--danger)}.week-lesson{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:0;overflow:hidden;padding:4px 7px;border-radius:4px;border:1px solid var(--ink);background:var(--ink);color:var(--bg);text-align:left;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;font-size:12.5px;line-height:1.25}.week-lesson.is-group{background:var(--surface);color:var(--ink);border-style:dashed}.week-lesson.st-done{background:var(--surface-2);color:var(--ink-2);border-color:var(--line-strong);cursor:pointer}.week-lesson.st-missed,.week-lesson.st-cancelled_late{background:var(--danger-soft);color:var(--danger);border-color:transparent;cursor:pointer}.week-lesson.dragging{cursor:grabbing;box-shadow:0 12px 28px -10px #00000073;z-index:5;opacity:.92}.wl-time{font-variant-numeric:tabular-nums;opacity:.75;font-size:11.5px}.wl-name{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.wl-sub{font-size:11px;opacity:.75}.html-lesson{border:1px solid var(--line-strong);border-radius:var(--r-panel);overflow:hidden;background:var(--surface)}.html-lesson-bar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);flex-wrap:wrap}.html-lesson iframe{display:block;width:100%;height:min(78vh,900px);border:0;background:#fff}.html-lesson.full{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;border-radius:0;border:0;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px)}.html-lesson.full iframe{flex:1;height:auto}.attendance{display:flex;flex-direction:column;border-top:1px solid var(--line)}.attendance-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);flex-wrap:wrap}.practice{max-width:640px;margin:0 auto}.practice-q{min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;text-align:center;padding:24px 0}.practice-gap{font-size:26px;line-height:1.35;font-weight:500}.practice-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.practice-opt{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:12px 14px;font-size:15.5px;cursor:pointer;color:var(--ink)}.practice-opt:hover:not(:disabled){border-color:var(--ink)}.practice-opt.ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.practice-opt.bad{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.practice-opt:disabled{cursor:default}.practice-input{font-size:18px;height:48px}.practice-fb{margin-top:14px;padding:12px 14px;border-radius:var(--r-control)}.practice-fb.bad{background:var(--danger-soft);color:var(--danger)}.achv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line);margin-bottom:28px}.achv-tile{padding:20px 20px 22px 0;display:flex;flex-direction:column;gap:8px;min-width:0}.achv-tile+.achv-tile{padding-left:20px;border-left:1px solid var(--line)}.achv-num{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.achv-num b{font-size:46px;line-height:1;font-weight:500}.achv-num span{font-size:13px;color:var(--muted)}.achv-stack{display:flex;height:6px;border-radius:3px;overflow:hidden;background:var(--line);gap:2px}.achv-stack i,.achv-legend i{display:block}.achv-legend{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:12px;color:var(--muted)}.achv-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.b0{background:var(--line-strong)}.b1{background:var(--brass-light)}.b3{background:var(--brass)}.b4{background:var(--ink)}.achv-recent{grid-column:1 / -1;border-top:1px solid var(--line);padding:16px 0 6px}@media (max-width: 1080px){.achv{grid-template-columns:repeat(2,minmax(0,1fr))}.achv-tile:nth-child(3){padding-left:0;border-left:0}.achv-tile:nth-child(n+3){border-top:1px solid var(--line)}}@media (max-width: 760px){.achv{grid-template-columns:1fr}.achv-tile,.achv-tile+.achv-tile{padding:16px 0;border-left:0}.achv-tile+.achv-tile{border-top:1px solid var(--line)}.achv-num b{font-size:38px}.practice-opts{grid-template-columns:1fr}.palette-overlay{padding-top:4vh}.palette-hint{display:none}.bell.compact .bell-panel{position:fixed;left:16px;right:16px;top:calc(60px + env(safe-area-inset-top,0px));width:auto;max-width:none}.html-lesson iframe{height:70vh}}.admin-table{width:100%;border-collapse:collapse;min-width:640px}.admin-table th{text-align:left;font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:0 8px 10px;border-bottom:1px solid var(--line)}.admin-table td{padding:14px 8px;border-bottom:1px solid var(--line);vertical-align:middle}.admin-table tr.off td{opacity:.55}.register-cta{margin-top:18px;padding:14px 0;border-top:1px solid var(--line);font-size:14px}.register-cta span{color:var(--muted)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#15151547;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px;overflow-y:auto;animation:fade .15s ease-out}.modal{width:100%;max-width:520px;background:var(--bg);border-radius:var(--r-panel);box-shadow:var(--shadow-pop);padding:32px;animation:rise .18s ease-out}.modal-wide{max-width:680px}.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:20px}.modal-head h2{font-family:var(--serif);font-size:32px;line-height:1.1}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:22px;flex-wrap:wrap}.icon-btn{border:0;background:none;cursor:pointer;padding:6px;border-radius:8px;color:var(--muted)}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.secret{background:var(--surface-2);border:1px solid var(--line-strong);border-radius:var(--r-panel);padding:16px 18px}.secret-row{display:flex;justify-content:space-between;gap:12px;padding:4px 0}.secret-row strong{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:16px}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);z-index:60;background:var(--ink);color:var(--bg);padding:12px 22px;border-radius:999px;box-shadow:var(--shadow-pop);font-weight:400;font-size:14px;animation:rise .18s ease-out;max-width:calc(100% - 32px)}.toast.error{background:var(--danger)}.alert{padding:12px 14px;border-radius:var(--r-control);background:var(--danger-soft);color:var(--danger);font-size:14px}.note{padding:12px 14px;border-radius:var(--r-control);background:var(--brass-soft);color:#5a4d33;font-size:14px}.auth{min-height:100vh;display:grid;grid-template-columns:1.05fr 1fr}.auth-art{position:relative;overflow:hidden;color:#fff;padding:56px;display:flex;flex-direction:column;justify-content:space-between;background:var(--ink)}.auth-art:after{content:"";position:absolute;top:22px;right:22px;bottom:22px;left:22px;border:1px solid rgba(255,255,255,.1);border-radius:3px;pointer-events:none}.auth-quote{font-family:var(--serif);font-size:60px;line-height:1.02;max-width:14ch;letter-spacing:-.015em}.auth-quote em{font-style:italic;color:#fff}.auth-form-wrap{display:flex;align-items:center;justify-content:center;padding:40px 24px}.auth-card{width:100%;max-width:380px}.spinner{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);border-top-color:var(--ink);animation:spin .8s linear infinite;margin:60px auto}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(8px)}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.tabbar,.topbar{display:none}@media (max-width: 1080px){.assign-layout{grid-template-columns:minmax(0,1fr) 300px}.grid-main,.grid-3{grid-template-columns:1fr 1fr}.grid-main>:first-child{grid-column:1 / -1}}@media (max-width: 760px){.shell{grid-template-columns:1fr}.sidebar{display:none}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:20;padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;background:#faf9f6e6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}.topbar .brand-name{font-size:22px}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:#faf9f6f2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);padding:6px 4px calc(6px + env(safe-area-inset-bottom))}.tabbar a{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;font-size:11px;color:var(--muted);text-decoration:none;border-radius:10px;position:relative}.tabbar a.active{color:var(--ink)}.tabbar svg{width:22px;height:22px}.tabbar .dot{position:absolute;top:4px;right:calc(50% - 16px);width:6px;height:6px;border-radius:50%;background:var(--ink)}.content{padding:22px 16px 110px}.page-title{font-size:36px}.grid-2,.grid-3,.grid-main,.form-row{grid-template-columns:1fr}.panel{padding:20px}.hero{padding:28px 24px}.hero-date{font-size:40px}.auth{grid-template-columns:1fr}.auth-art{padding:36px 28px;min-height:260px}.auth-art:after{top:12px;right:12px;bottom:12px;left:12px}.auth-quote{font-size:40px}.modal{padding:24px 20px}.list-item .hide-sm,.list-item .avatar{display:none}.tabbar a{font-size:10.5px}.assign-layout{grid-template-columns:1fr}.work-card{position:static}.assign-title{font-size:30px}.assign-row .counter{display:none}.files{grid-template-columns:1fr}.board-frame{height:60vh;min-height:340px}.game{padding:12px}.match-grid{gap:8px}.card-btn{font-size:14px;padding:8px 10px;min-height:44px}.buckets{grid-template-columns:1fr!important}.type-grid{grid-template-columns:1fr}.order-pool,.order-card .expected{padding-left:0}.lib-filters .select{flex:1}.window-day{grid-template-columns:1fr;gap:8px}.month-stats{grid-template-columns:repeat(2,1fr)}}.motiv{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-panel);padding:20px 22px;margin-bottom:20px}.motiv-stats{display:flex;flex-wrap:wrap;gap:14px 40px}.motiv-stats>div{display:flex;align-items:baseline;gap:10px;min-width:0}.motiv-stats b{font-size:40px;font-weight:500;line-height:1}.motiv-stats span{color:var(--ink-2);font-size:14px}.motiv-days{display:grid;grid-template-columns:repeat(14,1fr);gap:4px;margin-top:16px;max-width:420px}.motiv-days i{height:10px;border-radius:2px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--line)}.motiv-days i.on{background:var(--ink);box-shadow:none}.motiv-league{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}.motiv-league ol,.league-list{list-style:none;margin:8px 0 10px;padding:0}.motiv-league li,.league-list li{display:grid;grid-template-columns:28px 1fr auto auto;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--line)}.motiv-league li.me{font-weight:600}.lg-rank{font-family:var(--serif);font-size:20px;color:var(--muted)}.lg-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}.lg-pts{font-weight:600}.warmup{display:flex;align-items:center;justify-content:space-between;gap:16px;border:1px solid var(--ink);border-radius:var(--r-panel);padding:16px 20px;margin-bottom:20px;background:var(--surface)}.warmup>div{display:flex;flex-direction:column;gap:2px}.warmup-title{font-size:26px;line-height:1.15}.practice-opt.chosen{border-color:var(--ink);background:var(--ink);color:var(--bg)}.join{min-height:100vh;background:var(--bg);display:flex;justify-content:center;padding:48px 16px 64px}.join-wrap{width:100%;max-width:620px}.join-brand{font-family:var(--serif);font-size:22px;letter-spacing:.02em;margin-bottom:48px}.join-title{font-family:var(--serif);font-weight:500;font-size:clamp(40px,7vw,60px);line-height:1.02;margin:6px 0 16px}.join-about{font-size:17px;color:var(--ink-2);white-space:pre-line;margin:0 0 12px}.join-price{font-size:15px;color:var(--ink);margin:0 0 24px;padding-left:12px;border-left:2px solid var(--ink)}.join-steps{display:grid;gap:12px;margin:0 0 28px}.join-steps>div{display:flex;gap:14px;align-items:baseline}.join-steps b{font-family:var(--serif);font-size:26px;font-weight:500;width:20px}.join-test,.join-form,.join-done{margin-top:8px}.join-q{font-size:clamp(24px,4.5vw,32px);line-height:1.2;margin:24px 0 20px}.join-sub{font-size:32px;font-weight:500;margin:0 0 6px}.join-level{font-size:72px;line-height:1;margin:8px 0 4px}.share-link{border:1px dashed var(--line-strong);border-radius:var(--r-panel);padding:14px 16px;margin:16px 0;display:grid;gap:8px}.share-link code{font-size:14px;background:var(--surface-2);padding:8px 10px;border-radius:4px}.lead-row{display:flex;gap:16px;align-items:flex-start;padding:16px 0;border-bottom:1px solid var(--line)}.lead-row:last-child{border-bottom:0}.lead-level{font-size:30px;width:48px;flex:none;line-height:1;color:var(--ink)}.price-hero{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-panel);overflow:hidden;margin-bottom:20px}.price-hero>div{background:var(--surface);padding:18px 20px;display:flex;flex-direction:column;gap:6px}.price-hero b{font-size:38px;font-weight:500;line-height:1.05}.price-input{max-width:150px}.table-scroll{overflow-x:auto}.price-table td,.price-table th{white-space:nowrap;padding-left:10px;padding-right:10px}.price-table th{font-size:10.5px}@media (max-width: 1280px){.price-hero{grid-template-columns:repeat(2,minmax(0,1fr))}}.price-table .ok-row{color:var(--muted)}.market-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px}.market-card{border:1px solid var(--line);background:var(--surface);border-radius:var(--r-panel);padding:18px;display:flex;flex-direction:column;gap:8px;min-width:0}.market-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:10px;border-top:1px solid var(--line)}.market-price{font-size:22px}.fav-filter{background:var(--surface);color:var(--ink-2);border:1px solid var(--line-strong)}.fav-filter.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.fav-star{border:0;background:none;padding:6px;margin:-6px 0;color:var(--line-strong);cursor:pointer;flex:none;display:inline-flex;border-radius:50%}.fav-star:hover{color:var(--ink-2)}.fav-star.on{color:var(--brass)}.fav-star.on svg path{fill:currentColor}.pick-note{display:block;color:#7a5717}.lesson-quick{gap:6px;flex:none}.parent-send{border:1px solid var(--line);border-radius:var(--r-panel);padding:14px 16px;display:grid;gap:10px;background:var(--surface-2)}@media (max-width: 760px){.price-hero{grid-template-columns:1fr}.warmup{flex-direction:column;align-items:stretch}.motiv-stats{gap:12px 24px}.motiv-stats b{font-size:32px}.join{padding-top:28px}.join-brand{margin-bottom:28px}.lesson-quick .btn:not([aria-label]){padding:0 10px}}.sheet{display:grid;gap:18px}.sheet-block{display:grid;gap:10px;min-width:0}.sheet-instr{font-weight:600;white-space:pre-line}.sheet-text .sheet-instr{font-weight:500}.sheet-pic{max-width:100%;max-height:360px;border-radius:4px;border:1px solid var(--line)}.sheet-audio{width:100%;max-width:420px;height:40px}.sheet-q{display:flex;gap:10px;align-items:baseline;white-space:pre-line}.sheet-n{font-family:var(--serif);font-size:20px;color:var(--muted);min-width:18px;flex:none}.sheet-gaps{line-height:2.3}.sheet-options{display:flex;flex-wrap:wrap;gap:8px}.sheet-opt{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:9px 16px;font:inherit;color:var(--ink);cursor:pointer}.sheet-opt:hover:not(:disabled){border-color:var(--ink)}.sheet-opt.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}.sheet-opt.ok{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}.sheet-opt.bad{background:var(--danger-soft);border-color:var(--danger);color:var(--danger)}.sheet-opt:disabled{cursor:default}.sheet-img-wait{padding:40px;text-align:center;color:var(--muted);background:var(--surface-2);border-radius:4px}.sheet-page{position:relative;container-type:inline-size;border:1px solid var(--line);border-radius:4px;overflow:hidden;background:#fff;touch-action:pan-y}.sheet-page-img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.sheet-field-wrap{position:absolute}.sheet-field{width:100%;height:100%;min-height:18px;border:1.5px solid #3d5f9c;background:#ffffffb3;border-radius:3px;padding:0 4px;font:inherit;font-size:clamp(11px,2cqw,20px);color:#1d3b75;font-weight:600}.sheet-field:focus{outline:2px solid #3d5f9c;outline-offset:1px}.sheet-field.ok{border-color:var(--ok);color:var(--ok);background:#eaf0ecf2}.sheet-field.bad{border-color:var(--danger);color:var(--danger);background:#f6e9e6f2}.sheet-fix{position:absolute;left:0;top:100%;margin-top:2px;background:var(--ok);color:#fff;font-size:clamp(10px,1.6cqw,14px);padding:1px 6px;border-radius:3px;white-space:nowrap;z-index:1}.voice-box{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border:1px dashed var(--line-strong);border-radius:6px}.btn-danger-soft{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.rec-dot{width:10px;height:10px;border-radius:50%;background:var(--danger);animation:rec 1s infinite}@keyframes rec{50%{opacity:.25}}.sheet-editor{display:grid;gap:14px}.sheet-start{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:14px 16px;border:1px dashed var(--line-strong);border-radius:6px;background:var(--surface-2)}.sheet-start .small{flex:1 1 260px}.sheet-edit-block{display:grid;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.sheet-add,.sheet-media{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.sheet-page.editing{cursor:crosshair}.sheet-field-edit{position:absolute;border:2px solid #3d5f9c;background:#3d5f9c24;border-radius:3px;padding:0;cursor:pointer;display:flex;align-items:flex-start;justify-content:flex-start}.sheet-field-edit.empty{border-style:dashed}.sheet-field-edit.sel{background:#3d5f9c4d;box-shadow:0 0 0 2px #fff,0 0 0 4px #3d5f9c}.sheet-field-edit span{background:#3d5f9c;color:#fff;font-size:11px;line-height:1;padding:2px 4px;border-radius:0 0 3px}.sheet-draft{position:absolute;border:2px dashed #3d5f9c;background:#3d5f9c1a;pointer-events:none}.sheet-field-list{display:grid;gap:6px}.sheet-field-row{display:flex;align-items:center;gap:8px}.sheet-field-row.sel .sheet-n{color:#3d5f9c;font-weight:600}.sheet-field-row .input{height:38px}.manual-answers{margin-top:12px;display:grid;gap:10px}.manual-answer{padding:10px 12px;background:var(--surface-2);border-radius:6px;display:grid;gap:6px}.manual-text{white-space:pre-line}.sheet-fixes{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--ok)}.sheet-fixes b{color:var(--ink);margin-right:2px}@container (max-width: 560px){.sheet-fix{display:none}}.materials{display:grid;gap:10px;min-width:0}.mat-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.mat-photo{position:relative;aspect-ratio:3 / 4;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--surface-2)}.mat-photo>button{all:unset;display:block;width:100%;height:100%;cursor:zoom-in}.mat-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}.mat-photo:hover img{transform:scale(1.03)}.mat-wait{display:block;width:100%;height:100%;background:var(--surface-2)}.mat-del{position:absolute;top:4px;right:4px;background:#ffffffeb}.mat-audio,.mat-video{position:relative;display:grid;gap:6px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:var(--surface)}.mat-audio .mat-del,.mat-video .mat-del{top:6px;right:6px}.mat-audio-name{display:flex;align-items:center;gap:6px;font-weight:500;padding-right:28px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mat-audio audio{width:100%;height:40px}.mat-video video{width:100%;max-height:420px;border-radius:4px;background:#000}.mat-yt{position:relative;aspect-ratio:16 / 9;border-radius:6px;overflow:hidden;background:#000}.mat-yt iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0}.mat-link{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);text-decoration:none;min-width:0}.mat-link:hover{border-color:var(--ink)}.mat-link-icon{width:36px;height:36px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;flex:none}.mat-link-text{display:grid;min-width:0}.mat-link-title{font-weight:500}.mat-link-url{font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#0f0f0feb;display:grid;place-items:center;padding:48px 56px}.lightbox img{max-width:100%;max-height:calc(100vh - 96px);object-fit:contain;border-radius:2px}.lb-close,.lb-nav{position:absolute;width:44px;height:44px;border-radius:50%;border:0;background:#ffffff1f;color:#fff;display:grid;place-items:center;cursor:pointer}.lb-close:hover,.lb-nav:hover{background:#ffffff3d}.lb-close{top:14px;right:14px}.lb-prev{left:12px;top:50%;transform:translateY(-50%)}.lb-next{right:12px;top:50%;transform:translateY(-50%)}.lb-count{position:absolute;bottom:16px;left:50%;transform:translate(-50%);color:#fffc;font-size:13px}.upload-area{display:grid;gap:8px;padding:14px;border:1.5px dashed var(--line-strong);border-radius:6px;background:var(--surface);transition:background .15s,border-color .15s}.upload-area.over{border-color:var(--ink);background:var(--surface-2)}.comments{display:grid;gap:8px;margin-top:22px;padding-top:16px;border-top:1px solid var(--line)}.comment{padding:10px 12px;border-radius:6px;background:var(--surface-2)}.comment.mine{background:var(--brass-soft)}.comment-head{display:flex;justify-content:space-between;gap:8px;font-size:13px}.comment-head span{color:var(--muted)}.comment-body{white-space:pre-line;margin-top:2px;overflow-wrap:anywhere}.comment-form{display:grid;gap:6px}.comment-form .textarea{min-height:64px}.comment-form .btn{justify-self:end}@media (max-width: 760px){.mat-gallery{grid-template-columns:repeat(3,minmax(0,1fr))}.lightbox{padding:56px 8px}.lb-nav{top:auto;bottom:10px;transform:none}}.lb-next svg{transform:scaleX(-1)}.paste{display:flex;flex-direction:column;gap:14px}.paste-area{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:14px;line-height:1.55;-moz-tab-size:18;tab-size:18;min-height:160px}.paste-opts{display:flex;flex-direction:column;gap:12px}.paste-opts .meta-label{display:block;margin-bottom:6px}.paste-custom{width:90px;height:36px;padding:0 10px}.paste-preview{border:1px solid var(--line);border-radius:var(--r-panel);padding:12px 14px;background:var(--surface)}.paste-table{width:100%;border-collapse:collapse;font-size:14px}.paste-table td{padding:6px 4px;border-bottom:1px solid var(--line);width:50%;vertical-align:top}.paste-table tr:last-child td{border-bottom:0}.paste-table td:first-child{font-weight:500}.study{max-width:760px;margin:0 auto}.study-top{margin-bottom:8px}.study-modes{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}.study-mode{display:flex;flex-direction:column;align-items:flex-start;gap:6px;text-align:left;padding:18px;border:1px solid var(--line-strong);border-radius:var(--r-panel);background:var(--surface);cursor:pointer;color:var(--ink);transition:border-color .15s,transform .15s}.study-mode:hover{border-color:var(--ink);transform:translateY(-1px)}.study-mode-title{font-family:var(--serif);font-size:24px;line-height:1.1;font-weight:500}.study-settings{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-top:18px}.study-settings .meta-label{display:block;margin-bottom:4px}.study-progress{display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.study-q{overflow-wrap:anywhere}.study-key{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;border:1px solid var(--line-strong);border-radius:50%;font-size:11px;color:var(--muted);margin-right:8px;vertical-align:1px}.study-type{margin-top:4px}.practice-input.is-ok{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}.practice-input.is-bad{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.practice-fb{margin-top:14px;padding:12px 14px;border-radius:var(--r-panel);font-size:15px}.practice-fb.ok{background:var(--ok-soft);color:var(--ok)}.practice-fb.bad{background:var(--danger-soft);color:var(--ink)}.study-bad .study-type{margin-top:12px}.practice-opt.picked{border-color:var(--ink);background:var(--green-soft)}.study-result{text-align:center;padding:24px 6px}.study-missed{max-width:520px;margin:0 auto;text-align:left;border-top:1px solid var(--line);padding-top:12px}.study-missed-row{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line)}.study-missed-row .serif{font-size:20px}.match-time{font-size:30px;font-variant-numeric:tabular-nums}.match-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:14px}.match-tile{min-height:96px;padding:10px;border:1px solid var(--line-strong);border-radius:var(--r-panel);background:var(--surface);cursor:pointer;font-size:15px;color:var(--ink);overflow-wrap:anywhere;transition:opacity .25s,transform .25s}.match-tile:hover{border-color:var(--ink)}.match-tile.sel{border-color:var(--ink);background:var(--green-soft)}.match-tile.gone{opacity:0;transform:scale(.9);pointer-events:none}.match-tile.shake{animation:lf-shake .35s;border-color:var(--danger)}@keyframes lf-shake{25%{transform:translate(-5px)}75%{transform:translate(5px)}}.test-q{padding:18px 0;border-bottom:1px solid var(--line)}.test-q.ok .test-term{color:var(--ok)}.test-q.bad .test-term{color:var(--danger)}.test-term{font-size:26px;line-height:1.2;margin:6px 0 10px;font-weight:500}.test-shown{font-size:17px;margin:-4px 0 10px;color:var(--ink-2)}.lvl{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:0;box-shadow:inset 0 0 0 1.5px var(--line-strong)}.lvl-1{background:var(--brass-light);box-shadow:none}.lvl-2{background:var(--brass);box-shadow:none}.lvl-3{background:var(--ok);box-shadow:none}.set-progress{display:flex;flex-direction:column;gap:8px}.set-bar{display:flex;height:6px;border-radius:6px;background:var(--surface-2);overflow:hidden}.set-bar .lv3{background:var(--ok)}.set-bar .lv1{background:var(--brass-light)}.set-legend{display:flex;gap:14px;flex-wrap:wrap}.set-legend .lvl{margin-right:5px}.set-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin-top:4px}.set-card{display:flex;flex-direction:column;gap:10px;padding:18px;border:1px solid var(--line-strong);border-radius:var(--r-panel);color:var(--ink);background:var(--surface);transition:border-color .15s}.set-card:hover{border-color:var(--ink);text-decoration:none}.set-card-title{font-family:var(--serif);font-size:23px;line-height:1.15;font-weight:500}.set-card-go{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:500;margin-top:2px}.practice-week{display:flex;align-items:center;gap:10px;margin-bottom:20px;padding:12px 16px;border-radius:var(--r-panel);background:var(--ok-soft);color:var(--ok);font-size:14.5px}.ws-rows{display:flex;flex-direction:column;gap:8px}.ws-row{display:grid;grid-template-columns:28px 1fr 36px;gap:8px;align-items:start}.ws-row.dupe .input:first-child{border-color:var(--danger)}.ws-n{font-size:13px;color:var(--muted);padding-top:12px;text-align:right;font-variant-numeric:tabular-nums}.ws-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ws-fields .ws-ex{grid-column:1 / -1;font-size:14px}.ws-row .icon-btn{margin-top:6px}.ws-students{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin-bottom:12px}.ws-table{width:100%;border-collapse:collapse;font-size:14.5px}.ws-table th{text-align:left;font-size:12px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 6px;border-bottom:1px solid var(--line)}.ws-table td{padding:10px 6px;border-bottom:1px solid var(--line)}.ws-table tr.clickable{cursor:pointer}.ws-table tr.clickable:hover td{background:var(--surface-2)}.ann-feed{display:flex;flex-direction:column;gap:10px;margin-bottom:22px}.panel .ann-feed{margin-bottom:0;margin-top:10px}.ann{padding:16px 18px;border:1px solid var(--line-strong);border-radius:var(--r-panel);background:var(--surface)}.ann.pinned{border-color:var(--ink);background:var(--brass-soft)}.ann.faded{opacity:.6}.ann-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}.ann-title{margin:0;font-family:var(--serif);font-size:23px;line-height:1.2;font-weight:500;display:flex;align-items:center;gap:8px}.ann-body{margin:8px 0 0;white-space:pre-line;color:var(--ink-2)}.ann-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:10px}.ann-link{margin-left:auto;font-weight:500;color:var(--ink)}@media (max-width: 760px){.match-grid{grid-template-columns:repeat(3,1fr);gap:8px}.match-tile{min-height:78px;font-size:14px}.ws-fields{grid-template-columns:1fr}.ws-row{grid-template-columns:22px 1fr 32px}.study-mode-title{font-size:21px}.test-term{font-size:22px}.ann-title{font-size:20px}.ann-link{margin-left:0}}.rec{margin-bottom:20px}.rec-list{display:flex;flex-direction:column;margin-top:4px}.rec-item{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid var(--line);color:var(--ink)}.rec-item:last-child{border-bottom:0}a.rec-item:hover{text-decoration:none}a.rec-item:hover .rec-title{text-decoration:underline;text-underline-offset:3px}.rec-icon{flex:none;width:36px;height:36px;border-radius:50%;background:var(--brass-soft);display:inline-flex;align-items:center;justify-content:center;color:#6e5f40}.rec-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.rec-title{font-family:var(--serif);font-size:21px;line-height:1.2;font-weight:500;overflow-wrap:anywhere}.rec-go{color:var(--muted)}.rec-strong{margin-top:12px;padding:10px 14px;border-radius:var(--r-panel);background:var(--ok-soft);color:var(--ok)}.gen-video{max-width:560px}.gen-text{font-size:17px;line-height:2;white-space:pre-wrap;max-height:460px;overflow-y:auto;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-panel);background:var(--surface)}.gen-w{border:0;background:none;padding:1px 2px;margin:0 -1px;border-radius:4px;font:inherit;color:inherit;cursor:pointer;line-height:1.5}.gen-w:hover{background:var(--surface-2)}.gen-w.gap{background:var(--ink);color:var(--bg)}.gen-w.voc{box-shadow:inset 0 -3px 0 var(--brass);background:var(--brass-soft)}.gen-w.gap.voc{background:var(--ink);color:var(--bg);box-shadow:inset 0 -3px 0 var(--brass-light)}.gen-vocab{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:8px 16px}.gen-vocab-row{display:grid;grid-template-columns:1fr 1fr 32px;gap:6px;align-items:center}.gen-sents{display:flex;flex-direction:column;gap:8px;max-height:360px;overflow-y:auto}.gen-sents .check{align-items:flex-start;line-height:1.45}.gen-sents .check input{margin-top:2px}.gen-make{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px;margin-top:12px}.gen-make-item{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line-strong);border-radius:var(--r-panel);cursor:pointer}.gen-make-item.on{border-color:var(--ink);background:var(--green-soft)}.gen-make-item input{margin-top:3px;accent-color:var(--ink)}.gen-make-item>span{display:flex;flex-direction:column;gap:2px}@media (max-width: 760px){.gen-vocab{grid-template-columns:1fr}.gen-text{font-size:16px}}.lp{background:var(--bg);min-height:100vh}.lp-wrap{max-width:1160px;margin:0 auto;padding:0 24px}.lp-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--bg) 92%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.lp-top-in{display:flex;justify-content:space-between;align-items:center;height:64px;gap:16px}.lp-brand{color:var(--ink)}.lp-brand:hover{text-decoration:none}.lp-brand .brand-name{font-size:26px}.lp-nav{display:flex;align-items:center;gap:22px}.lp-nav>a:not(.btn){color:var(--ink-2);font-size:14.5px}.lp-hero{background:var(--ink);color:#fff;padding:84px 0 72px;position:relative;overflow:hidden}.lp-hero:after{content:"";position:absolute;right:-120px;top:-120px;width:460px;height:460px;border-radius:50%;border:1px solid rgba(255,255,255,.12);box-shadow:0 0 0 60px #ffffff05,0 0 0 140px #ffffff04}.lp-kicker{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-light);margin-bottom:18px}.lp-h1{font-family:var(--serif);font-weight:500;font-size:clamp(38px,6vw,68px);line-height:1.02;letter-spacing:-.015em;max-width:17ch;margin:0;position:relative;z-index:1}.lp-lead{max-width:58ch;color:#ffffffc7;font-size:17px;line-height:1.6;margin:22px 0 30px;position:relative;z-index:1}.lp-cta{display:flex;gap:10px;flex-wrap:wrap;position:relative;z-index:1}.lp-hero .btn:not(.btn-ghost-light){background:#fff;color:var(--ink);border-color:#fff}.lp .btn-ghost-light{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.32)}.lp .btn-ghost-light:hover{background:#ffffff14}.lp .btn-light{background:#fff;color:var(--ink);border-color:#fff}.lp-stats{display:flex;gap:40px;flex-wrap:wrap;margin-top:48px;position:relative;z-index:1}.lp-stats div{display:flex;flex-direction:column}.lp-stats b{font-size:46px;line-height:1;font-weight:500;color:var(--brass-light)}.lp-stats span{font-size:13px;color:#ffffffa6;margin-top:6px}.lp-section{padding-top:64px;padding-bottom:8px}.lp-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:24px}.lp-h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,4vw,44px);line-height:1.05;margin:0 0 22px;letter-spacing:-.01em}.lp-head .lp-h2{margin:0}.lp-h2.light{color:#fff}.lp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px}.lp-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;transition:transform .2s,box-shadow .2s}.lp-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px -18px #00000059}.lp-card.course{border-color:var(--ink);grid-column:1 / -1;flex-direction:row}.lp-card.course .lp-cover{flex:0 0 38%;aspect-ratio:auto;min-height:220px}.lp-card.soon{opacity:.78}.lp-cover{position:relative;aspect-ratio:16 / 10;background:var(--surface-2);overflow:hidden}.lp-cover img{width:100%;height:100%;object-fit:cover;display:block}.lp-cover>span:not(.serif){position:absolute;right:10px;bottom:10px;background:#000000a6;color:#fff;font-size:12px;padding:3px 9px;border-radius:999px}.lp-cover.blank{display:flex;align-items:center;justify-content:center;background:repeating-linear-gradient(135deg,var(--surface-2) 0 14px,var(--bg) 14px 28px)}.lp-cover.blank .serif{font-size:30px;font-weight:500;padding:0 16px;text-align:center}.lp-cover.blank.course{background:var(--ink);color:var(--brass-light)}.lp-cover.blank.pack{background:var(--brass-soft)}.lp-card-body{display:flex;flex-direction:column;gap:8px;padding:18px 20px 20px;flex:1}.lp-where{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.lp-card-title{font-family:var(--serif);font-weight:500;font-size:25px;line-height:1.12;margin:0}.lp-desc{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.lp-card.course .lp-desc{-webkit-line-clamp:5}.lp-course-note{margin:0;font-size:13.5px;color:var(--ok)}.lp-facts{display:flex;flex-wrap:wrap;gap:6px}.lp-facts span{font-size:12.5px;padding:3px 10px;border-radius:999px;background:var(--surface-2);color:var(--ink-2)}.lp-buy{margin-top:auto;padding-top:10px;display:flex;justify-content:space-between;align-items:center;gap:10px}.lp-price{font-family:var(--serif);font-size:26px;font-weight:500}.lp-price s{font-size:16px;color:var(--muted);margin-left:8px}.lp-badge{font-size:12.5px;padding:4px 12px;border-radius:999px;background:var(--brass-soft);color:#6e5f40}.lp-empty{text-align:center;padding:50px 16px;border:1px dashed var(--line-strong);border-radius:10px}.lp-empty .serif{font-size:28px}.lp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.lp-steps>div{padding:22px;border-top:1px solid var(--ink);display:flex;flex-direction:column;gap:8px}.lp-steps .serif{font-size:40px;line-height:1;color:var(--brass)}.lp-steps b{font-size:17px}.lp-steps p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55}.lp-tutors{background:var(--ink);color:#fff;margin-top:72px;padding:64px 0}.lp-tutors-in{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:center}.lp-features{list-style:none;padding:0;margin:0;display:grid;gap:12px;color:#ffffffd9}.lp-features li{display:flex;gap:12px;align-items:center}.lp-features svg{color:var(--brass-light);flex:none}.lp-login-box{border:1px solid rgba(255,255,255,.18);border-radius:12px;padding:28px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.lp-login-box p{margin:0 0 6px;color:#ffffffb3}.lp-foot{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:28px;padding-bottom:36px}.lp-foot nav{display:flex;gap:18px;flex-wrap:wrap;font-size:14px}.lp-foot a{color:var(--ink-2)}@media (max-width: 760px){.lp-wrap{padding:0 16px}.lp-nav>a:not(.btn){display:none}.lp-hero{padding:56px 0 48px}.lp-stats{gap:26px}.lp-stats b{font-size:36px}.lp-grid{grid-template-columns:1fr}.lp-card.course{flex-direction:column}.lp-card.course .lp-cover{flex:none;min-height:160px;aspect-ratio:16 / 9}.lp-steps,.lp-tutors-in{grid-template-columns:1fr}.lp-section{padding-top:48px}.lp-cover.blank{aspect-ratio:auto;height:96px}.lp-cover.blank .serif{font-size:24px}.lp-foot{flex-direction:column;align-items:flex-start}}a.brand-name{color:inherit;text-decoration:none}.side-shop{display:flex;align-items:center;gap:8px;margin:10px 12px 0;padding:8px 10px;font-size:13px;color:var(--ink-2);border:1px dashed var(--line, #ddd);border-radius:8px;text-decoration:none}.side-shop:hover{color:var(--ink);border-style:solid}.more-menu{padding:6px 0;display:flex;flex-direction:column}.more-menu a,.more-menu button{display:flex;align-items:center;gap:14px;padding:15px 20px;font:inherit;font-size:16px;color:var(--ink);text-decoration:none;background:none;border:0;border-top:1px solid var(--line, #e7e2d8);text-align:left;cursor:pointer}.more-menu>:first-child{border-top:0}.more-menu .count{margin-left:auto;font-size:13px;background:var(--surface-2);border-radius:999px;padding:2px 9px}.formula-bar{position:sticky;top:8px;z-index:6;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-panel);padding:10px 12px;display:flex;flex-direction:column;gap:8px;margin-bottom:4px}.formula-keys{display:flex;flex-wrap:wrap;gap:4px}.formula-keys button{min-width:38px;height:34px;padding:0 9px;border:1px solid var(--line-strong);border-radius:6px;background:var(--bg);font-size:15px;cursor:pointer;color:var(--ink)}.formula-keys button:hover{border-color:var(--ink)}.formula-preview{border-top:1px dashed var(--line-strong);padding-top:8px}.math-block{display:block;overflow-x:auto;overflow-y:hidden;padding:4px 0}.math-inline .katex{font-size:1.08em}@media (max-width: 760px){.formula-bar{position:static}}.bank-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}.bank-units{padding:14px 10px;display:flex;flex-direction:column;position:sticky;top:16px}.bank-unit{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:start;padding:9px 10px;border-radius:6px;color:var(--ink);text-decoration:none}.bank-unit:hover{background:var(--surface-2);text-decoration:none}.bank-unit.active{background:var(--ink);color:#fff}.bank-unit.active small,.bank-unit.active .bank-count{color:#ffffffb3}.bank-code{font-size:22px;line-height:1}.bank-unit-main{display:flex;flex-direction:column;gap:2px;min-width:0}.bank-unit-main b{font-weight:500;font-size:14.5px}.bank-unit-main small{font-size:12px;color:var(--muted);line-height:1.35}.bank-count{font-size:12.5px;color:var(--muted)}@media (max-width: 900px){.bank-layout{grid-template-columns:1fr}.bank-units{position:static}}.bank-words{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:2px 18px;margin-top:12px}.bank-word{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px}.bank-word span:first-child{font-weight:500}.bank-topic{margin-top:18px}.bank-topic .bank-words{margin-top:6px}.bank-pick{max-height:380px;overflow-y:auto;padding-right:6px}.bank-pick .bank-topic:first-child{margin-top:0}.bank-filter{margin-bottom:14px}.bank-books{display:flex;flex-wrap:wrap;gap:14px 32px;margin-bottom:20px}.bank-books-row{display:flex;flex-direction:column;gap:8px}.bank-words.pick .bank-word{justify-content:flex-start}.bank-words.pick .bank-word .muted{margin-left:auto}.set-zones{display:grid;grid-template-columns:1fr 1fr;gap:14px}.set-zone{display:flex;flex-direction:column;gap:8px;min-height:160px;padding:12px;border:1px dashed var(--line-strong);border-radius:12px}.set-zone.drop{background:var(--surface-2)}.set-chip{display:flex;flex-direction:column;gap:2px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:grab;font:inherit;color:inherit}.set-chip:hover{border-color:var(--line-strong)}.set-chip small{color:var(--muted);font-size:12.5px}@media (max-width: 640px){.set-zones{grid-template-columns:1fr}}.lib-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}.lib-main{min-width:0}.folders{position:sticky;top:16px;padding:14px 10px;max-height:calc(100vh - 32px);overflow-y:auto}.folder-list{list-style:none;margin:0;padding:0}.folder-row{display:flex;align-items:center;gap:2px;border-radius:8px;min-height:34px;padding-right:4px}.folder-row:hover{background:var(--surface-2)}.folder-row.on{background:var(--green-soft)}.folder-row.on .folder-name{font-weight:600}.folder-row.over{outline:2px dashed var(--ink-2);outline-offset:-2px;background:var(--brass-soft)}.folder-toggle{width:18px;flex:none;border:0;background:none;padding:0;cursor:pointer;color:var(--muted);font-size:12px}.folder-name{flex:1;min-width:0;display:flex;align-items:center;gap:8px;border:0;background:none;padding:6px 4px;cursor:pointer;font:inherit;font-size:14px;color:inherit;text-align:left}.folder-count{font-size:12px;color:var(--muted);min-width:16px;text-align:right}.folder-actions{display:none}.folder-row:hover .folder-actions,.folder-row:focus-within .folder-actions{display:inline-flex}.folder-row:hover .folder-count{display:none}.folder-actions .icon-btn{width:26px;height:26px}.assign-row[draggable=true]{cursor:pointer}@media (max-width: 900px){.lib-layout{grid-template-columns:1fr}.folders{position:static;max-height:260px}.folder-actions{display:inline-flex}.folder-row:hover .folder-count{display:inline}}.book-row{cursor:default}.book-icon{width:42px;height:52px;flex:none;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;font-size:10px;font-weight:600;letter-spacing:.04em;color:var(--ink-2)}.book-drop{position:relative;display:flex;align-items:center;gap:14px;padding:22px 18px;border:1.5px dashed var(--line-strong);border-radius:12px;cursor:pointer;background:var(--surface)}.book-drop:hover,.book-drop.has{border-color:var(--ink-2)}.book-drop input{position:absolute;width:1px;height:1px;opacity:0}.book-drop span{display:flex;flex-direction:column;gap:2px;min-width:0}.book-drop small{color:var(--muted);font-size:13px}.book-progress{display:flex;flex-direction:column;gap:6px}.book-progress .bar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden}.book-progress .bar i{display:block;height:100%;background:var(--ink);transition:width .3s}.plan-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.plan-card{display:flex;flex-direction:column;gap:10px;padding:22px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.plan-card.accent{border-color:var(--ink);box-shadow:0 1px 0 var(--ink)}.plan-card.current{border-color:var(--ok)}.plan-name{font-family:var(--serif);font-weight:500;font-size:26px;margin:0}.plan-price{font-family:var(--serif);font-size:34px;line-height:1}.plan-price small{font-family:inherit;font-size:15px;color:var(--muted)}.plan-tag{margin:0}.plan-list{list-style:none;margin:4px 0 8px;padding:0;display:flex;flex-direction:column;gap:0;flex:1}.plan-list li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid var(--line);font-size:13.5px}.plan-list li b{font-weight:500;text-align:right;white-space:nowrap}.plan-yes{color:var(--ok)}.plan-no{color:var(--muted)}.plan-now{display:grid;grid-template-columns:1fr 1.2fr;gap:28px;align-items:start;margin-bottom:20px}.plan-usage{display:flex;flex-direction:column;gap:12px}.plan-usage .bar{height:8px;border-radius:99px;background:var(--surface-2);overflow:hidden;margin-top:4px}.plan-usage .bar i{display:block;height:100%;background:var(--ink)}.plan-usage .bar i.full{background:var(--danger)}.note-ok{display:flex;gap:10px;align-items:center;background:var(--ok-soft);border-color:transparent;margin-bottom:20px}.plan-cell{display:flex;flex-direction:column;gap:6px;min-width:200px}.select-sm,.input-sm{height:32px;font-size:13px;padding:0 8px}@media (max-width: 900px){.plan-cards,.plan-now{grid-template-columns:1fr}}.chip-btn{border:1px solid var(--line-strong);background:var(--surface);border-radius:999px;padding:6px 12px;font:inherit;font-size:14px;color:var(--ink);cursor:pointer}.chip-btn:hover:not(:disabled){border-color:var(--ink)}.chip-btn:disabled{opacity:.45;cursor:default}.write-starters{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.write-grid{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:14px;align-items:start}.write-pad{display:grid;gap:6px;min-width:0}.write-area{min-height:220px;font-size:17px;line-height:1.6}.write-checks{display:grid;gap:6px;position:sticky;top:12px}.write-check{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:10px;background:var(--surface-2);font-size:14px;line-height:1.35;transition:background .2s}.write-check small{display:block;color:var(--muted);font-size:12.5px}.write-check.ok{background:var(--ok-soft)}.write-tick{flex:none;width:22px;height:22px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;font-size:13px;font-weight:800;color:#fff}.write-check.ok .write-tick{background:var(--ok);border-color:var(--ok)}.write-model{white-space:pre-wrap;background:var(--surface-2);border-radius:12px;padding:12px 14px;margin-top:6px;line-height:1.55}.write-check-edit{display:grid;grid-template-columns:minmax(0,1fr) 76px auto;gap:6px;align-items:end;padding:8px 0;border-bottom:1px solid var(--line)}.write-check-edit>.input:first-child{grid-column:1 / -1}.write-min,.write-num{display:grid;gap:2px}.write-num .input{width:130px}.write-try{border:1px dashed var(--line-strong);border-radius:12px;padding:8px 12px;display:grid;gap:6px}.write-try[open]{padding-bottom:12px}.rw-src{font-size:18px;padding:8px 12px;border-left:3px solid var(--line-strong);background:var(--surface-2);border-radius:0 10px 10px 0}.rw-input.ok,.textarea.ok{border-color:var(--ok);background:var(--ok-soft)}.rw-input.bad,.textarea.bad{border-color:var(--danger);background:var(--danger-soft)}.rw-fix{font-size:14px;color:var(--ok)}.fix-text{font-size:18px;line-height:2.1}.fix-tok{font:inherit;background:none;border:0;padding:1px 3px;border-radius:6px;color:inherit;cursor:pointer;border-bottom:1px dashed transparent}button.fix-tok:hover{background:var(--surface-2);border-bottom-color:var(--line-strong)}.fix-tok.changed{background:#fff3cf}.fix-tok s{color:var(--danger);opacity:.8}.fix-tok.ok{background:var(--ok-soft);color:var(--ok);cursor:default}.fix-tok.bad{background:var(--danger-soft);cursor:default}.fix-tok.bad b{color:var(--ok)}.fix-input{font:inherit;padding:0 6px;border:2px solid var(--ink);border-radius:6px;min-width:4ch}.type-ill s{color:var(--danger)}@media (max-width: 760px){.write-grid{grid-template-columns:1fr}.write-checks{position:static}}.lp-feat{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:18px}.lp-feat-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:18px;display:grid;gap:8px;align-content:start}.lp-feat-card b{font-size:17px}.lp-feat-card p{margin:0;color:var(--muted);font-size:14.5px;line-height:1.5}.lp-feat-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--surface-2);color:var(--ink)}.lp-shop-teaser{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px 28px}@media (max-width: 980px){.lp-feat{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 560px){.lp-feat{grid-template-columns:1fr}}.lx .lp-hero{padding:72px 0 120px}.lx-hero-in{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center;position:relative;z-index:1}.lx .lp-h1{max-width:14ch}.lx-trust{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:26px;font-size:13.5px;color:#ffffffb8}.lx-trust span{display:inline-flex;gap:6px;align-items:center}.lx-trust svg{color:var(--brass-light)}.lx-mock{position:relative}.lx-win{background:#fff;color:var(--ink);border-radius:14px;padding:14px 16px 16px;box-shadow:0 30px 70px -30px #000000b3;transform:rotate(-1.2deg)}.lx-win-top{display:flex;align-items:center;gap:6px;margin-bottom:10px;font-size:13px;color:var(--muted)}.lx-win-top i{width:9px;height:9px;border-radius:50%;background:var(--line-strong)}.lx-win-top span{margin-left:8px;font-weight:600;color:var(--ink)}.lx-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);font-size:14px}.lx-row b{font-variant-numeric:tabular-nums;width:44px}.lx-row span{flex:1;min-width:0}.lx-row em{font-style:normal;font-size:12.5px;padding:3px 9px;border-radius:999px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap}.lx-row em.ok{background:var(--ok-soft);color:var(--ok)}.lx-row em.warn{background:var(--brass-soft);color:#7a6435}.lx-sep{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:12px 0 2px}.lx-bubble{position:absolute;left:-34px;bottom:-78px;max-width:290px;background:#2b2b2b;color:#fff;border-radius:16px 16px 16px 4px;padding:12px 14px;font-size:13.5px;line-height:1.45;box-shadow:0 20px 40px -20px #000c;transform:rotate(1.5deg)}.lx-bubble b{display:block;color:var(--brass-light);font-size:12px;margin-bottom:3px}.lx-section{padding-top:84px}.lx-k{color:var(--brass)!important}.lx-pains{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.lx-pains div{border-top:2px solid var(--ink);padding-top:14px}.lx-pains b{display:block;font-size:17px;margin-bottom:6px}.lx-pains p{margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55}.lx-answer{margin:28px 0 0;font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);line-height:1.25;max-width:30ch}.lx-block{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:40px 0;border-top:1px solid var(--line)}.lx-block.rev>div:first-child{order:2}.lx-bk{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--brass);margin-bottom:10px}.lx-h3{font-weight:500;font-size:clamp(26px,3vw,36px);line-height:1.08;margin:0 0 18px}.lx-points{list-style:none;padding:0;margin:0;display:grid;gap:10px}.lx-points li{display:flex;gap:10px;align-items:flex-start;font-size:15.5px;line-height:1.5;color:var(--ink-2)}.lx-points svg{flex:none;margin-top:3px;color:var(--ok)}.lx-card{background:var(--surface);border:1px solid var(--line-strong);border-radius:16px;padding:20px 22px;box-shadow:0 24px 50px -36px #00000073}.lx-card-h{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}.lx-text{font-size:15px;line-height:1.6;background:var(--surface-2);border-radius:10px;padding:10px 12px;margin-bottom:10px}.lx-text u{text-decoration:none;background:var(--brass-soft);border-bottom:2px solid var(--brass)}.lx-check{display:flex;gap:10px;align-items:center;font-size:14px;padding:6px 0;color:var(--ink-2)}.lx-check i{width:20px;height:20px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;font-style:normal;font-size:11px;color:#fff}.lx-check.ok i{background:var(--ok);border-color:var(--ok)}.lx-flash{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:26px 22px}.lx-flash .serif{font-size:46px;font-weight:500;line-height:1.1}.lx-tag{font-size:12px;color:var(--muted)}.lx-ipa{color:var(--muted);font-size:18px}.lx-play{display:inline-flex;gap:6px;align-items:center;font-size:13px;background:var(--ink);color:#fff;border-radius:999px;padding:6px 12px;margin-top:6px}.lx-modes{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:14px}.lx-modes span{font-size:12.5px;border:1px solid var(--line-strong);border-radius:999px;padding:3px 10px}.lx-big{font-size:40px;line-height:1}.lx-bars{display:flex;align-items:flex-end;gap:8px;height:70px;margin:14px 0 8px}.lx-bars i{flex:1;background:var(--brass-light);border-radius:4px 4px 0 0}.lx-bars i:last-child{background:var(--ink)}.lx-chat{display:grid;gap:10px;background:#e9eef3}.lx-msg{background:#fff;border-radius:14px 14px 14px 4px;padding:10px 12px;font-size:14px;line-height:1.45;max-width:86%}.lx-msg u{color:#2f6fd6;text-decoration:none}.lx-msg.me{justify-self:end;background:#dff3d8;border-radius:14px 14px 4px}.lx-more{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding-top:28px;border-top:1px solid var(--line)}.lx-more div{display:grid;gap:6px}.lx-more b{font-size:15.5px}.lx-more span{color:var(--muted);font-size:14px;line-height:1.45}.lx-parents{background:var(--ink);color:#fff;margin-top:84px;padding:72px 0}.lx-parents-in{display:grid;grid-template-columns:1.2fr 1fr;gap:48px;align-items:center}.lx-parents p{color:#ffffffc7;line-height:1.6;max-width:54ch}.lx-parent-card{background:#fff;color:var(--ink);border-radius:16px;padding:20px 22px;transform:rotate(1deg)}.lx-calc{display:grid;grid-template-columns:1.1fr .9fr;gap:20px}.lx-calc-in{background:var(--surface);border:1px solid var(--line-strong);border-radius:18px;padding:24px;display:grid;gap:18px}.lx-calc-in label{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center}.lx-calc-in label span{color:var(--ink-2);font-size:14.5px}.lx-calc-in label b{font-variant-numeric:tabular-nums}.lx-calc-in input[type=range]{grid-column:1 / -1;width:100%;accent-color:var(--ink)}.lx-calc-in p{margin:0}.lx-calc-out{background:var(--ink);color:#fff;border-radius:18px;padding:24px 26px;display:grid;gap:18px;align-content:center}.lx-calc-out div{display:grid;gap:2px}.lx-calc-out b{font-size:40px;line-height:1;font-weight:500;color:var(--brass-light)}.lx-calc-out span{color:#ffffffb8;font-size:14px}.lx-faq{display:grid;gap:0;border-top:1px solid var(--line-strong);max-width:820px}.lx-faq-i{border-bottom:1px solid var(--line-strong)}.lx-faq-i button{width:100%;display:flex;justify-content:space-between;gap:16px;align-items:center;background:none;border:0;padding:18px 0;font:inherit;font-size:17px;font-weight:600;color:var(--ink);text-align:left;cursor:pointer}.lx-faq-i button span{font-size:22px;color:var(--muted)}.lx-faq-i p{margin:0 0 18px;color:var(--ink-2);line-height:1.6;max-width:64ch}.lx-final{background:var(--ink);color:#fff;margin-top:84px;padding:72px 0;text-align:center}.lx-final p{color:#ffffffbf;margin:0 0 24px}@media (max-width: 980px){.lx-hero-in,.lx-block,.lx-parents-in,.lx-calc{grid-template-columns:1fr;gap:32px}.lx-block.rev>div:first-child{order:0}.lx-pains,.lx-more{grid-template-columns:repeat(2,minmax(0,1fr))}.lx-bubble{left:8px;bottom:-86px}.lx-mock{margin-bottom:96px}.lx-mock{margin-bottom:80px}}@media (max-width: 560px){.lx-pains,.lx-more{grid-template-columns:1fr}.lx-section{padding-top:60px}.lx-calc-out b{font-size:32px}}.legal-links{display:flex;gap:16px;flex-wrap:wrap;margin-top:16px;font-size:14px}.legal-foot{flex-basis:100%;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12.5px;color:var(--muted);border-top:1px solid var(--line);padding-top:14px}.legal-foot a{color:var(--muted)}.onb{margin-bottom:22px}.onb-list{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:4px}.onb-list li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.onb-list li>div{flex:1;display:grid;gap:2px;min-width:0}.onb-list li.done b{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--line-strong)}.onb-tick{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--line-strong);display:grid;place-items:center;font-size:13px;color:#fff}.onb-list li.done .onb-tick{background:var(--ok);border-color:var(--ok)}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:12px}.metric{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:12px}.metric b{font-size:30px;font-weight:500;line-height:1.1}.metric b.metric-none{font-size:18px;color:var(--muted);padding:7px 0 4px}.sys-list{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}.sys-list li{display:flex;gap:10px;align-items:flex-start}.sys-list li>span{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;color:#fff;background:var(--ok)}.sys-list li.bad>span{background:var(--danger)}.err-list{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}@media (max-width: 760px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.who-link{display:flex;align-items:center;gap:10px;padding:6px;margin:0 -6px;border-radius:10px;color:inherit;text-decoration:none}.who-link:hover,.who-link.active{background:var(--surface-2);text-decoration:none}.who-link .who,.who-link .who-role{display:block}.who-ava{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-weight:600;font-size:14px}.profile-card{display:flex;align-items:center;gap:18px}.profile-avatar{flex:none;width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:var(--bg);font-size:26px}.profile-name{font-size:22px;font-weight:600;margin-bottom:2px}.profile-links{padding:6px 0}.profile-row{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:12px;width:100%;padding:14px 22px;border:0;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;text-decoration:none}.profile-row:first-child{border-top:0}.profile-row:hover{background:var(--surface-2);text-decoration:none}.profile-logout{margin-top:24px;width:100%;max-width:460px;height:48px;justify-content:center}.help-list{display:grid;gap:12px;max-width:820px}.help-item{padding:0}.help-head{display:flex;align-items:center;gap:12px;width:100%;padding:18px 22px;border:0;background:none;font:inherit;font-size:17px;font-weight:500;color:inherit;text-align:left;cursor:pointer}.help-chev{margin-left:auto;display:inline-flex;transform:rotate(-90deg);transition:transform .15s;color:var(--muted)}.help-item.open .help-chev{transform:rotate(90deg)}.help-body{padding:0 22px 20px 56px}.help-body ol{margin:0 0 16px;padding-left:18px;display:grid;gap:8px;line-height:1.55}@media (max-width: 760px){.help-body{padding-left:22px}.profile-row{padding:14px 16px}}.assign-row[tabindex]:focus-visible,.clickable[tabindex]:focus-visible{outline:2px solid var(--ink);outline-offset:2px}.demo-banner{display:flex;align-items:center;gap:14px;padding:14px 18px;margin-bottom:20px;border:1px dashed var(--line-strong);border-radius:14px;background:var(--surface-2)}.demo-banner>div{flex:1;line-height:1.5}.onb-demo{display:flex;align-items:center;gap:16px;margin:12px 0 4px;padding:14px 16px;border-radius:12px;background:var(--surface-2)}.onb-demo>div{flex:1;display:grid;gap:2px}@media (max-width: 760px){.demo-banner,.onb-demo{flex-direction:column;align-items:flex-start}}.invite-text{white-space:pre-wrap;font:inherit;font-size:13px;line-height:1.5;margin:10px 0 0;padding:12px;border-radius:10px;background:var(--surface);border:1px solid var(--line)}.import-table{width:100%;border-collapse:collapse;font-size:14px}.import-table th{text-align:left;font-size:12px;font-weight:500;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}.import-table td{padding:8px;border-bottom:1px solid var(--line)}.import-table code{font-size:14px}.sandbox-bar{display:flex;align-items:center;gap:14px;padding:12px 16px;margin-bottom:20px;border-radius:14px;background:var(--ink);color:var(--bg);line-height:1.5}.sandbox-bar>div{flex:1;font-size:14px}.sandbox-bar .btn{background:var(--bg);color:var(--ink);border-color:var(--bg);flex:none}.try-page{max-width:520px;margin:18vh auto 0;padding:0 16px;display:grid;gap:14px;justify-items:start}@media (max-width: 760px){.sandbox-bar{flex-direction:column;align-items:flex-start}}.m-search{position:relative;max-width:560px;margin-bottom:14px}.m-search svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted)}.m-search .input{padding-left:42px}.m-feature{display:flex;align-items:center;gap:16px;padding:18px 20px;margin-bottom:28px;border-radius:16px;background:var(--ink);color:var(--bg);text-decoration:none}.m-feature:hover{text-decoration:none;opacity:.94}.m-feature div{flex:1;display:grid;gap:2px}.m-feature b{font-size:17px}.m-feature>svg:last-child{transform:rotate(180deg)}.m-group{margin-bottom:30px}.m-group-title{font-family:var(--serif, Georgia, serif);font-size:24px;font-weight:500;margin:0 0 2px}.m-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.m-card{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;text-decoration:none;min-height:120px}.m-card:hover{border-color:var(--line-strong);text-decoration:none;transform:translateY(-1px)}.m-card b{font-size:16px;line-height:1.35}.m-card-meta{margin-top:auto;color:var(--muted)}.m-article{max-width:760px}.m-meta{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:4px}.m-title{margin:6px 0 8px}.m-updated{margin-top:-4px}.m-sec{margin-top:26px;line-height:1.65}.m-sec p{margin:0 0 10px}.m-h{font-size:19px;font-weight:600;margin:0 0 10px}.m-list,.m-steps{margin:0 0 10px;padding-left:22px;display:grid;gap:8px}.m-steps li::marker{font-weight:600}.m-check{list-style:none;padding:0;margin:0 0 10px;display:grid;gap:8px}.m-check li{display:flex;gap:10px;align-items:flex-start}.m-check svg{flex:none;margin-top:4px;color:var(--green, #2f6b46)}.m-table{width:100%;border-collapse:collapse;font-size:14px;line-height:1.5}.m-table th{text-align:left;font-weight:600;font-size:13px;padding:8px 10px;border-bottom:2px solid var(--line-strong)}.m-table td{padding:10px;border-bottom:1px solid var(--line);vertical-align:top}.m-example{white-space:pre-wrap;font:inherit;font-size:15px;margin:6px 0 10px;padding:14px 16px;border-left:3px solid var(--ink);background:var(--surface-2);border-radius:0 10px 10px 0}.m-tip,.m-warn{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;margin:8px 0;border-radius:12px;font-size:15px;line-height:1.55}.m-tip{background:var(--surface-2)}.m-warn{background:#fbefe9;color:#6e2f1f}.m-tip svg,.m-warn svg{flex:none;margin-top:3px}.m-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:28px;padding-top:18px;border-top:1px solid var(--line)}.m-sources{margin-top:14px}.m-next{display:grid;gap:4px;margin-top:26px;padding:16px 20px;color:inherit;text-decoration:none}.m-next:hover{text-decoration:none;border-color:var(--line-strong)}.m-filters{display:grid;gap:10px;margin:6px 0 4px}.m-filters .select{width:auto;min-width:170px}.m-acts{display:grid;gap:10px;max-width:820px}.m-act{padding:0}.m-act-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 14px;width:100%;padding:16px 20px;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer}.m-act-title{font-size:16px;font-weight:600}.m-act-body{padding:0 20px 18px;display:grid;gap:10px;justify-items:start}.m-inline-tip{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;margin:0 0 14px;border-radius:10px;background:var(--surface-2);color:inherit;font-size:14px;text-decoration:none}.m-inline-tip:hover{text-decoration:none;background:var(--line)}.m-inline-tip svg{flex:none}.m-daily{display:grid;gap:4px;margin-top:20px;padding:16px 20px;color:inherit;text-decoration:none}.m-daily:hover{text-decoration:none;border-color:var(--line-strong)}.m-daily svg{vertical-align:-2px}@media (max-width: 760px){.m-grid{grid-template-columns:1fr}.m-feature{padding:16px}}:root{--bg: #f7f3ea;--surface: #fffdf8;--surface-2: #f1ebdd;--ink: #1f1d1a;--ink-2: #3b372f;--muted: #6b6457;--line: #e3dccb;--line-strong: #d2c7af;--green: #1f1d1a;--green-soft: #efe8d8;--brass-soft: #f4ecd9;--pen: #b3261e;--pen-deep: #8c1d17;--pen-soft: #f8e6e1;--danger: #b3261e;--danger-soft: #f8e6e1;--rule: #efe9dc;--shadow: 0 1px 0 var(--line), 0 10px 26px -18px rgba(70, 45, 10, .25)}a{color:var(--ink)}a:hover{color:var(--pen-deep)}:focus-visible{outline:2px solid var(--pen);outline-offset:2px}::selection{background:#f3cfc8}.sidebar{background:#f2ece0;z-index:20}.brand-rule{background:var(--pen);width:32px;height:2px}.nav a{border-radius:8px}.nav a.active{background:var(--surface);box-shadow:inset 3px 0 0 var(--pen)}.nav .count{background:var(--pen);color:#fff}.nav-group{color:#7a7263}.main{background-image:repeating-linear-gradient(to bottom,transparent 0 31px,var(--rule) 31px 32px);background-attachment:local}@media (min-width: 1000px){.content{position:relative;padding-left:88px}.content:before{content:"";position:absolute;left:56px;top:0;bottom:0;width:2px;background:#e6aaa2;pointer-events:none}}.panel{box-shadow:var(--shadow)}.page-title{font-weight:500}.section-title{color:#7a7263}.btn{border-radius:999px}.btn-secondary{background:var(--surface)}.btn-secondary:hover{border-color:var(--ink);background:var(--surface)}.badge-red{background:transparent;color:var(--pen);border:1px solid currentColor}.badge-brass{background:transparent;color:var(--pen);border:1px dashed currentColor;font-weight:500}.badge-green{background:transparent;color:#2f5f46;border:1.5px solid currentColor;text-transform:uppercase;letter-spacing:.08em;font-size:10.5px;font-weight:600;transform:rotate(-2deg);border-radius:5px}.alert{border-left:3px solid var(--pen)}.m-warn{background:var(--pen-soft);color:var(--pen-deep)}.m-example{border-left-color:var(--pen)}.m-feature,.sandbox-bar{background:var(--ink)}.m-inline-tip,.m-tip{background:#f3ecdb}.demo-banner{background:var(--surface);border-color:#e0b8b1}.bell-panel,.modal{background:var(--surface)}.pen-num{font-family:var(--serif);font-style:italic;color:var(--pen)}.bell-count{background:var(--pen);color:#fff}.m-article,.assign-layout{position:relative;isolation:isolate}@media (min-width: 1000px){.m-article:after{content:"";position:absolute;top:-12px;right:-28px;bottom:-12px;left:-28px;background:var(--bg);z-index:-1;border-radius:6px}}@keyframes lf-sheet{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes lf-pen{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes lf-stamp{0%{opacity:0;transform:scale(1.7) rotate(-14deg)}60%{opacity:1;transform:scale(.94) rotate(-1deg)}to{transform:scale(1) rotate(-2deg)}}@keyframes lf-pop{0%{transform:scale(.4)}70%{transform:scale(1.18)}to{transform:scale(1)}}@keyframes lf-ink{0%{opacity:0;filter:blur(2px)}to{opacity:1;filter:none}}.content>*{animation:lf-sheet .34s cubic-bezier(.22,.8,.3,1) backwards}.content>*:nth-child(2){animation-delay:.04s}.content>*:nth-child(3){animation-delay:.08s}.content>*:nth-child(4){animation-delay:.12s}.content>*:nth-child(5){animation-delay:.16s}.content>*:nth-child(n+6){animation-delay:.2s}.m-grid>*,.m-acts>*,.help-list>*{animation:lf-sheet .3s ease-out backwards}.m-grid>*:nth-child(2),.m-acts>*:nth-child(2){animation-delay:.03s}.m-grid>*:nth-child(3),.m-acts>*:nth-child(3){animation-delay:.06s}.m-grid>*:nth-child(n+4),.m-acts>*:nth-child(n+4){animation-delay:.09s}.content .page-title:after{content:"";display:block;width:56px;height:2px;margin-top:12px;border-radius:2px;background:var(--pen);transform-origin:left center;animation:lf-pen .55s .18s cubic-bezier(.6,0,.2,1) backwards}.nav a{transition:color .15s,background-color .2s,box-shadow .25s}.nav a:hover{background:#fffdf899}.nav .count,.bell-count{animation:lf-pop .35s ease-out both}.badge-green{animation:lf-stamp .42s cubic-bezier(.3,1.4,.5,1) both}.btn,.icon-btn,.back-btn{transition:transform .12s,background-color .15s,border-color .15s,box-shadow .15s,color .15s}.btn:active,.icon-btn:active{transform:translateY(1px) scale(.98)}.btn:not(.btn-secondary):not(:disabled):hover{box-shadow:0 6px 16px -8px #1f1d1a8c}.m-card,.m-next,.m-daily,.profile-row,.list-item.clickable,.assign-row{transition:transform .18s,border-color .18s,box-shadow .18s,background-color .18s}.m-card:hover,.m-next:hover,.m-daily:hover{transform:translateY(-2px);box-shadow:0 12px 24px -16px #462d0a59}.list-item.clickable:hover,.assign-row:hover{background-color:#f1ebdd99}.modal{animation:lf-sheet .24s cubic-bezier(.22,.8,.3,1) both}.bell-panel{animation:lf-ink .2s ease-out both}@keyframes lf-toast{0%{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%)}}.toast{animation:lf-toast .26s cubic-bezier(.22,.8,.3,1) both}.m-act-body,.help-body{animation:lf-ink .25s ease-out both}.bar span{transition:width .7s cubic-bezier(.22,.8,.3,1)}@keyframes lf-right{0%{box-shadow:0 0 #2f5f4659}to{box-shadow:0 0 0 10px #2f5f4600}}.match-tile.ok,.match-tile.done,.opt.correct,.ok-flash{animation:lf-right .6s ease-out}.draft-notice{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding:10px 14px;margin:0 0 16px;border-radius:10px;background:#f3ecdb;border:1px dashed var(--line-strong);font-size:14px;animation:lf-ink .3s ease-out both}.draft-notice .btn{margin-left:auto}.assign-layout>.dk-panel{grid-column:1 / -1}.dk-editor{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}.dk-rail{position:sticky;top:12px}.dk-theme-pick{height:32px;width:auto;padding:0 28px 0 10px;font-size:13px}.dk-thumbs{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:4px;max-height:56vh;overflow-y:auto}.dk-thumb{width:100%;display:flex;gap:10px;align-items:center;text-align:left;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}.dk-thumb:hover{border-color:var(--muted)}.dk-thumb.on{border-color:var(--pen, #b3261e);box-shadow:inset 3px 0 0 var(--pen, #b3261e)}.dk-thumb-n{width:22px;flex:none;color:var(--muted);font-size:13px}.dk-thumb-body{display:grid;min-width:0}.dk-thumb-body b{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dk-add{display:grid;gap:4px}.dk-add-type{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:8px 10px;border:1px dashed var(--line);border-radius:8px;background:var(--surface);color:var(--ink);cursor:pointer;font:inherit}.dk-add-type:hover{border-style:solid;border-color:var(--ink)}.dk-add-type>span{display:grid}.dk-add-type svg{margin-top:2px;flex:none}.dk-preview{margin-bottom:18px;border-radius:10px;overflow:hidden}.dk-preview .dk-stage{aspect-ratio:16 / 9;min-height:0;font-size:13px;pointer-events:none}.dk-preview .dk-slide{overflow:hidden}.dk-word-row{display:grid;grid-template-columns:1fr 1fr 1.4fr auto;gap:6px}.dk-meta-row{max-width:180px}.dk-player{--dk-bg: #fffdf8;--dk-ink: #1f1d1a;--dk-mute: #6f685c;--dk-acc: #b3261e;--dk-card: #ffffff;--dk-line: #e3dccb;border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--dk-bg);color:var(--dk-ink);outline:none}.dk-player:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--dk-acc) 40%,transparent)}.dk-theme-paper{--dk-bg: #fffdf8;--dk-ink: #1f1d1a;--dk-mute: #6f685c;--dk-acc: #b3261e;--dk-card: #ffffff;--dk-line: #e3dccb}.dk-theme-ink{--dk-bg: #1f1d1a;--dk-ink: #f7f3ea;--dk-mute: #c4bcad;--dk-acc: #ff8a7a;--dk-card: #2b2824;--dk-line: #45403a}.dk-theme-sky{--dk-bg: #f2f7ff;--dk-ink: #102040;--dk-mute: #4a5a78;--dk-acc: #2448d8;--dk-card: #ffffff;--dk-line: #d4e0f5}.dk-theme-mint{--dk-bg: #f1faf5;--dk-ink: #10291d;--dk-mute: #456455;--dk-acc: #1f7a45;--dk-card: #ffffff;--dk-line: #cfe8da}.dk-preview{background:var(--dk-bg);color:var(--dk-ink);border:1px solid var(--line)}.dk-stage{min-height:min(62vh,560px);display:flex;font-size:18px}.dk-player:fullscreen{border:0;border-radius:0;display:flex;flex-direction:column}.dk-player:fullscreen .dk-stage{flex:1;min-height:0;font-size:26px}.dk-slide{flex:1;min-width:0;box-sizing:border-box;padding:4% 6%;display:flex;flex-direction:column;gap:.9em;overflow-y:auto;animation:lf-sheet .28s ease-out backwards}.dk-h{margin:0;font-family:"LF Serif",Georgia,serif;font-weight:500;font-size:1.9em;line-height:1.15;color:var(--dk-ink)}.dk-cover{margin:auto 0}.dk-cover-title{margin:0;font-family:"LF Serif",Georgia,serif;font-weight:500;font-size:3em;line-height:1.05;color:var(--dk-ink)}.dk-cover-title:after{content:"";display:block;width:3.2em;height:.12em;margin-top:.35em;border-radius:1em;background:var(--dk-acc)}.dk-cover-sub{margin:.7em 0 0;font-size:1.25em;color:var(--dk-mute)}.dk-text{font-size:1.1em;line-height:1.55;max-width:46em}.dk-text p{margin:0 0 .7em}.dk-text ul{margin:0 0 .7em;padding-left:1.2em}.dk-slide b{color:var(--dk-acc);font-weight:600}.dk-figure{margin:0;display:grid;gap:.6em;justify-items:center;flex:1;min-height:0}.dk-figure img{max-width:100%;max-height:46vh;object-fit:contain;border-radius:8px}.dk-player:fullscreen .dk-figure img{max-height:64vh}.dk-figure figcaption{font-size:1.15em;color:var(--dk-mute);text-align:center}.dk-img-empty{flex:1;min-height:5em;display:grid;place-items:center;border:2px dashed var(--dk-line);border-radius:10px;color:var(--dk-mute)}.dk-words{display:grid;grid-template-columns:repeat(auto-fill,minmax(12em,1fr));gap:.7em}.dk-word{position:relative}.dk-word-face{width:100%;min-height:5.2em;display:grid;align-content:center;gap:.25em;padding:.8em 2.4em .8em 1em;text-align:left;border:1px solid var(--dk-line);border-radius:10px;background:var(--dk-card);color:var(--dk-ink);font:inherit;cursor:pointer;transition:border-color .15s,transform .15s}.dk-word-face:hover,.dk-word.open .dk-word-face{border-color:var(--dk-acc)}.dk-word-term{font-weight:600;font-size:1.15em}.dk-word-tr{color:var(--dk-acc);animation:lf-pop .2s ease-out backwards}.dk-word-ex{font-size:.85em;color:var(--dk-mute);font-style:italic}.dk-word-hint{font-size:.72em;color:var(--dk-mute)}.dk-word-say{position:absolute;right:.4em;top:.4em;color:var(--dk-ink)}.dk-list{margin:0;padding-left:1.4em;display:grid;gap:.6em;font-size:1.2em;line-height:1.4}.dk-list li::marker{color:var(--dk-acc);font-weight:600}.dk-formula{font-size:1.3em;padding:.7em 1em;border-left:4px solid var(--dk-acc);background:var(--dk-card);border-radius:0 10px 10px 0}.dk-examples{margin:0;padding:0;list-style:none;display:grid;gap:.5em;font-size:1.15em}.dk-examples li{padding-left:1.2em;position:relative}.dk-examples li:before{content:"→";position:absolute;left:0;color:var(--dk-acc)}.dk-check{margin:0;padding:0;list-style:none;display:grid;gap:.6em;font-size:1.2em}.dk-check li{display:flex;gap:.6em;align-items:flex-start}.dk-check svg{color:var(--dk-acc);flex:none;margin-top:.15em}.dk-homework{margin-top:auto;padding:.8em 1em;border:1px dashed var(--dk-acc);border-radius:10px;font-size:1.05em}.dk-video{position:relative;width:min(100%,52em);aspect-ratio:16 / 9;align-self:center}.dk-video iframe{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border:0;border-radius:10px}.dk-game{font-size:16px;background:var(--surface);color:var(--ink);border-radius:10px;padding:14px}.dk-timer{display:flex;align-items:center;gap:12px;margin-top:auto}.dk-timer .num{font-family:"LF Serif",Georgia,serif;font-size:2em;color:var(--dk-acc);min-width:3.2em}.dk-timer.done .num{animation:lf-stamp .4s ease-out}.dk-bar{display:flex;align-items:center;gap:10px;padding:8px 12px;border-top:1px solid var(--dk-line);background:var(--dk-card);color:var(--dk-ink)}.dk-bar .icon-btn{color:var(--dk-ink)}.dk-bar .muted{color:var(--dk-mute);white-space:nowrap}.dk-next svg{transform:scaleX(-1)}.dk-dots{flex:1;display:flex;gap:4px;align-items:center;min-width:0;overflow:hidden}.dk-dots button{flex:1;max-width:40px;height:6px;padding:0;border:0;border-radius:3px;background:var(--dk-line);cursor:pointer}.dk-dots button.past{background:color-mix(in srgb,var(--dk-acc) 45%,var(--dk-line))}.dk-dots button.on{background:var(--dk-acc)}.dk-notes{padding:10px 14px;border-top:1px dashed var(--dk-line);background:color-mix(in srgb,var(--dk-acc) 8%,var(--dk-card));color:var(--dk-ink);font-size:14px}@media (max-width: 900px){.dk-editor{grid-template-columns:1fr}.dk-rail{position:static}.dk-thumbs{max-height:none;grid-auto-flow:column;grid-auto-columns:180px;overflow-x:auto}.dk-word-row{grid-template-columns:1fr 1fr auto}.dk-word-row input:nth-child(3){grid-column:1 / 3}.dk-stage{min-height:360px;font-size:15px}.dk-bar .muted{display:none}}.bd-wrap{container-type:inline-size;width:100%}.bd-canvas{position:relative;width:100%;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff;color:#1f1d1a;-webkit-user-select:none;user-select:none;touch-action:none}.bd-play .bd-canvas{touch-action:pan-y}.paper-paper{background:#fffdf8}.paper-lines{background:#fff repeating-linear-gradient(transparent 0 calc(4cqw - 1px),#dfe7f1 calc(4cqw - 1px),#dfe7f1 4cqw)}.paper-grid{background-color:#fff;background-image:linear-gradient(#e3e9f1 1px,transparent 1px),linear-gradient(90deg,#e3e9f1 1px,transparent 1px);background-size:2.5cqw 2.5cqw}.paper-dark{background:#22302a;color:#f2f5ef}.bd-bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.bd-el{position:absolute;box-sizing:border-box;display:flex;align-items:center;line-height:1.25;border-radius:.6cqw}.bd-text{width:100%;padding:0 .4cqw;overflow:hidden}.bd-text b,.bd-k-check b{color:#b3261e}.c-ink{color:#1f1d1a}.c-pen{color:#b3261e}.c-blue{color:#2448d8}.c-green{color:#1f7a45}.c-white{color:#fff}.bg-white{background:#fff}.bg-yellow{background:#fff2b8}.bg-pink{background:#ffdde6}.bg-blue{background:#dbe8ff}.bg-green{background:#d8f2e2}.bg-dark{background:#1f1d1a;color:#fff}.bd-k-image img{width:100%;height:100%;object-fit:contain;pointer-events:none}.bd-audio{width:100%;height:100%;border:0;border-radius:50%;background:#b3261e;color:#fff;display:grid;place-items:center;cursor:pointer}.bd-audio svg{width:50%;height:50%}.bd-input,.bd-select{width:100%;height:100%;box-sizing:border-box;border:0;border-bottom:2px solid #2448d8;background:#ffffffd9;color:#10204a;font:inherit;padding:0 .6cqw;border-radius:.4cqw .4cqw 0 0;outline:none}.bd-input:focus,.bd-select:focus{background:#fff;box-shadow:0 0 0 2px #2448d840}.bd-k-check{gap:.8cqw;cursor:pointer}.bd-k-check input{width:2.4cqw;height:2.4cqw;min-width:14px;min-height:14px;accent-color:#b3261e;flex:none;margin:0}.bd-k-zone{border:2px dashed #9aa7bd;background:#ffffff8c;flex-direction:column;align-items:stretch;padding:.6cqw;gap:.5cqw}.bd-k-zone.armed{border-color:#b3261e;background:#b3261e0f;cursor:pointer}.bd-zone-label{font-size:.85em;font-weight:600;color:#4a5468;text-align:center}.bd-zone-items{flex:1;display:flex;flex-wrap:wrap;gap:.6cqw;align-content:flex-start;justify-content:center}.bd-chip-slot{display:contents}.bd-chip-btn{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;padding:.5cqw 1.2cqw;min-height:3.2cqw;border:2px solid #1f1d1a;border-radius:.8cqw;background:#fff;color:#1f1d1a;font:inherit;font-weight:600;cursor:grab;touch-action:none;box-shadow:0 2px #0000001f}.bd-chip-slot>.bd-chip-btn{position:absolute}.bd-chip-btn.picked{border-color:#b3261e;box-shadow:0 0 0 3px #b3261e40}.bd-chip-btn.dragging{cursor:grabbing;z-index:50;box-shadow:0 10px 24px #0000002e;position:relative}.bd-chip-slot>.bd-chip-btn.dragging{position:absolute}.bd-chip-btn.ok{border-color:#1f7a45;background:#e3f5ea}.bd-chip-btn.bad{border-color:#b3261e;background:#fde7e4}.bd-el.ok .bd-input,.bd-el.ok .bd-select{border-bottom-color:#1f7a45;background:#e3f5ea}.bd-el.bad .bd-input,.bd-el.bad .bd-select{border-bottom-color:#b3261e;background:#fde7e4}.bd-k-check.ok{outline:2px solid #1f7a45}.bd-k-check.bad{outline:2px solid #b3261e}.bd-right{position:absolute;left:0;top:100%;margin-top:2px;padding:1px 6px;border-radius:4px;background:#1f7a45;color:#fff;font-size:12px;white-space:nowrap;z-index:5}.bd-tip{margin:6px 0}.bd-tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.bd-tool{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--ink);font:inherit;font-size:14px;cursor:pointer}.bd-tool:hover{border-color:var(--ink)}.bd-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:18px;align-items:start}.bd-props{position:sticky;top:12px;border:1px solid var(--line);border-radius:10px;padding:14px;background:var(--surface)}.bd-legend{display:grid;gap:6px}.bd-canvas.editing .bd-el{cursor:move;outline:1px dashed rgba(36,72,216,.35)}.bd-canvas.editing .bd-el.sel{outline:2px solid #2448d8;z-index:40}.bd-canvas.editing .bd-input,.bd-canvas.editing .bd-select{pointer-events:none}.bd-edit.bd-k-input,.bd-edit.bd-k-select{border-bottom:2px solid #2448d8;background:#dbe8ff99;padding:0 .6cqw}.bd-edit.bd-k-chip{justify-content:flex-start}.bd-edit .bd-chip-btn.static{width:100%;height:100%;cursor:move;position:relative}.bd-chip-to{position:absolute;left:0;top:100%;font-style:normal;font-size:11px;font-weight:500;color:#2448d8;white-space:nowrap}.bd-ph{color:#4a5468;font-size:.9em;padding:0 .4cqw;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.bd-edit.bd-k-image{border:1px dashed #9aa7bd;justify-content:center}.bd-handle{position:absolute;right:-6px;bottom:-6px;width:14px;height:14px;border-radius:3px;background:#2448d8;border:2px solid #fff;cursor:nwse-resize}.dk-game .bd-wrap{max-width:100%}@media (max-width: 1000px){.bd-layout{grid-template-columns:1fr}.bd-props{position:static}}.type-ill s{text-decoration:line-through}.qk-split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px;align-items:start}.qk-live{position:sticky;top:12px}.qk-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.qk-tpl{display:grid;gap:2px;text-align:left;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;cursor:pointer}.qk-tpl:hover{border-color:var(--ink)}.qk-tpl.on{border-color:var(--pen, #b3261e);box-shadow:inset 0 0 0 1px var(--pen, #b3261e)}.qk-gallery.compact .type-ill{margin-bottom:4px}.qk-rows{display:grid;gap:6px}.qk-row{display:grid;grid-template-columns:24px 1fr 1fr 32px;gap:6px;align-items:center}.qk-rows.quiz .qk-row{grid-template-columns:24px 1fr 1fr 1fr 32px}.qk-head{align-items:end}.qk-n{color:var(--muted);font-size:13px;text-align:right}.qk-paste{margin-bottom:12px;padding:12px;border:1px dashed var(--line);border-radius:10px}.qk{display:grid;gap:12px}.qk-top{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:24px}.qk-dots{display:flex;flex-wrap:wrap;gap:4px}.qk-dots span{width:10px;height:10px;border-radius:50%;background:var(--line)}.qk-dots span.on{background:var(--ink)}.qk-dots span.ok{background:#1f7a45}.qk-dots span.bad{background:#b3261e}.qk-timer{font-family:"LF Serif",Georgia,serif;font-size:22px}.qk-timer.low{color:#b3261e;animation:lf-pop .5s ease-in-out infinite alternate}.qk-card{padding:22px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface);animation:lf-sheet .25s ease-out backwards}.qk-end{text-align:center}.qk-big{font-family:"LF Serif",Georgia,serif;font-size:40px;margin-bottom:4px}.qk-q{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;text-align:center;font-family:"LF Serif",Georgia,serif;font-size:28px;line-height:1.2;margin-bottom:18px}.qk-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}.qk-tf{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:14px}.qk-opt{display:flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:8px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font:inherit;font-size:17px;font-weight:500;cursor:pointer;transition:transform .12s,border-color .12s}.qk-opt:hover:not(:disabled){border-color:var(--ink);transform:translateY(-1px)}.qk-opt:disabled{cursor:default}.qk-opt.ok{border-color:#1f7a45;background:#e3f5ea;color:#10291d}.qk-opt.bad{border-color:#b3261e;background:#fde7e4;color:#5c1410;animation:lf-shake .3s}.qk-opt.dim{opacity:.45}.qk-letter{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:1px solid var(--line);font-size:12px;flex:none}.qk-input{max-width:320px;font-size:18px;text-align:center}.qk-input.ok{border-color:#1f7a45;background:#e3f5ea}.qk-input.bad{border-color:#b3261e;background:#fde7e4}.qk-correct{text-align:center;margin-top:10px;color:var(--muted)}.qk-correct b{color:#1f7a45}.qk-slots{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-bottom:14px}.qk-slot{width:36px;height:44px;display:grid;place-items:center;border-bottom:2px solid var(--ink);font-size:24px;font-weight:600;text-transform:none}.qk-slots.ok .qk-slot{border-color:#1f7a45;color:#1f7a45}.qk-slots.bad .qk-slot{border-color:#b3261e;color:#b3261e}.qk-letters{display:flex;justify-content:center;flex-wrap:wrap;gap:6px;margin-bottom:8px}.qk-tile{width:42px;height:42px;border:1px solid var(--ink);border-radius:8px;background:var(--bg);color:var(--ink);font:inherit;font-size:20px;font-weight:600;cursor:pointer;box-shadow:0 2px 0 var(--line)}.qk-tile:disabled{opacity:.2;cursor:default}.qk-flip{width:100%;min-height:170px;display:grid;place-items:center;align-content:center;gap:10px;border:1px solid var(--line);border-radius:12px;background:var(--bg);color:var(--ink);font:inherit;cursor:pointer}.qk-flip-q{font-family:"LF Serif",Georgia,serif;font-size:30px}.qk-flip-a{font-size:22px;color:var(--pen, #b3261e);animation:lf-pop .2s ease-out backwards}.qk-memory{display:grid;gap:8px}.qk-mem{aspect-ratio:4 / 3;border:0;border-radius:10px;background:var(--ink);color:var(--bg);font:inherit;font-size:16px;font-weight:500;padding:6px;cursor:pointer;transition:transform .25s,background .2s;overflow-wrap:anywhere}.qk-mem.open{background:var(--surface);color:var(--ink);border:1px solid var(--line);transform:rotateY(0)}.qk-mem.found{background:#e3f5ea;border-color:#1f7a45;color:#10291d}.qk-mem.bad{background:#fde7e4;border-color:#b3261e}.qk-review{margin:0;padding:0;list-style:none;display:grid;gap:4px;font-size:14px}.qk-review li{display:flex;gap:10px;padding:6px 10px;border-radius:6px;background:#e3f5ea}.qk-review li.bad{background:#fde7e4}.qk-review li span{flex:1}.qk-review s{color:#b3261e}.qk-say{color:var(--muted)}@keyframes lf-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (max-width: 1000px){.qk-split{grid-template-columns:1fr}.qk-live{position:static}}@media (max-width: 560px){.qk-opts{grid-template-columns:1fr}.qk-rows.quiz .qk-row{grid-template-columns:24px 1fr 1fr 32px}.qk-rows.quiz .qk-row input:nth-of-type(3){grid-column:2 / 4}.qk-q{font-size:22px}}@media (prefers-reduced-motion: reduce){.qk-timer.low,.qk-opt.bad{animation:none}}
