@import "https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&display=swap";:root{--bg:#0a0b14;--bg-soft:#11131f;--surface:#161825;--border:#262940;--text:#f1f1f6;--text-muted:#8b8fa3;--accent-blue:#4f8eff;--accent-violet:#a78bfa;--accent-coral:#ff6b6b;--accent-teal:#2dd4bf;--accent-amber:#fbbf24;--font-display:"Space Grotesk", sans-serif;--font-body:"Inter", sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(circle at 12% 18%, #4f8eff1a, transparent 42%), radial-gradient(circle at 88% 78%, #a78bfa1a, transparent 42%), radial-gradient(circle at 50% 100%, #2dd4bf0d, transparent 55%), var(--bg);color:var(--text);font-family:var(--font-body);-webkit-font-smoothing:antialiased;background-attachment:fixed}h1,h2,h3,.display{font-family:var(--font-display);letter-spacing:-.02em}.page{justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.card{z-index:2;border:1px solid var(--border);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(160deg,#161825cc,#11131fb3);border-radius:16px;width:100%;max-width:380px;padding:40px;position:relative;box-shadow:0 20px 60px -20px #0009}.card--plain{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none;background:0 0;border:none;padding:0}.field{margin-bottom:18px}.field label{color:var(--text-muted);margin-bottom:6px;font-size:13px;display:block}.field input:not([type=checkbox]):not([type=radio]){background:var(--bg-soft);border:1px solid var(--border);width:100%;color:var(--text);font-family:var(--font-body);border-radius:10px;outline:none;padding:12px 14px;font-size:14px;transition:border-color .15s,box-shadow .15s}.field input[type=checkbox],.field input[type=radio]{cursor:pointer;width:18px;height:18px;accent-color:var(--accent-blue);flex:0 0 18px;margin:0;padding:0}.field input:not([type=checkbox]):not([type=radio]):focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #4f8eff26}.btn-primary{background:linear-gradient(135deg, var(--accent-blue), var(--accent-violet));color:#0a0b14;cursor:pointer;border:none;border-radius:10px;width:100%;padding:12px 14px;font-size:14px;font-weight:600;transition:opacity .15s,transform .15s,box-shadow .15s;box-shadow:0 8px 24px -8px #4f8eff80}.btn-primary:hover{opacity:.92;box-shadow:0 10px 28px -6px #4f8eff99}.btn-primary:active{transform:scale(.98)}.btn-primary:focus-visible{outline:2px solid var(--accent-teal);outline-offset:2px}.btn-ghost{border:1px solid var(--border);color:var(--text-muted);font-size:13px;font-family:var(--font-body);cursor:pointer;background:#ffffff05;border-radius:999px;padding:9px 18px;transition:all .15s}.btn-ghost:hover{border-color:var(--accent-coral);color:var(--text);background:#ff6b6b14}.link-muted{color:var(--text-muted);font-size:13px;text-decoration:none;transition:color .15s}.link-muted:hover{color:var(--text)}.split{min-height:100vh;display:flex}.split-panel{flex:1;position:relative;overflow:hidden}.split-panel--visual{background:var(--bg-soft);align-items:flex-end;padding:48px;display:flex}.split-panel--form{background:var(--bg);justify-content:center;align-items:center;display:flex}@media (width<=768px){.split{flex-direction:column}.split-panel--visual{text-align:center;align-items:center;min-height:200px;padding:32px}}@keyframes float-chip{0%{opacity:0;transform:translateY(30px)}15%{opacity:1}85%{opacity:1}to{opacity:0;transform:translateY(-320px)}}.float-chip{border:1px solid var(--border);color:var(--text-muted);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1;background:#16182599;border-radius:999px;padding:6px 14px;font-size:12px;animation:9s linear infinite float-chip;position:absolute}@keyframes eye-wink{0%,to{transform:scaleY(1)}50%{transform:scaleY(.15)}}.eye-wink{transform-box:fill-box;transform-origin:50%;animation:.7s ease-in-out eye-wink}@keyframes hand-wave{0%,to{transform:rotate(0)}25%{transform:rotate(-16deg)}75%{transform:rotate(16deg)}}.hand-wave{transform-box:fill-box;animation:.5s ease-in-out 2 hand-wave}@keyframes duo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.duo-spin{animation:1.4s cubic-bezier(.45,0,.55,1) duo-spin}@keyframes text-grow-in{0%{opacity:0;transform:scale(7)}55%{opacity:1}to{opacity:1;transform:scale(1)}}.text-grow-in{animation:1.2s cubic-bezier(.22,1,.36,1) forwards text-grow-in}.logo-chip{background:#fff;border-radius:14px;margin-bottom:20px;padding:10px 16px;display:inline-flex}.logo-chip img{height:80px;display:block}.navbar{z-index:10;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border);background:#0a0b14d9;justify-content:space-between;align-items:center;padding:14px 32px;display:flex;position:sticky;top:0}.navbar-logo{align-items:center;display:flex}.navbar-logo img{border-radius:15px;height:86px;display:block}.browse-page{background:0 0;flex-direction:column;min-height:100vh;display:flex}.browse-content{flex:1;width:100%;max-width:960px;margin:0 auto;padding:40px 24px}.browse-title{margin-bottom:6px;font-size:26px}.browse-subtitle{color:var(--text-muted);margin-bottom:32px;font-size:14px}.item-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.item-card{background:linear-gradient(160deg, var(--surface), #11131f99);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:12px;padding:20px;transition:border-color .15s,transform .15s,box-shadow .15s}.item-card:hover{border-color:var(--accent-blue);transform:translateY(-3px);box-shadow:0 12px 30px -12px #4f8eff66}.item-card h3{color:var(--text);margin:0 0 4px;font-size:16px}.item-card p{color:var(--text-muted);margin:0;font-size:13px}.empty-state{color:var(--text-muted);text-align:center;padding:40px 0;font-size:14px}.site-footer{border-top:1px solid var(--border);text-align:center;padding:24px}.footer-content{flex-direction:column;align-items:center;gap:8px;display:flex}.footer-name{color:var(--text-muted);margin:0;font-size:13px}.footer-links{align-items:center;gap:10px;font-size:13px;display:flex}.footer-sep{color:var(--border)}.eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-blue);background:#4f8eff1a;border:1px solid #4f8eff40;border-radius:999px;margin-bottom:14px;padding:4px 12px;font-size:12px;font-weight:600;display:inline-block}@keyframes card-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.entity-card{background:linear-gradient(160deg, var(--surface), #11131f99);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:14px;align-items:center;gap:14px;width:100%;padding:18px;transition:border-color .15s,transform .15s,box-shadow .15s;animation:.4s backwards card-in;display:flex}.entity-card:hover{transform:translateY(-3px);box-shadow:0 14px 34px -14px #4f8eff73}.entity-avatar{width:44px;height:44px;font-family:var(--font-display);border:1px solid;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:17px;font-weight:600;display:flex}.entity-card h3{color:var(--text);margin:0 0 2px;font-size:15px}.entity-card p{color:var(--text-muted);margin:0;font-size:12.5px}.semester-card{background:linear-gradient(160deg, var(--surface), #11131f99);border:1px solid var(--border);cursor:pointer;border-radius:14px;flex-direction:column;align-items:flex-start;gap:6px;padding:22px;transition:border-color .15s,transform .15s,box-shadow .15s;animation:.4s backwards card-in;display:flex}.semester-card:hover{border-color:var(--accent-violet);transform:translateY(-3px);box-shadow:0 14px 34px -14px #a78bfa73}.semester-number{font-family:var(--font-display);color:var(--text);font-size:30px;font-weight:700}.semester-label{color:var(--text-muted);font-size:12.5px}.tab-bar{border-bottom:1px solid var(--border);gap:8px;margin-bottom:24px;display:flex}.tab-btn{color:var(--text-muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;margin-right:20px;padding:10px 4px;font-size:14px;position:relative}.tab-btn.active{color:var(--text)}.tab-btn.active:after{content:"";background:linear-gradient(90deg, var(--accent-blue), var(--accent-violet));border-radius:2px;height:2px;position:absolute;bottom:-1px;left:0;right:0}.syllabus-text{color:var(--text-muted);white-space:pre-wrap;max-width:640px;font-size:14px;line-height:1.7}.video-layout{grid-template-columns:2fr 1fr;align-items:start;gap:20px;display:grid}.video-player-frame{aspect-ratio:16/9;border:1px solid var(--border);background:#000;border-radius:14px;width:100%;position:relative;overflow:hidden}.video-player-frame iframe{border:none;width:100%;height:100%;position:absolute;inset:0}.player-fallback{aspect-ratio:16/9;background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:24px;display:flex}.playlist{flex-direction:column;gap:8px;max-height:480px;display:flex;overflow-y:auto}.playlist-item{background:var(--surface);border:1px solid var(--border);cursor:pointer;text-align:left;border-radius:10px;align-items:center;gap:10px;padding:8px;transition:border-color .15s;display:flex}.playlist-item.active{border-color:var(--accent-blue)}.playlist-item img{object-fit:cover;border-radius:6px;flex-shrink:0;width:90px;height:54px}.playlist-item span{color:var(--text);font-size:13px;line-height:1.3}.notes-list{flex-direction:column;gap:8px;max-width:640px;margin-bottom:20px;display:flex}.notes-viewer{border:1px solid var(--border);background:var(--surface);border-radius:14px;max-width:900px;overflow:hidden}.notes-iframe{background:#fff;border:none;width:100%;height:70vh;display:block}.notes-viewer-footer{border-top:1px solid var(--border);justify-content:space-between;padding:10px 16px;font-size:12.5px;display:flex}@media (width<=768px){.video-layout{grid-template-columns:1fr}}.checkbox-list{border:1px solid var(--border);border-radius:10px;flex-direction:column;gap:8px;max-height:160px;padding:10px;display:flex;overflow-y:auto}.checkbox-item{color:var(--text);align-items:center;gap:8px;font-size:13px;display:flex}.hero-section{padding:0 48px}.hero-grid{grid-template-columns:1fr 1fr;align-items:center;gap:40px;width:100%;max-width:1100px;display:grid}@media (width<=860px){.hero-grid{text-align:center;grid-template-columns:1fr}.hero-grid>div:first-child>div{justify-content:center}}.admin-divider{border:none;border-top:1px solid var(--border);margin:24px 0}.preview-box{color:var(--text);background:#4f8eff0f;border:1px solid #4f8eff40;border-radius:12px;margin-top:20px;padding:16px 18px;font-size:13.5px}.preview-box p{color:var(--text-muted);margin:4px 0}.tab-segment{background:var(--surface);border:1px solid var(--border);border-radius:16px;grid-template-columns:repeat(5,1fr);gap:6px;max-width:620px;padding:6px;display:grid}.tab-segment-btn{color:var(--text-muted);font-family:var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:11px;padding:12px 8px;font-size:13.5px;transition:background .15s,color .15s}.tab-segment-btn.active{background:var(--bg);color:var(--text);font-weight:600;box-shadow:0 4px 14px -4px #00000080}@media (width<=560px){.tab-segment{grid-template-columns:repeat(3,1fr)}}.notes-modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#000000b3;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.notes-modal{background:var(--surface);border:1px solid var(--border);border-radius:14px;flex-direction:column;width:100%;max-width:900px;height:85vh;display:flex;overflow:hidden;box-shadow:0 30px 80px -20px #000000b3}.notes-modal-header{border-bottom:1px solid var(--border);color:var(--text);justify-content:space-between;align-items:center;padding:14px 18px;font-size:14px;display:flex}.notes-modal-close{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:4px 8px;font-size:16px}.notes-modal-close:hover{color:var(--text)}.notes-modal-iframe{background:#fff;border:none;flex:1;width:100%}.resource-grid{flex-wrap:wrap;gap:16px;display:flex}.resource-grid .entity-card{flex:none;width:260px}.page-container{width:100%;max-width:960px;margin:0 auto;padding:40px 24px}.page-container .tab-segment{width:100%;max-width:620px}.page-container .video-layout,.page-container .resource-grid{width:100%}@media (width<=768px){.page-container{padding:32px 20px}}@media (width<=560px){.page-container{padding:28px 16px}}
