:root{--adm-surface:var(--surface,var(--card,#fff));--adm-line:var(--line,var(--border,#d9dee2));--adm-muted:var(--muted,#667);--adm-ok:var(--ok,#15803d);--adm-due:var(--warn,var(--soon,#b45309));--adm-accent:var(--accent,var(--primary,#2563eb))}.adm-login{max-width:26rem;margin:3rem auto;padding:0 1rem}.adm-layout{grid-template-columns:15rem 1fr;gap:1.5rem;max-width:72rem;margin:0 auto;padding:1rem;display:grid}.adm-main{min-width:0}.adm-nav{flex-direction:column;align-self:start;gap:.75rem;display:flex;position:sticky;top:1rem}.adm-nav-head{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.adm-nav-toggle{display:none}.adm-nav-groups{flex-direction:column;gap:.75rem;display:flex}.adm-nav-group{flex-direction:column;gap:.15rem;display:flex}.adm-nav-title{text-transform:uppercase;letter-spacing:.06em;color:var(--adm-muted);font-size:.75rem}.adm-nav-group a{color:inherit;border-radius:.4rem;padding:.35rem .5rem;text-decoration:none}.adm-nav-group a.active{background:var(--adm-surface);box-shadow:inset 3px 0 0 var(--adm-accent);font-weight:600}@media (width<=760px){.adm-layout{grid-template-columns:1fr}.adm-nav{position:static}.adm-nav-toggle{display:inline-flex}.adm-nav:not(.open) .adm-nav-groups{display:none}}.adm-between{flex-wrap:wrap;justify-content:space-between;align-items:flex-start}.adm-wrap{flex-wrap:wrap;align-items:center}.adm-grow{flex:14rem;min-width:0}.adm-done{opacity:.6}.adm-pre{white-space:pre-wrap;font:inherit;margin:0}.adm-details-body{margin-top:.75rem}.adm-mail-body{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}.adm-badge{border:1px solid var(--adm-line);border-radius:999px;padding:.05rem .5rem;font-size:.8rem;display:inline-block}.adm-badge.ok{color:var(--adm-ok);border-color:currentColor}.adm-badge.due{color:var(--adm-due);border-color:currentColor}.adm-table-wrap{overflow-x:auto}.adm-table{border-collapse:collapse;width:100%;font-size:.9rem}.adm-table th,.adm-table td{text-align:left;border-bottom:1px solid var(--adm-line);vertical-align:top;padding:.4rem .5rem}.adm-table th{color:var(--adm-muted);font-weight:600}.adm-images{flex-wrap:wrap;gap:.5rem;display:flex}.adm-images img{border:1px solid var(--adm-line);border-radius:.4rem;max-height:10rem}.adm-context div{gap:.5rem;display:flex}.adm-context dt{color:var(--adm-muted);min-width:9rem}.adm-context dd{overflow-wrap:anywhere;margin:0}.adm-mail-log{margin:0;padding:0;list-style:none}.adm-mail-log li{border-bottom:1px solid var(--adm-line);flex-direction:column;gap:.1rem;padding-bottom:.4rem;display:flex}.adm-mail-log li.failed strong{color:var(--bad,var(--error,#b42318))}.report-backdrop{z-index:90;background:color-mix(in srgb, var(--text,#000) 35%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.report-head{justify-content:space-between;align-items:center}.report-body{margin-top:.75rem}.report-sheet textarea,.report-body textarea{font:inherit;width:100%}.report-kinds{flex-wrap:wrap;gap:.5rem;display:flex}:root,[data-theme=bonbon]{--bg-base:#fff0f6;--bg-gradient:linear-gradient(160deg, #fff0f6 0%, #f5ecff 45%, #e6f4ff 100%);--card:#fff;--text:#3b2548;--muted:#8d7a9c;--placeholder:#b9a8c6;--border:#eadff2;--soft:#f8f1fd;--focus:#d9b8ff;--primary:#e0457b;--primary-gradient:linear-gradient(135deg, #ff6fa8 0%, #b06bff 100%);--primary-text:#fff;--primary-shadow:0 6px 16px #e0457b4d;--accent-soft:#fff3f8;--accent-border:#ffc2da;--tag-bg:#efe6ff;--tag-text:#7c4ddb;--due-bg:#ffe1ec;--due-text:#d6336c;--bar-bg:#ffffffd1;--bar-shadow:0 -4px 20px #b06bff1f;--track:#ffffffb3;--done-gradient:linear-gradient(135deg, #5eead4, #22c55e);--ok:#0f9f6e;--ok-bg:#dcfaec;--ok-border:#7ee2b8;--bad:#e5364f;--bad-bg:#ffe4ea;--bad-border:#ffb3c1;--warn:#b45309;--warn-bg:#fff3d6;--p1:#ff7a9a;--p2:#ffa55c;--p3:#ffd43b;--p4:#9be15d;--p5:#3ed6a4;--p6:#8b7bff;--p7:#5f6ee8;--p8:#3f4fc2;--radius:22px;--shadow:0 6px 24px #b06bff1f, 0 1px 3px #e0457b14;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}[data-theme=ozean]{--bg-base:#e8fbff;--bg-gradient:linear-gradient(160deg, #e6fbff 0%, #e8f3ff 50%, #eafcf5 100%);--text:#0f2c3f;--muted:#5b7a8c;--placeholder:#9fb6c3;--border:#d6ebf2;--soft:#eef8fb;--focus:#8fdcf0;--primary:#0e8fb5;--primary-gradient:linear-gradient(135deg, #22d3ee 0%, #3b82f6 100%);--primary-shadow:0 6px 16px #0e8fb54d;--accent-soft:#e6f9fc;--accent-border:#9be7f5;--tag-bg:#dff1ff;--tag-text:#1d6fa5;--due-bg:#ffe8e0;--due-text:#d0512a;--bar-shadow:0 -4px 20px #3b82f61f;--shadow:0 6px 24px #3b82f61f, 0 1px 3px #0e8fb514}[data-theme=sonne]{--bg-base:#fff8e6;--bg-gradient:linear-gradient(160deg, #fff8e1 0%, #ffefe0 50%, #fff3f3 100%);--text:#4a2c17;--muted:#9a7a62;--placeholder:#cdb39e;--border:#f5e2cc;--soft:#fff4e5;--focus:#ffc98a;--primary:#e8590c;--primary-gradient:linear-gradient(135deg, #ffb020 0%, #ff6b6b 100%);--primary-shadow:0 6px 16px #e8590c47;--accent-soft:#fff2e0;--accent-border:#ffd19a;--tag-bg:#ffecd1;--tag-text:#b4530c;--due-bg:#ffe1e1;--due-text:#d43b3b;--bar-shadow:0 -4px 20px #ff8c3224;--shadow:0 6px 24px #ff8c3221, 0 1px 3px #e8590c14}[data-theme=wald]{--bg-base:#effbf1;--bg-gradient:linear-gradient(160deg, #effbf1 0%, #f3fbe8 50%, #e9f7f4 100%);--text:#1f3a2b;--muted:#6a8a77;--placeholder:#a8c2b1;--border:#d9eedf;--soft:#eefaf1;--focus:#9be3b5;--primary:#15924a;--primary-gradient:linear-gradient(135deg, #4ade80 0%, #0ea5a4 100%);--primary-shadow:0 6px 16px #15924a47;--accent-soft:#eafaef;--accent-border:#a9e8bf;--tag-bg:#e2f6e8;--tag-text:#1d7a45;--due-bg:#fff0dd;--due-text:#c2410c;--bar-shadow:0 -4px 20px #15924a1f;--shadow:0 6px 24px #15924a1c, 0 1px 3px #15924a12}[data-theme=latte]{--bg-base:#faf3e8;--bg-gradient:linear-gradient(160deg, #fbf5ec 0%, #f6ecdd 55%, #f3e6d6 100%);--card:#fffcf7;--text:#3e2c1e;--muted:#8c7461;--placeholder:#c2ad98;--border:#eddfcb;--soft:#f7eee1;--focus:#e6bf8a;--primary:#a45c1f;--primary-gradient:linear-gradient(135deg, #cf914a 0%, #a8612a 100%);--primary-shadow:0 6px 16px #a45c1f42;--accent-soft:#fbf1e3;--accent-border:#e8c9a0;--tag-bg:#f3e3cc;--tag-text:#8a4f1c;--due-bg:#f9e0d3;--due-text:#b4461f;--bar-bg:#fffbf4d9;--bar-shadow:0 -4px 20px #8c5a281f;--p1:#e8927c;--p2:#eab06a;--p3:#e9cf6f;--p4:#b5c97a;--p5:#7fbfa4;--p6:#9c86c9;--p7:#7b73b8;--p8:#5d5a9c;--shadow:0 6px 24px #8c5a281c, 0 1px 3px #78502814}[data-theme=rose]{--bg-base:#f8efe9;--bg-gradient:linear-gradient(160deg, #faf2ec 0%, #f6e9e6 55%, #f1e4ea 100%);--card:#fffbf9;--text:#452a33;--muted:#92737d;--placeholder:#c9aeb6;--border:#eedcdc;--soft:#f8ecea;--focus:#e3aebf;--primary:#a8466a;--primary-gradient:linear-gradient(135deg, #d98ba0 0%, #9d6a9c 100%);--primary-shadow:0 6px 16px #a8466a3d;--accent-soft:#fbeff0;--accent-border:#ecc2cf;--tag-bg:#f1e2ea;--tag-text:#87456b;--due-bg:#fbe0e3;--due-text:#b8384f;--bar-bg:#fffaf8d9;--bar-shadow:0 -4px 20px #a05a6e1f;--p1:#e8909f;--p2:#e8ad8c;--p3:#e6cf8e;--p4:#aecb95;--p5:#86c1b3;--p6:#a58cc4;--p7:#8577b6;--p8:#665e99;--shadow:0 6px 24px #a05a6e1c, 0 1px 3px #8c465f14}[data-theme=nacht]{--bg-base:#1b1033;--bg-gradient:linear-gradient(160deg, #1f1238 0%, #1a1a44 55%, #0f2140 100%);--card:#2a1d4a;--text:#f5eefe;--muted:#b9a8d8;--placeholder:#8a7aa8;--border:#3f2f66;--soft:#362659;--focus:#b06bff;--primary:#ff7fb2;--primary-gradient:linear-gradient(135deg, #ff6fa8 0%, #9b6bff 100%);--primary-text:#fff;--primary-shadow:0 6px 18px #ff6fa859;--accent-soft:#3a2560;--accent-border:#7a4fc4;--tag-bg:#43306f;--tag-text:#d7c2ff;--due-bg:#5a2345;--due-text:#ffb3cf;--bar-bg:#1f1238d9;--bar-shadow:0 -4px 20px #00000059;--track:#ffffff1f;--ok:#6ee7b7;--ok-bg:#173d33;--ok-border:#2f8a6b;--bad:#ff8fa3;--bad-bg:#4a1d2c;--bad-border:#a3405a;--warn:#fcd34d;--warn-bg:#45350f;--shadow:0 8px 28px #00000059;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--bg-base)}body{background:var(--bg-gradient) fixed;min-height:100vh;color:var(--text);-webkit-tap-highlight-color:transparent;margin:0;font:17px/1.45 ui-rounded,SF Pro Rounded,Nunito,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}h1,h2{margin:0;font-weight:800;line-height:1.2}h1{font-size:1.7rem}h2{font-size:1.15rem}a{color:var(--primary)}code{font-size:.85em}.page{max-width:640px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;gap:16px;margin:0 auto;display:flex}.page.narrow{max-width:480px}.page.wide{max-width:1100px}.page.center,.center{text-align:center;align-items:center}.page.with-actionbar{padding-bottom:calc(env(safe-area-inset-bottom) + 100px)}.brand{text-align:center;background:var(--primary-gradient);color:#0000;-webkit-background-clip:text;background-clip:text;margin-top:8vh;font-size:2.6rem}.brand-sub{text-align:center;color:var(--muted);margin:-8px 0 8px}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--bad);margin:0}.warn-text{color:var(--warn);margin:0}.success{color:var(--ok);margin:0}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}label.row:has(>input[type=checkbox]){flex-wrap:nowrap;align-items:flex-start}.row.between{justify-content:space-between}.stack{flex-direction:column;gap:12px;display:flex}.topbar{justify-content:space-between;align-items:center;gap:8px;display:flex}.footer{text-align:center;margin-top:24px;font-size:.9rem}.card{background:var(--card);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:18px;display:flex}input,select,textarea{font:inherit;color:var(--text);background:var(--soft);border:2px solid #0000;border-radius:14px;width:100%;padding:11px 14px;font-size:17px;transition:border-color .15s,background .15s}input::placeholder,textarea::placeholder{color:var(--placeholder)}input[type=checkbox],input[type=radio]{width:22px;height:22px;accent-color:var(--primary);flex-shrink:0;margin:0;padding:0}label.choice{cursor:pointer;align-items:flex-start;gap:10px;display:flex}label.choice input{margin-top:1px}input:focus,select:focus,textarea:focus{border-color:var(--focus);background:var(--card);outline:none}.update-banner{z-index:1100;padding:10px 16px;padding-top:max(10px, env(safe-area-inset-top));text-align:center;background:var(--tag-bg);color:var(--tag-text);font-size:.95rem;font-weight:600;position:sticky;top:0;box-shadow:0 2px 10px #00000014}.update-banner.down{background:var(--accent-soft);color:var(--warn)}.update-toast{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:1100;width:max-content;max-width:calc(100vw - 32px);font:inherit;background:var(--card);color:var(--text);box-shadow:var(--primary-shadow);cursor:pointer;border:none;border-radius:999px;padding:12px 18px;font-weight:700;animation:.3s ease-out update-toast-in;position:fixed;transform:translate(-50%)}@keyframes update-toast-in{0%{opacity:0;transform:translate(-50%,12px)}}.password-field{width:100%;display:block;position:relative}.password-field input{padding-right:52px}.password-eye{width:48px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:0 14px 14px 0;justify-content:center;align-items:center;display:flex;position:absolute;top:0;bottom:0;right:0}.password-eye[aria-pressed=true]{color:var(--primary)}.password-eye:disabled{opacity:.4;cursor:default}.btn{font:inherit;background:var(--soft);color:var(--text);cursor:pointer;text-align:center;border:none;border-radius:999px;padding:13px 20px;font-weight:700;text-decoration:none;transition:transform .1s}.btn:active:not(:disabled){transform:scale(.97)}.btn.primary{background:var(--primary-gradient);color:var(--primary-text);box-shadow:var(--primary-shadow)}.btn.danger{background:var(--bad-bg);color:var(--bad)}.btn.link{color:var(--primary);background:0 0;padding:8px;font-weight:600}.btn.small{padding:6px 12px;font-size:.85rem}.btn:disabled{opacity:.4;cursor:default;box-shadow:none}.button-row{justify-content:flex-end;gap:12px;display:flex}.button-row .btn{flex:1}.profile-list{flex-direction:column;gap:12px;display:flex}.profile-button{font:inherit;border-radius:var(--radius);background:var(--card);color:var(--text);cursor:pointer;text-align:left;box-shadow:var(--shadow);border:none;align-items:center;gap:14px;padding:14px 16px;font-size:1.2rem;font-weight:700;display:flex}.avatar{color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:46px;height:46px;font-weight:800;display:grid}.avatar-0{background:linear-gradient(135deg,#ff8fb8,#ff5c95)}.avatar-1{background:linear-gradient(135deg,#c39bff,#8b5cf6)}.avatar-2{background:linear-gradient(135deg,#6fd6ff,#3b9cff)}.avatar-3{background:linear-gradient(135deg,#ffc46b,#ff8a3d)}.avatar-4{background:linear-gradient(135deg,#6ee7b7,#10b981)}.avatar-5{background:linear-gradient(135deg,#ff9a8b,#e5484d)}.avatar-6{background:linear-gradient(135deg,#ffe07a,#f5b400)}.avatar-7{background:linear-gradient(135deg,#7ee8e0,#0ea5a5)}.avatar-8{background:linear-gradient(135deg,#a5b4fc,#4f46e5)}.avatar-9{background:linear-gradient(135deg,#94a3b8,#475569)}.hello{font-size:1.5rem}.progress{background:var(--soft);border-radius:8px;height:16px;overflow:hidden}.progress span{background:var(--primary-gradient);border-radius:8px;height:100%;transition:width .4s;display:block}.progress span.done{background:var(--done-gradient)}.stat-tiles{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.stat-tile{background:var(--soft);border-radius:16px;flex-direction:column;padding:10px 12px;display:flex}.stat-tile strong{font-size:1.5rem;line-height:1.1}.stat-tile span{color:var(--muted);font-size:.85rem}.cheer{color:var(--primary);margin:0;font-weight:600}.phasebar{background:var(--soft);border-radius:6px;gap:2px;height:12px;display:flex;overflow:hidden}.phase{min-width:4px;display:block}.phase-1{background:var(--p1)}.phase-2{background:var(--p2)}.phase-3{background:var(--p3)}.phase-4{background:var(--p4)}.phase-5{background:var(--p5)}.phase-6{background:var(--p6)}.phase-7{background:var(--p7)}.phase-8{background:var(--p8)}.phase-new{background:repeating-linear-gradient(135deg, var(--border) 0 4px, var(--soft) 4px 8px)}.dot{border-radius:50%;width:12px;height:12px;display:inline-block}.lesson-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.lesson{cursor:pointer;border:2px solid #0000;border-radius:16px;grid-template-columns:auto 1fr auto;grid-template-areas:"check title meta""check bar bar";align-items:center;gap:6px 12px;padding:10px 12px;transition:background .15s,border-color .15s;display:grid}.lesson.selected{background:var(--accent-soft);border-color:var(--accent-border)}.lesson input{grid-area:check}.lesson-title{grid-area:title;font-weight:700}.lesson-meta{grid-area:meta}.lesson-bar{grid-area:bar}.badge{white-space:nowrap;border-radius:999px;padding:3px 10px;font-size:.78rem;font-weight:700}.badge.due{background:var(--due-bg);color:var(--due-text)}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.new{background:var(--tag-bg);color:var(--tag-text)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.actionbar{padding:12px 16px calc(env(safe-area-inset-bottom) + 12px);background:var(--bar-bg);-webkit-backdrop-filter:blur(16px);box-shadow:var(--bar-shadow);justify-content:center;gap:10px;display:flex;position:fixed;bottom:0;left:0;right:0}.actionbar .btn{flex:1;max-width:300px;padding-inline:10px;line-height:1.2}.btn.is-empty{opacity:.4;box-shadow:none}.actionbar-hint{background:var(--card);max-width:560px;color:var(--text);box-shadow:var(--shadow);text-align:center;border-radius:14px;margin:0 auto;padding:10px 14px;font-size:.9rem;position:absolute;bottom:calc(100% + 8px);left:16px;right:16px}.lemma-head,.result-head{text-align:center;flex-direction:column;gap:4px;display:flex}.lemma{color:var(--text);font-size:2.2rem;font-weight:800}.pos{color:var(--tag-text);background:var(--tag-bg);text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-self:center;padding:2px 12px;font-size:.8rem;font-weight:700}.field{flex-direction:column;gap:4px;display:flex}.field-label{color:var(--muted);font-size:.85rem;font-weight:600}.toggle-group{gap:8px;display:flex}.toggle{font:inherit;border:2px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;border-radius:14px;flex:1;padding:11px;font-weight:700}.toggle.on{background:var(--primary-gradient);color:#fff;border-color:#0000}.study-progress{flex-direction:column;flex:1;gap:4px;display:flex}.study-progress .progress{background:var(--track);height:10px}.result.is-correct{box-shadow:inset 0 0 0 3px var(--ok-border), var(--shadow)}.result.is-wrong{box-shadow:inset 0 0 0 3px var(--bad-border), var(--shadow)}.verdict{font-size:1.2rem;font-weight:800}.is-correct .verdict{color:var(--ok)}.is-wrong .verdict{color:var(--bad)}.result.is-partial{box-shadow:inset 0 0 0 3px var(--warn), var(--shadow)}.is-partial .verdict{color:var(--warn)}.pop{animation:.35s ease-out pop}@keyframes pop{0%{opacity:.6;transform:scale(.96)}60%{transform:scale(1.02)}to{opacity:1;transform:scale(1)}}.result-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.result-list li{border-radius:12px;flex-direction:column;padding:8px 12px;display:flex}.result-list li.ok{background:var(--ok-bg)}.result-list li.bad{background:var(--bad-bg)}.result-list.meanings li{flex-direction:row}.solution{color:var(--ok);margin-left:8px;font-weight:700}del.diff-wrong{color:var(--bad);background:var(--bad-bg);border-radius:4px;text-decoration:line-through;text-decoration-thickness:2px}ins.diff-missing{color:var(--ok);font-weight:800;text-decoration:underline;text-decoration-thickness:2px}.full-solution{border-top:2px dashed var(--border);margin:0;padding-top:10px;font-size:.95rem}.done-emoji{font-size:3.5rem;line-height:1}.admin-layout{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:24px;display:grid}.admin-content{flex-direction:column;gap:16px;min-width:0;display:flex}.admin-nav{position:sticky;top:16px}.admin-nav-toggle{display:none}.admin-nav-groups{flex-direction:column;gap:14px;display:flex}.admin-nav-group{flex-direction:column;gap:2px;display:flex}.admin-nav-title{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:0 12px 4px;font-size:.75rem;font-weight:700}.admin-nav a{color:var(--text);border-radius:12px;align-items:center;gap:8px;padding:8px 12px;font-weight:600;text-decoration:none;display:flex}.admin-nav a:hover{background:var(--soft)}.admin-nav a.active{color:var(--primary-text);background:var(--primary-gradient)}@media (width<=760px){.admin-layout{grid-template-columns:minmax(0,1fr);gap:12px}.admin-nav{position:relative;top:0}.admin-nav-toggle{border:1px solid var(--border);background:var(--card);width:100%;min-height:48px;color:var(--text);font:inherit;cursor:pointer;box-shadow:var(--shadow);border-radius:16px;align-items:center;gap:8px;padding:10px 16px;font-weight:700;display:flex}.admin-nav-toggle .chevron{color:var(--muted);margin-left:auto}.admin-nav-groups{background:var(--card);box-shadow:var(--shadow);border-radius:16px;margin-top:8px;padding:12px;display:none}.admin-nav.open .admin-nav-groups{display:flex}.admin-nav-group{grid-template-columns:1fr 1fr;gap:6px;display:grid}.admin-nav-title{grid-column:1/-1;padding:0 4px}.admin-nav a{background:var(--soft);min-height:44px}}.tabs{gap:6px;display:flex;overflow-x:auto}.tabs a{color:var(--muted);white-space:nowrap;border-radius:999px;padding:8px 16px;font-weight:700;text-decoration:none}.tabs a.active{color:#fff;background:var(--primary-gradient)}.table{border-collapse:collapse;background:var(--card);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);font-size:.95rem;overflow:hidden}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:9px 12px}.table th{color:var(--muted);font-size:.8rem}.table tr.highlight td{background:var(--accent-soft)}.table .actions{flex-wrap:wrap;gap:6px;display:flex}.inline-form{max-width:420px}.editor .grid2,.grid2{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:10px;display:grid}.page.wide select{width:auto;min-width:220px}.theme-list{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;display:grid}.theme-option{font:inherit;cursor:pointer;color:var(--text);background:var(--soft);border:3px solid #0000;border-radius:18px;flex-direction:column;align-items:stretch;gap:8px;padding:10px;font-weight:700;display:flex}.theme-option.on{border-color:var(--primary)}.theme-swatch{border-radius:12px;justify-content:flex-end;align-items:flex-end;height:44px;padding:6px;display:flex}.theme-swatch span{border-radius:50%;width:20px;height:20px}:where(details:not(.course):not(.vocab-folder))>summary{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;margin:-12px -8px;padding:12px 8px 12px 30px;list-style:none;display:block;position:relative}:where(details:not(.course):not(.vocab-folder))>summary::-webkit-details-marker{display:none}:where(details:not(.course):not(.vocab-folder))>summary:before{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);width:7px;height:7px;transition:transform .2s;position:absolute;top:calc(12px + .7em);left:11px;transform:translateY(-50%)rotate(-45deg)}:where(details:not(.course):not(.vocab-folder))[open]>summary:before{transform:translateY(-75%)rotate(45deg)}details>summary:hover{background:var(--soft)}details.course>summary,details.vocab-folder>summary{-webkit-tap-highlight-color:transparent;min-height:44px}details.course>summary{cursor:pointer;justify-content:space-between;align-items:center;gap:8px;list-style:none;display:flex}details.course>summary::-webkit-details-marker{display:none}details.course>summary:after{content:"▾";color:var(--muted);transition:transform .2s}details.course[open]>summary:after{transform:rotate(180deg)}details.course[open]>summary{margin-bottom:8px}.course-summary{flex-direction:column;gap:2px;display:flex}button.stat-tile{font:inherit;color:inherit;text-align:left;cursor:pointer;border:none}button.stat-tile:disabled{cursor:default}button.stat-tile:not(:disabled) span:after{content:" ›";color:var(--primary);font-weight:700}.note{color:var(--muted);font-style:italic}.examples{background:var(--soft);border-radius:12px;margin:0;padding:10px 12px;font-style:italic;list-style:none}.query-actions{gap:10px;display:flex}.query-actions .btn{flex:1}.photo-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;display:grid}.photo-thumb{flex-direction:column;gap:6px;margin:0;display:flex}.photo-thumb img{aspect-ratio:3/4;object-fit:cover;background:var(--soft);border-radius:12px;width:100%}.pi-rows{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.pi-rows li{border-bottom:1px solid var(--soft);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:4px 6px;padding-bottom:8px;display:grid}.pi-rows input{min-width:0;padding:8px 12px}.pi-rows input:first-child{font-weight:700}.pi-rows button{grid-area:1/2/span 3}img.thumb{object-fit:cover;border-radius:8px;width:48px;height:64px}.sync-status{color:var(--muted);margin:0;padding:4px 4px 0;font-size:.85rem}.sync-button-wrap{display:inline-flex;position:relative}.sync-flash{z-index:5;white-space:nowrap;background:var(--card);box-shadow:var(--shadow);border-radius:999px;padding:4px 10px;position:absolute;top:calc(100% + 6px);right:0}.sync-button{background:var(--soft);width:40px;height:40px;color:var(--primary);cursor:pointer;border:none;border-radius:50%;place-items:center;display:grid;position:relative}.sync-button.offline,.sync-button.pending{color:var(--warn)}.sync-button.error{color:var(--bad)}.sync-button.spinning svg{animation:1s linear infinite sync-spin}@keyframes sync-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.sync-button.spinning svg{animation:none}}.sync-badge{text-align:center;background:var(--card);min-width:18px;height:18px;box-shadow:var(--shadow);border-radius:999px;padding:0 4px;font-size:.7rem;font-weight:800;line-height:18px;position:absolute;top:-4px;right:-4px}.sync-badge.count{background:var(--warn);color:#fff}.moved-notice{background:var(--warn-bg);color:var(--text);border-radius:var(--radius);flex-direction:column;gap:8px;margin:12px 16px 0;padding:14px 16px;display:flex}.moved-notice p{margin:0}.moved-notice .btn{align-self:flex-start}.install-card h2{margin:0;font-size:1.1rem}.install-card p{margin:0}.install-guide{width:min(100%,400px);max-height:calc(100vh - 48px);overflow-y:auto}.install-guide h2{margin:0;font-size:1.1rem}.install-guide .segmented{align-self:center}.install-step{text-align:center;justify-items:center;gap:6px;min-height:190px;animation:.25s ease-out install-step-in;display:grid}.install-step p{margin:0}.install-icon{background:color-mix(in srgb, var(--primary) 14%, transparent);width:84px;height:84px;color:var(--primary);border-radius:22px;place-items:center;display:grid}.install-icon svg{width:44px;height:44px}.install-app-icon{border-radius:14px}.install-dots{justify-content:center;gap:6px;display:flex}.install-dots span{background:color-mix(in srgb, var(--muted) 40%, transparent);border-radius:50%;width:8px;height:8px}.install-dots span.on{background:var(--primary)}@keyframes install-step-in{0%{opacity:0;transform:translate(12px)}}@media (prefers-reduced-motion:reduce){.install-step{animation:none}}.sync-status.offline{color:var(--warn)}.sync-status.error{color:var(--bad)}.lesson-meta{gap:4px;display:flex}a.add-lesson{border:2px dashed var(--accent-border);color:var(--text);background:0 0;border-radius:16px;align-items:center;gap:14px;margin-top:4px;padding:12px 14px;text-decoration:none;transition:background .15s;display:flex}a.add-lesson:hover,a.add-lesson:active{background:var(--accent-soft)}a.add-lesson>span:last-child{flex-direction:column;display:flex}.add-lesson-icon{width:46px;height:46px;color:var(--primary-text);background:var(--primary-gradient);box-shadow:var(--primary-shadow);border-radius:14px;flex-shrink:0;place-items:center;display:grid}.inline-form.wide-form{max-width:640px}label.btn{display:inline-block}.vocab-admin{grid-template-columns:minmax(220px,280px) 1fr;align-items:start;gap:20px;display:grid}.lesson-nav{background:var(--card);border-radius:var(--radius);max-height:calc(100vh - 24px);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:12px;display:flex;position:sticky;top:12px;overflow-y:auto}.nav-course>summary{font-weight:700}.nav-course ul{flex-direction:column;gap:2px;margin:4px 0 0;padding:0;list-style:none;display:flex}.nav-lesson{font:inherit;width:100%;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:7px 10px;display:flex}.nav-lesson:hover{background:var(--soft)}.nav-lesson.active{background:var(--primary-gradient);color:var(--primary-text)}.nav-lesson.active .muted{color:inherit}.nav-meta{align-items:center;gap:6px;display:flex}.lesson-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.problem-list{margin:0;padding:0;list-style:none}.problem-list li{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:4px 12px;padding:10px 0;display:grid}.problem-list li:last-child{border-bottom:none}.problem-word{overflow-wrap:anywhere;min-width:0}.problem-count{white-space:nowrap;flex-direction:column;align-items:flex-end;font-weight:700;display:flex}.table tr.clickable{cursor:pointer}.table tr.clickable:hover td{background:var(--soft)}.back-to-list{align-self:flex-start;display:none}@media (width<=860px){.vocab-admin{grid-template-columns:1fr}.lesson-nav{max-height:none;position:static}.vocab-admin.has-selection .lesson-nav{display:none}.back-to-list{display:inline-block}}.password-rules{color:var(--muted);grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:2px 12px;margin:0;padding:0;font-size:.85rem;list-style:none;display:grid}.password-rules li.ok{color:var(--ok);font-weight:600}canvas.confetti{pointer-events:none;z-index:100;width:100vw;height:100vh;position:fixed;inset:0}.celebration-backdrop{z-index:90;background:color-mix(in srgb, var(--text) 35%, transparent);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.celebration{text-align:center;align-items:center;max-width:340px}.celebration-emoji{font-size:4rem;line-height:1}.icon-link{font-size:1.6rem;text-decoration:none}.grow{flex:1;min-width:0}.grow-input{flex:1;width:auto;min-width:0}a.rank-card{color:var(--text);gap:8px;text-decoration:none}.rank-title{align-items:center;gap:10px;display:flex}.rank-badge{width:34px;height:34px;color:var(--primary-text);background:var(--primary-gradient);border-radius:50%;place-items:center;font-weight:800;display:grid}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}@media (width<=520px){.stat-grid>:last-child:nth-child(odd){grid-column:1/-1}}.stat-grid .stat-tile{background:var(--card);box-shadow:var(--shadow)}.jokers{letter-spacing:-2px;font-size:.9rem}.calendar-scroll{overflow-x:auto}.calendar{grid-template-columns:repeat(var(--weeks,21), minmax(0, 1fr));width:100%;max-width:calc(var(--weeks,21) * 19px);grid-template-rows:repeat(7,auto);grid-auto-flow:column;gap:3px;display:grid}.calendar .cal-cell{aspect-ratio:1;border-radius:25%;width:100%;height:auto}.cal-cell{vertical-align:middle;background:var(--soft);cursor:pointer;border:none;border-radius:4px;width:14px;height:14px;padding:0;display:inline-block}.cal-cell.pad{cursor:default;background:0 0}.cal-cell.lvl-1{background:color-mix(in srgb, var(--primary) 25%, var(--soft))}.cal-cell.lvl-2{background:color-mix(in srgb, var(--primary) 50%, var(--soft))}.cal-cell.lvl-3{background:color-mix(in srgb, var(--primary) 78%, var(--soft))}.cal-cell.lvl-4{background:var(--primary)}.cal-cell.bridged{background:repeating-linear-gradient(45deg, var(--soft) 0 3px, var(--muted) 3px 5px)}.cal-cell.sel{outline:2px solid var(--text);outline-offset:1px}.cal-legend{align-items:center;gap:3px;display:inline-flex}.cal-legend .cal-cell{cursor:default}.week-bars{grid-template-columns:repeat(8,1fr);align-items:end;gap:6px;display:grid}.week{flex-direction:column;align-items:center;gap:4px;display:flex}.week-value{color:var(--muted);font-variant-numeric:tabular-nums;font-size:.72rem}.week-track{border-bottom:1px solid var(--border);align-items:flex-end;width:100%;max-width:28px;height:90px;display:flex}.week-bar{background:var(--primary);border-radius:4px 4px 0 0;width:100%}.week-stack{flex-direction:column;justify-content:flex-end;width:100%;height:100%;display:flex}.week-bar.warmup{opacity:.35}.week-value.warmup{opacity:.7;margin-top:-4px}.week-bar.warmup+.week-bar{border-radius:0}.week-label{color:var(--muted);font-size:.7rem}.badge-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.badge-card{text-align:center;background:var(--soft);opacity:.55;filter:grayscale(.9);border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.badge-card.earned{opacity:1;filter:none;background:var(--accent-soft);box-shadow:inset 0 0 0 2px var(--accent-border)}.badge-emoji{font-size:2rem;line-height:1.1}.badge-progress{background:var(--border);border-radius:3px;width:80%;height:6px;overflow:hidden}.badge-progress span{background:var(--primary);height:100%;display:block}.medal-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.medal-list li{align-items:center;gap:10px;display:flex}.medal{text-align:center;width:28px;color:var(--muted);font-size:1.3rem}.ring{--p:0;font-variant-numeric:tabular-nums;background:radial-gradient(closest-side, var(--card) 72%, transparent 73%), conic-gradient(var(--primary) calc(var(--p) * 1%), var(--soft) 0);border-radius:50%;place-items:center;width:34px;height:34px;font-size:.68rem;font-weight:700;display:grid}.leaderboard{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.leaderboard li{font-variant-numeric:tabular-nums;border-radius:12px;align-items:center;gap:10px;padding:6px 8px;display:flex}.leaderboard li.me{background:var(--accent-soft)}.place{text-align:center;width:28px}.avatar-picker{flex-wrap:wrap;gap:6px;display:flex}.avatar-choice{background:var(--soft);width:44px;height:44px;color:var(--text);cursor:pointer;border:2px solid #0000;border-radius:50%;font-size:1.5rem}.avatar-choice.on{border-color:var(--primary);background:var(--accent-soft)}.avatar-color{cursor:pointer;width:36px;height:36px;box-shadow:inset 0 0 0 2px var(--card);border:3px solid #0000;border-radius:50%}.avatar-color.on{border-color:var(--text)}.game-grid{grid-template-columns:1fr 1fr;gap:10px;margin-top:8px;display:grid}.game-tile{background:var(--soft);color:var(--text);border-radius:16px;flex-direction:column;gap:2px;padding:12px;text-decoration:none;display:flex}.game-emoji{font-size:1.8rem}.combo{color:var(--primary);align-self:center;font-size:1.2rem;font-weight:800}.timer{font-variant-numeric:tabular-nums;font-weight:800}.timer.hurry{color:var(--bad)}.warmup-steps{gap:6px;margin:0;padding:0;list-style:none;display:flex}.warmup-steps li{text-align:center;background:var(--soft);color:var(--muted);border-radius:999px;flex:1;padding:6px 4px;font-size:.8rem;font-weight:700}.warmup-steps li.current{background:var(--primary-gradient);color:var(--primary-text)}.warmup-steps li.past{background:var(--ok-bg);color:var(--ok)}.copy-hint{color:var(--text);background:var(--accent-soft);border:1px dashed var(--accent-border);border-radius:10px;padding:6px 10px;font-size:1.1rem;font-weight:700}.field.wrong input,.field.wrong .toggle-group{outline:2px solid var(--bad);outline-offset:2px;border-radius:14px}.field.wrong .field-label{color:var(--bad)}.match-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.match-col{flex-direction:column;gap:8px;display:flex}.match-item{font:inherit;border:2px solid var(--border);background:var(--card);min-height:48px;color:var(--text);cursor:pointer;text-align:left;overflow-wrap:anywhere;border-radius:14px;padding:8px 10px;font-size:.92rem;font-weight:600;transition:opacity .25s,transform .1s}.match-item[lang=la],.match-item[lang=en]{font-weight:700}.match-item.picked{border-color:var(--primary);background:var(--accent-soft)}.match-item.done{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok);opacity:.55;cursor:default}.match-item.miss{border-color:var(--bad);background:var(--bad-bg);animation:.35s shake}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@media (prefers-reduced-motion:reduce){.match-item.miss{animation:none}}.segmented{background:var(--soft);border-radius:999px;flex-wrap:wrap;align-self:flex-start;gap:4px;padding:4px;display:flex}.segmented button{font:inherit;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:999px;padding:8px 14px;font-weight:700}.segmented button.on{background:var(--card);color:var(--primary);box-shadow:var(--shadow)}.wide-form textarea{width:100%;font:inherit;border:2px solid var(--border);background:var(--card);color:var(--text);border-radius:14px;padding:10px 12px;font-size:.9rem}p.warn{color:var(--warn);background:var(--warn-bg);border-radius:12px;margin:0;padding:8px 12px}.import-table{box-shadow:none}.import-table tr.has-issues td{background:var(--bad-bg)}.issues{color:var(--bad);margin:0;padding-left:1.2em;font-size:.9rem}.issues.warnings{color:var(--warn)}.card.inset{background:var(--soft);border:1px solid var(--border);box-shadow:none;padding:12px}.shelf{flex-direction:column;gap:8px;margin-top:8px;display:flex;container-type:inline-size}.shelf-grid{gap:4px;display:grid}.shelf-col{font:inherit;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:10px;flex-direction:column;align-items:stretch;gap:2px;min-width:0;padding:4px 0 6px;display:flex}.shelf-col.on{background:var(--soft)}.shelf-slot{border-bottom:2px solid var(--border);justify-content:center;align-items:flex-end;height:96px;margin:0 2px 4px;display:flex}.shelf-bar{border-radius:6px 6px 0 0;width:70%;max-width:34px;display:block}.shelf-count,.shelf-box,.shelf-interval{text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums;line-height:1.2}.shelf-count{font-size:clamp(.7rem,4.6cqi,1.1rem);font-weight:800}.shelf-box{color:var(--muted);font-size:clamp(.62rem,3cqi,.8rem);font-weight:600}.shelf-interval{color:var(--muted);font-size:clamp(.58rem,2.8cqi,.75rem)}.shelf-caption{min-height:2.6em;margin:0}@container (width<=480px){.shelf-word{display:none}}.interval-grid{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px;display:grid}.interval-grid input{width:100%}.rank-row{flex-direction:column;gap:8px;display:flex}.rank-row+.rank-row{border-top:1px solid var(--border);padding-top:10px}.rank-language{display:block}.direction-choice{flex-direction:column;gap:4px;display:flex}.direction-choice .segmented{flex-wrap:nowrap;align-self:stretch}.direction-choice .segmented button{white-space:nowrap;flex:1;padding:6px 10px;font-size:.9rem}.stat-tiles.two{grid-template-columns:repeat(2,1fr)}.course-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.course-row{background:var(--soft);color:inherit;border-radius:16px;align-items:center;gap:12px;padding:10px 12px;text-decoration:none;display:flex}.course-emoji{font-size:1.5rem}.course-text{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.chevron{color:var(--muted);font-size:1.4rem}.add-courses li{padding:6px 0}.news-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.news-list li{align-items:flex-start;gap:10px;display:flex}.news-list li>span:nth-child(2){flex:1}.news-emoji{font-size:1.4rem}.news-text{display:block}.news-list .news-date{margin-top:4px;font-weight:700;display:block}.news-list.archive .news-entry{opacity:.8}.card.news-hint{text-align:left;color:inherit;flex-direction:row;align-items:center;gap:12px;text-decoration:none}.news-hint-emoji{font-size:1.6rem}.news-hint-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.news-hint-text .small{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.news-badge{background:var(--primary-gradient);min-width:26px;height:26px;color:var(--primary-text);border-radius:999px;place-items:center;padding:0 8px;font-size:.85rem;font-weight:800;display:grid}.course-head{flex-direction:column;gap:2px;display:flex}.lesson-pages{white-space:nowrap;margin-left:6px}.danger-link{color:var(--muted);align-self:center}.photo-thumbs{flex-wrap:wrap;gap:6px;display:flex}.photo-thumbs img{object-fit:cover;border-radius:8px;width:64px;height:84px}.page-proposals{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.page-proposals li{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding-bottom:10px;display:flex}.page-input{width:5em;font:inherit;border:2px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:4px 8px}.chips{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.chip{font:inherit;background:var(--tag-bg);color:var(--tag-text);cursor:pointer;border:none;border-radius:999px;padding:4px 10px;font-size:.85rem}.chips select{font:inherit;border:2px solid var(--border);background:var(--card);color:var(--text);border-radius:999px;padding:4px 8px;font-size:.85rem}details.vocab-folder>summary{cursor:pointer;align-items:center;gap:10px;display:flex}details.vocab-folder[open]>summary{margin-bottom:10px}.vocab-folder-title{flex:1}.course-meta-form{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:end;gap:10px;display:grid}.course-meta-form input{font:inherit;border:2px solid var(--border);background:var(--card);color:var(--text);border-radius:10px;padding:6px 10px}.language-group{flex-direction:column;gap:6px;display:flex}.language-group+.language-group{border-top:1px solid var(--border);padding-top:8px}.language-row{color:inherit;align-items:center;gap:12px;padding:6px 4px;text-decoration:none;display:flex}.language-group .course-row,details.more-courses{margin-left:18px}details.more-courses[open]>summary{margin-bottom:6px}details.more-courses .course-row{margin-left:0}.learner-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.learner-course .phasebar-wrap{margin-top:6px}.details-body{margin-top:16px}.course-due{border-radius:var(--radius);background:var(--primary-gradient);width:100%;min-height:72px;color:var(--primary-text);box-shadow:var(--primary-shadow);font:inherit;text-align:left;cursor:pointer;border:0;align-items:center;gap:14px;padding:14px 18px;display:flex}.course-due:active{transform:scale(.98)}.course-due-count{font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:800;line-height:1}.course-due-label{flex-direction:column;font-size:1.1rem;font-weight:700;display:flex}.course-due-label small{opacity:.85;font-size:.85rem;font-weight:600}.course-due.is-done{background:var(--card);color:var(--muted);box-shadow:var(--shadow);cursor:default;justify-content:center}.course-due.is-done:active{transform:none}.game-languages{justify-content:center}.chip.active{background:var(--primary);color:#fff}.game-wrong{flex-wrap:wrap;justify-content:center;gap:6px 14px;margin:0;padding:0;list-style:none;display:flex}.swipe-stage{touch-action:none;place-items:center;min-height:260px;padding-block:12px;display:grid;position:relative;overflow:hidden}.swipe-hint{z-index:2;pointer-events:none;color:var(--muted);opacity:.55;font-weight:800;transition:opacity .15s,transform .15s,color .15s;position:absolute}.swipe-hint.on{opacity:1;color:var(--primary);transform:scale(1.25)}.swipe-hint.left{top:50%;left:4px}.swipe-hint.right{top:50%;right:4px}.swipe-hint.up{top:4px;left:50%;translate:-50%}.swipe-card{background:var(--card);border:2px solid var(--border);width:min(72%,260px);min-height:150px;box-shadow:var(--shadow);text-align:center;cursor:grab;-webkit-user-select:none;user-select:none;touch-action:none;border-radius:22px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:18px;transition:transform .28s ease-out,opacity .28s ease-out;display:flex}.swipe-card .lemma{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;margin:0}.swipe-card .fit-m{font-size:1.6rem}.swipe-card .fit-s{font-size:1.25rem}.swipe-card.enter{animation:.25s ease-out pop}.swipe-card.ok{border-color:var(--ok-border);background:var(--ok-bg)}.swipe-card.miss{border-color:var(--bad);background:var(--bad-bg)}.swipe-card.ok.fly-m{opacity:0;transform:translate(-140%)rotate(-18deg)}.swipe-card.ok.fly-f{opacity:0;transform:translate(140%)rotate(18deg)}.swipe-card.ok.fly-n{opacity:0;transform:translateY(-140%)}.swipe-card.miss{animation:.35s shake}.genus-buttons{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.genus-buttons .btn{min-height:52px;font-size:1.15rem;font-weight:800}.choice-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.choice-grid .choice{font:inherit;border:2px solid var(--border);background:var(--card);min-height:56px;color:var(--text);cursor:pointer;overflow-wrap:anywhere;border-radius:16px;padding:8px;font-size:1.1rem;font-weight:700;transition:opacity .2s,background .2s,border-color .2s}.choice-grid .choice.right{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok);animation:.25s ease-out pop}.choice-grid .choice.wrong{border-color:var(--bad);background:var(--bad-bg);color:var(--bad);animation:.35s shake}.choice-grid .choice.faded{opacity:.4}.memory-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.memory-tile{aspect-ratio:3/4;font:inherit;cursor:pointer;perspective:600px;background:0 0;border:none;padding:0;position:relative}.memory-face{backface-visibility:hidden;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;border-radius:14px;place-items:center;padding:4px;line-height:1.15;transition:transform .35s ease-out;display:grid;position:absolute;inset:0;overflow:hidden}.memory-face.back{background:var(--primary-gradient);color:#fff;font-size:1.6rem;font-weight:800}.memory-face.front{background:var(--card);border:2px solid var(--border);color:var(--text);font-size:.78rem;font-weight:600;transform:rotateY(180deg)}.memory-face.front.foreign{font-size:.9rem;font-weight:800}.memory-tile.open .memory-face.back{transform:rotateY(-180deg)}.memory-tile.open .memory-face.front{transform:rotateY(0)}.memory-tile.found .memory-face.front{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok)}.memory-tile.miss .memory-face.front{border-color:var(--bad);background:var(--bad-bg);animation:.35s shake}@media (prefers-reduced-motion:reduce){.swipe-card,.memory-face{transition:none}.swipe-card.miss,.swipe-card.enter,.choice-grid .choice.right,.choice-grid .choice.wrong,.memory-tile.miss .memory-face.front{animation:none}}.pet{line-height:0;display:inline-block;position:relative}.pet svg{overflow:visible}.pet .pet-shadow{fill:var(--text);opacity:.08}.pet .pet-fur,.pet .pet-wing{fill:var(--pet-fur,var(--primary))}.pet .pet-wing{opacity:.55}.pet .pet-belly{fill:#fff;opacity:.38}.pet .pet-shell{fill:#fffaf0;stroke:#e9dcc4;stroke-width:3px}.pet .pet-spot{fill:var(--primary);opacity:.7}.pet .pet-pupil{fill:#2b2140}.pet .pet-glint{fill:#fff}.pet .pet-line{fill:none;stroke:#2b2140;stroke-width:3.2px;stroke-linecap:round}.pet .pet-mouth{fill:#6b2140}.pet .pet-blush{fill:#ff7aa8;opacity:.45}.pet .pet-tear{fill:#7cc8ff}.pet .pet-sunglasses rect{fill:#2b2b2b}.pet .pet-crown path{fill:#fc3;stroke:#e0a800;stroke-width:2px;stroke-linejoin:round}.pet .pet-gem{fill:#ff4f8b}.pet .pet-sun circle{fill:#ffd34d}.pet .pet-sun path{stroke:#ffd34d;stroke-width:4px;stroke-linecap:round}.pet .pet-suitcase rect{fill:#c98b4a}.pet .pet-suitcase path{stroke:#8a5a2b;stroke-width:3px}.pet .pet-zzz text,.figure .pet-zzz text,.pet .pet-sparkles text{fill:var(--muted);font-size:16px;font-weight:800}.pet .pet-sparkles text{fill:#ffbf1f;font-size:20px}.pet .pet-hearts text,.figure .pet-hearts text{font-size:22px}.pet-bubble{z-index:1;transform-origin:0 100%;background:var(--card);border:2px solid var(--border);width:max-content;max-width:9.5em;color:var(--text);border-radius:14px 14px 14px 4px;padding:4px 10px;font-size:.8rem;font-weight:700;line-height:1.3;animation:2.4s ease-in-out infinite pet-nag;position:absolute}.pet.mood-sleeping svg .pet-body,.pet.mood-sleeping svg .pet-egg{filter:grayscale(.7)brightness(1.05)}.pet .pet-body,.pet .pet-egg{transform-box:fill-box;transform-origin:50% 100%;animation:3.2s ease-in-out infinite pet-breathe}.pet.mood-happy .pet-body{animation:1.4s ease-in-out infinite pet-bounce}.pet.mood-packing .pet-body{animation:.5s linear infinite pet-shiver}.pet.mood-sleeping .pet-body,.pet.mood-sleeping .pet-egg{animation-duration:5s}.pet .pet-egg{animation:2.8s ease-in-out infinite pet-wobble}.pet.mood-hungry .pet-egg{animation-duration:1s}.pet .pet-eye{transform-box:fill-box;transform-origin:50%;animation:4.5s infinite pet-blink}.pet .pet-zzz text,.figure .pet-zzz text{animation:3s ease-in infinite pet-float}.pet .pet-zzz text:nth-child(2),.figure .pet-zzz text:nth-child(2){animation-delay:.6s}.pet .pet-zzz text:nth-child(3),.figure .pet-zzz text:nth-child(3){animation-delay:1.2s}.pet .pet-sparkles text{animation:1.8s ease-in-out infinite pet-twinkle}.pet .pet-sparkles text:nth-child(2){animation-delay:.6s}.pet .pet-sparkles text:nth-child(3){animation-delay:1.2s}.pet.treat .pet-body,.pet.treat .pet-egg{animation:.5s ease-out 3 pet-hop}.pet .pet-hearts text,.figure .pet-hearts text{animation:1.4s ease-out forwards pet-float}.pet .pet-hearts text:nth-child(2),.figure .pet-hearts text:nth-child(2){animation-delay:.2s}.pet .pet-hearts text:nth-child(3),.figure .pet-hearts text:nth-child(3){animation-delay:.4s}@keyframes pet-breathe{50%{transform:scale(1.03,.97)}}@keyframes pet-bounce{0%,to{transform:translateY(0)scale(1)}15%{transform:translateY(0)scale(1.08,.9)}45%{transform:translateY(-14px)scale(.96,1.05)}70%{transform:translateY(0)scale(1.04,.96)}}@keyframes pet-hop{40%{transform:translateY(-22px)scale(.95,1.06)}}@keyframes pet-shiver{25%{transform:translate(-1.5px)}75%{transform:translate(1.5px)}}@keyframes pet-wobble{0%,to{transform:rotate(0)}25%{transform:rotate(-5deg)}75%{transform:rotate(5deg)}}@keyframes pet-blink{0%,94%,to{transform:scaleY(1)}97%{transform:scaleY(.1)}}@keyframes pet-float{0%{opacity:0;transform:translateY(8px)}30%{opacity:1}to{opacity:0;transform:translateY(-24px)}}@keyframes pet-twinkle{50%{opacity:.25}}@keyframes pet-nag{0%,to{transform:rotate(0)}10%{transform:rotate(-4deg)}20%{transform:rotate(4deg)}30%{transform:rotate(0)}}@media (prefers-reduced-motion:reduce){.pet *,.pet-bubble{animation:none!important}}.stack.tight{gap:4px}.pet-card{color:var(--text);align-items:center;gap:14px;text-decoration:none;display:flex}.pet-card .stack{flex:1;min-width:0}.pet-stage h2{margin:0}.pet-growth{width:100%}.pet-friends{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:12px;display:grid}.pet-friend{text-align:center;flex-direction:column;align-items:center;gap:2px;display:flex}.pet-friend .avatar{vertical-align:middle}.pet-album{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.pet-album li{align-items:center;gap:12px;display:flex}.pet-tile{text-align:left;align-items:center;gap:10px;flex-direction:row!important}.vacation-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.pet .pet-fur-line{fill:none;stroke:var(--pet-fur,var(--primary));stroke-linecap:round}.pet .pet-inner{fill:#ffb3cc}.pet .pet-dark-edge{filter:brightness(.82)}.pet .pet-horn{fill:#fff3d6;stroke:#e8cf9a;stroke-width:1.5px}.pet .pet-stripe{fill:none;stroke:#0000002e;stroke-width:3px;stroke-linecap:round}.pet .pet-eye-disc{fill:#fff;stroke:#0000001f;stroke-width:2px}.pet .pet-beak,.pet .pet-beak path{fill:#ffa62b}.pet .pet-belly.solid{opacity:1}.pet .pet-whiskers path{stroke:#2b2140;stroke-width:1.6px;stroke-linecap:round;opacity:.55}.pet .pet-teeth rect{fill:#fff;stroke:#ccc;stroke-width:.8px}.pet .acc-bow path{fill:#ff4f8b}.pet .acc-bow-knot{fill:#d81b60}.pet .acc-beanie path{fill:#4fa3e0}.pet .acc-beanie-band{fill:#fff}.pet .acc-petal-a{fill:#ff8fb8}.pet .acc-petal-b{fill:#ffe066}.pet .acc-flower-heart{fill:#ff9f1c}.pet .acc-dark path,.pet .acc-dark rect{fill:#2b2b33}.pet .acc-white,.pet .acc-dark .acc-white{fill:#fff}.pet .acc-red,.pet .acc-red path,.pet .acc-red circle,.pet .acc-dark .acc-red{fill:#e53950}.pet .acc-wizard path,.pet .acc-wizard ellipse{fill:#6a4cc2}.pet .acc-star{fill:#ffd34d}.pet .acc-laurel ellipse{fill:#6bbf59}.pet .acc-glasses path,.pet .acc-bridge{fill:none;stroke:#2b2140;stroke-width:2.5px}.pet .acc-lens{fill:#ffffff59;stroke:#2b2140;stroke-width:2.5px}.pet .acc-lens.gold,.pet .acc-glasses path.gold{stroke:#d4a017}.pet .acc-hearts path{fill:#ff4078d9}.pet .acc-scarf path,.pet .acc-scarf rect{fill:#ff7043}.pet .acc-scarf-stripe{stroke:#fff;stroke-width:2px;fill:none}.pet .acc-bandana path{fill:#3f7fd8}.pet .acc-ribbon{fill:none;stroke:#3f7fd8;stroke-width:4px}.pet .acc-gold{fill:#fc3;stroke:#e0a800;stroke-width:1.5px}.pet .acc-medal-star{fill:#e0a800}.pet.still *,.pet.still .pet-body,.pet.still .pet-egg{animation:none!important}.species-grid{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;display:grid}.species-tile{border:2px solid var(--border);background:var(--card);color:var(--text);font:inherit;cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;font-size:.85rem;font-weight:700;display:flex}.species-tile.on{border-color:var(--primary);background:var(--accent-soft)}.color-dots{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.color-dot{border:3px solid var(--card);width:34px;height:34px;box-shadow:0 0 0 2px var(--border);cursor:pointer;border-radius:50%}.color-dot.on{box-shadow:0 0 0 3px var(--text)}.shop-grid{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;display:grid}.shop-item{background:var(--soft);text-align:center;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:8px 4px;display:flex}.shop-item.worn{box-shadow:inset 0 0 0 2px var(--primary)}.shop-item.locked .pet{opacity:.45;filter:grayscale(.6)}.pet .acc-straw ellipse,.pet .acc-straw path{fill:#e8c46a;stroke:#c9a24a;stroke-width:1.5px}.pet .acc-party path:first-child{fill:#7c4dff}.pet .acc-party-stripe{fill:none;stroke:#ffd34d;stroke-width:4px;stroke-linecap:round}.pet .acc-party-pom{fill:#ffd34d}.pet .acc-heartcrown path{fill:#ff4f8b;stroke:#fff;stroke-width:1px}.pet .acc-safari ellipse,.pet .acc-safari path{fill:#c8b27a}.pet .acc-safari-band{fill:#6d5a35}.pet .acc-witch ellipse,.pet .acc-witch path{fill:#2b2b33}.pet .acc-witch-band{fill:#8e44ad}.pet .acc-santa path{fill:#e53950}.pet .acc-bunny ellipse{fill:#fff;stroke:#e0d6e6;stroke-width:1.5px}.pet .acc-bunny .acc-bunny-inner{fill:#ffb3cc;stroke:none}.pet .acc-band{fill:none;stroke:#ff4f8b;stroke-width:4px;stroke-linecap:round}.pet .acc-stem,.pet .acc-string{fill:none;stroke:#4caf50;stroke-width:3px;stroke-linecap:round}.pet .acc-string{stroke:#9e9e9e;stroke-width:1.5px}.pet .acc-balloon-body{fill:#ff5a5f}.pet .acc-white-soft{fill:#fff;opacity:.55}.pet .acc-teddy circle,.pet .acc-teddy ellipse{fill:#b07a4a}.pet .acc-teddy .pet-pupil{fill:#2b2140}.pet .acc-teddy .acc-teddy-snout{fill:#e6c29a}.pet .acc-wand{fill:none;stroke:#5d4037;stroke-width:4px;stroke-linecap:round}.pet .acc-cape path{fill:#2c3e8f}.pet .acc-mask{fill:#fc3;stroke:#d4a017;stroke-width:1.5px}.pet .acc-boa circle{fill:#ff8fc8;opacity:.92}.pet .acc-balloon{transform-box:fill-box;transform-origin:0 100%;animation:3s ease-in-out infinite pet-sway}.pet .pet-crack{fill:none;stroke:#8a6d3b;stroke-width:3px;stroke-linejoin:round;stroke-dasharray:200;stroke-dashoffset:200px;animation:1.4s ease-in forwards pet-crack}.pet .pet-burst text,.figure .pet-burst text{fill:#ffbf1f;transform-box:fill-box;transform-origin:50%;opacity:0;font-size:18px;animation:1.1s ease-out forwards pet-burst}.pet.intro-hatch-before .pet-egg{animation:.35s ease-in-out infinite pet-wobble}.pet.intro-hatch-after .pet-body,.pet.intro-grow-after .pet-body{animation:.7s cubic-bezier(.34,1.56,.64,1) both pet-pop}.pet.intro-grow-before .pet-body{animation:1.1s ease-in-out both pet-glow}.pet.gesture-look .pet-face{transform-box:fill-box;animation:1.6s ease-in-out pet-look}.pet .pet-arm-right{transform-box:fill-box;transform-origin:30% 90%}.pet.gesture-wave .pet-arm-right{animation:.4s ease-in-out 4 alternate pet-wave}.pet.gesture-yawn .pet-body{animation:1.6s ease-in-out pet-stretch}.pet.gesture-giggle .pet-body{animation:.6s ease-in-out 2 pet-giggle}.pet.gesture-grumble .pet-body{animation:1s ease-in-out pet-grumble}.pet.interactive{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}@keyframes pet-crack{to{stroke-dashoffset:0}}@keyframes pet-burst{0%{opacity:0;transform:scale(.2)}40%{opacity:1;transform:scale(1.3)}to{opacity:0;transform:scale(.6)translateY(-14px)}}@keyframes pet-pop{0%{opacity:0;transform:scale(.2)}to{opacity:1;transform:scale(1)}}@keyframes pet-glow{0%,to{filter:brightness()}50%{filter:brightness(1.6)drop-shadow(0 0 12px #fff6b0)}}@keyframes pet-look{25%{transform:translate(-6px)}60%{transform:translate(6px)}}@keyframes pet-wave{0%{transform:rotate(0)}to{transform:rotate(-40deg)}}@keyframes pet-stretch{40%{transform:scale(.96,1.07)}}@keyframes pet-giggle{25%{transform:rotate(-6deg)scale(1.04,.96)}75%{transform:rotate(6deg)scale(1.04,.96)}}@keyframes pet-grumble{50%{transform:scaleX(-1)}}@keyframes pet-sway{50%{transform:rotate(4deg)}}.secret-count{margin:0;font-weight:700}.shop-item.secret{background:linear-gradient(135deg, var(--soft), var(--accent-soft));box-shadow:inset 0 0 0 2px #fc3}.shop-item.secret.worn{box-shadow:inset 0 0 0 2px var(--primary)}.celebration .pet{margin:0 auto}.pet .acc-headphones-band{fill:none;stroke:#37474f;stroke-width:5px}.pet .acc-headphones rect{fill:#ff4f8b}.pet .acc-cowboy path{fill:#a86b3c}.pet .acc-cowboy-band{fill:#5d3a1a}.pet .acc-viking path,.pet .acc-viking-rim{fill:#9aa4b0}.pet .acc-viking .acc-horn{fill:#fff3d6;stroke:#e0c890;stroke-width:1.5px}.pet .acc-astro-glass{fill:#bee6ff47;stroke:#cfd8dc;stroke-width:3px}.pet .acc-astro-shine{fill:#fff;opacity:.6}.pet .acc-astro-ring{fill:#eceff1;stroke:#90a4ae;stroke-width:1.5px}.pet .acc-tassel{fill:none;stroke:#fc3;stroke-width:2px}.pet .acc-nightcap path{fill:#5c6bc0}.pet .acc-nightcap-band{fill:#fff}.pet .acc-chef rect,.pet .acc-chef circle{fill:#fff;stroke:#e0e0e0;stroke-width:1.5px}.pet .acc-flag{fill:#ff4f8b}.pet .acc-cone{fill:#e0a35a}.pet .acc-scoop-a{fill:#ff9ec4}.pet .acc-scoop-b{fill:#a5e3c8}.pet .acc-guitar circle{fill:#e08a3c}.pet .acc-guitar .acc-guitar-hole{fill:#5d3a1a}.pet .acc-guitar-neck{fill:#6d4c2e}.pet .acc-blade{fill:#e3e8ee;stroke:#9aa4b0;stroke-width:1px}.pet .acc-hilt{fill:#6d4c2e}.pet .acc-umbrella-top{fill:#4fc3f7}.pet .acc-clown{fill:#ff3b3b}.pet .acc-mustache{fill:#4e342e}.pet .acc-goggle-strap{stroke:#263238;stroke-width:4px}.pet .acc-goggle-glass{fill:#78c8ff59;stroke:#ff9f1c;stroke-width:3px}.pet .acc-snorkel{stroke:#ff9f1c;stroke-width:4px;stroke-linecap:round}.pet .acc-tie path{fill:#3f51b5}.pet .acc-pearls circle{fill:#fdfaf2;stroke:#d8cfc0;stroke-width:1px}.pet .acc-shoe{fill:#fff;stroke:#cfd8dc;stroke-width:1.2px}.pet .acc-sole{fill:#ff4f8b}.pet .acc-shoe-stripe{stroke:#3f7fd8;stroke-width:2.4px;stroke-linecap:round}.pet .acc-boot{fill:#fc3;stroke:#e0a800;stroke-width:1px}.pet .acc-skate{fill:#7c4dff}.pet .acc-wheel{fill:#fc3;stroke:#e0a800;stroke-width:1px}.pet .acc-iceboot{fill:#fff;stroke:#b0bec5;stroke-width:1.2px}.pet .acc-blade-line{fill:none;stroke:#90a4ae;stroke-width:2px;stroke-linecap:round}.pet .acc-fins{fill:#29b6f6}.pet .acc-slipper,.pet .acc-slipper-ear{fill:#ffd1e3;stroke:#f3a7c5;stroke-width:1px}.pet .acc-stick{stroke:#fff;stroke-width:3px;stroke-linecap:round;filter:drop-shadow(0 0 .5px #999)}.pet .acc-lolli{fill:#ff6fae}.pet .acc-lolli-swirl{fill:none;stroke:#fff;stroke-width:2px}.pet .acc-saucer,.pet .acc-cup{fill:#fff;stroke:#b0bec5;stroke-width:1.2px}.pet .acc-cup-handle{fill:none;stroke:#b0bec5;stroke-width:2px}.pet .acc-steam{fill:none;stroke:#b0bec5;stroke-width:1.5px;stroke-linecap:round;opacity:.8}.pet .acc-brush{fill:#e53950}.pet .acc-paint{fill:#3f7fd8}.pet .acc-book{fill:#3f51b5}.pet .acc-book-pages{fill:#fffdf5}.pet .acc-book-spine{stroke:#c5cae9;stroke-width:1.2px}.pet .acc-lantern-body{fill:#ff9f43;opacity:.92}.pet .acc-lantern-glow{fill:#fff3b0;animation:1.6s ease-in-out infinite pet-twinkle}.pet .acc-boot-rim{fill:#e0a800}.shop-item{min-width:0}.shop-name{white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:.76rem;line-height:1.2;overflow:hidden}.shop-chip{background:var(--card);min-width:64px;min-height:32px;color:var(--text);font:inherit;cursor:pointer;border:none;border-radius:999px;margin-top:auto;padding:4px 10px;font-size:.8rem;font-weight:700}.shop-chip.price{background:var(--primary-gradient);color:#fff}.shop-chip.price.short{opacity:.45}.shop-chip.on{background:var(--primary);color:#fff}.shop-chip.locked{background:0 0;font-size:1rem}.shop-hint{background:var(--accent-soft);border-radius:12px;margin:0;padding:8px 12px;font-size:.85rem;animation:.2s ease-out pop}.pet .pet-nose{fill:#2b2140}.pet .pet-spot-dog{fill:#00000021}.pet .pet-tail{transform-box:fill-box;transform-origin:0 100%;animation:.9s ease-in-out infinite pet-wag}.pet.mood-sleeping .pet-tail,.pet.mood-packing .pet-tail{animation:none}@keyframes pet-wag{50%{transform:rotate(14deg)}}.pet .tinted .tint.tint,.figure .tinted .tint.tint{fill:var(--tint)}.figure .tinted .tint-s.tint-s,.pet .tinted .tint-s.tint-s{stroke:var(--tint)}.pet .tinted .tint-dark{filter:brightness(.8)}.treat-box h2{margin:0}.treat-choices{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;display:grid}.treat-choice{background:var(--accent-soft);border-radius:14px;flex-direction:column;gap:6px;padding:12px;display:flex}.treat-choice .btn{margin-top:auto}.pet-rename{max-width:12em}.pet-rename-btn{vertical-align:middle;min-height:44px;padding:0 6px;font-size:1rem}.dye-row{align-items:center;gap:12px;display:flex}.dye-row .stack{min-width:0}.color-dots.small{justify-content:flex-start;gap:8px}.color-dots.small .color-dot{width:30px;height:30px}.color-dot.original{background:repeating-linear-gradient(45deg, var(--card) 0 4px, var(--border) 4px 8px)}.game-abort-hint{text-align:center;margin:-4px 0 8px}.treats-earned{background:var(--accent-soft);border-radius:12px;margin:0;padding:6px 12px;font-weight:600}.lesson-origin{color:var(--muted);font-size:.75rem;font-weight:400;display:block}.hearts{gap:2px;font-size:1.1rem;display:inline-flex}.hearts .off{opacity:.5}.letters-prompt{font-size:1.3rem}.letters-answer{flex-wrap:wrap;justify-content:center;gap:4px;min-height:48px;display:flex}.letters-slot{border-bottom:3px solid var(--border);place-items:center;min-width:26px;height:40px;padding:0 4px;font-size:1.35rem;font-weight:800;display:grid}.letters-answer.words .letters-slot{min-width:48px;font-size:1.1rem}.letters-slot.filled{border-color:var(--primary);animation:.2s ease-out pop}.letters-slot.gap{margin-right:18px}.letters-answer.done .letters-slot{border-color:var(--ok-border);color:var(--ok)}.letters-tiles{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.letters-tile{border:2px solid var(--border);background:var(--card);min-width:46px;min-height:48px;color:var(--text);font:inherit;box-shadow:0 3px 0 var(--border);cursor:pointer;touch-action:manipulation;border-radius:14px;padding:0 10px;font-size:1.3rem;font-weight:800}.letters-tiles.words .letters-tile{font-size:1.05rem}.letters-tile.used{visibility:hidden}.letters-tile.miss{border-color:var(--bad);background:var(--bad-bg);animation:.35s shake}.rain-stage{background:linear-gradient(180deg, var(--accent-soft), transparent);border-radius:18px;height:min(52vh,380px);position:relative;overflow:hidden;container-type:size}.rain-drop{border:2px solid var(--border);background:var(--card);width:calc(25% - 6px);color:var(--text);font:inherit;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;box-shadow:var(--shadow);cursor:pointer;touch-action:manipulation;animation:rain-fall var(--fall,6s) linear forwards;border-radius:14px 14px 18px 18px;margin:0 3px;padding:8px 4px;font-size:.82rem;font-weight:700;line-height:1.15;position:absolute;top:0}.rain-drop.stopped{animation-play-state:paused}.rain-drop.right{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok)}.rain-drop.wrong{border-color:var(--bad);background:var(--bad-bg);color:var(--bad)}.rain-stage:has(.stopped) .rain-drop:not(.right):not(.wrong){opacity:.35}@keyframes rain-fall{0%{transform:translateY(-110%)}to{transform:translateY(100cqh)}}.rain-ground{margin-top:-6px}.rain-arena.duel{grid-template-columns:1fr 52px;gap:6px;display:grid}.rain-rival{flex-direction:column;align-items:center;gap:4px;min-width:0;display:flex}.rain-rival .rival-chip{flex-direction:column;padding:4px 2px}.rain-rival-hearts{letter-spacing:-1px;min-height:.8rem;font-size:.55rem}.rain-rival-sky{background:linear-gradient(180deg, var(--accent-soft), transparent);border-radius:12px;flex:1;width:100%;position:relative;overflow:hidden;container-type:size}.rain-rival-drop{background:var(--primary);opacity:.55;width:22px;height:28px;animation:rain-fall var(--fall,6s) linear forwards;border-radius:50%/60% 60% 40% 40%;margin-left:-11px;position:absolute;top:0;left:50%}.rain-rival-drop.hit{background:var(--ok-border);opacity:1;transition:scale .2s ease-out,opacity .6s ease-in .2s;animation-play-state:paused;scale:1.35}.rain-rival-drop.miss{background:var(--bad);opacity:.85;border-radius:50%;height:10px;animation:none;top:auto;bottom:0;scale:2 1}.rain-bolt-sent{font-size:1.8rem;animation:.7s ease-out forwards rain-bolt-sent;position:absolute;top:30%;left:-40px}@keyframes rain-bolt-sent{0%{opacity:0;transform:translate(-80px)scale(.6)}50%{opacity:1}to{opacity:0;transform:translate(50px)scale(1.3)}}.rain-stage.storm{background:radial-gradient(60% 30% at 20% 0,#3d4466 0 60%,#0000 61%),radial-gradient(55% 28% at 75% 0,#4a5277 0 60%,#0000 61%),repeating-linear-gradient(105deg,#0000 0 14px,#ffffff1a 14px 15px),linear-gradient(#6b7392,#b9c0d6)}.rain-lightning{z-index:3;pointer-events:none;background:linear-gradient(#fff0,#fff0),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 120'%3E%3Cpath d='M34 0L12 58h16L18 120l30-74H31z' fill='%23fff6a8' stroke='%23ffd23f' stroke-width='3'/%3E%3C/svg%3E") 50% 0/60px 70% no-repeat;animation:.9s ease-out forwards rain-lightning;position:absolute;inset:0}@keyframes rain-lightning{0%,22%,44%{opacity:1;background-color:#ffffffd0}11%,33%{opacity:1;background-color:#ffffff20}to{opacity:0;background-color:#fff0}}.rain-storm-note{color:var(--primary);font-size:.8rem;font-weight:800;animation:.35s ease-out gap-bump}.rain-storm-in{color:#4a5277;margin:0;font-weight:800}.rival-chip{background:var(--soft);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;animation:.3s ease-out gap-bump;display:inline-flex}@media (prefers-reduced-motion:reduce){.rain-lightning,.rain-bolt-sent,.rain-rival-drop{animation-duration:10ms}}.rain-ground .lemma{margin:0}.tf-card .tf-equals{color:var(--muted);font-weight:800}.tf-card .tf-shown{overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;font-size:1.15rem}.tf-card .tf-shown.fit-s{font-size:1rem}.swipe-card.ok.fly-yes{opacity:0;transform:translate(140%)rotate(18deg)}.swipe-card.ok.fly-no{opacity:0;transform:translate(-140%)rotate(-18deg)}.tf-buttons{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tf-buttons .btn{min-height:52px;font-weight:800}.cw-grid{gap:2px;width:min(100%,360px);margin:0 auto;display:grid}.cw-cell{aspect-ratio:1;border:2px solid var(--border);background:var(--card);color:var(--text);font:inherit;cursor:pointer;border-radius:6px;padding:0;font-size:clamp(.8rem,4.2vw,1.2rem);font-weight:800;position:relative}.cw-cell.empty{cursor:default;background:0 0;border:none}.cw-cell.active{border-color:var(--primary);background:var(--accent-soft)}.cw-cell.shown{color:var(--ok)}.cw-num{color:var(--muted);font-size:.55rem;font-weight:700;line-height:1;position:absolute;top:0;left:2px}.cw-input .row input{flex:1;min-width:0}.cw-input.miss input{border-color:var(--bad);animation:.35s shake}.cw-clues{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px 16px;display:grid}.cw-clues h3{margin:0 0 4px;font-size:.95rem}.cw-clues ul{margin:0;padding:0;list-style:none}.cw-clue{width:100%;min-height:36px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 6px;font-size:.85rem;display:block}.cw-clue.on{background:var(--accent-soft)}.cw-clue.solved{color:var(--muted);text-decoration:line-through}.forms-head .lemma{margin:0}.forms-slots{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:6px;display:flex}.forms-slot{border:2px dashed var(--border);border-radius:12px;flex-direction:column;align-items:center;min-width:96px;padding:6px 10px;display:flex}.forms-slot.next{border-color:var(--primary)}.forms-slot.filled{border-style:solid;border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok);animation:.25s ease-out pop}.forms-stage{background:linear-gradient(180deg, var(--accent-soft), transparent);touch-action:manipulation;border-radius:18px;height:min(46vh,340px);position:relative;overflow:hidden;container-type:size}.forms-tile{border:2px solid var(--border);background:var(--card);color:var(--text);font:inherit;white-space:nowrap;box-shadow:var(--shadow);cursor:pointer;border-radius:14px;padding:10px 14px;font-size:1.05rem;font-weight:800;animation-timing-function:linear;animation-fill-mode:forwards;position:absolute;left:0}.forms-tile.from-left.path-straight{animation-name:forms-fly-ltr}.forms-tile.from-right.path-straight{animation-name:forms-fly-rtl}.forms-tile.from-left.path-wave{animation-name:forms-fly-ltr-wave}.forms-tile.from-right.path-wave{animation-name:forms-fly-rtl-wave}.forms-tile.from-left.path-arc{animation-name:forms-fly-ltr-arc}.forms-tile.from-right.path-arc{animation-name:forms-fly-rtl-arc}.forms-tile.caught{border-color:var(--ok-border);background:var(--ok-bg);color:var(--ok);pointer-events:none;opacity:0;transition:opacity .35s .1s;animation-play-state:paused}.forms-tile.trap{border-color:var(--bad);background:var(--bad-bg);color:var(--bad);pointer-events:none;animation-play-state:paused}@keyframes forms-fly-ltr{0%{transform:translate(-110%)}to{transform:translate(100cqw)}}@keyframes forms-fly-rtl{0%{transform:translate(100cqw)}to{transform:translate(-110%)}}@keyframes forms-fly-ltr-wave{0%{transform:translate(-110%)}25%{transform:translate(22cqw,-28px)}50%{transform:translate(45cqw,28px)}75%{transform:translate(72cqw,-28px)}to{transform:translate(100cqw)}}@keyframes forms-fly-rtl-wave{0%{transform:translate(100cqw)}25%{transform:translate(72cqw,28px)}50%{transform:translate(45cqw,-28px)}75%{transform:translate(22cqw,28px)}to{transform:translate(-110%)}}@keyframes forms-fly-ltr-arc{0%{transform:translate(-110%,40px)}50%{transform:translate(45cqw,-50px)}to{transform:translate(100cqw,40px)}}@keyframes forms-fly-rtl-arc{0%{transform:translate(100cqw,40px)}50%{transform:translate(45cqw,-50px)}to{transform:translate(-110%,40px)}}@media (prefers-reduced-motion:reduce){.letters-tile.miss,.cw-input.miss input{animation:none}}.pet.gesture-hop .pet-body,.pet.gesture-cheer .pet-body{animation:.5s ease-out 2 pet-hop}.pet.gesture-cheer .pet-arm-right{animation:.35s ease-in-out 4 alternate pet-wave}.pet.gesture-stretch .pet-body{animation:1.6s ease-in-out pet-reach}.pet.gesture-hum .pet-body{animation:1.4s ease-in-out 2 pet-hum-sway}.pet.gesture-cuddle .pet-body{animation:1.6s ease-in-out pet-squish}.pet.gesture-welcome .pet-body{animation:.9s ease-in-out 4 pet-hop}.pet.gesture-welcome .pet-arm-right{animation:.6s ease-in-out 7 alternate pet-wave}.pet.greet-big .pet-body,.figure.greet-big.fig-gesture-welcome .fig-body{animation:.8s ease-in-out 5 pet-hop}.pet.gesture-paw .pet-arm-right{animation:.4s ease-out forwards pet-paw}.pet.gesture-paw .pet-body{animation:1.6s ease-in-out pet-squish}.pet.gesture-goodnight .pet-body{animation:3s ease-in-out both pet-settle}.pet.gesture-word .pet-body{animation:.6s ease-in-out pet-giggle}.pet.interactive,.figure.interactive{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.pet.gesture-invite .pet-body{animation:.45s ease-in-out 4 alternate pet-hopeful}.pet.gesture-dizzy .pet-body{animation:.5s ease-in-out 4 pet-dizzy}.pet.gesture-butterfly .pet-face{transform-box:fill-box;animation:3s ease-in-out pet-follow}.pet .pet-blush.strong{opacity:.85}.pet .pet-spiral{fill:none}.pet .pet-notes text,.figure .pet-notes text,.pet .pet-dizzy-stars text,.figure .pet-dizzy-stars text{fill:var(--primary);font-size:15px}.pet .pet-notes text,.figure .pet-notes text{animation:1.6s ease-out infinite both pet-float}.pet .pet-dizzy-stars,.figure .pet-dizzy-stars{fill:#f5c242;transform-box:view-box;animation:1s linear infinite pet-spin}.pet .pet-dizzy-stars text,.figure .pet-dizzy-stars text{fill:#f5c242;font-size:13px}.pet .pet-butterfly,.figure .pet-butterfly{animation:3.2s ease-in-out both pet-butterfly}.pet .pet-butterfly-wings path,.figure .pet-butterfly-wings path{fill:#ff9f43;stroke:#b85d00;stroke-width:.8px}.pet .pet-butterfly-wings path.body,.figure .pet-butterfly-wings path.body{fill:none;stroke:#4e342e;stroke-width:2px;stroke-linecap:round}.pet .pet-butterfly-wings,.figure .pet-butterfly-wings{transform-box:fill-box;transform-origin:50%;animation:.18s ease-in-out infinite alternate pet-flap}.pet .pet-tongue{fill:#ff7aa2;transform-box:fill-box;transform-origin:50% 0;animation:.3s ease-in-out infinite alternate pet-pant}.pet .pet-nose-wiggle{fill:#ff8fb8;transform-box:fill-box;transform-origin:50%;animation:.18s ease-in-out infinite alternate pet-nose}.pet .pet-smoke circle{fill:#cfd8dc;opacity:0;transform-box:fill-box;transform-origin:50%;animation:1.4s ease-out both pet-smoke}.pet.special-flausch .pet-body{animation:2s ease-in-out pet-puff}.pet.special-eule .pet-face{transform-box:fill-box;animation:2s ease-in-out pet-owl-turn}.pet.special-pinguin .pet-body{animation:.55s ease-in-out 4 pet-waddle}.pet.special-katze .pet-body{animation:2s ease-in-out pet-groom}.pet.special-katze .pet-arm-right{animation:.5s ease-in-out 4 alternate pet-paw}.pet.special-hund .pet-tail{animation-duration:.22s}.pet.special-hase .pet-body{animation:.5s ease-out pet-hop}.pet.special-drache .pet-body{animation:1.2s ease-in-out pet-reach}.pet .acc-hat-wrap{transform-box:fill-box;transform-origin:50% 100%}.pet .poked-0 .acc-hat-wrap{animation:.9s ease-in-out pet-hatfix-a}.pet .poked-1 .acc-hat-wrap{animation:.9s ease-in-out pet-hatfix-b}.pet .poked-0 .acc-balloon{animation:1s ease-in-out pet-balloon-a}.pet .poked-1 .acc-balloon{animation:1s ease-in-out pet-balloon-b}@keyframes pet-reach{40%{transform:scale(.92,1.13)}70%{transform:scale(1.03,.97)}}@keyframes pet-hum-sway{25%{transform:rotate(-4deg)}75%{transform:rotate(4deg)}}@keyframes pet-squish{30%,70%{transform:scale(1.06,.94)rotate(-3deg)}}@keyframes pet-settle{20%{transform:scale(.97,1.05)}45%,90%{transform:translateY(6px)scale(1.06,.92)}}@keyframes pet-hopeful{to{transform:translateY(-5px)scale(.98,1.03)}}@keyframes pet-dizzy{25%{transform:rotate(-7deg)}75%{transform:rotate(7deg)}}@keyframes pet-follow{0%{transform:translate(-8px,-4px)}50%{transform:translate(8px,-6px)}to{transform:translate(0)}}@keyframes pet-spin{to{transform:rotate(360deg)}}@keyframes pet-butterfly{0%{opacity:0;transform:translate(10px,70px)}10%{opacity:1}35%{transform:translate(70px,30px)}60%{transform:translate(130px,60px)}90%{opacity:1}to{opacity:0;transform:translate(195px,20px)}}@keyframes pet-flap{to{transform:scaleX(.35)}}@keyframes pet-pant{to{transform:scaleY(1.35)}}@keyframes pet-nose{to{transform:translateY(-1.5px)scaleX(1.25)}}@keyframes pet-smoke{0%{opacity:.9;transform:translate(0)scale(.4)}to{opacity:0;transform:translate(26px,-40px)scale(1.4)}}@keyframes pet-puff{35%,65%{transform:scale(1.14)}}@keyframes pet-owl-turn{20%{transform:translate(-14px)}45%{transform:translate(-14px)scaleX(-1)}70%{transform:translate(12px)}}@keyframes pet-waddle{25%{transform:rotate(-8deg)translate(-4px)}75%{transform:rotate(8deg)translate(4px)}}@keyframes pet-groom{30%,80%{transform:rotate(-5deg)}}@keyframes pet-paw{to{transform:rotate(-70deg)}}@keyframes pet-hatfix-a{25%{transform:rotate(14deg)translateY(-3px)}60%{transform:rotate(14deg)}}@keyframes pet-hatfix-b{25%{transform:rotate(-14deg)translateY(-3px)}60%{transform:rotate(-14deg)}}@keyframes pet-balloon-a{30%{transform:rotate(14deg)}65%{transform:rotate(-9deg)}}@keyframes pet-balloon-b{30%{transform:rotate(-14deg)}65%{transform:rotate(9deg)}}@media (prefers-reduced-motion:reduce){.pet .pet-butterfly,.pet .pet-dizzy-stars,.pet .pet-notes text,.pet .pet-tongue,.pet .pet-nose-wiggle{animation:none!important}}.pet-scene{justify-content:center;width:100%;padding-top:8px;display:flex;position:relative;overflow:hidden}.pet-host{z-index:1;position:relative}.pet-guest{bottom:0;right:calc(50% + var(--host) * .28);z-index:2;transition:transform .6s ease-in-out;position:absolute}.visit-in .pet-guest{animation:1.3s ease-out both guest-in}.visit-out .pet-guest{animation:1.3s ease-in both guest-out}.visit-in .pet-guest .pet-body,.visit-out .pet-guest .pet-body{animation:.4s ease-in-out infinite pet-hop}.visit-hug.visit-play .pet-guest,.visit-highfive.visit-play .pet-guest{transform:translateX(calc(var(--host) * .14))}.visit-chase.visit-play .pet-host{animation:2.6s ease-in-out chase-host}.visit-chase.visit-play .pet-guest{animation:2.6s ease-in-out chase-guest}.pet-ball,.pet-clap,.pet-hug-hearts{z-index:3;pointer-events:none;font-size:1.4rem;line-height:1;position:absolute}.pet-ball{bottom:12%;left:calc(50% - var(--host) * .62);animation:1.3s ease-in-out 2 ball-bounce}.pet-clap{bottom:45%;left:calc(50% - var(--host) * .25);animation:1.2s ease-out 2 pet-burst}.pet-hug-hearts{bottom:60%;left:calc(50% - var(--host) * .2);animation:1.3s ease-out 2 pet-float}@keyframes guest-in{0%{transform:translate(-70vw)}to{transform:translate(0)}}@keyframes guest-out{0%{transform:translate(0)}to{transform:translate(-70vw)}}@keyframes chase-host{30%{transform:translateX(calc(var(--host) * .35))}60%{transform:translateX(calc(var(--host) * -.1))}}@keyframes chase-guest{35%{transform:translateX(calc(var(--host) * .6))}65%{transform:translateX(calc(var(--host) * .1))}}@keyframes ball-bounce{0%,to{transform:translate(0)rotate(0)}25%{transform:translate(calc(var(--host) * .16), -46px) rotate(180deg)}50%{transform:translate(calc(var(--host) * .32), 0) rotate(360deg)}75%{transform:translate(calc(var(--host) * .16), -46px) rotate(540deg)}}@media (prefers-reduced-motion:reduce){.pet-guest,.pet-host,.pet-ball{animation:none!important}}.trick-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.trick{background:var(--accent-soft);border-radius:14px;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;padding:8px 10px;display:grid}.trick.learned{background:var(--ok-bg)}.trick-emoji{text-align:center;font-size:1.5rem}.trick-state{color:var(--ok);white-space:nowrap;font-weight:800}.trick .btn.small{white-space:nowrap}.figure{line-height:0;display:inline-block;position:relative}.figure svg{overflow:visible}.figure .pet-shadow{fill:var(--text);opacity:.08}.figure.interactive{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.figure .fig-body{transform-box:fill-box;transform-origin:50% 100%;animation:3.4s ease-in-out infinite pet-breathe}.figure.fig-mood-dozing .fig-body,.figure.fig-mood-dusty .fig-body{animation:4s ease-in-out infinite fig-nod}.figure.fig-mood-dusty .fig-body{filter:saturate(.6)brightness(.97)}.figure .fig-arm-right{transform-box:fill-box;transform-origin:50% 10%}.figure.fig-gesture-salute .fig-arm-right{animation:1.4s ease-in-out fig-salute}.figure.fig-gesture-startle .fig-body{animation:.4s ease-out 2 pet-hop}.figure .flame.outer,.figure-item-icon .flame.outer{fill:#ff9f1c}.figure .flame.inner,.figure-item-icon .flame.inner{fill:#ffe066}.figure .fig-flames{transform-box:fill-box;transform-origin:50% 100%;animation:.5s ease-in-out infinite alternate fig-flicker}.figure .fire-warm .fig-flames{animation-name:fig-flicker-small;transform:scale(.7)}.figure .fig-embers circle{fill:#ff7043;animation:1.6s ease-in-out infinite pet-twinkle}.figure .fig-embers circle:nth-child(2){animation-delay:.5s}.figure .fig-smoke-line{fill:none;stroke:#b0bec5;stroke-width:2.5px;stroke-linecap:round;opacity:.6}.figure .fig-banner{transform-box:fill-box;transform-origin:0;animation:1.6s ease-in-out infinite alternate fig-wave}.figure.fig-mood-dozing .fig-banner,.figure.fig-mood-dusty .fig-banner{opacity:.75;animation:none}.figure .fig-cobweb path{fill:none;stroke:#9e9e9e;stroke-width:.9px}.figure .fig-dust circle{fill:#a1887f;opacity:.55}.figure.fig-promote-before .fig-body{animation:1.2s ease-in-out both pet-glow}.figure.fig-promote-after .fig-body{animation:.7s cubic-bezier(.34,1.56,.64,1) both pet-pop}.figure.still *,.figure.still .fig-body{animation:none!important}@keyframes fig-salute{30%,75%{transform:rotate(-150deg)translate(4px)}}@keyframes fig-nod{50%{transform:rotate(3deg)translateY(2px)}}@keyframes fig-flicker{to{transform:scale(1.08,1.15)skew(-4deg)}}@keyframes fig-flicker-small{0%{transform:scale(.7)}to{transform:scale(.74,.8)skew(-3deg)}}@keyframes fig-wave{to{transform:skewY(-6deg)scaleX(.92)}}@media (prefers-reduced-motion:reduce){.figure *{animation:none!important}}.crest-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.crest{grid-template-columns:38px 1fr;align-items:center;gap:10px;display:grid}.crest-emoji{text-align:center;font-size:1.8rem}.welcome-steps{justify-content:center;gap:6px;display:flex}.welcome-steps span{background:var(--border);border-radius:3px;width:28px;height:6px}.welcome-steps span.on{background:var(--primary)}.welcome-choice{text-align:left;width:100%;font:inherit;color:var(--text);cursor:pointer;border:3px solid #0000;grid-template-columns:auto 1fr;align-items:center;gap:12px;display:grid}.welcome-choice.on{border-color:var(--primary)}.welcome-preview{align-items:flex-end;display:flex}.welcome-tag{border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:.78rem;font-weight:800}.welcome-tag.easy{background:var(--ok-bg);color:var(--ok)}.welcome-tag.care{color:#b25e00;background:#fff1dc}p.welcome-tag{align-self:center;margin:0}.figure .fig-companion{transform-box:fill-box;transform-origin:50% 100%;animation:2.6s ease-in-out infinite pet-breathe}.figure .fig-companion.asleep{opacity:.85;animation-duration:5s}.figure .fig-torch{animation-duration:.35s}.figure .fig-face,.figure .fig-headgear,.figure .fig-shield{transform-box:fill-box;transform-origin:50% 100%}.figure.fig-gesture-hop .fig-body{animation:.5s ease-out 2 pet-hop}.figure.fig-gesture-stretch .fig-body{animation:1.6s ease-in-out pet-reach}.figure.fig-gesture-yawn .fig-body{animation:1.6s ease-in-out pet-stretch}.figure.fig-gesture-look .fig-face{animation:1.6s ease-in-out pet-look}.figure.fig-gesture-wave .fig-arm-right{animation:1.6s ease-in-out fig-wave-arm}.figure.fig-gesture-giggle .fig-body{animation:.6s ease-in-out 2 pet-giggle}.figure.fig-gesture-dizzy .fig-body{animation:.5s ease-in-out 4 pet-dizzy}.figure.fig-gesture-hum .fig-body{animation:1.4s ease-in-out 2 pet-hum-sway}.figure.fig-gesture-butterfly .fig-face{animation:3s ease-in-out pet-follow}.figure.fig-gesture-cuddle .fig-headgear{animation:1.4s ease-in-out fig-helmet-fix}.figure.fig-gesture-cuddle .fig-arm-right{animation:1.4s ease-in-out fig-salute}.figure.fig-gesture-welcome .fig-body{animation:.9s ease-in-out 4 pet-hop}.figure.fig-gesture-welcome .fig-arm-right{animation:2s ease-in-out 2 fig-wave-arm}.figure.fig-gesture-paw .fig-arm-right{animation:.4s ease-out forwards fig-highfive}.figure.fig-gesture-goodnight .fig-body{animation:3s ease-in-out both pet-settle}.figure.fig-gesture-word .fig-body{animation:.6s ease-in-out pet-giggle}@keyframes fig-highfive{to{transform:rotate(-130deg)}}.figure.fig-gesture-fan .fig-body{animation:1.6s ease-in-out fig-crouch}.figure.fig-gesture-fan .fig-embers circle{fill:#ffb300;animation-duration:.4s}.figure .fig-sparks text{fill:#ff9800;font-size:9px}.figure.fig-special-legionaer .fig-shield{animation:2s ease-in-out fig-shieldwall}.figure.fig-special-legionaer .fig-body{animation:2s ease-in-out fig-crouch}.figure.fig-special-ritter .fig-arm-right{animation:2s ease-in-out fig-sword-up}.figure .poked-0 .fig-banner{animation:.15s ease-in-out 6 alternate fig-wave}.figure .poked-1 .fig-banner{animation:.16s ease-in-out 6 alternate fig-wave}.figure .poked-0 .fig-headgear{animation:.9s ease-in-out pet-hatfix-a}.figure .poked-1 .fig-headgear{animation:.9s ease-in-out pet-hatfix-b}.figure .poked-0 .fig-companion{animation:.4s ease-out 2 pet-hop}.figure .poked-1 .fig-companion{animation:.42s ease-out 2 pet-hop}@keyframes fig-wave-arm{20%,80%{transform:rotate(-160deg)}35%,65%{transform:rotate(-130deg)}50%{transform:rotate(-165deg)}}@keyframes fig-helmet-fix{25%{transform:rotate(-12deg)translateY(-2px)}60%{transform:rotate(5deg)}}@keyframes fig-shieldwall{25%,80%{transform:translate(26px,-6px)scale(1.15)}}@keyframes fig-crouch{25%,80%{transform:scale(1.04,.95)}}@keyframes fig-sword-up{20%,85%{transform:rotate(-178deg)}}.pet .pet-seal-spot{opacity:.35}.pet .pet-arm-left{transform-box:fill-box;transform-origin:70% 90%}.pet.special-robbe .pet-arm-left{animation:.35s ease-in-out 6 alternate pet-clap-left}.pet.special-robbe .pet-arm-right{animation:.35s ease-in-out 6 alternate pet-clap-right}@keyframes pet-clap-left{to{transform:rotate(38deg)}}@keyframes pet-clap-right{to{transform:rotate(-38deg)}}.figure.fig-special-musketier .fig-headgear{animation:2s ease-in-out fig-hatsweep}.figure.fig-special-musketier .fig-body{animation:2s ease-in-out fig-crouch}.figure.fig-special-seefahrer .fig-face{animation:2s ease-in-out pet-look}.figure.fig-special-pirat .fig-arm-right{animation:1.6s ease-in-out fig-wave-arm}.figure.fig-special-zauberer .fig-arm-left,.figure.fig-special-astronaut .fig-body{transform-box:fill-box}.figure.fig-special-zauberer .fig-arm-left{transform-origin:50% 10%;animation:2s ease-in-out fig-staff-up}.figure.fig-special-astronaut .fig-body{animation:2.2s ease-in-out fig-float}.figure.fig-special-samurai .fig-head{transform-box:fill-box;transform-origin:50% 100%;animation:2s ease-in-out fig-bow-head}.figure.fig-special-samurai .fig-body{animation:2s ease-in-out fig-crouch}.figure.fig-special-ninja .fig-body{animation:2.2s ease-in-out fig-vanish}.figure .pet-smoke circle,.figure .pet-sparkles text{transform-box:fill-box;transform-origin:50%}.figure .pet-smoke circle{fill:#cfd8dc;animation:1.4s ease-out both pet-smoke}.figure .pet-sparkles text{fill:#ffd34d;animation:.8s ease-in-out infinite pet-twinkle}@keyframes fig-hatsweep{25%,70%{transform:translate(-22px,26px)rotate(-50deg)}}@keyframes fig-staff-up{20%,80%{transform:rotate(150deg)}}@keyframes fig-float{40%,70%{transform:translateY(-20px)rotate(-6deg)}}@keyframes fig-bow-head{25%,75%{transform:translateY(8px)scaleY(.94)}}@keyframes fig-vanish{20%{opacity:0}70%{opacity:0;transform:translate(26px)}to{opacity:1}}.pet .pet-basket{fill:#c8955a;stroke:#a8743e;stroke-width:1.5px}.pet .pet-basket-rim{fill:#a8743e}.pet .pet-basket-weave{fill:none;stroke:#a8743e;stroke-width:1.4px;opacity:.8}.pet .pet-blanket{fill:#ffd6e8;stroke:#f3a7c5;stroke-width:1px}.figure-name{margin:0}.stage-backdrop{position:relative;overflow:hidden}.stage-backdrop>.backdrop{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.stage-backdrop>:not(.backdrop){z-index:1;position:relative}.backdrop .bd-sky{fill:var(--accent-soft)}.backdrop .bd-sun{fill:#ffe9a8}.backdrop .bd-moon{fill:#fff6d0}.backdrop .bd-star{fill:#fff6d0;animation:2.4s ease-in-out infinite pet-twinkle}.backdrop .bd-hill.far{fill:color-mix(in srgb, var(--ok-bg) 70%, var(--accent-soft))}.backdrop .bd-hill.near{fill:var(--ok-bg)}.backdrop .bd-flower path{stroke:#7cc48a;stroke-width:1.6px}.backdrop .bd-flower circle{fill:color-mix(in srgb, var(--primary) 45%, #fff)}.backdrop .bd-flower .bd-flower-heart{fill:#ffd34d}.backdrop .bd-letter{fill:var(--primary);opacity:0;font:700 15px sans-serif;animation:7s ease-in-out infinite bd-drift}@keyframes bd-drift{0%{opacity:0;transform:translateY(16px)}30%,70%{opacity:.35}to{opacity:0;transform:translateY(-26px)}}.backdrop.sky-evening .bd-sky{fill:color-mix(in srgb, #ffb38a 35%, var(--accent-soft))}.backdrop.sky-evening .bd-sun{fill:#ffb347}.backdrop.sky-night .bd-sky{fill:#2c2a4a}.backdrop.sky-night .bd-hill.far,.backdrop.sky-night .bd-mountain{fill:#3d3a63}.backdrop.sky-night .bd-hill.near{fill:#34507a}.backdrop.season-winter .bd-hill.far,.backdrop.season-winter .bd-hill.near{fill:#f4f7fb}.backdrop.season-autumn .bd-hill.far{fill:color-mix(in srgb, #f4b860 35%, var(--accent-soft))}.backdrop.season-autumn .bd-hill.near{fill:color-mix(in srgb, #f6c47a 40%, var(--ok-bg))}.backdrop .bd-particles text{font-size:12px;animation:linear infinite bd-fall}.backdrop .bd-particles.spring text{fill:#ff9ec4}.backdrop .bd-particles.autumn text{fill:#e0803a}.backdrop .bd-particles.winter text{fill:#fff;stroke:#b0bec5;stroke-width:.4px}@keyframes bd-fall{0%{transform:translate(0)rotate(0)}to{transform:translate(-30px,290px)rotate(240deg)}}.backdrop .bd-mountain{fill:color-mix(in srgb, var(--primary) 18%, var(--accent-soft))}.backdrop .bd-path{fill:none;stroke:#e9d4b0;stroke-width:16px;stroke-linecap:round;opacity:.9}.backdrop .bd-stone{fill:#f4f1ea;stroke:#cfc6b5;stroke-width:.8px}.backdrop .bd-stone-cap{fill:#ffd34d}.backdrop .bd-sea{fill:#7cc7e8}.backdrop .bd-wave{fill:none;stroke:#fff;stroke-width:2px;opacity:.7}.backdrop .bd-sand{fill:#f3dfb0}.backdrop .bd-trunk{fill:none;stroke:#9a6b3c;stroke-width:7px;stroke-linecap:round}.backdrop .bd-leaf{fill:#5cb85c}.backdrop .bd-rainbow{fill:none;stroke-width:14px;opacity:.5}.backdrop .bd-rainbow.r1{stroke:#ff8fa3}.backdrop .bd-rainbow.r2{stroke:#ffd34d}.backdrop .bd-rainbow.r3{stroke:#7cd3a8}.backdrop .bd-cloud ellipse,.backdrop .bd-cloud-floor{fill:#fff}.backdrop.scene-kulisse-eis .bd-sky{fill:#cfe8f7}.backdrop.scene-kulisse-eis.sky-evening .bd-sky{fill:#f3c9d6}.backdrop.scene-kulisse-eis.sky-night .bd-sky{fill:#1f2d4f}.backdrop .bd-ice-far{fill:#e3f0fa;stroke:#b7d4ea;stroke-width:1.5px;stroke-linejoin:round}.backdrop.sky-night .bd-ice-far{fill:#3a4d75;stroke:#56709e}.backdrop .bd-ice-cap{fill:#fff}.backdrop .bd-ice-water{fill:#4f9fd0}.backdrop.sky-night .bd-ice-water{fill:#23477a}.backdrop .bd-iceberg{fill:#f4fbff;stroke:#9cc7e4;stroke-width:1.5px;stroke-linejoin:round;transform-box:fill-box;transform-origin:50% 100%;animation:4s ease-in-out infinite bd-bob}.backdrop .bd-iceberg.small{animation-delay:1.5s}@keyframes bd-bob{50%{transform:translateY(2px)rotate(-1.5deg)}}.backdrop .bd-snow{fill:#f8fbff}.backdrop.sky-night .bd-snow{fill:#c9d6ea}.backdrop .bd-snow-shadow{fill:none;stroke:#d6e6f3;stroke-width:3px;stroke-linecap:round}.backdrop .bd-igloo path{fill:#fdfeff;stroke:#a9cbe3;stroke-width:1.5px}.backdrop .bd-igloo .bd-igloo-lines{fill:none;stroke:#c3dbed}.backdrop .bd-igloo .bd-igloo-door{fill:#5a7fa3;stroke:none}.backdrop .bd-aurora{fill:none;stroke-width:14px;stroke-linecap:round;opacity:0}.backdrop.sky-night .bd-aurora{opacity:.45;animation:6s ease-in-out infinite alternate bd-aurora}.backdrop .bd-aurora.a1{stroke:#6ff0b4}.backdrop .bd-aurora.a2{stroke:#8fd3ff;animation-delay:2s}@keyframes bd-aurora{to{opacity:.15;transform:translateY(6px)}}.backdrop.scene-kulisse-riff .bd-sky{fill:#5bb7e0}.backdrop .bd-seabed{fill:#f0d9a0}.backdrop .bd-seaweed{fill:none;stroke:#3fa66a;stroke-width:6px;stroke-linecap:round;transform-box:fill-box;transform-origin:50% 100%;animation:3s ease-in-out infinite pet-sway}.backdrop .bd-coral path{fill:none;stroke:#ff7a8a;stroke-width:6px;stroke-linecap:round}.backdrop .bd-bubble{fill:none;stroke:#e6f7ff;stroke-width:1.5px;animation:5s linear infinite bd-rise}@keyframes bd-rise{0%{opacity:.9;transform:translateY(0)}to{opacity:0;transform:translateY(-220px)}}.backdrop.scene-kulisse-bibliothek .bd-sky{fill:#f6ead8}.backdrop .bd-shelf{fill:#9a6b3c}.backdrop .bd-book.b0{fill:#e57373}.backdrop .bd-book.b1{fill:#64b5f6}.backdrop .bd-book.b2{fill:#81c784}.backdrop .bd-book.b3{fill:#ffd54f}.backdrop .bd-rug{fill:color-mix(in srgb, var(--primary) 35%, #fff)}.backdrop .bd-temple,.backdrop .bd-column,.backdrop .bd-temple-roof{fill:#f7f3ea;stroke:#d8cfbd;stroke-width:1px}.backdrop .bd-cypress{fill:#4f8a4f}.backdrop .bd-castle rect{fill:#c9c4bd}.backdrop .bd-gate{fill:#6d4c2e}.backdrop .bd-flagpole{stroke:#6d4c2e;stroke-width:2px}.backdrop .bd-castle-flag{fill:var(--primary)}.backdrop .bd-fjord-rock{fill:#7d8a99}.backdrop .bd-longship .hull{fill:#8d5a2b}.backdrop .bd-longship .mast,.backdrop .bd-mast{stroke:#6d4c2e;stroke-width:4px}.backdrop .bd-longship .sail{fill:#f4efe4}.backdrop .bd-longship .stripes{stroke:#d64545;stroke-width:5px}.backdrop .bd-deck{fill:#b98a5a}.backdrop .bd-plank{stroke:#8d6440;stroke-width:2px}.backdrop .bd-rail{stroke:#6d4c2e;stroke-width:6px}.backdrop .bd-sail-big{fill:#fbf7ee;stroke:#cfc2a8;stroke-width:1.5px}.backdrop .bd-rope{stroke:#8d6440;stroke-width:1.5px}.backdrop .bd-torii path,.backdrop .bd-torii rect{fill:#d64545}.backdrop .bd-pond{fill:#7cc7e8}.backdrop .bd-blossom{fill:#ffc4d8}.backdrop.scene-kulisse-mond .bd-sky{fill:#1d1b38}.backdrop .bd-earth{fill:#4fa3e0}.backdrop .bd-earth-land{fill:#66bb6a}.backdrop .bd-moon-ground{fill:#c9ccd3}.backdrop .bd-crater{fill:#aeb2bb}.backdrop .bd-station rect,.backdrop .bd-station circle{fill:#eceff1;stroke:#90a4ae;stroke-width:1.5px}.backdrop .bd-station path{stroke:#ffb347;stroke-width:6px}@media (prefers-reduced-motion:reduce){.backdrop .bd-letter,.backdrop .bd-star,.backdrop .bd-particles text,.backdrop .bd-iceberg,.backdrop .bd-aurora,.backdrop .bd-bubble,.backdrop .bd-seaweed{animation:none}}.scene-frame{border-radius:18px;width:100%}.scene-thumb{border-radius:12px;place-items:end center;width:84px;height:72px;margin:0 auto;display:grid}.figure .fig-lantern-glow{animation:1.6s ease-in-out infinite pet-twinkle}.admin-search{margin-bottom:8px}.admin-search input{width:100%}.stat-tile.link-tile{color:var(--text);text-decoration:none}.stat-tile.pet-tile.link-tile>span:after{content:" ›";color:var(--primary);font-weight:700}.narrow-content{width:100%;max-width:40rem;margin-inline:auto}.stat-tile.warn{background:var(--bad-bg)}.row.wrap{flex-wrap:wrap}.topbar.parent-topbar{flex-wrap:wrap;row-gap:8px}.topbar.parent-topbar h1{flex:12rem}.reminder-rule{background:var(--soft);border-radius:14px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.day-chips{flex-wrap:wrap;gap:4px;display:flex}.day-chip{border:1px solid var(--border);min-width:36px;max-width:48px;min-height:36px;color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:999px;flex:1 0 36px;padding:0;font-size:.9rem}.day-chip.on{background:var(--primary);border-color:var(--primary);color:var(--primary-text);font-weight:700}.reminder-rule input[type=time]{flex:none;width:auto;min-width:7.5rem}.next-treat{margin:4px 0 0}.next-treat.close strong{color:var(--primary)}.next-treat .off,.treat-tiers .off{filter:grayscale();opacity:.35}.treat-celebration{flex-direction:column;align-items:center;padding:8px 0;display:flex;position:relative}.treat-row{justify-content:center;gap:6px;font-size:2.6rem;display:flex}.treat-pop{opacity:0;animation:.45s cubic-bezier(.34,1.56,.64,1) forwards treat-pop;display:inline-block;transform:scale(.2)}.treat-pop.newest{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards treat-pop,1.2s ease-in-out .9s 2 treat-wiggle}.level-3 .treat-pop.newest{filter:drop-shadow(0 0 10px var(--accent-border))}.level-4{background:radial-gradient(circle,#ffd75a73 0%,#0000 70%);border-radius:20px;animation:1.6s ease-in-out infinite alternate treat-glow}.level-4 .treat-pop{filter:drop-shadow(0 0 8px #ffc400e6)}.treat-crown{font-size:2.2rem;animation:.8s cubic-bezier(.34,1.56,.64,1) .8s both treat-crown}@keyframes treat-pop{to{opacity:1;transform:scale(1)}}@keyframes treat-wiggle{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(-12deg)scale(1.15)}75%{transform:rotate(12deg)scale(1.15)}}@keyframes treat-glow{0%{box-shadow:0 0 #ffc40000}to{box-shadow:0 0 36px #ffc4008c}}@keyframes treat-crown{0%{opacity:0;transform:translateY(-30px)scale(.4)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.treat-pop,.treat-pop.newest,.treat-crown,.level-4{opacity:1;animation:none;transform:none}}.goal-note{margin:4px 0 0}.mail-body{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem}.mail-preview>.stack{margin-top:12px}.mail-preview-body{white-space:pre-wrap;overflow-wrap:anywhere;background:var(--soft);border-radius:12px;margin:0;padding:12px;font-family:inherit}.mail-log{margin:0;padding:0;list-style:none}.mail-log li{border-bottom:1px solid var(--border);flex-direction:column;gap:2px;padding:8px 0;display:flex}.mail-log li.failed strong{color:var(--due-text)}.feedback.done{opacity:.6}.feedback-text{white-space:pre-wrap;margin:0}.feedback-context{gap:4px;margin:8px 0 0;display:grid}.feedback-context div{grid-template-columns:9rem minmax(0,1fr);gap:8px;display:grid}.feedback-context dt{color:var(--muted)}.feedback-context dd{overflow-wrap:anywhere;margin:0}.test-ribbon{z-index:1000;text-align:center;letter-spacing:.2em;color:#fff;pointer-events:none;background:#e8590c;width:130px;padding:4px 0;font-weight:800;position:fixed;bottom:14px;right:-34px;transform:rotate(-45deg);box-shadow:0 2px 6px #00000040}.test-env-card{border:2px dashed #e8590c}.notice-card{border:2px solid var(--accent-border);background:var(--accent-soft)}.card-scene{border-radius:18px;flex:none;place-items:end center;width:150px;height:150px;display:grid}.todo-counts{text-align:center;grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.todo-counts>div{background:var(--soft);border-radius:14px;padding:10px 4px}.todo-counts strong{font-size:1.4rem;display:block}.todo-counts span{color:var(--muted);font-size:.9rem}.learner-head{flex-wrap:nowrap}.learner-head .grow{flex:1;min-width:0}.settings-button{border-radius:50%;flex-shrink:0;width:48px;height:48px;padding:0;font-size:1.4rem}.settings-list{padding:0;overflow:hidden}.settings-row{min-height:52px;color:inherit;align-items:center;gap:10px;padding:10px 16px;text-decoration:none;display:flex}.settings-row+.settings-row{border-top:1px solid var(--soft)}.settings-row:hover{background:var(--soft)}.settings-value{text-align:right;margin-left:auto}.settings-row .chevron{color:var(--muted);font-size:1.3rem}details.report-compact{text-align:center}details.report-compact>summary{color:var(--muted);font-size:.9rem;display:inline-block}details.report-compact[open]{text-align:left}.bug-button{left:max(10px, env(safe-area-inset-left));bottom:max(10px, env(safe-area-inset-bottom));z-index:80;background:var(--card);width:40px;height:40px;box-shadow:var(--shadow);opacity:.55;cursor:pointer;border:none;border-radius:50%;font-size:1.2rem;position:fixed}.bug-button:hover,.bug-button:focus-visible{opacity:1}.report-sheet{width:min(100%,440px);max-height:calc(100vh - 48px);overflow-y:auto}.report-images{flex-wrap:wrap;gap:10px;display:flex}.report-images figure{justify-items:center;margin:0;display:grid}.report-images img{object-fit:cover;object-position:top;width:96px;max-height:180px;box-shadow:var(--shadow);border-radius:10px}.report-attach{align-self:flex-start}.tag{background:var(--tag-bg);color:var(--tag-text);vertical-align:middle;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600;display:inline-block}.friend-list,.friend-reactions{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.friend-row{background:var(--soft);border-radius:16px;min-width:0;padding:12px}.friend-row.pending{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.reaction-buttons{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.reaction-buttons .btn{min-height:44px}.friend-reactions li{align-items:center;gap:10px;display:flex}.friend-reactions li.unread{font-weight:600}.friend-reactions .muted{margin-left:auto}.reaction-emoji{font-size:1.5rem}.friends-strip{color:inherit;text-decoration:none;display:block}.friends-avatars{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.friend-avatar{display:inline-flex;position:relative}.friend-check{background:var(--ok);color:#fff;border:2px solid var(--card);border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:grid;position:absolute;bottom:-4px;right:-4px}.friend-code{text-align:center;gap:8px}.friend-code-text{letter-spacing:.12em;font-variant-numeric:tabular-nums;font-size:1.8rem}.qr-code{border-radius:12px;max-width:100%;height:auto}.code-input{text-transform:uppercase;letter-spacing:.1em;flex:1;min-width:0}.friend-row>.row{flex-wrap:nowrap}.friend-who{flex:1;min-width:0}.guest-tag{white-space:nowrap;background:var(--card);color:var(--text);pointer-events:none;border-radius:999px;padding:1px 8px;font-size:.72rem;font-weight:600;position:absolute;top:-1.4em;left:50%;transform:translate(-50%);box-shadow:0 2px 6px #0000001f}.goal-bar{grid-template-columns:minmax(60px,30%) 1fr auto;align-items:center;gap:10px;display:grid}.goal-done{background:var(--ok-bg)}@keyframes villain-bob{50%{transform:translateY(-6px)rotate(-4deg)}}.live-invite{left:16px;right:16px;top:calc(env(safe-area-inset-top,0px) + 12px);z-index:50;border:2px solid var(--accent-border);max-width:480px;margin:0 auto;animation:.35s ease-out live-in;position:fixed;box-shadow:0 10px 30px #0000002e}@keyframes live-in{0%{opacity:0;transform:translateY(-30px)}}.friend-card{background:var(--soft);border-radius:18px;flex-direction:column;gap:10px;min-width:0;padding:12px;display:flex}.friend-head{align-items:center;gap:12px;min-width:0;display:flex}.friend-head .friend-who{flex-direction:column;gap:2px;display:flex}.friend-mini{flex-shrink:0;gap:6px;display:flex}.friend-mini .pet-friend{background:var(--card);border-radius:18px;place-items:center;width:72px;height:72px;display:grid;overflow:hidden}.friend-mini .pet-friend strong,.friend-mini .pet-friend .muted,.friend-mini .pet-bubble{display:none}.online-dot{width:10px;height:10px;box-shadow:0 0 0 2px var(--card);vertical-align:middle;background:#22c55e;border-radius:50%;margin-right:6px;display:inline-block}.friend-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.friend-card .reaction-buttons{gap:6px}.reaction-btn{border:1px solid var(--border);background:var(--card);cursor:pointer;border-radius:50%;place-items:center;width:44px;height:44px;font-size:1.3rem;line-height:1;display:grid}.reaction-btn:active:not(:disabled){transform:scale(.92)}.reaction-btn:disabled{opacity:.4;cursor:default}.friend-more{flex-wrap:wrap;gap:6px;display:flex}.chip-btn{border:1px solid var(--border);background:var(--card);min-height:36px;color:var(--text);font:inherit;cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:0 12px;font-size:.9rem;font-weight:600;text-decoration:none;display:inline-flex}.chip-btn:disabled{opacity:.5}.goal-choose{flex-basis:100%}.friend-card .friend-settings summary{min-height:32px}.show-page{--show-night:#1d1640;--show-night-2:#2c1f5e;--show-velvet:#b3243c;--show-gold:#ffd166;--show-mine:#1fb5a6;--show-rival:#c2367a;--show-ink:#2b2d42}.show{flex-direction:column;gap:12px;display:flex}.show-marquee{background:var(--show-velvet);color:#fff;text-align:center;border-radius:20px;padding:30px 22px;position:relative;box-shadow:inset 0 -6px #0000002e}.show-bulbs{pointer-events:none;background:radial-gradient(circle, var(--show-gold) 0 3px, transparent 3.5px) 0 0 / 18px 18px repeat-x, radial-gradient(circle, var(--show-gold) 0 3px, transparent 3.5px) 0 100% / 18px 18px repeat-x;filter:drop-shadow(0 0 3px #ffd166e6);border-radius:15px;animation:1.6s steps(2,end) infinite show-bulbs;position:absolute;inset:6px}@keyframes show-bulbs{50%{opacity:.55}}.show-marquee h2{text-wrap:balance;letter-spacing:.02em;color:var(--show-gold);text-shadow:0 2px #7a1328,0 0 14px #ffd1668c;margin:0;font-size:1.7rem;font-weight:900;line-height:1.15}.show-marquee p{opacity:.9;margin:4px 0 0;font-weight:700}.show-stage{color:#fff;background:linear-gradient(90deg, var(--show-velvet) 0 10px, transparent 10px calc(100% - 10px), var(--show-velvet) calc(100% - 10px)), linear-gradient(180deg, var(--show-night) 0%, var(--show-night-2) 100%);border-radius:20px;grid-template-columns:1fr auto 1fr;align-items:end;gap:6px;padding:18px 10px 0;display:grid;position:relative;overflow:hidden}.show-spot{pointer-events:none;background:radial-gradient(at 50% 0,#fff0c847,#0000 65%);width:55%;height:120%;position:absolute;top:-20px}.show-spot.left{left:-6%;transform:rotate(10deg)}.show-spot.right{right:-6%;transform:rotate(-10deg)}.show-podium{flex-direction:column;align-items:center;min-width:0;display:flex;position:relative}.show-actors{justify-content:center;align-items:flex-end;min-height:112px;display:flex;position:relative}.show-plate{background:var(--show-mine);border-radius:12px 12px 0 0;flex-direction:column;align-items:center;gap:4px;width:100%;padding:8px 6px 10px;display:flex;box-shadow:inset 0 4px #ffffff40}.show-podium.rival .show-plate{background:var(--show-rival)}.show-podium.winner .show-plate{padding-top:18px}.show-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:.8rem;font-weight:800;overflow:hidden}.show-led{min-width:4.2ch;color:var(--show-gold);font-variant-numeric:tabular-nums;text-align:center;text-shadow:0 0 8px #ffd166cc;background:#120c2b;border-radius:8px;padding:2px 10px;font-size:1.35rem;font-weight:900}.show-factor{opacity:.9;font-size:.7rem;font-weight:700}.show-status{background:#ffffff24;border-radius:999px;padding:2px 8px;font-size:.7rem;font-weight:700;position:absolute;top:-6px;right:0}.show-vs{background:var(--show-gold);width:40px;height:40px;color:var(--show-velvet);border-radius:50%;align-self:center;place-items:center;margin-bottom:26px;font-size:.9rem;font-weight:900;display:grid;box-shadow:0 0 0 3px #fff3}.show-ghost{opacity:.7;filter:saturate(.6)drop-shadow(0 0 10px #c8dcffcc)}.show-ghost .pet-friend strong,.show-ghost .pet-friend .muted,.show-friend .pet-friend strong,.show-friend .pet-friend .muted{display:none}.show-pips{justify-content:space-between;gap:4px;margin:0;padding:0;list-style:none;display:flex}.show-pips li{background:var(--soft);height:22px;color:var(--show-velvet);border-radius:6px;flex:1;place-items:center;font-size:.75rem;font-weight:900;display:grid}.show-pips li.special{background:#fff1c9}.show-pips li.now{outline:3px solid var(--show-gold);outline-offset:1px}.show-pips li.right{background:var(--show-mine);color:#fff}.show-pips li.wrong{background:var(--show-rival);color:#fff}.show-card{background:var(--card);border:3px solid var(--show-night);color:var(--text);border-radius:18px;padding:18px 16px;position:relative}.show-card.question{text-align:center;flex-direction:column;align-items:center;gap:12px;padding-top:22px;display:flex}.show-card.question strong{font-size:1.6rem;line-height:1.2}.show-card.special{border-color:var(--show-gold);box-shadow:0 0 0 4px #ffd16655}.show-banner{white-space:nowrap;background:var(--show-gold);color:var(--show-velvet);border-radius:999px;padding:3px 12px;font-size:.78rem;font-weight:900;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.show-fuse{background:var(--soft);border-radius:999px;width:100%;height:8px;overflow:hidden}.show-fuse span{background:linear-gradient(90deg, var(--show-velvet), var(--show-gold));border-radius:999px;height:100%;transition:width .1s linear;display:block}.show-buzzers{grid-template-columns:1fr 1fr;gap:10px;display:grid}.show-buzzer{background:var(--card);min-height:68px;color:var(--text);font:inherit;text-align:left;overflow-wrap:anywhere;box-shadow:0 4px 0 var(--bz), 0 0 0 2px var(--bz) inset;cursor:pointer;--bz:#3f6fd8;border:0;border-radius:16px;align-items:center;gap:10px;padding:10px 12px;font-weight:700;display:flex}.show-buzzer.b1{--bz:#e0a800}.show-buzzer.b2{--bz:#1fb5a6}.show-buzzer.b3{--bz:#c2367a}.show-buzzer:active:not(:disabled){box-shadow:0 1px 0 var(--bz), 0 0 0 2px var(--bz) inset;transform:translateY(3px)}.show-key{background:var(--bz);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:30px;height:30px;font-weight:900;display:grid}.show-buzzer:disabled{cursor:default;opacity:.45}.show-buzzer.chosen:disabled{opacity:1}.show-buzzer.right:disabled{opacity:1;background:var(--ok-bg);--bz:var(--ok)}.show-buzzer.wrong:disabled{opacity:1;background:var(--due-bg);--bz:var(--due-text)}.show-note{text-align:center;min-height:1.4em;margin:0;font-size:.9rem;font-weight:600}.show-count{color:var(--show-velvet);font-size:3.6rem;font-weight:900;line-height:1;display:block}.show-final{font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:900}.show-card.result.won{border-color:var(--show-mine)}.show-rules{margin:0;font-size:.9rem}.show-wanted{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin:0;padding:0;list-style:none;display:grid}.wanted{background:var(--card);border:2px solid var(--border);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:4px;padding:10px 10px 12px;display:flex}.wanted-portrait{background:linear-gradient(180deg, var(--show-night) 0%, var(--show-night-2) 100%);border-radius:12px;place-items:center;width:100%;padding-top:6px;display:grid;position:relative}.wanted-stamp{border:2px solid var(--show-mine);color:var(--show-mine);background:#fffd;border-radius:6px;padding:1px 8px;font-size:.72rem;font-weight:900;position:absolute;bottom:10px;right:6px;transform:rotate(-12deg)}.wanted-level{color:var(--show-velvet);letter-spacing:1px;font-size:.85rem}.wanted-level .off{opacity:.2}.wanted-quote{color:var(--muted);font-size:.8rem}.wanted-actions{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:4px;display:flex}.wanted.locked{opacity:.7}.show-ally{background:var(--soft);border-radius:16px;align-items:center;gap:10px;padding:8px 12px;display:flex}.show-ally p{margin:0}.show-friends{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.show-friends li{align-items:center;gap:10px;display:flex}.quiz-char .qv-shadow{fill:#00000040}.quiz-char .qv-body{transform-origin:60px 132px}.qv-idle .qv-body{animation:2.6s ease-in-out infinite qv-bob}.qv-think .qv-body{animation:1.8s ease-in-out infinite qv-think}.qv-happy .qv-body{animation:.5s ease-out 2 qv-hop}.qv-sad .qv-body{filter:saturate(.5);transition:transform .5s,filter .5s;transform:translateY(6px)scaleY(.94)rotate(-4deg)}.qv-locked .qv-body{filter:brightness(0)opacity(.45)}.qv-locked .qv-letters,.qv-locked .qv-speed{display:none}.qv-idle .qv-letters,.qv-think .qv-letters{animation:3s ease-in infinite qv-drip}@keyframes qv-bob{50%{transform:translateY(-4px)}}@keyframes qv-think{50%{transform:rotate(-6deg)}}@keyframes qv-hop{40%{transform:translateY(-14px)scale(1.04)}}@keyframes qv-drip{80%{opacity:.2;transform:translateY(8px)}}@media (prefers-reduced-motion:reduce){.show-bulbs,.quiz-char .qv-body,.quiz-char .qv-letters{animation:none!important}}.friend-settings-body{background:var(--card);border-radius:14px;flex-direction:column;gap:10px;padding:10px 12px;display:flex}.friend-settings-body p{margin:0}.share-toggles{flex-wrap:wrap;gap:6px;display:flex}.share-toggle{border:1.5px dashed var(--border);min-height:36px;color:var(--muted);font:inherit;cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-size:.88rem;font-weight:600}.share-toggle.on{border:1.5px solid var(--ok-border);background:var(--ok-bg);color:var(--text)}.share-toggle:disabled{opacity:.5;cursor:default}.friend-links{flex-wrap:wrap;gap:2px 14px;display:flex}.friend-links .btn.link{padding-left:0;padding-right:0}.danger-link{color:var(--due-text)!important}.goal-choose{background:var(--card);border-radius:14px;flex-direction:column;flex-basis:100%;align-items:flex-start;gap:8px;padding:10px 12px;display:flex}.goal-options{grid-template-columns:repeat(3,1fr);gap:8px;width:100%;display:grid}.goal-option{border:2px solid var(--border);background:var(--soft);color:var(--text);font:inherit;cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:0;padding:10px 4px;display:flex}.goal-option strong{font-size:1.6rem;line-height:1.1}.goal-option:active:not(:disabled){border-color:var(--primary);transform:scale(.97)}.game-grid.big .game-tile:first-child{flex-direction:row;grid-column:1/-1;align-items:center;gap:14px;padding:16px}.game-grid.big .game-tile:first-child .game-emoji{font-size:2.6rem}.game-grid.big .game-tile:first-child strong{font-size:1.2rem}.all-games{justify-content:center;width:100%}.game-text{flex-direction:column;gap:2px;display:flex}.choice-q{flex-direction:column;gap:10px;display:flex}.choice-prompt{background:var(--card);text-align:center;border-radius:16px;padding:14px;font-size:1.4rem;display:block}.choice-q.compact .choice-prompt{padding:8px;font-size:1.15rem}.choice-options{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choice-option{border:2px solid var(--border);background:var(--card);min-height:56px;color:var(--text);font:inherit;overflow-wrap:anywhere;cursor:pointer;border-radius:14px;padding:8px 10px;font-weight:700}.choice-q.compact .choice-option{min-height:46px;font-size:.92rem}.choice-option:active:not(:disabled){transform:scale(.97)}.choice-option.right{border-color:var(--ok-border);background:var(--ok-bg)}.choice-option.wrong{border-color:var(--due-text);background:var(--due-bg)}.choice-option:disabled:not(.right):not(.wrong){opacity:.55}.page.tug-two{padding-top:max(8px, env(safe-area-inset-top));padding-bottom:max(8px, env(safe-area-inset-bottom))}.two-player{grid-template-rows:1fr auto 1fr;gap:8px;min-height:calc(100dvh - 24px);display:grid}.two-player .half{flex-direction:column;justify-content:flex-end;display:flex}.two-player .half.top{transform:rotate(180deg)}.ag-modes{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;display:grid}.ag-mode{border:2px solid var(--border);background:var(--soft);color:var(--text);font:inherit;cursor:pointer;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:10px;font-weight:700;display:flex}.ag-mode.two{border-style:dashed}.ag-mode-emoji{font-size:2.4rem;line-height:1.4}.tug-won{border:3px solid var(--ok-border)}.tug-scene{background:linear-gradient(#bfe7ff 0%,#e6f6ff 60%,#8fd18a 60%,#6dbb68 100%);border-radius:18px;grid-template-columns:auto 1fr auto;align-items:end;gap:4px;padding:10px 8px 6px;display:grid}.tug-rope{height:60px;position:relative}.tug-line{background:repeating-linear-gradient(90deg,#a0703f 0 8px,#c99a63 8px 16px);border-radius:3px;height:6px;position:absolute;top:30px;left:-14px;right:-14px}.tug-mid{opacity:.8;background:#fff;width:3px;position:absolute;top:8px;bottom:0;left:50%}.tug-flag{background:#e63946;border-radius:3px;width:14px;height:22px;margin-left:-7px;transition:left .35s cubic-bezier(.3,1.4,.6,1);position:absolute;top:18px}.tug-scene.pull-a .tug-side.a,.tug-scene.pull-b .tug-side.b{animation:.35s ease-out tug-heave}@keyframes tug-heave{50%{transform:translateX(var(--heave,-8px)) rotate(-4deg)}}.tug-side.b{--heave:8px}.bridge-scene{background:linear-gradient(#bfe7ff 0%,#e8f7ff 100%);border-radius:18px;height:200px;position:relative;overflow:hidden}.bridge-bank{background:linear-gradient(#7cc46d 0 12px,#a0703f 12px);width:18%;height:58%;position:absolute;bottom:0}.bridge-bank.left{border-radius:0 14px 0 0;left:0}.bridge-bank.right{border-radius:14px 0 0;right:0}.bridge-deck{gap:2px;height:12px;display:flex;position:absolute;bottom:58%;left:18%;right:18%}.bridge-plank{border:1px dashed #a0703f55;border-radius:2px;flex:1}.bridge-plank.on{background:#c99a63;border:0;animation:.3s ease-out plank-in;box-shadow:inset 0 -3px #8a5a2b}@keyframes plank-in{0%{opacity:0;transform:translateY(-20px)}}.bridge-water{background:linear-gradient(#4cc9f0cc,#3f6fd8dd);transition:height .2s linear;position:absolute;bottom:0;left:0;right:0}.bridge-walker{position:absolute;bottom:58%;left:2%}.bridge-scene.done .bridge-walker{animation:2.4s ease-in-out forwards bridge-walk}@keyframes bridge-walk{to{left:80%}}.bridge-scene.lost .bridge-walker{filter:saturate(.4)}.gap-top{align-items:center;gap:10px;display:flex}.gap-score{font-variant-numeric:tabular-nums;font-size:1.6rem;font-weight:900}.gap-score small{color:var(--muted);font-size:.8rem;font-weight:600}.gap-streak{font-weight:800}.gap-rival{background:var(--soft);border-radius:999px;align-items:center;gap:6px;margin-left:auto;padding:4px 10px;display:flex}.gap-rival-stacks{align-items:flex-end;gap:2px;height:22px;display:flex}.gap-rival-board{background:#1f2b4d;border-radius:3px;grid-template-columns:repeat(5,5px);grid-auto-rows:4px;gap:1px;padding:2px;display:grid}.gap-rival-board span.c-w{background:#f2c46d}.gap-rival-board span.c-m{background:#5aa9e6}.gap-rival-board span.c-j{background:#8a8f9c}.gap-rival-stacks span{background:var(--due-text);border-radius:2px;width:5px;min-height:2px}.gap-play{-webkit-user-select:none;user-select:none}.gap-combo{color:#fff;background:#ff8a3d;border-radius:999px;padding:2px 10px;font-weight:900;animation:.35s ease-out gap-bump}.gap-side{gap:8px;margin-left:auto;display:flex}.gap-rival+.gap-side,.gap-side+.gap-rival{margin-left:0}.gap-mini{border:2px dashed var(--border);background:var(--card);min-width:70px;color:var(--text);font:inherit;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:4px 6px;display:flex}button.gap-mini{border-color:var(--accent-border);cursor:pointer}button.gap-mini:disabled{opacity:.55}.gap-mini small{color:var(--muted);font-size:.62rem}.gap-mini-stack{flex-direction:column;gap:2px;width:100%;display:flex}.gap-mini-block{text-align:center;text-overflow:ellipsis;white-space:nowrap;border-radius:5px;max-width:76px;padding:2px 4px;font-size:.6rem;font-weight:800;line-height:1.1;display:block;overflow:hidden}.gap-mini-block.word{color:#4a2f0b;background:#f2c46d;box-shadow:inset 0 -2px #c98f2a}.gap-mini-block.meaning{color:#fff;background:#5aa9e6;box-shadow:inset 0 -2px #2f78b5}.gap-mini-empty{opacity:.5;font-size:1.1rem}.gap-switches{gap:6px;display:grid}.gap-switch{cursor:pointer;align-items:center;gap:10px;min-height:44px;display:flex}.gap-switch input{width:22px;height:22px;accent-color:var(--primary)}.gap-switch>span{flex-direction:column;display:flex}.gap-levels .ag-mode.chosen{border-color:var(--primary)}.gap-levels{grid-template-columns:repeat(3,1fr)}.gap-levels .ag-mode{text-align:center;padding:10px 4px}.gap-board{touch-action:none;cursor:grab;background:radial-gradient(circle at 1px 1px,#ffffff1f 1.2px,#0000 1.6px) 0 0/20% 11.1111%,linear-gradient(#2b3a67 0%,#1f2b4d 100%);border-radius:18px;width:min(100%,50.1792dvh);margin:0 auto;padding:7px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 4px #c98f2a,inset 0 0 0 7px #8a5a1a}.gap-spawn{background:#ff5d73aa;border-radius:0 0 6px 6px;width:calc(20% - 2.8px);height:6px;position:absolute;top:7px}.gap-cells{width:100%;height:100%;position:relative;container-type:size}body:has(.gap-play) .bug-button{display:none}.gap-block,.gap-ghost{width:calc(100% / var(--cols,5));height:calc(100% / var(--rows,9));padding:2px;transition:transform .12s ease-out;position:absolute;top:0;left:0}.gap-ghost{outline-offset:-4px;border-radius:9px;outline:2px dashed #fff5}.gap-block>span{word-break:normal;text-align:center;overflow-wrap:break-word;border-radius:8px;place-items:center;width:100%;height:100%;padding:1px 3px;font-size:clamp(.6rem,3.8cqw,.9rem);font-weight:800;line-height:1.05;display:grid;overflow:hidden}.gap-block.long>span{font-size:clamp(.52rem,3.2cqw,.78rem)}.gap-block.xlong>span{-webkit-hyphens:auto;hyphens:auto;font-size:clamp(.48rem,2.7cqw,.66rem);font-weight:700}.gap-demo .gap-block>span{font-size:.85rem}.gap-block.word>span{color:#4a2f0b;background:repeating-linear-gradient(100deg,#fff0 0 9px,#ffffff2e 9px 11px,#fff0 11px 19px),linear-gradient(#f7d58b,#eab95c);box-shadow:inset 0 -4px #c98f2a,inset 0 2px #fff3d1}.gap-block.meaning>span{color:#fff;text-shadow:0 1px #1f5b8f;background:linear-gradient(#6bb8f0,#4596d6);box-shadow:inset 0 -4px #2f6fa8,inset 0 2px #b9e0ff}.gap-block.junk>span{background:linear-gradient(135deg,#0000 46%,#0003 47% 50%,#0000 51%),linear-gradient(60deg,#0000 60%,#00000026 61% 63%,#0000 64%),linear-gradient(#a3a7b3,#7d8290);box-shadow:inset 0 -4px #5c606b,inset 0 2px #cfd2da}.gap-block.falling>span{filter:drop-shadow(0 3px 4px #0006)}.gap-block.popping>span{animation:.42s ease-in forwards gap-pop}.gap-block.popping:after{content:"✦ ✦";color:#fff6b0;letter-spacing:8px;pointer-events:none;place-items:center;font-size:1.1rem;animation:.42s ease-out forwards gap-sparkle;display:grid;position:absolute;inset:0}@keyframes gap-pop{0%{filter:brightness();transform:scale(1)}40%{filter:brightness(1.6);transform:scale(1.15)}to{opacity:0;transform:scale(.2)}}@keyframes gap-sparkle{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.8)}}@keyframes gap-bump{0%{transform:scale(1.4)}to{transform:scale(1)}}.gap-chain{color:#fff;white-space:nowrap;pointer-events:none;background:#ff5d73;border-radius:14px;padding:6px 18px;font-size:1.6rem;font-weight:900;animation:.9s ease-out forwards gap-chain;position:absolute;top:36%;left:50%;transform:translate(-50%);box-shadow:0 5px #c23a4f}@keyframes gap-chain{0%{opacity:0;transform:translate(-50%)scale(.4)rotate(-8deg)}25%{opacity:1;transform:translate(-50%)scale(1.15)rotate(3deg)}70%{opacity:1;transform:translate(-50%)scale(1)rotate(0)}to{opacity:0;transform:translate(-50%)translateY(-24px)}}.gap-junk-warn{color:#fff;pointer-events:none;background:#7d8290;border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:800;animation:.35s ease-out gap-bump;position:absolute;top:16px;right:12px}.gap-controls{grid-template-columns:repeat(var(--buttons,4), 1fr);gap:8px;display:grid}.gap-controls button{background:var(--soft);min-height:52px;color:var(--text);font:inherit;touch-action:manipulation;border:none;border-radius:14px;font-size:1.4rem;font-weight:800;box-shadow:inset 0 -4px #00000018}.gap-controls button:disabled{opacity:.4}.gap-controls button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 -2px #00000018}.gap-demo{justify-content:center;align-items:center;gap:8px;display:flex}.gap-demo .gap-block{width:92px;height:46px;position:static}.gap-demo-plus{color:var(--muted);font-weight:900}.gap-demo-pop{font-size:1.6rem}@media (prefers-reduced-motion:reduce){.tug-flag,.bridge-water,.gap-block{transition:none}.gap-chain,.gap-block.popping:after{animation-duration:10ms}}.tug-rival{flex-direction:column;align-items:center;gap:2px;font-weight:800;display:inline-flex}.tug-rival.pulling{animation:.35s ease-out tug-rival-pull}@keyframes tug-rival-pull{40%{transform:translate(8px)rotate(6deg)}}.game-stats{gap:10px;margin:0;padding:0;list-style:none;display:grid}.game-stats .card{gap:6px;margin:0;display:grid}.game-rounds{font-variant-numeric:tabular-nums;font-weight:800}.game-spark{align-items:flex-end;gap:2px;height:28px;display:flex}.game-spark span{background:var(--primary);opacity:.75;border-radius:2px 2px 0 0;flex:1;min-width:2px}.chip-btn.on{background:var(--primary-gradient);color:var(--primary-text);border-color:#0000}.race-tracks{gap:4px;display:grid}.race-track{font-variant-numeric:tabular-nums;grid-template-columns:auto 1fr 2ch;align-items:center;gap:6px;display:grid}.race-bar{background:var(--soft);border-radius:999px;height:10px;overflow:hidden}.race-bar>span{background:var(--muted);border-radius:999px;height:100%;transition:width .3s ease-out;display:block}.race-track.mine .race-bar>span{background:var(--primary-gradient)}.race-bar>span.pulse{animation:.5s ease-out race-pulse}@keyframes race-pulse{0%{filter:brightness(1.8);box-shadow:0 0 10px var(--ok-border)}}.tf-rival{align-items:center;gap:10px;display:flex}.tf-rival-deck{width:34px;height:26px;position:relative}.tf-rival-card{border:1.5px solid var(--border);background:var(--card);border-radius:5px;position:absolute;inset:0;box-shadow:0 1px 2px #0002}.tf-rival-card.fly-yes,.tf-rival-card.fly-no{z-index:2;animation:.6s ease-in forwards tf-rival-fly}.tf-rival-card.ok{border-color:var(--ok-border);background:var(--ok-bg)}.tf-rival-card.miss{border-color:var(--bad);background:var(--bad-bg)}.tf-rival-card.fly-no{--fly-x:-60px;--fly-r:-25deg}.tf-rival-card.fly-yes{--fly-x:60px;--fly-r:25deg}@keyframes tf-rival-fly{to{transform:translateX(var(--fly-x)) rotate(var(--fly-r));opacity:0}}.ce-lessons,.ce-vocab{gap:4px;margin:0;padding:0;list-style:none;display:grid}.ce-lesson{background:var(--soft);width:100%;min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;border:none;border-radius:12px;grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:8px 10px;display:grid}.ce-vocab li{background:var(--card);border-radius:12px;align-items:center;gap:10px;padding:4px 8px;display:flex}.ce-vocab li.on{background:var(--accent-soft)}.ce-vocab input[type=checkbox]{width:22px;height:22px;accent-color:var(--primary);flex:none}.ce-word{min-height:44px;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:flex-start;gap:1px;padding:2px 0;display:flex}.ce-move{z-index:5;position:sticky;bottom:12px;box-shadow:0 6px 24px #0003}.ce-photos{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.ce-photos img{border-radius:10px;width:100%;display:block}.ce-lesson-title{font-size:1.4rem}.card.warn-card{background:var(--warn-bg);border-color:var(--warn)}.check-row{align-items:flex-start;gap:.6rem}.check-row input{flex:none;width:1.2rem;height:1.2rem;margin-top:.1rem}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}
