@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-ext-400-normal-Xqov12YL.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-400-normal-DRPPeomZ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-cyrillic-400-normal-BPq32Q8K.woff2)format("woff2"),url(/assets/montserrat-cyrillic-400-normal-jEs4Tk-Z.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-vietnamese-400-normal-D4oHqQTd.woff2)format("woff2"),url(/assets/montserrat-vietnamese-400-normal-BeEscFYY.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-ext-400-normal-B8bwfy6Y.woff2)format("woff2"),url(/assets/montserrat-latin-ext-400-normal-BffdBkAA.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/montserrat-latin-400-normal-BLhwKU8k.woff2)format("woff2"),url(/assets/montserrat-latin-400-normal-xItZbAXg.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-ext-500-normal-11xBT7e1.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-500-normal-DOzfAZ45.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-cyrillic-500-normal-T0SG181k.woff2)format("woff2"),url(/assets/montserrat-cyrillic-500-normal-CyGtXmN9.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-vietnamese-500-normal-NT-t8RG1.woff2)format("woff2"),url(/assets/montserrat-vietnamese-500-normal-DpeZlV_K.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-ext-500-normal-BKtbrd6n.woff2)format("woff2"),url(/assets/montserrat-latin-ext-500-normal-DWPqqZgs.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/montserrat-latin-500-normal-DRFEGfly.woff2)format("woff2"),url(/assets/montserrat-latin-500-normal-Dok2oTci.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-ext-700-normal-MyDreaeu.woff2)format("woff2"),url(/assets/montserrat-cyrillic-ext-700-normal-D-Mk2xRJ.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-cyrillic-700-normal-D-Pqjtdp.woff2)format("woff2"),url(/assets/montserrat-cyrillic-700-normal-BvLYcGP1.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-vietnamese-700-normal-C0x1De3p.woff2)format("woff2"),url(/assets/montserrat-vietnamese-700-normal-DnwGT2D9.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-ext-700-normal-BOP2Nhf0.woff2)format("woff2"),url(/assets/montserrat-latin-ext-700-normal-DdDFr05Z.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Montserrat;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/montserrat-latin-700-normal-BdjcYUrC.woff2)format("woff2"),url(/assets/montserrat-latin-700-normal-BWkrl476.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--text:#252525;--text-h:#242021;--bg:#fff;--border:#eaeaea;--sans:"Helvetica Neue", Arial, sans-serif;--heading:"Montserrat", "Helvetica Neue", Arial, sans-serif;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0}#root{flex-direction:column;width:100%;min-height:100svh;display:flex}h1,h2{font-family:var(--heading);color:var(--text-h);margin:0;font-weight:700}p{margin:0}.top-bar{background:var(--black);box-sizing:border-box;flex-shrink:0;justify-content:space-between;align-items:center;width:100%;height:64px;padding:0 32px;display:flex}.top-bar-fixed{z-index:100;position:fixed;top:0;left:0;right:0}.top-bar-transparent{background:color-mix(in srgb, var(--black) 60%, transparent)}.top-bar-left{align-items:center;gap:12px;display:flex}.top-bar-brand-btn{cursor:pointer;background:0 0;border:none;align-items:center;gap:12px;padding:0;display:flex}.top-bar-mark{object-fit:contain;flex-shrink:0;width:auto;height:30px}.top-bar-brand{letter-spacing:.02em;color:var(--color-primary);white-space:nowrap;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:18px;font-weight:700}.back-btn{width:26px;height:26px;color:var(--white);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.back-btn svg{width:100%;height:100%}.back-btn:hover{color:var(--color-primary)}.top-bar-icons{gap:16px;display:flex}.icon-btn{width:24px;height:24px;color:var(--white);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:0;display:flex}.icon-btn svg{width:100%;height:100%}.icon-btn:hover{color:var(--color-primary)}.site-footer{background:var(--black);box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;width:100%;padding:20px 16px;display:flex}.site-footer-text{color:var(--white);opacity:.75;text-align:center;margin:0;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:13px}.course-search-bar-wrapper{width:100%;position:relative}.search-suggestions{z-index:60;background:var(--color-surface);border-radius:14px;max-height:320px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow-y:auto;box-shadow:0 4px 16px #0000002e}.search-suggestion{cursor:pointer;transition:background var(--transition-fast,.15s ease);border-radius:8px;align-items:baseline;gap:10px;padding:10px 12px;display:flex}.search-suggestion:hover,.search-suggestion.highlighted{background:var(--color-bg)}.suggestion-code{color:var(--gold-base);flex-shrink:0;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:13px;font-weight:700}.suggestion-title{color:var(--color-text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.homepage{background:var(--color-bg);--top-bar-height:64px;width:100%;min-height:100vh;position:relative}.hero{background:linear-gradient(135deg, var(--black) 0%, var(--gold-dark) 100%);box-sizing:border-box;width:100%;height:62vh;min-height:460px;max-height:660px;padding-top:var(--top-bar-height);background-position:50%;background-repeat:no-repeat;background-size:cover;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:#0006;position:absolute;inset:0}.hero-overlay{z-index:1;box-sizing:border-box;flex-direction:column;align-items:center;gap:28px;width:100%;max-width:560px;padding:0 24px;display:flex;position:relative}.hero-wordmark{object-fit:contain;width:auto;height:48px;margin-bottom:-16px}.hero-title{color:var(--white);text-align:center;text-transform:uppercase;letter-spacing:.06em;margin:0;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:clamp(28px,5vw,48px);font-weight:700;line-height:1.15}.hero-tagline{color:var(--white);opacity:.85;text-align:center;max-width:420px;margin:-14px 0 0;font-size:clamp(13px,2vw,15px);line-height:1.5}.hero-links{align-items:center;gap:14px;margin-top:-6px;display:flex}.hero-link{color:var(--white);letter-spacing:.02em;cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:4px 2px;font-size:13px;font-weight:600}.hero-link:hover{color:var(--color-primary)}.hero-link-divider{background:var(--white);opacity:.6;border-radius:50%;flex-shrink:0;width:4px;height:4px}.search-bar{background:var(--color-surface);box-sizing:border-box;border-radius:28px;align-items:center;width:100%;padding:4px 6px 4px 20px;display:flex;box-shadow:0 2px 8px #0003}.search-bar input{min-width:0;min-height:44px;color:var(--color-text);box-sizing:border-box;background:0 0;border:none;outline:none;flex:1;font-size:15px}.search-bar input::placeholder{color:var(--color-text-muted);font-style:italic}.search-bar button{width:44px;height:44px;color:var(--color-text);cursor:pointer;transition:background var(--transition-fast);background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:flex}.search-bar button:hover{background:var(--color-border)}.search-bar button svg{width:22px;height:22px}.homepage-content{box-sizing:border-box;width:100%;max-width:1100px;margin:0 auto;padding-top:40px}.intro{box-sizing:border-box;align-items:center;gap:20px;width:100%;padding:8px 32px 24px;display:flex}.intro-logo{object-fit:contain;flex-shrink:0;width:250px;height:250px}.intro-text{flex-direction:column;flex:1;gap:8px;max-width:700px;display:flex}.intro-heading{color:var(--color-text);margin:0;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:17px;font-weight:700}.intro-line{color:var(--color-text-muted);margin:0;font-size:14px;line-height:1.5}.popular-classes-heading{color:var(--color-text);margin:8px 0 16px;padding:0 32px;font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:20px;font-weight:700}.cards-row{box-sizing:border-box;flex-wrap:wrap;gap:16px;width:100%;padding:0 32px 60px;display:flex}.cards-row-empty{color:var(--color-text-muted);margin:0;padding:8px 0;font-size:13px}.card{background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;box-sizing:border-box;text-align:left;min-width:130px;height:76px;transition:box-shadow var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast);border-radius:8px;flex-direction:column;flex:calc(25% - 16px);justify-content:center;align-items:flex-start;gap:4px;padding:0 14px;display:flex;box-shadow:0 1px 3px #00000014}.card:hover{border-color:var(--color-primary);transform:translateY(-1px);box-shadow:0 2px 10px #00000024}.card-code{color:var(--gold-dark);font-family:Montserrat,Helvetica Neue,Arial,sans-serif;font-size:12px;font-weight:700}[data-theme=dark] .homepage .card-code{color:var(--gold-light)}.card-title{color:var(--color-text);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:12px;line-height:1.3;display:-webkit-box;overflow:hidden}@media (width<=768px){.hero{height:56vh;min-height:400px}.hero-wordmark{height:36px}.hero-title{font-size:clamp(22px,6.5vw,34px)}.intro,.popular-classes-heading,.cards-row{padding-left:20px;padding-right:20px}.intro-logo{width:110px;height:110px}.card{flex:calc(50% - 16px);height:60px}}.scroll-to-top-btn{background:var(--gold-base);width:44px;height:44px;color:var(--black);cursor:pointer;z-index:200;opacity:0;pointer-events:none;transition:opacity var(--transition-base,.25s ease), transform var(--transition-base,.25s ease), background var(--transition-fast,.15s ease);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;bottom:20px;right:20px;transform:translateY(12px);box-shadow:0 2px 10px #00000040}.scroll-to-top-btn.visible{opacity:1;pointer-events:auto;transform:translateY(0)}.scroll-to-top-btn:hover{background:var(--gold-dark)}[data-theme=dark] .scroll-to-top-btn{background:var(--color-emphasis);color:var(--color-on-emphasis)}[data-theme=dark] .scroll-to-top-btn:hover{background:var(--color-emphasis-hover)}.scroll-to-top-btn svg{width:20px;height:20px}@media (width<=480px){.scroll-to-top-btn{width:40px;height:40px;bottom:14px;right:14px}}:root{--gold-dark:#896805;--gold-base:#f2c417;--gold-light:#f7d75a;--blue-base:#2e6be6;--blue-light:#5b8def;--space-black:#0a0e1a;--space-surface:#16203b;--space-border:#2a3350;--space-muted:#9aa3b8;--black:#1a1a1a;--black-rgb:26, 26, 26;--gray-900:#333;--gray-500:#4c4c4c;--gray-300:#bbb;--page-gray:#edeff1;--white:#fff;--status-error:#e57373;--status-success:#3fa34d;--lightningcss-light:initial;--lightningcss-dark: ;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--color-bg:var(--page-gray);--color-surface:var(--white);--color-text:var(--black);--color-text-muted:var(--gray-500);--color-border:var(--gray-300);--color-primary:var(--gold-base);--color-primary-hover:var(--gold-dark);--color-on-primary:var(--black);--color-emphasis:var(--black);--color-emphasis-hover:var(--gray-900);--color-on-emphasis:var(--white);--color-error:var(--status-error);--color-success:var(--status-success)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--color-bg:var(--space-black);--color-surface:var(--space-surface);--color-text:var(--white);--color-text-muted:var(--space-muted);--color-border:var(--space-border);--color-primary:var(--blue-base);--color-primary-hover:var(--blue-light);--color-on-primary:var(--white);--color-emphasis:var(--blue-base);--color-emphasis-hover:var(--blue-light);--color-on-emphasis:var(--white);--color-error:var(--status-error);--color-success:var(--status-success);--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.4s ease}body{background:var(--color-bg);color:var(--color-text);transition:background-color .2s,color .2s}*{scrollbar-color:var(--gold-base) transparent}[data-theme=dark],[data-theme=dark] *{scrollbar-color:var(--blue-base) transparent}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background-color:var(--gold-base);background-clip:content-box;border:3px solid #0000;border-radius:8px}::-webkit-scrollbar-thumb:hover{background-color:var(--gold-dark)}[data-theme=dark] ::-webkit-scrollbar-thumb{background-color:var(--blue-base)}[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background-color:var(--blue-light)}
