:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#262b3a;background:#f7f8fa;font-synthesis:none;font-size:14px;--accent:#5953d9;--line:#e6e8ef;--muted:#697184}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button{color:inherit}svg{flex-shrink:0;vertical-align:middle}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #8b83f5;outline-offset:3px}button{background:none;border:0}a:hover{color:var(--accent)}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:20px;z-index:100;background:white;padding:12px}.skip-link:focus{top:12px}.sidebar{position:fixed;inset:0 auto 0 0;width:258px;background:#fff;border-right:1px solid var(--line);padding:35px 22px 22px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:750;letter-spacing:-.8px}.brand img{width:39px;height:39px}.brand small{font-size:8px;display:block;letter-spacing:1.3px;color:#7b8292;margin-top:6px;font-weight:600}.sidebar nav{margin-top:43px}.nav-home{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:9px;font-weight:600;font-size:13px}.nav-home.active{color:var(--accent);background:#eeedfc}.nav-caption{font-size:10px;font-weight:700;letter-spacing:1.3px;color:#9399a6;margin:32px 12px 15px}.nav-board{display:flex;align-items:center;gap:11px;padding:12px 9px;border-radius:9px;margin:5px 0;font-size:12px;font-weight:600}.nav-board small{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:5px}.nav-board:hover{background:#f7f7fb}.nav-board.active{background:#f2f1fd;color:var(--accent)}.mini-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:var(--tint);color:var(--ink)}.sidebar-bottom{margin-top:auto;padding-top:30px}.school-label{display:flex;gap:10px;align-items:center;color:#676e81;font-size:10px;line-height:1.6;padding:17px 0;border-top:1px solid var(--line)}.school-label small{display:block;color:#8a91a1;font-size:10px}.sidebar-copyright{display:block;color:#969ba8;font-size:10px;padding-top:14px}.editor-link{display:block;font-size:11px;color:var(--accent);padding:8px 0}.main-shell{margin-left:258px}.topbar{height:72px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 42px;color:#8a91a0;font-size:11px;background:#fff9}.topbar strong{font-weight:500;color:#5b6373}.crumb{padding:0 12px;color:#c1c5cf}.topbar-status{display:flex;align-items:center;gap:8px}.topbar-status i{width:6px;height:6px;border-radius:50%;background:#7aa78d}main{max-width:1400px;margin:auto;padding:43px 42px 25px}#main:focus{outline:0}.page-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:40px}.eyebrow{font-size:10px;font-weight:700;color:var(--accent);letter-spacing:1.5px;margin:0 0 14px}h1{font-size:36px;line-height:1.15;letter-spacing:-1.4px;font-weight:750;margin:0 0 14px}.purple-dot{color:var(--accent)}.lead{font-size:13px;color:var(--muted);line-height:1.8;max-width:680px;margin:0}.heading-icon{display:grid;place-items:center;width:64px;height:64px;flex-shrink:0;border-radius:20px;background:var(--tint);color:var(--ink);transform:rotate(-7deg)}.tone-purple{--tint:#eeecfc;--ink:#6861cf;--surface:#f7f6ff}.tone-blue{--tint:#e7effd;--ink:#4b77c5;--surface:#f3f7fe}.tone-green{--tint:#e4f3eb;--ink:#418765;--surface:#f2faf6}.tone-orange{--tint:#fbecd9;--ink:#ba8134;--surface:#fef9f1}.tone-pink{--tint:#f7e7ef;--ink:#b9678c;--surface:#fff5f9}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}.section-heading h2{font-size:16px;letter-spacing:-.3px;margin:0;display:flex;gap:9px;align-items:center}.section-heading h2>span{font-size:10px;background:#eaeaf0;color:#7c8191;padding:3px 7px;border-radius:5px}.section-heading>span{font-size:10px;color:#7c8494;display:flex;gap:6px;align-items:center}.board-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.board-card{background:var(--surface);border:1px solid color-mix(in srgb,var(--ink) 15%,white);border-radius:13px;padding:21px;display:flex;flex-direction:column;transition:transform .15s,border-color .15s}.board-card:hover{transform:translateY(-3px);border-color:var(--ink);color:inherit}.board-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:21px}.board-icon{width:42px;height:42px;display:grid;place-items:center;background:var(--tint);color:var(--ink);border-radius:12px}.board-year{font-size:10px;color:var(--ink);border:1px solid color-mix(in srgb,var(--ink) 15%,white);border-radius:5px;padding:5px 7px;background:#ffffff70}.board-card h3{font-size:15px;margin:0 0 9px;letter-spacing:-.3px}.board-card p{font-size:11px;color:var(--muted);line-height:1.8;margin:0 0 23px}.board-card-bottom{margin-top:auto;display:flex;justify-content:space-between;align-items:center;color:var(--ink);font-size:10px}.board-card-bottom span{display:flex;gap:7px;align-items:center}.feed-section{margin-top:37px}.search-row{display:flex;gap:12px;margin-bottom:14px}.search-field{display:flex;gap:11px;align-items:center;padding:0 14px;background:white;border:1px solid var(--line);border-radius:8px;flex:1;color:#9a9ead;min-width:0}.search-field input{width:100%;border:0;background:transparent;outline:none;padding:13px 0;font-size:12px;color:#303747;min-width:0}.search-field:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #5953d91c}.search-field input:focus-visible{outline:0}.filter-field{display:flex;align-items:center;gap:9px;border:1px solid var(--line);padding:0 12px;border-radius:8px;background:white;color:#61697c}.filter-field select{border:0;background:white;color:inherit;font-size:11px;padding:12px 2px;max-width:150px}.tag-filter{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 23px}.tag-filter button{font-size:10px;border:1px solid var(--line);border-radius:6px;padding:7px 10px;color:#7c8190;background:white}.tag-filter button.selected{color:var(--accent);border-color:#dad6fc;background:#efedff}.tag-filter button:hover{border-color:var(--accent)}.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.post-card{border:1px solid var(--line);background:white;border-radius:12px;overflow:hidden;min-width:0}.post-card.size-large{grid-column:1/-1}.post-body{padding:23px}.post-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px;font-size:10px;color:#7e8595}.provider{display:flex;gap:7px;align-items:center;font-size:10px;font-weight:600;min-width:0;overflow-wrap:anywhere}.post-meta time{flex-shrink:0;font-size:9px}.provider-video{color:#bf4848}.provider-github{color:#3c4351}.provider-text{color:#7b6cc1}.post-card h3{font-size:17px;line-height:1.5;letter-spacing:-.35px;margin:0 0 10px;overflow-wrap:anywhere}.post-card h3 a{display:flex;justify-content:space-between;gap:12px}.post-card h3 svg{margin-top:4px;color:#9196a5}.post-description{font-size:12px;line-height:1.9;color:#717889;margin:0 0 20px;white-space:pre-wrap;overflow-wrap:anywhere}.post-tags{display:flex;flex-wrap:wrap;gap:8px}.post-tags button,.post-tags span{font-size:10px;background:#f3f4f7;padding:4px 7px;border-radius:4px;color:#767e8f}.post-tags button:hover{color:var(--accent);background:#eeedfc}.note-card{background:#faf9ff;border-color:#e6e2f4}.note-card .post-tags button,.note-card .post-tags span{background:#efecf8;color:#8a7eaf}.post-image{position:relative;aspect-ratio:16/8;background:#202735;overflow:hidden}.post-image img{width:100%;height:100%;object-fit:cover}.size-large .post-image{aspect-ratio:21/7}.post-image iframe{width:100%;height:100%;border:0}.post-image:has(iframe){aspect-ratio:16/9}.image-failed img{display:none}.play-button{position:absolute;inset:50% auto auto 50%;transform:translate(-50%,-50%);width:52px;height:52px;border-radius:50%;background:#fffffff0;color:#454b58;font-size:20px;padding-left:9px;box-shadow:0 3px 20px #0003}.play-button:hover{background:white;scale:1.04}.video-label{position:absolute;bottom:12px;left:14px;background:#0009;color:white;letter-spacing:1px;font-size:9px;border-radius:4px;padding:5px 7px;pointer-events:none}.size-small .post-body{padding:17px}.size-small h3{font-size:15px}.size-small .post-description{font-size:11px}.empty-state{text-align:center;padding:50px 20px;background:white;border:1px dashed #d9dce5;border-radius:12px;color:var(--muted)}.empty-state h3,.empty-state h2{color:#404759}.empty-state p{line-height:1.7}.primary-button,.secondary-button{border-radius:7px;padding:11px 16px;font-weight:600;font-size:12px;display:inline-flex;gap:8px;align-items:center;justify-content:center}.primary-button{background:var(--accent);color:white}.primary-button:hover{background:#4943c5;color:white}.secondary-button{border:1px solid var(--line);background:white;color:#626a7b}.secondary-button:hover{border-color:var(--accent);color:var(--accent)}.end-note{display:flex;align-items:center;justify-content:center;gap:16px;font-size:10px;color:#999dac;margin:35px 0 8px}.end-note span{width:40px;height:1px;background:var(--line)}footer{max-width:1400px;margin:auto;padding:22px 42px;display:flex;justify-content:space-between;color:#9399a7;font-size:10px;border-top:1px solid var(--line)}footer>span{font-weight:700;letter-spacing:1px}.mobile-header{display:none}.loading{text-align:center;padding:80px;color:var(--muted)}.icon-button{display:grid;place-items:center;width:36px;height:36px;border-radius:7px}.icon-button:hover{background:#eeedf8}.menu-backdrop{position:fixed;inset:64px 0 0;background:#1b243455;z-index:19}
@media(min-width:1500px){.board-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.board-card{padding:18px}.post-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.post-card.size-large{grid-column:span 2}}
@media(max-width:1100px){.sidebar{width:225px;padding-inline:16px}.main-shell{margin-left:225px}main{padding:32px 26px}.topbar{padding:0 26px}.topbar-status{display:none}.board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:31px}.board-card{padding:18px}.post-meta{flex-wrap:wrap}.heading-icon{display:none}footer{padding-inline:26px}}
@media(max-width:760px){.mobile-header{display:flex;position:sticky;top:0;z-index:30;align-items:center;justify-content:space-between;height:64px;padding:0 20px;background:white;border-bottom:1px solid var(--line)}.mobile-header .brand{font-size:21px}.mobile-header .brand img{width:32px;height:32px}.sidebar{display:none;top:64px;width:270px}.sidebar.is-open{display:flex}.sidebar>.brand{display:none}.sidebar nav{margin-top:0}.main-shell{margin:0}.topbar{height:46px;padding:0 20px;font-size:10px}main{padding:29px 20px 18px}.page-heading{margin-bottom:30px}h1{font-size:30px}.eyebrow{font-size:9px}.lead{font-size:12px}.section-heading>span{display:none}.board-grid{gap:12px}.board-card{padding:17px}.board-card h3{font-size:14px}.board-card p{font-size:11px}.post-grid{grid-template-columns:1fr}.post-card.size-large{grid-column:auto}.size-large .post-image{aspect-ratio:16/9}.post-body{padding:20px}.search-row{gap:8px}.filter-field{padding:0 8px}.filter-field svg{display:none}.filter-field select{max-width:114px;font-size:10px}.post-meta{flex-wrap:nowrap}.end-note{font-size:9px;gap:9px}.end-note span{width:18px}footer{padding:19px 20px;font-size:9px}.board-year{font-size:9px}.board-icon{width:35px;height:35px}.board-card-top{gap:5px}.brand small{font-size:8px}}
@media(max-width:380px){.board-grid{grid-template-columns:1fr}h1{font-size:26px}.post-meta{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.post-subjects{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px}.post-subject{display:inline-block;background:var(--tint);color:var(--ink);font-size:11px;font-weight:600;line-height:1.5;padding:5px 8px;border-radius:5px;overflow-wrap:anywhere}
.sidebar{overflow-y:auto}
footer{flex-wrap:wrap;gap:10px 20px}

.month-group + .month-group{margin-top:36px}.month-heading{display:flex;align-items:center;gap:16px;margin:24px 0 18px;font-size:15px;font-weight:600;color:var(--muted)}.month-heading::first-letter{text-transform:uppercase}.month-heading::after{content:"";flex:1;height:1px;background:var(--line)}

.post-link-list{list-style:none;padding:0;margin:16px 0}.post-link-list li+li{border-top:1px solid var(--line)}.post-link-list a{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;color:var(--accent);overflow-wrap:anywhere}

.post-text-details{margin-bottom:20px}.post-text-details summary{cursor:pointer;list-style:none}.post-text-details summary::-webkit-details-marker{display:none}.post-text-preview{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;max-height:11.4em;margin-bottom:8px}.text-expand-label,.text-collapse-label{color:var(--accent);font-size:12px;font-weight:600}.text-collapse-label{display:none}.post-text-details[open] .post-text-preview,.post-text-details[open] .text-expand-label{display:none}.post-text-details[open] .text-collapse-label{display:inline}.post-text-details[open] summary{margin-bottom:12px}.post-text-details[open]>.post-description{margin-bottom:0}.post-text-details summary:focus-visible{outline:3px solid #8b83f5;outline-offset:3px;border-radius:4px}

.text-expand-label,.text-collapse-label,.text-collapse-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:10px 12px;border:1px solid #d8d5f4;border-radius:8px;background:#f2f0ff;color:var(--accent);font-size:13px;font-weight:600}.text-collapse-label{display:none}.post-text-details[open] .text-collapse-label{display:flex}.text-collapse-bottom{margin-top:16px;cursor:pointer}.post-text-details summary:hover .text-expand-label,.post-text-details summary:hover .text-collapse-label,.text-collapse-bottom:hover{background:#e9e5ff;border-color:var(--accent)}

.post-markdown{font-size:13px;line-height:1.7;overflow-wrap:anywhere;min-width:0;margin-bottom:20px}.post-markdown p{margin:0 0 10px}.post-markdown h4,.post-markdown h5,.post-markdown h6{margin:16px 0 8px;font-size:15px}.post-markdown a{color:var(--accent);text-decoration:underline}.post-markdown pre{overflow:auto;max-width:100%;padding:12px;background:#f3f4f7;border-radius:8px;white-space:pre}.post-markdown code{font-family:ui-monospace,monospace;background:#f3f4f7}.table-scroll{overflow-x:auto;max-width:100%;margin:12px 0}.post-markdown table{border-collapse:collapse;width:100%;font-size:12px}.post-markdown th,.post-markdown td{border:1px solid var(--line);padding:8px 10px;text-align:left;min-width:90px}.post-markdown th{background:#f3f4f7;font-weight:600}.post-body{min-width:0}

.post-text-container:has(>details[open])>.post-text-preview{display:none}
.post-text-preview.markdown-preview{display:block;max-height:10.2em;overflow:hidden;-webkit-line-clamp:unset;margin-bottom:8px}

.lesson-clock{margin-top:24px;padding:14px;border:1px solid #e6e2f4;border-radius:12px;background:#faf9ff;display:flex;flex-direction:column;gap:6px}
.lesson-clock strong{font-size:12px;color:var(--accent)}
.lesson-clock span{font-size:11px;color:var(--muted)}
.lesson-clock b{font-size:28px;letter-spacing:1px;font-variant-numeric:tabular-nums}
.lesson-clock b:empty{display:none}
.sidebar:has(.lesson-clock){overflow-y:auto}
.sidebar .lesson-clock+nav{margin-top:20px}

.exam-lock{min-height:100vh;max-width:none;margin:0;padding:28px;display:grid;place-items:center;background:radial-gradient(circle at 50% 0,#eeecfc 0,#f7f8fa 52%)}
.exam-lock-card{width:min(100%,620px);padding:52px 36px;text-align:center;background:white;border:1px solid #ddd9fa;border-radius:20px;box-shadow:0 18px 50px #36306b12}
.exam-lock-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 27px;border-radius:20px;color:var(--accent);background:#eeecfc}
.exam-lock-card .eyebrow{margin-bottom:14px}
.exam-lock-card h1{font-size:32px;margin-bottom:16px}
.exam-lock-card p:not(.eyebrow){max-width:420px;margin:0 auto;color:var(--muted);font-size:14px;line-height:1.8}
.exam-lock-card strong{display:block;margin:34px 0 7px;font-size:68px;line-height:1;font-variant-numeric:tabular-nums;letter-spacing:2px;color:#302b86}
.exam-lock-card>span:last-child{font-size:11px;color:var(--muted);font-weight:600;letter-spacing:.3px}
@media(max-width:500px){.exam-lock{padding:18px}.exam-lock-card{padding:40px 22px}.exam-lock-card h1{font-size:27px}.exam-lock-card strong{font-size:52px}}
