:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--brand-navy:#083a53;--brand-cyan:#0099cd;--brand-yellow:#ffcc03;--brand-paper:#f4f9fb;--frame:#15170f;--cover-1:#343926;--cover-2:#22261b;--cover-fg:linen;--cover-fg-dim:#b3a696;--bg:linen;--surface:#fffcf6;--surface-sunk:#f0e5d5;--text:#2a2e1f;--text-muted:#4e5340;--text-faint:#5c6249;--border:#e3d7c5;--border-strong:#7b6b5e;--accent:#33402a;--accent-hover:#2a3622;--accent-on:linen;--accent-text:#3a4a2f;--accent-sunk:#e8ead9;--warn:#8a5424;--warn-sunk:#f6ecdc;--ok:#3f6b4a;--ok-sunk:#e6efe6;--danger:#b03a2a;--danger-sunk:#f8e7e2;--tone-grey:#ece3d4;--tone-grey-on:#4e5340;--tone-green:#e1eddc;--tone-green-on:#2f5a39;--tone-blue:#dfe8f0;--tone-blue-on:#2c4f6e;--tone-amber:#f5e6c8;--tone-amber-on:#7a4d12;--tone-red:#f6dfd8;--tone-red-on:#8f2f22;--tone-violet:#ebe1ef;--tone-violet-on:#5b3a6e;--tone-teal:#dbece9;--tone-teal-on:#23585a;--tone-pink:#f5dfe6;--tone-pink-on:#85304f;--accent-fill:linear-gradient(180deg, #3c4b31 0%, #33402a 55%, #2c3823 100%);--accent-veil:#0000001a;--edge:inset 0 1px 0 #ffffffb3, inset 0 -1px 0 #2a2e1f0a;--elev-1:0 1px 2px #2a2e1f0d, 0 2px 6px -2px #2a2e1f0f;--elev-2:0 2px 4px #2a2e1f0d, 0 8px 20px -6px #2a2e1f17;--elev-3:0 4px 8px #2a2e1f0f, 0 20px 44px -12px #2a2e1f24;--shadow:var(--elev-1);--shadow-lg:var(--elev-2);--scrim:#2a2e1f85;--radius:10px;--radius-lg:16px;--radius-in:calc(var(--radius) - var(--step));--step:4px;--ease-out:cubic-bezier(.23, 1, .32, 1);--dur-1:.12s;--dur-2:.2s;--dur-3:.32s;--topbar-h:61px;--reading:1080px;--reading-inner:1040px;--dock-h:84px;--dock-scale:1;--rt-scale:1;--dock-glass:.8;--glass-a:.7;--dock-spec:#ffffff8c;--dock-emboss:#2a2e1f2e;--veil-1:#6e7f5a;--veil-1-a:.14;--veil-2:#a9784e;--veil-2-a:.1;--veil-3:#4e5b41;--veil-3-a:.12;--photo-a:.14;--measure:68ch;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--font-display:var(--font);--w-ui:510;--w-strong:590;--w-display:650}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root{--q-glass:blur(18px) saturate(1.7);--q-veil:52px;--grain-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0.16 0 0 0 0.42 0.16 0 0 0 0.42 0.16 0 0 0 0.42 0 0 0 0 1'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)'/%3E%3C/svg%3E");--grain-blend:overlay;--q-play:running;--dock-glass-eff:var(--dock-glass);--glass-a-eff:var(--glass-a)}:root[data-perf=medium]{--q-glass:blur(9px) saturate(1.35);--q-veil:40px}:root[data-perf=low]{--q-glass:none;--q-veil:26px;--dock-glass-eff:.97;--glass-a-eff:.97}:root[data-save]{--q-glass:none;--dock-glass-eff:.97;--glass-a-eff:.97}@media (prefers-reduced-transparency:reduce){:root{--q-glass:none;--dock-glass-eff:.97;--glass-a-eff:.97}}:root[data-anim=off]{--q-play:paused}:root[data-anim=off] *,:root[data-anim=off] :before,:root[data-anim=off] :after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#1b1e17;--surface:#2a2e1f;--surface-sunk:#22261b;--text:linen;--text-muted:#b3a696;--text-faint:#a89d90;--border:#3b4030;--border-strong:#8c8171;--accent:#a9c08c;--accent-hover:#b9cf9d;--accent-on:#1b1e17;--accent-text:#b6cc99;--accent-sunk:#262c1c;--warn:#e0a868;--warn-sunk:#2f2314;--ok:#7fc79b;--ok-sunk:#1a2b22;--danger:#e88c7d;--danger-sunk:#331b19;--tone-grey:#34382b;--tone-grey-on:#d6cbbb;--tone-green:#1f3324;--tone-green-on:#9fd6ad;--tone-blue:#1d2c3a;--tone-blue-on:#a6c6e3;--tone-amber:#3a2c14;--tone-amber-on:#e8c27e;--tone-red:#3d1f1b;--tone-red-on:#f0a597;--tone-violet:#2f2236;--tone-violet-on:#d2b4e2;--tone-teal:#173230;--tone-teal-on:#92d3cb;--tone-pink:#3a1d28;--tone-pink-on:#eda9c0;--accent-fill:linear-gradient(168deg, #bcd2a0 0%, #a9c08c 42%, #93aa77 72%, #b2c896 100%);--accent-veil:#ffffff1a;--edge:inset 0 1px 0 #faf0e60e;--elev-1:0 1px 2px #0006, inset 0 1px 0 #faf0e60b;--elev-2:0 2px 6px #00000073, 0 10px 24px -8px #00000080, inset 0 1px 0 #faf0e60d;--elev-3:0 4px 10px #00000080, 0 24px 52px -14px #0000009e, inset 0 1px 0 #faf0e60f;--shadow:var(--elev-1);--shadow-lg:var(--elev-2);--scrim:#000000a8;--veil-1:#a9c08c;--veil-1-a:.1;--veil-2:#c58b57;--veil-2-a:.14;--veil-3:#6e7f5a;--veil-3-a:.16;--photo-a:.08;--dock-spec:#faf0e61a;--dock-emboss:#00000059;--glass-a:.82;--grain-blend:soft-light;--cover-1:#3a3f2c;--cover-2:#262b1c;--cover-fg:linen;--cover-fg-dim:#cfc4b4}}:root[data-theme=dark]{--bg:#1b1e17;--surface:#2a2e1f;--surface-sunk:#22261b;--text:linen;--text-muted:#b3a696;--text-faint:#a89d90;--border:#3b4030;--border-strong:#8c8171;--accent:#a9c08c;--accent-hover:#b9cf9d;--accent-on:#1b1e17;--accent-text:#b6cc99;--accent-sunk:#262c1c;--warn:#e0a868;--warn-sunk:#2f2314;--ok:#7fc79b;--ok-sunk:#1a2b22;--danger:#e88c7d;--danger-sunk:#331b19;--tone-grey:#34382b;--tone-grey-on:#d6cbbb;--tone-green:#1f3324;--tone-green-on:#9fd6ad;--tone-blue:#1d2c3a;--tone-blue-on:#a6c6e3;--tone-amber:#3a2c14;--tone-amber-on:#e8c27e;--tone-red:#3d1f1b;--tone-red-on:#f0a597;--tone-violet:#2f2236;--tone-violet-on:#d2b4e2;--tone-teal:#173230;--tone-teal-on:#92d3cb;--tone-pink:#3a1d28;--tone-pink-on:#eda9c0;--accent-fill:linear-gradient(168deg, #bcd2a0 0%, #a9c08c 42%, #93aa77 72%, #b2c896 100%);--accent-veil:#ffffff1a;--edge:inset 0 1px 0 #faf0e60e;--elev-1:0 1px 2px #0006, inset 0 1px 0 #faf0e60b;--elev-2:0 2px 6px #00000073, 0 10px 24px -8px #00000080, inset 0 1px 0 #faf0e60d;--elev-3:0 4px 10px #00000080, 0 24px 52px -14px #0000009e, inset 0 1px 0 #faf0e60f;--shadow:var(--elev-1);--shadow-lg:var(--elev-2);--scrim:#000000a8;--veil-1:#a9c08c;--veil-1-a:.1;--veil-2:#c58b57;--veil-2-a:.14;--veil-3:#6e7f5a;--veil-3-a:.16;--photo-a:.08;--dock-spec:#faf0e61a;--dock-emboss:#00000059;--grain-blend:soft-light;--cover-1:#3a3f2c;--cover-2:#262b1c;--cover-fg:linen;--cover-fg-dim:#cfc4b4;--glass-a:.82}.ink{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1b1e17;--surface:#2a2e1f;--surface-sunk:#22261b;--text:linen;--text-muted:#b3a696;--text-faint:#a89d90;--border:#3b4030;--border-strong:#8c8171;--accent:#a9c08c;--accent-hover:#b9cf9d;--accent-on:#1b1e17;--accent-text:#b6cc99;--accent-sunk:#262c1c;--warn:#e0a868;--warn-sunk:#2f2314;--ok:#7fc79b;--ok-sunk:#1a2b22;--danger:#e88c7d;--danger-sunk:#331b19;--tone-grey:#34382b;--tone-grey-on:#d6cbbb;--tone-green:#1f3324;--tone-green-on:#9fd6ad;--tone-blue:#1d2c3a;--tone-blue-on:#a6c6e3;--tone-amber:#3a2c14;--tone-amber-on:#e8c27e;--tone-red:#3d1f1b;--tone-red-on:#f0a597;--tone-violet:#2f2236;--tone-violet-on:#d2b4e2;--tone-teal:#173230;--tone-teal-on:#92d3cb;--tone-pink:#3a1d28;--tone-pink-on:#eda9c0;--accent-fill:linear-gradient(168deg, #bcd2a0 0%, #a9c08c 42%, #93aa77 72%, #b2c896 100%);--accent-veil:#ffffff1a;--edge:inset 0 1px 0 #faf0e60e;--dock-spec:#faf0e61a;--dock-emboss:#00000059;--grain-blend:soft-light}*,:before,:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-block-start:calc(var(--topbar-h) + 8px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}body{background-color:var(--bg);background-image:var(--grain-img);background-blend-mode:var(--grain-blend);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;min-height:100dvh;font-size:16px;line-height:1.6}img,svg,video{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}h1,h2,h3{line-height:1.25;font-weight:var(--w-strong);letter-spacing:-.012em;text-wrap:balance}h1{font-family:var(--font-display);font-size:clamp(1.75rem,1.35rem + 1.6vw,2.25rem);line-height:1.1;font-weight:var(--w-display);letter-spacing:-.012em}@media (min-width:650px){h1{letter-spacing:-.022em}}h2{font-size:clamp(1.25rem,1.1rem + .6vw,1.5rem);line-height:1.2}h3{font-size:1.0625rem;line-height:1.3}p,li,dd,.notice{text-wrap:pretty}a{color:var(--accent-text);text-underline-offset:2px;text-decoration-thickness:1px}.shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{background:var(--bg);z-index:10;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 20px;display:flex;position:sticky;top:0}.brand{letter-spacing:-.02em;color:var(--text);flex:none;align-items:center;gap:10px;min-width:0;min-height:44px;font-weight:600;text-decoration:none;display:inline-flex}.brand-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.brand-logo{object-fit:contain;flex:none;width:auto;max-width:min(220px,42vw);height:28px}.brand-mark.brand-mark--img{object-fit:contain;background:0 0;padding:0}.brand-mark{background:var(--brand-navy);width:28px;height:28px;color:var(--brand-yellow);border-radius:8px;flex:none;place-items:center;font-size:15px;font-weight:700;display:grid}.topbar__me{flex:none;align-items:center;gap:8px;margin-inline-start:auto;display:flex;position:relative}.page{width:100%;max-width:1120px;padding:24px 20px calc(var(--dock-h) + 16px);scroll-margin-top:var(--topbar-h);flex:1;margin-inline:auto;overflow-x:clip}.page--narrow{max-width:460px}@keyframes enter-up{0%{opacity:0;translate:0 6px;scale:.97}}.page--narrow>.stack--loose>*{animation:enter-up var(--dur-2) var(--ease-out) both}.page--narrow>.stack--loose>:nth-child(2){animation-delay:40ms}.page--narrow>.stack--loose>:nth-child(3){animation-delay:80ms}.page--narrow>.stack--loose>:nth-child(4){animation-delay:.12s}@media (prefers-reduced-motion:reduce){.page--narrow>.stack--loose>*{translate:none;scale:none}}.page--reading{max-width:var(--reading);overflow-x:visible}.page--crm{max-width:none;padding-inline:16px}.page--log{max-width:none;padding-inline:24px}.lesson-wait{border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);background:var(--accent-sunk);color:var(--text);align-items:flex-start;gap:.875rem;padding:1.125rem 1.25rem;display:flex}.lesson-wait__mark{flex:none;font-size:1.75rem;line-height:1.1}.lesson-wait__body{gap:.3125rem;display:grid}.lesson-wait__body strong{font-size:1.1875rem;line-height:1.3}.lesson-wait__body p{color:var(--text-muted);margin:0;font-size:.9375rem}.stack{gap:16px;display:grid}.stack--tight{gap:8px;display:grid}.stack--loose{gap:28px;display:grid}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);background-image:var(--grain-img);background-blend-mode:var(--grain-blend);box-shadow:var(--edge), var(--elev-1);padding:20px}.card--flat{box-shadow:var(--edge)}.ccard{padding:0;overflow:clip}.ccard .ccov-show,.ccard .ccov-plate{border-radius:calc(var(--radius-lg) - 1px) calc(var(--radius-lg) - 1px) 0 0}.ccard__body{padding:16px 20px 20px}.well{background:var(--surface-sunk);border-radius:var(--radius-in);box-shadow:none;border:0}.card--float{box-shadow:var(--edge), var(--elev-3)}.muted{color:var(--text-muted)}.faint{color:var(--text-faint);font-size:.875rem}.btn{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);font-weight:var(--w-ui);cursor:pointer;transition:background-color .12s ease, border-color .12s ease, transform var(--dur-1) var(--ease-out);justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;display:inline-flex}.btn:hover:not(:disabled):not([aria-disabled=true]){background:var(--surface-sunk)}.btn:active:not(:disabled):not([aria-disabled=true]){transition:transform var(--dur-1) var(--ease-out);transform:scale(.98)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn--primary{background-color:var(--accent);background-image:var(--accent-fill);border-color:var(--accent);color:var(--accent-on);box-shadow:var(--edge)}.btn--primary:hover:not(:disabled):not([aria-disabled=true]){background-image:linear-gradient(var(--accent-veil), var(--accent-veil)), var(--accent-fill)}.btn--danger{border-color:var(--danger);color:var(--danger);background-color:#0000;background-image:none}.btn--danger:hover:not(:disabled):not([aria-disabled=true]){background-color:var(--danger-sunk)}.btn--ghost{background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){background:var(--surface-sunk)}.btn--block{width:100%}.btn--sm{min-height:34px;padding:0 12px;font-size:.8125rem;position:relative}.btn--sm:after{content:"";position:absolute;inset:-5px -3px}.field{gap:6px;display:grid}.label,.field>span:not([class]){font-size:.875rem;font-weight:var(--w-ui);color:var(--text-muted)}.input{border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);min-height:44px;color:var(--text);width:100%;padding:0 14px;transition:border-color .12s}.input::placeholder{color:var(--text-faint)}.input:hover{border-color:var(--accent)}.input:focus{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.input[aria-invalid=true]{border-color:var(--danger);box-shadow:inset 0 -1px 0 var(--danger);border-width:2px}td,.badge,.progress+.faint{font-variant-numeric:tabular-nums}.badge{background:var(--surface-sunk);color:var(--text-muted);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:.8125rem;font-weight:500;display:inline-flex}.badge--accent{background:var(--accent-sunk);color:var(--accent-text)}.badge--ok{background:var(--ok-sunk);color:var(--ok)}.badge--warn{background:var(--warn-sunk);color:var(--warn)}.badge--danger{background:var(--danger-sunk);color:var(--danger)}@media (forced-colors:active){.badge,.badge--accent,.badge--ok,.badge--warn,.badge--danger{border:1px solid}}.notice{border-radius:var(--radius);border:1px solid var(--border);padding:12px 14px;font-size:.9375rem}.notice--accent{background:var(--accent-sunk);color:var(--accent-text)}.notice--danger{background:var(--danger-sunk);color:var(--danger)}.notice--warn{background:var(--warn-sunk);color:var(--warn)}.notice--ok{background:var(--ok-sunk);color:var(--ok)}.notice--accent,.notice--danger,.notice--warn,.notice--ok{border-color:#0000;border-left-style:solid;border-left-width:3px;padding-left:12px}.notice--accent{border-left-color:var(--accent)}.notice--danger{border-left-color:var(--danger)}.notice--warn{border-left-color:var(--warn)}.notice--ok{border-left-color:var(--ok)}.progress{background:var(--surface-sunk);border-radius:999px;height:6px;overflow:hidden}.progress>i{background:var(--accent);border-radius:inherit;--p:1;width:100%;height:100%;transform:scaleX(var(--p));transform-origin:0;transition:transform .26s var(--ease-out);display:block}@media (forced-colors:active){.progress{border:1px solid}.progress>i{background:canvastext}}.divider{background:var(--border);border:0;height:1px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (max-width:560px){.sr-narrow{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}}.skip-link{z-index:100;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);padding:10px 16px;transition:top .12s;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}@media (max-width:560px){.hide-narrow{display:none}.topbar{column-gap:8px;padding-inline:12px}.topbar__me>.signout{padding-inline:11px}}.empty{text-align:center;color:var(--text-muted);justify-items:center;gap:8px;padding:56px 20px;display:grid}:root{--dive-out:.32s;--dive-in:.4s}::view-transition-old(dock){mix-blend-mode:normal}::view-transition-new(dock){mix-blend-mode:normal}:root::view-transition-old(root){z-index:2;mix-blend-mode:normal;animation:dive-collapse var(--dive-out) ease-in both}:root::view-transition-new(root){z-index:1;mix-blend-mode:normal;animation:dive-settle var(--dive-in) ease-out .1s both}@keyframes dive-settle{0%{transform:scale(1.12)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){:root::view-transition-old(root){animation:none}:root::view-transition-new(root){animation:none}}
