.tc-wrap{max-width:var(--page-width);margin:0 auto;padding:var(--s-7) var(--page-pad-x) var(--s-9)}.tc-hero{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-7);align-items:end;padding-bottom:var(--s-7)}@media (max-width:900px){.tc-hero{grid-template-columns:1fr;gap:var(--s-4);align-items:start}}.tc-hero h1{font-family:var(--serif);font-size:clamp(56px,8vw,96px);font-weight:700;letter-spacing:-.03em;line-height:1}.tc-hero-right{display:flex;flex-direction:column;gap:var(--s-3);padding-bottom:var(--s-2)}.tc-hero-right p{font-family:var(--sans);font-size:17px;line-height:1.5;color:var(--text)}.tc-hero-right p strong{font-weight:600}.courses{padding:var(--s-3) 0 var(--s-6)}.section-head{font-family:var(--serif);font-size:18px;font-weight:600;letter-spacing:-.01em;color:var(--text);margin-bottom:var(--s-4);display:flex;align-items:baseline;justify-content:space-between}.section-head h2{font:inherit;letter-spacing:inherit;color:inherit}.section-head .more{font-family:var(--serif);font-size:14px;color:var(--muted)}.courses .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--s-4)}@media (max-width:1000px){.courses .grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:640px){.courses .grid{grid-template-columns:1fr}}.course-card{position:relative;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:var(--s-4);display:flex;flex-direction:column;gap:var(--s-2);min-height:200px;width:100%;text-align:left;text-decoration:none;color:inherit;cursor:pointer;transition:border-color .22s var(--ease-out)}.course-card:before{content:"";position:absolute;inset:-1px;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .22s var(--ease-out);box-shadow:0 0 0 0 rgba(77,90,140,0)}.course-card:focus{outline:none}.course-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.course-card:hover{border-color:var(--accent)}.course-card:hover:before{opacity:1;animation:course-pulse 1.6s ease-in-out infinite alternate}@keyframes course-pulse{0%{box-shadow:0 0 0 2px rgba(77,90,140,.22),0 4px 14px rgba(77,90,140,.06)}to{box-shadow:0 0 0 7px rgba(77,90,140,.14),0 14px 32px rgba(77,90,140,.1)}}.course-card .code{font-family:var(--serif);font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.course-card h3{font-family:var(--serif);font-size:20px;font-weight:600;letter-spacing:-.01em;line-height:1.3;color:var(--text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;padding-bottom:.08em;background:linear-gradient(100deg,var(--text) 0,var(--text) 38%,var(--accent) 50%,var(--text) 62%,var(--text) 100%);background-size:400% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.course-card:hover h3{animation:course-shimmer 3s linear infinite;animation-delay:-.5s}@keyframes course-shimmer{0%{background-position:100% 0}to{background-position:0 0}}.course-card .meta{font-family:var(--serif);font-size:13.5px;color:var(--muted);display:flex;gap:var(--s-2);flex-wrap:wrap;align-items:center}.course-card .meta .sep{color:var(--border)}.course-card .meta .badge{display:inline-block;font-family:var(--serif);font-size:10.5px;padding:1px 6px;background:var(--accent-bg);color:var(--accent-hi);border-radius:2px}.course-card .meta .badge.platform{background:rgba(204,220,88,.35);color:#4D5610}.course-card .view{margin-top:auto;padding-top:var(--s-3);font-family:var(--serif);font-size:13.5px;font-weight:500;color:var(--accent)}@media (prefers-reduced-motion:reduce){.course-card:before{transition:opacity .15s linear}.course-card:hover:before{animation:none;box-shadow:0 0 0 3px rgba(77,90,140,.2)}.course-card h3{background:none;-webkit-text-fill-color:var(--text);color:var(--text)}.course-card:hover h3{animation:none}}.vip{padding:var(--s-6) 0 var(--s-5)}.vip-meta{font-family:var(--serif);font-size:15px;color:var(--muted)}.vip-meta strong{color:var(--text);font-weight:500}.vip-meta .sep{color:var(--border);margin:0 6px}.tc-toolbar{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3);background:var(--surface);border:1px solid var(--border);border-radius:8px;margin-bottom:var(--s-3);flex-wrap:wrap}.tc-search{flex:1 1 320px;position:relative;min-width:240px}.tc-search input{width:100%;padding:10px 12px 10px 36px;background:var(--surface-2);border:1px solid var(--border);border-radius:6px;font-family:var(--serif);font-size:13px;color:var(--text);transition:border-color .15s,box-shadow .15s}.tc-search input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}.tc-search .icon{left:12px;width:14px;height:14px}.tc-search .icon,.tc-search kbd{position:absolute;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none}.tc-search kbd{right:10px;font-family:var(--mono);font-size:10px;background:var(--bg);border:1px solid var(--border);padding:2px 6px;border-radius:3px}.tc-sort{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.tc-sort button{font-family:var(--serif);font-size:12px;padding:9px 12px;background:var(--surface-2);border:none;color:var(--muted);cursor:pointer}.tc-sort button+button{border-left:1px solid var(--border)}.tc-sort button.is-active{background:var(--text);color:var(--bg)}.tc-sort button:not(.is-active):hover{color:var(--text);background:var(--bg)}.tc-filters{display:grid;grid-template-columns:70px 1fr;-moz-column-gap:var(--s-3);column-gap:var(--s-3);row-gap:var(--s-2);margin-bottom:var(--s-4);align-items:start}.tc-filters>.label{font-family:var(--serif);font-size:14px;font-weight:500;color:var(--muted);padding-top:8px}.tc-filters>.chip-row{display:flex;flex-wrap:wrap;gap:var(--s-2);min-width:0}@media (max-width:600px){.tc-filters{grid-template-columns:1fr}.tc-filters>.label{padding-top:0}}.chip{font-family:var(--serif);font-size:14px;font-weight:500;padding:6px 10px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:background .15s,border-color .15s,color .15s}.chip:hover{border-color:var(--text)}.chip.is-on{background:var(--accent-bg);border-color:var(--accent);color:var(--accent-hi)}.chip .count{color:var(--muted);font-size:10.5px}.chip.is-on .count{color:var(--accent)}.vip-feed{display:block;border:1px solid var(--accent);border-radius:8px;overflow:hidden;background:var(--surface-2)}.vip-thead{display:grid;grid-template-columns:140px 1fr 110px;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--accent);background:var(--accent-bg);font-family:var(--serif);font-size:13px;font-weight:500;color:var(--accent-hi)}.vip-thead>div:last-child{text-align:right}.vip-row{display:grid;grid-template-columns:140px 1fr 110px;gap:var(--s-4);padding:var(--s-4);border-bottom:1px solid var(--border);align-items:start}.vip-row:last-child{border-bottom:none}.vip-row .sem{font-family:Arial,sans-serif;font-size:12.5px;color:var(--muted);padding-top:4px}.vip-row h3{font-family:var(--serif);font-size:17px;font-weight:500;line-height:1.3;color:var(--text);margin:0 0 4px;background:linear-gradient(100deg,var(--text) 0,var(--text) 38%,var(--accent) 50%,var(--text) 62%,var(--text) 100%);background-size:400% 100%;background-position:100% 0;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}.vip-row h3:hover{animation:vip-shimmer 3s linear infinite;animation-delay:-.5s;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}@keyframes vip-shimmer{0%{background-position:100% 0}to{background-position:0 0}}@media (prefers-reduced-motion:reduce){.vip-row h3{background:none;-webkit-text-fill-color:var(--text);color:var(--text)}.vip-row h3:hover{animation:none}}.vip-row .desc mark,.vip-row h3 mark{background:rgba(204,220,88,.45);color:inherit;padding:0 1px;border-radius:2px}.vip-row .desc{font-size:14px;line-height:1.5}.vip-row .desc,.vip-row .kind{font-family:var(--serif);color:var(--muted)}.vip-row .kind{font-size:13px;padding-top:5px;text-align:right}.tc-empty{text-align:center;padding:var(--s-9) var(--s-5);font-family:var(--serif);color:var(--muted)}.tc-empty h3{font-size:22px;margin-bottom:var(--s-2);color:var(--text)}.tc-empty p{font-family:var(--sans);font-size:14px}.toast{position:fixed;left:50%;bottom:80px;transform:translate(-50%,20px);background:var(--text);color:var(--bg);font-family:var(--serif);font-size:12px;padding:10px 16px;border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.2);opacity:0;pointer-events:none;z-index:50;transition:opacity .2s,transform .2s var(--ease-out)}.toast.is-on{opacity:1;transform:translate(-50%)}@media (max-width:760px){.vip-row,.vip-thead{grid-template-columns:1fr;gap:var(--s-1);padding:var(--s-3) 0}.vip-thead{display:none}.vip-row .kind,.vip-row .sem{display:inline;padding-top:0;text-align:left}}.ece595-lectures{margin-bottom:var(--s-9)}.lectures-feed{display:block;border:1px solid var(--accent);border-radius:8px;overflow:hidden;background:var(--surface-2)}.lectures-thead{display:grid;grid-template-columns:64px 1fr 280px;gap:var(--s-4);padding:var(--s-3) var(--s-4);border-bottom:1px solid var(--accent);background:var(--accent-bg);font-family:var(--serif);font-size:13px;font-weight:500;color:var(--accent-hi)}.lectures-list{list-style:none;padding:0;margin:0}.lectures-list .lecture{display:grid;grid-template-columns:64px 1fr 280px;gap:var(--s-4);padding:var(--s-4);border-bottom:1px solid var(--border);align-items:baseline}.lectures-list .lecture:last-child{border-bottom:none}.lectures-list .num{font-family:var(--serif);font-size:22px;font-style:italic;font-weight:400;color:var(--accent);letter-spacing:-.01em}.lectures-list .topic{font-family:var(--serif);font-size:17px;font-weight:500;color:var(--text)}.lectures-list .links{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-3);font-family:var(--serif);font-size:12px}.lectures-list .links a{color:var(--muted);text-decoration:none;padding:3px 8px;border:1px solid var(--border);border-radius:3px;transition:color .15s,border-color .15s,background .15s}.lectures-list .links a.slides{color:var(--text);border-color:var(--text);background:var(--surface)}.lectures-list .links a:hover{color:var(--accent);border-color:var(--accent);background:var(--surface-2)}@media (max-width:760px){.lectures-thead{display:none}.lectures-list .lecture{grid-template-columns:40px 1fr;gap:var(--s-3);padding:var(--s-3)}.lectures-list .lecture .links{grid-column:1/-1}}