@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--color-bg: #000000;--color-surface: #111111;--color-surface-hover: #1a1a1a;--color-border: #333333;--color-text-primary: #ffffff;--color-text-secondary: #a0a0a0;--color-accent: #ff2a2a;--color-accent-hover: #ff4d4d;--color-header-bg: rgba(0, 0, 0, .85);--color-math-bg: rgba(255, 42, 42, .1);--color-code-bg: #0d0d0d;--color-code-header: #1a1a1a;--color-code-text: #e6e6e6;--color-logo-text: #ffffff;--logo-filter: invert(1);--font-sans: "Inter", -apple-system, sans-serif;--font-mono: "JetBrains Mono", monospace}:root.light-mode{--color-bg: #fafafa;--color-surface: #ffffff;--color-surface-hover: #f0f0f0;--color-border: #eaeaea;--color-text-primary: #111111;--color-text-secondary: #666666;--color-accent: #e60000;--color-accent-hover: #cc0000;--color-header-bg: rgba(250, 250, 250, .85);--color-math-bg: rgba(230, 0, 0, .08);--color-code-bg: #f5f5f5;--color-code-header: #ebebeb;--color-code-text: #24292e;--color-logo-text: #ffffff;--logo-filter: none}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background-color .3s ease,color .3s ease}.app-container{display:flex;flex-direction:column;min-height:100vh}.main-layout{display:grid;grid-template-columns:280px 1fr;gap:40px;max-width:1400px;margin:0 auto;padding:120px 40px 80px;width:100%}@media (max-width: 1024px){.main-layout{grid-template-columns:240px 1fr;gap:30px;padding:100px 30px 60px}}@media (max-width: 768px){.main-layout{grid-template-columns:1fr;padding:100px 20px 40px}}.content-area{min-width:0;max-width:800px}.math-block{background:var(--color-surface);padding:16px 24px;border-left:4px solid var(--color-accent);font-family:var(--font-mono);font-size:.95rem;color:var(--color-text-primary);margin:16px 0;overflow-x:auto;transition:background-color .3s ease,color .3s ease}.math-inline{font-family:var(--font-mono);color:var(--color-accent);background:var(--color-math-bg);padding:2px 6px;border-radius:4px;font-size:.9em;transition:background-color .3s ease}p{margin-bottom:16px;color:var(--color-text-secondary);font-size:1.05rem;transition:color .3s ease}ul,ol{margin-bottom:24px;padding-left:24px;color:var(--color-text-secondary);transition:color .3s ease}li{margin-bottom:8px}strong{color:var(--color-text-primary);font-weight:600;transition:color .3s ease}.site-header{position:fixed;top:0;left:0;right:0;height:80px;background:var(--color-header-bg);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-border);z-index:100;display:flex;align-items:center;transition:background-color .3s ease,border-color .3s ease}.header-content{max-width:1400px;width:100%;margin:0 auto;padding:0 40px;display:flex;justify-content:space-between;align-items:center}@media (max-width: 768px){.header-content{padding:0 20px}}.logo-container{display:flex;align-items:center;gap:16px}.logo-image{height:32px;width:auto;display:block;filter:var(--logo-filter)}.header-actions{display:flex;align-items:center;gap:24px}.pdf-button{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.04em;text-transform:uppercase;padding:6px 10px;cursor:pointer;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.pdf-button:hover{color:var(--color-text-primary);border-color:var(--color-text-primary);background:var(--color-surface)}.pdf-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.theme-toggle{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;padding:8px;border-radius:50%;transition:all .2s ease}.theme-toggle:hover{color:var(--color-text-primary);background:var(--color-surface)}.course-info{display:flex;flex-direction:column;align-items:flex-end}.course-year{font-family:var(--font-mono);font-size:12px;color:var(--color-accent);font-weight:500}.course-label{font-size:14px;color:var(--color-text-secondary);font-weight:500;transition:color .3s ease}.sidebar{position:relative}.toc{position:sticky;top:120px}.toc-title{font-size:12px;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-secondary);margin-bottom:24px;font-weight:600}.toc-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:16px}.toc-link{background:none;border:none;padding:0;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:14px;text-align:left;cursor:pointer;transition:all .2s ease;position:relative;display:inline-block}.toc-link:hover{color:var(--color-accent)}@media (max-width: 768px){.sidebar{display:none}}.lab-header{margin-bottom:60px}.lab-badge{display:inline-block;padding:6px 12px;background-color:var(--color-math-bg);color:var(--color-accent);font-size:13px;font-weight:600;border-radius:4px;margin-bottom:24px;letter-spacing:.05em;text-transform:uppercase;transition:background-color .3s ease}.lab-title{font-size:2.5rem;font-weight:800;line-height:1.2;margin-bottom:16px;letter-spacing:-.02em;transition:color .3s ease}.lab-subtitle{font-size:1.5rem;color:var(--color-text-secondary);font-weight:500;transition:color .3s ease}.section-title{font-size:2rem;font-weight:700;margin-bottom:32px;letter-spacing:-.02em;display:flex;align-items:center;gap:16px;transition:color .3s ease}.section-title:before{content:"";display:block;width:24px;height:4px;background-color:var(--color-accent)}.subsection-title{font-size:1.25rem;font-weight:600;margin:40px 0 20px;color:var(--color-text-primary);transition:color .3s ease}.divider{height:1px;background:var(--color-border);margin:60px 0;transition:background-color .3s ease}.custom-list{margin-bottom:24px;list-style:none;padding-left:0}.custom-list li{position:relative;padding-left:24px;margin-bottom:12px;color:var(--color-text-secondary);transition:color .3s ease}.custom-list:not(.ordered) li:before{content:"";position:absolute;left:0;top:10px;width:6px;height:6px;background-color:var(--color-accent);border-radius:0}.custom-list.ordered{list-style:none;counter-reset:custom-counter}.custom-list.ordered li{counter-increment:custom-counter}.custom-list.ordered li:before{content:counter(custom-counter) ".";position:absolute;left:0;top:0;color:var(--color-accent);font-weight:700;font-size:1em;font-family:var(--font-mono);background:none;width:auto;height:auto}.questions-grid{display:grid;grid-template-columns:1fr;gap:16px}.question-card{background:var(--color-surface);border:1px solid var(--color-border);padding:24px;display:flex;gap:20px;transition:border-color .2s,background-color .3s ease}.question-card:hover{border-color:var(--color-accent)}.question-number{font-family:var(--font-mono);font-size:24px;font-weight:700;color:var(--color-accent);line-height:1}.question-text{margin:0;color:var(--color-text-primary);font-size:1.05rem;line-height:1.5;transition:color .3s ease}@media (max-width: 768px){.lab-title{font-size:2rem}.section-title{font-size:1.75rem}}@media print{@page{margin:18mm 16mm 20mm}.site-header{position:static;height:auto}.main-layout{padding:0}.sidebar{display:none}.content-area{max-width:none}.header-content{padding:0}p,li,h2,h3{break-inside:avoid;page-break-inside:avoid}.lab-section,.code-block-wrapper{break-inside:auto;page-break-inside:auto}.question-card{break-inside:avoid;page-break-inside:avoid}.divider{display:none}.lab-section:not(:first-of-type){break-before:page;page-break-before:always}}.accordion{border:1px solid var(--color-border);background:var(--color-surface);margin:24px 0;overflow:hidden}.accordion-header{width:100%;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;background:none;border:none;color:var(--color-text-primary);font-family:var(--font-sans);font-size:1rem;font-weight:600;cursor:pointer;text-align:left;transition:background-color .2s}.accordion-header:hover{background:var(--color-surface-hover)}.accordion-icon{color:var(--color-text-secondary);transition:transform .3s ease;display:flex;align-items:center}.accordion.is-open .accordion-icon{transform:rotate(180deg);color:var(--color-accent)}.accordion-content{max-height:0;overflow:hidden;transition:max-height .4s cubic-bezier(0,1,0,1)}.accordion.is-open .accordion-content{max-height:8000px;transition:max-height .6s ease-in-out}.accordion-body{padding:24px;border-top:1px solid var(--color-border);margin-top:1px}@media print{.accordion{break-inside:auto;page-break-inside:auto}.accordion-header{break-after:avoid;page-break-after:avoid}.accordion-content{max-height:none;overflow:visible}}.code-block-wrapper{background:var(--color-code-bg);border:1px solid var(--color-border);border-radius:0;margin:24px 0;overflow:hidden;transition:background-color .3s ease,border-color .3s ease}.code-block-header{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:var(--color-code-header);border-bottom:1px solid var(--color-border);transition:background-color .3s ease,border-color .3s ease}.code-block-lang{font-family:var(--font-mono);font-size:.75rem;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em;transition:color .3s ease}.code-block-dots{display:flex;gap:6px}.code-block-actions{display:flex;align-items:center;gap:12px}.code-block-copy{border:1px solid var(--color-border);background:transparent;color:var(--color-text-secondary);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;padding:4px 8px;cursor:pointer;transition:color .2s ease,border-color .2s ease,background-color .2s ease}.code-block-copy:hover{color:var(--color-accent);border-color:var(--color-accent);background:var(--color-surface)}.code-block-copy:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.code-block-dots span{width:8px;height:8px;border-radius:50%;background:#333}.code-block-dots span:nth-child(1){background:#ff5f56}.code-block-dots span:nth-child(2){background:#ffbd2e}.code-block-dots span:nth-child(3){background:#27c93f}.code-block-pre{margin:0;padding:16px;overflow-x:auto}.code-block-pre code{color:var(--color-code-text);line-height:1.5;white-space:pre;background:none;padding:0;transition:color .3s ease}code{font-family:var(--font-mono);background:var(--color-surface);padding:2px 6px;border-radius:4px;font-size:.85em;color:var(--color-accent);transition:background-color .3s ease,color .3s ease}
