:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;--bg-primary: light-dark(#f5f5f5, #242424);--bg-secondary: light-dark(#fff, #181818);--bg-tertiary: light-dark(#fafafa, #1a1a1a);--text-primary: light-dark(#213547, rgba(255, 255, 255, .87));--text-secondary: light-dark(#666, #ccc);--border-color: light-dark(#ddd, #333);--border-light: light-dark(#e0e0e0, #444);--link-color: #646cff;--link-hover: #535bf2;--header-bg: light-dark(#fff, #1e1e1e);--header-shadow: light-dark(rgba(0, 0, 0, .1), rgba(255, 255, 255, .1));--code-bg: light-dark(#fff, #2a2a2a);--code-border: light-dark(#ddd, #444);--table-bg: light-dark(#f5f5f5, #2a2a2a);--table-header-bg: light-dark(#e8e8e8, #1f1f1f);--table-header-color: light-dark(#1976d2, #5999ff);--table-row-even-bg: light-dark(#fafafa, #252525);--table-border: light-dark(#ddd, #444);--button-bg: light-dark(#e8e8e8, #3a3a3a);--button-color: light-dark(#333, #e0e0e0);--button-border: light-dark(#ccc, #555);--button-hover-bg: light-dark(#d8d8d8, #4a4a4a);--button-hover-border: light-dark(#999, #888);--button-hover-color: light-dark(#000, #fff);--button-active-bg: light-dark(#f0f0f0, #2a2a2a);--button-active-border: light-dark(#aaa, #666);--accent-primary: #4675c0;--accent-secondary: #4d90fe;--selected-bg: light-dark(#e3f2fd, #2a2f4a);--selected-color: light-dark(#1976d2, #fff);--hover-overlay: light-dark(rgba(0, 0, 0, .08), rgba(255, 255, 255, .08));--list-hover-border: light-dark(#333, white);--fire-particle-primary: #ff6b1b;--fire-particle-secondary: #ff4500;--fire-particle-glow-1: rgba(255, 107, 27, .8);--fire-particle-glow-2: rgba(255, 69, 0, .6);--fire-particle-transparent: rgba(255, 69, 0, 0);--checkboard-light: #ccc;--checkboard-bg: #fff;--error-color: red;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:var(--link-color);text-decoration:inherit}a:hover{color:var(--link-hover)}body{margin:0;min-width:320px;min-height:100vh}@media (prefers-color-scheme: light){:root{--bg-primary: #f5f5f5;--bg-secondary: #fff;--bg-tertiary: #fafafa;--text-primary: #213547;--text-secondary: #666;--border-color: #ddd;--link-color: #646cff;--link-hover: #535bf2}}*{box-sizing:border-box;margin:0;-webkit-user-select:none;user-select:none}body,html,.app{height:100%;font-family:sans-serif;font-size:1rem;background-color:var(--bg-primary);color:var(--text-primary)}.app{padding-top:6rem}p{margin-bottom:1rem;line-height:160%}.fixed-header{position:fixed;top:0;width:100%;height:auto;background:var(--header-bg);color:var(--text-primary);box-shadow:0 .125rem .25rem var(--header-shadow);z-index:1000}.fixed-header h1{margin:1.5rem;font-size:2rem}.main-layout{display:flex;height:calc(100vh - 6rem);box-sizing:border-box;width:100%}.sidebar{width:15%;min-width:16.875rem;max-width:18.75rem;border-right:.0625rem solid var(--border-color);padding:1rem .5rem;font-size:.875rem;background-color:var(--bg-tertiary);overflow-y:auto}.lesson-list{list-style:none;padding:0;margin:0}.lesson-list li{padding:.5rem 1rem;cursor:pointer;border:.125rem solid transparent;border-radius:.5rem;margin-top:.25rem;color:var(--text-secondary)}.lesson-list>li{cursor:default}.lesson-list li:first-child{margin-top:2px}.lesson-list li:hover{border-color:var(--list-hover-border)}.lesson-list li:has(.foldable-section):hover{border-color:transparent}.foldable-header{border:none!important}.lesson-list li.selected{border-color:var(--accent-secondary);font-weight:700;background-color:var(--selected-bg);color:var(--selected-color)}.content-area{flex:1 1 auto;padding:2.5rem 3.125rem;overflow-y:auto;font-size:.875rem;background-color:var(--bg-secondary);color:var(--text-primary)}.content-area pre{background-color:var(--code-bg)!important;padding:1rem;border-radius:.5rem;overflow-x:auto;display:block;max-width:100%;margin:1rem 0;box-sizing:border-box;white-space:pre;-webkit-user-select:text!important;user-select:text!important;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.content-area pre code,.content-area pre span{background-color:transparent;-webkit-user-select:text!important;user-select:text!important}.lesson-content{max-width:75rem;margin-inline:auto;min-width:28.75rem}.lesson-content p{margin-left:.5rem;font-size:1rem;font-weight:400}.lesson-content h2{font-size:2rem;margin-bottom:1.5rem;color:var(--text-primary)}.lesson-content h3{font-size:1.25rem;margin-block:2.75rem 1.5rem;color:var(--text-primary);border-left:.1875rem solid var(--accent-primary);padding-left:.75rem}.code-wrapper{background-color:var(--code-bg);border-radius:.5rem;display:block;width:100%;margin:1rem 0;font-size:.875rem;box-sizing:border-box;border:.0625rem solid var(--code-border);-webkit-user-select:text!important;user-select:text!important;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.code-wrapper *{font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace}.code-wrapper pre,.code-wrapper code{text-shadow:none!important}code #text{background-color:var(--code-bg)}.code-filename{display:flex;justify-content:space-between;align-items:center;gap:1rem;background-color:var(--table-header-bg);color:var(--button-color);font-size:.75rem;padding:.5rem 1rem;border-radius:.5rem .5rem 0 0;border-bottom:.0625rem solid var(--code-border)}.foldable-section{box-sizing:border-box;color:var(--text-primary);font-size:.875rem;border:none;padding:0}.code-filename span{flex:1;text-align:left}.foldable-header{display:block;cursor:pointer;width:100%;padding-block:1rem;padding-left:.25rem;border-radius:.25rem;transition:background-color .2s;border:none}.foldable-header:hover{background-color:var(--hover-overlay)}.foldable-content{cursor:default;border-left:.125rem solid var(--border-light);padding-left:20px;margin-bottom:1rem;max-height:9999px;opacity:1;overflow:hidden;transition:max-height 1.2s,opacity .5s,margin .5s}.foldable-content.closed{max-height:0;opacity:0;margin-block:0;transition:max-height .15s,opacity .25s,margin .25s}.var-table,.var-table *{-webkit-user-select:text!important;user-select:text!important}.var-table{width:100%;margin:1rem 0;border-collapse:collapse;background-color:var(--table-bg);border:1px solid var(--table-border);border-radius:.5rem;overflow:hidden}.var-table th,.var-table td{padding:.625rem .75rem;text-align:center;border-right:1px solid var(--table-border)}.var-table th:last-child,.var-table td:last-child{border-right:none}.var-table thead{background-color:var(--table-header-bg);font-weight:700;color:var(--table-header-color)}.var-table tbody tr:nth-child(2n){background-color:var(--table-row-even-bg)}.attachment-container{margin-top:2rem}.attachment-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.attachment-title{margin:0}.attachment-download-all{padding:.5rem 1rem;background-color:var(--accent-primary);color:#fff;border:none;border-radius:.25rem;cursor:pointer;transition:background-color .2s ease}.attachment-download-all:disabled{cursor:not-allowed;opacity:.5}.attachment-download-all:hover:not(:disabled){background-color:var(--accent-secondary)}.attachment-items{display:flex;gap:2rem;flex-wrap:wrap}.attachment-item{text-align:center}.attachment-checkboard{width:150px;margin-bottom:.5rem;background-image:linear-gradient(45deg,var(--checkboard-light) 25%,transparent 25%,transparent 75%,var(--checkboard-light) 75%,var(--checkboard-light)),linear-gradient(45deg,var(--checkboard-light) 25%,transparent 25%,transparent 75%,var(--checkboard-light) 75%,var(--checkboard-light));background-position:0 0,10px 10px;background-size:20px 20px;background-color:var(--checkboard-bg);display:inline-block}.attachment-checkboard img{width:100%;display:block}.attachment-link{display:block;margin-top:.5rem;color:var(--accent-primary);text-decoration:none;transition:opacity .2s ease}.attachment-link:hover{opacity:.7}.attachment-error{color:var(--error-color)}@keyframes shake{0%,to{transform:translate(-2px) translateY(-2px)}25%{transform:translate(2px) translateY(2px)}50%{transform:translate(-2px) translateY(2px)}75%{transform:translate(2px) translateY(-2px)}}@keyframes rainbowFilter{0%{filter:hue-rotate(0deg) saturate(1) brightness(1)}16%{filter:hue-rotate(60deg) saturate(1) brightness(1)}33%{filter:hue-rotate(120deg) saturate(1) brightness(1)}50%{filter:hue-rotate(180deg) saturate(1) brightness(1)}66%{filter:hue-rotate(240deg) saturate(1) brightness(1)}83%{filter:hue-rotate(300deg) saturate(1) brightness(1)}to{filter:hue-rotate(360deg) saturate(1) brightness(1)}}@keyframes fireRainbow{0%{filter:hue-rotate(0deg) saturate(2) brightness(1.3)}16%{filter:hue-rotate(60deg) saturate(2) brightness(1.4)}33%{filter:hue-rotate(120deg) saturate(2) brightness(1.4)}50%{filter:hue-rotate(180deg) saturate(2.2) brightness(1.5)}66%{filter:hue-rotate(240deg) saturate(2) brightness(1.4)}83%{filter:hue-rotate(300deg) saturate(2) brightness(1.4)}to{filter:hue-rotate(360deg) saturate(2) brightness(1.3)}}@keyframes riseParticle{0%{transform:translateY(var(--top)) translate(var(--left)) scale(1);opacity:1}to{transform:translateY(calc(var(--top) - 80px)) translate(var(--left)) scale(0);opacity:0}}@keyframes fadeUpMessage{0%{transform:translateY(0);opacity:1}to{transform:translateY(-30px);opacity:0}}.fire-particle{position:absolute;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle,var(--fire-particle-primary) 0%,var(--fire-particle-secondary) 50%,var(--fire-particle-transparent) 100%);left:50%;top:50%;--left: 0px;--top: 0px;box-shadow:0 0 6px var(--fire-particle-glow-1),0 0 12px var(--fire-particle-glow-2);animation:riseParticle var(--duration) linear forwards;animation-delay:var(--delay)}.message-tooltip{position:absolute;top:.25rem;left:100%;margin-left:.125rem;background-color:light-dark(rgba(240,240,240,.9),rgba(0,0,0,.9));color:light-dark(#1e1e1e,white);padding:.5rem 1rem;border-radius:.5rem;font-size:.875rem;white-space:nowrap;pointer-events:none;z-index:20;animation:fadeUpMessage 2s ease-in forwards}
