@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/poppins-latin-300-normal-Dku2WoCh.woff2) format("woff2"),url(/assets/poppins-latin-300-normal-DCNuMXUj.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/poppins-latin-400-normal-cpxAROuN.woff2) format("woff2"),url(/assets/poppins-latin-400-normal-BOb3E3N0.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/poppins-latin-500-normal-C8OXljZJ.woff2) format("woff2"),url(/assets/poppins-latin-500-normal-DGXqpDMm.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/poppins-latin-600-normal-zEkxB9Mr.woff2) format("woff2"),url(/assets/poppins-latin-600-normal-BJdTmd5m.woff) format("woff")}@font-face{font-family:Poppins;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/poppins-latin-700-normal-Qrb0O0WB.woff2) format("woff2"),url(/assets/poppins-latin-700-normal-BVuQR_eA.woff) format("woff")}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: rgb(18, 18, 18);--bg-secondary: rgb(30, 30, 30);--bg-tertiary: rgb(45, 45, 45);--bg-card: rgba(255, 255, 255, .05);--accent-primary: rgb(77, 155, 164);--accent-hover: rgb(97, 175, 184);--accent-light: rgba(77, 155, 164, .2);--text-primary: #ffffff;--text-secondary: rgba(255, 255, 255, .7);--text-muted: rgba(255, 255, 255, .5);--gradient-hero: linear-gradient(135deg, #0E2F47 0%, #4D9BA4 50%, #1a4a6e 100%);--gradient-hero-overlay: linear-gradient(to top, rgba(18, 18, 18, .95) 0%, rgba(18, 18, 18, .3) 50%, transparent 100%);--gradient-card-overlay: linear-gradient(to top, rgba(0, 0, 0, .8) 0%, transparent 60%);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .5);--shadow-dark-lg: 0 10px 40px rgba(0, 0, 0, .6);--space-xs: .25rem;--space-sm: .5rem;--space-md: 1rem;--space-lg: 1.5rem;--space-xl: 2rem;--space-2xl: 3rem;--space-3xl: 4rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px;--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .35s ease;--font-family: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 2rem;--font-size-4xl: 2.5rem;--font-size-5xl: 3rem;--navbar-height: 64px;--container-max: 1400px;--container-padding: 2rem}html{scroll-behavior:smooth;background-color:#0e2f47;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-primary);min-height:100vh;min-height:100dvh;overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;margin-bottom:var(--space-md)}h1{font-size:var(--font-size-5xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}p{color:var(--text-secondary);margin-bottom:var(--space-md)}a{color:inherit;text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--accent-primary)}.container{width:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.section{padding:var(--space-3xl) 0}.courses-layout{display:flex;width:100%;gap:0;padding:var(--space-md) 0 var(--space-md)}.courses-layout-sidebar{flex:0 0 25%;width:25%;padding:0 var(--space-xl) 0 var(--container-padding);position:sticky;top:calc(var(--navbar-height) + var(--space-lg));align-self:flex-start;display:flex;flex-direction:column;align-items:center}.courses-layout-main{flex:0 0 75%;width:75%;min-width:0;padding:0 var(--container-padding) 0 0}@media(max-width:768px){.courses-layout{flex-direction:column;gap:0;padding:0;width:100%}.courses-layout-sidebar{position:static;order:-1;flex:none;width:100%;padding:0;align-items:flex-start}.courses-layout-main{flex:none;width:100%;padding:0}}.section-title{font-size:var(--font-size-2xl);font-weight:600;margin-bottom:var(--space-lg);color:var(--text-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);text-decoration:none}.btn-primary{background:var(--accent-primary);color:var(--text-primary)}.btn-primary:hover{background:var(--accent-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}.btn-secondary{background:#ffffff1a;color:var(--text-primary);border:1px solid rgba(255,255,255,.2)}.btn-secondary:hover{background:#ffffff26;border-color:#ffffff4d}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:var(--font-size-base)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--accent-primary)}@media(max-width:1200px){:root{--container-padding: 1.5rem}}@media(max-width:768px){:root{--container-padding: 1rem;--font-size-5xl: 2.5rem;--font-size-4xl: 2rem;--font-size-3xl: 1.75rem}}@media(max-width:480px){:root{--font-size-5xl: 2rem;--font-size-4xl: 1.75rem;--font-size-3xl: 1.5rem}}body{transition:transform .18s cubic-bezier(.4,0,.2,1),opacity .18s cubic-bezier(.4,0,.2,1)}body.page-exit{transform:translate(-4%);opacity:0}body.page-enter{transform:translate(4%);opacity:0;transition:none}body.page-enter-active{transform:translate(0);opacity:1}body.page-exit-right{transform:translate(4%);opacity:0}body.page-enter-left{transform:translate(-4%);opacity:0;transition:none}.page-container{min-height:100vh;display:flex;flex-direction:column}.cfd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:1200;padding:1rem}.cfd-modal{background:linear-gradient(180deg,#0e2f47,#1a4a6e);border:1px solid rgba(255,255,255,.12);border-radius:14px;width:100%;max-width:400px;padding:1.25rem 1.4rem}.cfd-title{font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffffa6;margin:0 0 .6rem}.cfd-message{font-size:.88rem;color:#fff;line-height:1.5;margin:0 0 1.25rem}.cfd-actions{display:flex;justify-content:flex-end;gap:.6rem}.cfd-cancel{padding:.55rem 1.2rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:9px;color:#ffffffd9;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s}.cfd-cancel:hover{background:#ffffff24}.cfd-confirm{padding:.55rem 1.4rem;background:linear-gradient(135deg,#0e2f47,#4d9ba4);border:none;border-radius:9px;color:#fff;font-size:.9rem;font-weight:600;cursor:pointer;transition:filter .2s}.cfd-confirm:hover{filter:brightness(1.15)}.cfd-confirm.danger{background:linear-gradient(135deg,#7f1d1d,#991b1b)}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;background:#1e1e1ef2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;border:1px solid rgba(255,255,255,.1);box-shadow:0 8px 32px #0006;color:#fff;font-size:.9rem;min-width:280px;max-width:400px;pointer-events:all;cursor:pointer;animation:slideIn .3s ease-out;transition:transform .2s,opacity .2s}.toast:hover{transform:translate(-4px)}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}.toast-icon{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;flex-shrink:0}.toast-success .toast-icon{background:#22c55e33;color:#22c55e}.toast-error .toast-icon{background:#ef444433;color:#ef4444}.toast-warning .toast-icon{background:#f59e0b33;color:#f59e0b}.toast-info .toast-icon{background:#3b82f633;color:#3b82f6}.toast-success{border-left:3px solid #22c55e}.toast-error{border-left:3px solid #ef4444}.toast-warning{border-left:3px solid #f59e0b}.toast-info{border-left:3px solid #3b82f6}.toast-message{flex:1;line-height:1.4}.toast-close{display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:none;border:none;color:#ffffff80;font-size:1.25rem;cursor:pointer;border-radius:4px;transition:all .2s;flex-shrink:0}.toast-close:hover{background:#ffffff1a;color:#fff}@media(max-width:480px){.toast-container{left:16px;right:16px;bottom:16px}.toast{min-width:unset;max-width:unset}}.navbar{position:fixed;top:0;left:0;right:0;height:var(--navbar-height);background:#0e2f47;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);z-index:1000;border-bottom:1px solid rgba(255,255,255,.1)}.navbar-container{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.navbar-logo{display:flex;align-items:center;text-decoration:none}.navbar-logo-image{height:clamp(43px,5.4vw,72px);width:auto;object-fit:contain;margin-top:1px}.navbar-links{display:flex;align-items:center;gap:var(--space-xl)}.nav-link{font-size:var(--font-size-sm);font-weight:500;color:var(--text-secondary);text-decoration:none;transition:color var(--transition-fast);position:relative}.nav-link:hover,.nav-link.active{color:var(--text-primary)}.nav-link.active:after{content:"";position:absolute;bottom:-4px;left:0;right:0;height:2px;background:var(--accent-primary);border-radius:var(--radius-full)}.navbar-actions{display:flex;align-items:center;gap:var(--space-md)}.search-wrapper{display:flex;align-items:center;position:relative}.search-btn{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:transparent;border:none;border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast)}.search-btn:hover{color:var(--text-primary);background:#ffffff1a}.search-input{position:absolute;right:45px;width:0;padding:0;border:none;background:var(--bg-secondary);border-radius:var(--radius-md);color:var(--text-primary);font-family:var(--font-family);font-size:var(--font-size-sm);opacity:0;transition:all var(--transition-base)}.search-wrapper.open .search-input{width:200px;padding:var(--space-sm) var(--space-md);opacity:1}.search-input:focus{outline:none;box-shadow:0 0 0 2px var(--accent-primary)}.search-input::placeholder{color:var(--text-muted)}.btn-login{padding:var(--space-sm) var(--space-lg);background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--radius-full);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;text-decoration:none;transition:all var(--transition-fast);cursor:pointer}.btn-login:hover{background:#ffffff26;border-color:#ffffff4d;transform:translateY(-1px)}.btn-role{padding:var(--space-xs) var(--space-md);background:transparent;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-full);color:var(--text-secondary);font-size:var(--font-size-xs);font-weight:500;text-decoration:none;transition:all var(--transition-fast)}.btn-role:hover{color:var(--text-primary);border-color:#ffffff4d;background:#ffffff0d}.btn-aluno:hover{border-color:#4caf50;color:#4caf50}.btn-coordenador:hover{border-color:#ff9800;color:#ff9800}.login-wrapper{position:relative}.login-popup{position:absolute;top:calc(100% + 12px);right:0;background:linear-gradient(180deg,#0e2f47,#1a3a4f 70%,#2d4a5e);border:none;border-radius:var(--radius-lg);padding:var(--space-md);min-width:200px;box-shadow:0 8px 32px #00000080;z-index:1001;animation:popupFadeIn .2s ease-out}@keyframes popupFadeIn{0%{opacity:0}to{opacity:1}}.login-popup-arrow{position:absolute;top:-6px;right:20px;width:12px;height:12px;background:#0e2f47;border-left:1px solid rgba(255,255,255,.15);border-top:1px solid rgba(255,255,255,.15);transform:rotate(45deg)}.login-popup-item{display:block;width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);text-align:left}.login-popup-item:hover{background:#ffffff1a}.login-popup-item.accent-green{color:#4caf50}.login-popup-item.accent-green:hover{background:#4caf5026}.login-popup-item.accent-orange{color:#ff9800}.login-popup-item.accent-orange:hover{background:#ff980026}.login-popup-divider{height:1px;background:#ffffff1a;margin:var(--space-xs) 0}.btn-google{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:#fff;border:none;border-radius:var(--radius-md);color:#333;font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.btn-google:hover{background:#f5f5f5;transform:translateY(-1px);box-shadow:0 4px 12px #00000026}.user-logged-wrapper{display:flex;align-items:center;gap:10px}.user-avatar-circle{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;background:#ffffff1f;border:1.5px solid rgba(255,255,255,.25);color:var(--text-primary);flex-shrink:0}.user-display-name{font-size:var(--font-size-sm);font-weight:500;color:var(--text-primary);white-space:nowrap}.user-logged-wrapper{position:relative}.user-popup{position:absolute;top:calc(100% + 12px);right:0;background:linear-gradient(180deg,#0e2f47,#1a3a4f 70%,#2d4a5e);border:none;border-radius:var(--radius-lg);padding:var(--space-sm);min-width:180px;box-shadow:0 8px 32px #0006;z-index:1001;animation:popupFadeIn .2s ease-out}.user-popup-arrow{position:absolute;top:-6px;right:20px;width:12px;height:12px;background:#0e2f47;border-left:1px solid rgba(255,255,255,.15);border-top:1px solid rgba(255,255,255,.15);transform:rotate(45deg)}.user-popup-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);text-align:left;text-decoration:none}.user-popup-item--nav{display:none}@media(max-width:768px){.user-popup-item--nav{display:flex}}.user-popup-item:hover{background:#ffffff1a}.user-popup-item.logout{color:#ef4444}.user-popup-item.logout:hover{background:#ef44441a}.google-icon{flex-shrink:0}.logo-wrapper{position:relative}.mobile-menu-popup{display:none}@media(max-width:768px){.logo-wrapper{order:-1}.mobile-menu-popup{display:block;position:absolute;top:calc(100% + 12px);left:0;background:linear-gradient(180deg,#0e2f47,#1a3a4f 70%,#2d4a5e);border:none;border-radius:var(--radius-lg);padding:var(--space-sm);min-width:220px;box-shadow:0 8px 32px #00000080;z-index:1001;animation:popupFadeIn .2s ease-out}.mobile-menu-arrow{position:absolute;top:-6px;left:30px;transform:rotate(45deg);width:12px;height:12px;background:#0e2f47;border-left:1px solid rgba(255,255,255,.15);border-top:1px solid rgba(255,255,255,.15)}}@keyframes mobileMenuSlideDown{0%{opacity:0}to{opacity:1}}.mobile-menu-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-size-sm);font-weight:500;text-decoration:none;cursor:pointer;transition:all var(--transition-fast);text-align:left}.mobile-menu-item:hover{background:#ffffff1a}.mobile-menu-item.accent-green{color:#4caf50}.mobile-menu-item.accent-green:hover{background:#4caf5026}.mobile-menu-item.accent-orange{color:#ff9800}.mobile-menu-item.accent-orange:hover{background:#ff980026}.mobile-menu-divider{height:1px;background:#ffffff1a;margin:var(--space-xs) 0}.btn-google-mobile{background:#fff;color:#333;justify-content:center}.btn-google-mobile:hover{background:#f5f5f5}@media(max-width:768px){.navbar-links,.search-wrapper,.btn-role{display:none}}.hero-carousel{--hero-title-desktop: calc(var(--font-size-xl) * 1.6);--hero-title-mobile: calc(var(--font-size-xl) * 1);position:relative;width:100%;margin-top:var(--navbar-height);overflow:hidden}.cascade-hero-viewport{display:flex;gap:6px;width:100%;height:520px;padding:8px;overflow:hidden}.hero-carousel--placeholder .cascade-hero-viewport{background:linear-gradient(90deg,#ffffff08,#ffffff0f,#ffffff08);border-radius:16px}.cascade-hero-slide{position:relative;flex:.3;min-width:0;border-radius:16px;overflow:hidden;cursor:pointer;transition:flex 1.2s cubic-bezier(.25,1,.5,1),box-shadow .5s ease}.cascade-hero-slide--active{flex:6;box-shadow:0 8px 32px #0006,0 0 0 1px #4d9ba426}.cascade-hero-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;transition:transform 1s ease,filter .5s ease}.cascade-hero-slide:hover .cascade-hero-bg{transform:scale(1.03)}.cascade-hero-slide--active .cascade-hero-bg{transform:scale(1);filter:brightness(.75)}.cascade-hero-slide:not(.cascade-hero-slide--active) .cascade-hero-bg{filter:brightness(.4) saturate(.6)}.cascade-hero-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:flex-end;padding:48px var(--container-padding, 40px);opacity:0;transform:translateY(12px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;z-index:2;background:linear-gradient(0deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.3) 45%,transparent 100%)}.cascade-hero-slide--active .cascade-hero-content{opacity:1;transform:translateY(0);pointer-events:auto;transition:opacity .5s ease .55s,transform .5s ease .55s}.cascade-hero-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 0;z-index:2;transition:opacity .4s ease .5s,transform .4s ease .5s}.cascade-hero-label-text{writing-mode:vertical-rl;transform:rotate(180deg);font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;text-shadow:0 1px 6px rgba(0,0,0,.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:90%}.cascade-hero-slide--active .cascade-hero-label{opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .1s ease,transform .1s ease}.slide-subtitle{display:inline-block;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.1em;color:var(--accent-primary);margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:#4d9ba433;border-radius:var(--radius-sm);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:fit-content}.slide-title{font-size:var(--hero-title-desktop);font-weight:700;line-height:1.15;margin-bottom:var(--space-md);max-width:600px;text-shadow:0 2px 20px rgba(0,0,0,.4);color:#fff}.slide-description{font-size:var(--font-size-lg);color:#ffffffd9;max-width:500px;margin-bottom:var(--space-md);text-shadow:0 1px 10px rgba(0,0,0,.3);line-height:1.5}.slide-cta{box-shadow:0 4px 16px #4d9ba459;width:fit-content}.carousel-dots{position:absolute;bottom:20px;left:50%;transform:translate(-50%);display:flex;gap:8px;z-index:20}.carousel-dot{width:12px;height:12px;border-radius:var(--radius-full);background:#ffffff4d;border:none;cursor:pointer;transition:all .3s ease}.carousel-dot:hover{background:#ffffff8c;transform:scale(1.15)}.carousel-dot.active{width:36px;border-radius:6px;background:var(--accent-primary)}@media(max-width:768px){.hero-carousel{overflow:hidden}.cascade-hero-viewport{height:380px;gap:0;padding:0;border-radius:0}.cascade-hero-slide{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:0;opacity:0;transition:opacity .8s ease}.cascade-hero-slide--active{opacity:1;z-index:1}.cascade-hero-content{padding:32px 20px;transition:opacity .3s ease}.cascade-hero-slide--active .cascade-hero-content{transition:opacity .4s ease .2s}.cascade-hero-label{display:none}.slide-title{font-size:var(--hero-title-mobile)}.slide-description{display:none}.slide-cta{transform:scale(.82);transform-origin:left center;transition:none}.carousel-dots{bottom:14px}}@media(max-width:480px){.cascade-hero-viewport{height:320px}.cascade-hero-content{padding:24px 16px}}.category-row{padding:0;width:100%}.category-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-lg);min-height:36px}.category-title{font-size:var(--font-size-2xl);font-weight:600;margin:0}.category-title--mobile,.category-navigation{display:none}.category-grid-wrapper{width:100%}.category-grid.scrollable,.category-grid.distributed{display:flex;flex-direction:column;gap:8px;padding:var(--space-sm) 0 0;overflow:visible}.category-badge{display:flex;align-items:center;gap:10px;padding:8px 16px 8px 8px;background:var(--bg-secondary);border-radius:var(--radius-full);border:1.5px solid rgba(255,255,255,.06);cursor:pointer;transition:all .25s ease;font-family:inherit;color:inherit;white-space:nowrap;flex-shrink:0;width:100%}.category-badge:hover{background:var(--bg-tertiary);border-color:color-mix(in srgb,var(--category-color, var(--accent-primary)) 40%,transparent);box-shadow:0 4px 16px color-mix(in srgb,var(--category-color, var(--accent-primary)) 25%,transparent)}.category-badge.selected{border-color:var(--category-color, var(--accent-primary));background:color-mix(in srgb,var(--category-color, var(--accent-primary)) 12%,var(--bg-secondary));box-shadow:0 4px 20px color-mix(in srgb,var(--category-color, var(--accent-primary)) 30%,transparent)}.category-badge-icon{width:32px;height:32px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--category-color, var(--accent-primary)) 0%,rgba(0,0,0,.2) 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .25s ease}.category-badge:hover .category-badge-icon,.category-badge.selected .category-badge-icon{transform:scale(1.08)}.category-badge-icon--all{background:#ffffff1a;color:var(--text-secondary)}.category-badge.selected .category-badge-icon--all{background:#ffffff26;color:var(--text-primary)}.category-icon{width:20px;height:20px;object-fit:contain}.category-badge-name{font-size:var(--font-size-sm);font-weight:600;color:var(--text-secondary);transition:color .2s ease}.category-badge:hover .category-badge-name,.category-badge.selected .category-badge-name{color:var(--text-primary)}@media(max-width:768px){.category-row{padding:var(--space-md) 0 var(--space-xs) 0}.category-header{display:flex;justify-content:center;align-items:center;min-height:auto;margin-bottom:var(--space-md)}.category-title--desktop{display:none}.category-title--mobile{display:block;font-size:var(--font-size-xl);letter-spacing:.12em;text-align:center;margin:0}.category-wheel-wrapper{display:flex;flex-direction:row;align-items:center;width:100%;gap:0}.wheel-scroll-wrap{flex:1;min-width:0;position:relative}.wheel-scroll-wrap:after{content:"";position:absolute;top:0;right:0;bottom:0;width:64px;background:linear-gradient(to right,transparent,var(--bg-primary) 90%);pointer-events:none;z-index:3}.category-wheel{display:flex;flex-direction:row;align-items:center;overflow-x:scroll;overflow-y:visible;scroll-snap-type:x mandatory;gap:6px;padding-left:var(--container-padding);padding-right:var(--space-sm);padding-top:16px;padding-bottom:16px;-ms-overflow-style:none;scrollbar-width:none}.category-wheel::-webkit-scrollbar{display:none}.wheel-divider{flex-shrink:0;color:#fff3;font-size:1.2rem;line-height:1;padding:0 10px;-webkit-user-select:none;user-select:none}.wheel-todos-btn{flex-shrink:0;padding:8px 14px;margin-right:var(--container-padding);background:var(--bg-secondary);border:1.5px solid rgba(255,255,255,.06);border-radius:var(--radius-full);color:var(--text-secondary);font-family:inherit;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap}.wheel-todos-btn:hover{background:var(--bg-tertiary);color:var(--text-primary)}.wheel-todos-btn.selected{border-color:var(--accent-primary);background:color-mix(in srgb,var(--accent-primary) 12%,var(--bg-secondary));color:var(--text-primary);box-shadow:0 4px 16px color-mix(in srgb,var(--accent-primary) 25%,transparent)}.wheel-item{flex:0 0 160px;height:44px;scroll-snap-align:center}.wheel-item .category-badge{width:100%;height:44px;padding:6px 12px 6px 6px;gap:8px;justify-content:flex-start}.wheel-item .category-badge-icon{width:30px;height:30px;flex-shrink:0}.wheel-item .category-icon{width:18px;height:18px}.wheel-item .category-badge-name{font-size:var(--font-size-sm);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.video-promo{padding:var(--space-md) 0 var(--space-xs) 0}.video-promo-morph{position:relative;width:100%;height:36px;border-radius:var(--radius-md);background:linear-gradient(135deg,#142844f2,#1e375ae6);border:1px solid rgba(77,155,164,.2);overflow:hidden;cursor:pointer;transition:height .6s cubic-bezier(.25,1,.5,1),border-radius .4s ease;-webkit-tap-highlight-color:transparent}.video-promo-morph:active:not(.video-promo-morph--open){transform:scale(.98)}.video-promo-morph--open{height:calc((100vw - 32px)*.5625);max-height:240px;border-radius:var(--radius-lg);cursor:default;border-color:#4d9ba41a}.video-promo-bar-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:10px;z-index:2;transition:opacity .2s ease}.video-promo-bar-label--hidden{opacity:0;pointer-events:none}.video-promo-bar-icon{width:28px;height:28px;border-radius:var(--radius-full);background:#4d9ba433;border:1px solid rgba(77,155,164,.35);display:flex;align-items:center;justify-content:center;color:var(--accent-primary, #4d9ba4);flex-shrink:0}.video-promo-bar-text{font-size:.7rem;font-weight:700;letter-spacing:.14em;color:#ffffffd9}.video-promo-thumb-wrap{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .2s ease;pointer-events:none}.video-promo-thumb-wrap--visible{opacity:1;pointer-events:auto;transition:opacity .35s ease .3s}.video-promo-thumb{width:100%;height:100%;object-fit:cover;display:block}.video-promo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000004d;display:flex;align-items:center;justify-content:center;cursor:pointer}.video-play-btn{width:56px;height:56px;border-radius:50%;background:#fff3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;border:2px solid rgba(255,255,255,.4);transition:transform .2s ease}.video-promo-overlay:active .video-play-btn{transform:scale(.9)}.video-promo-collapse{position:absolute;top:8px;right:8px;width:28px;height:28px;border-radius:var(--radius-full);background:#00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.15);color:#fffc;font-size:.75rem;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:3;transition:background .2s ease}.video-promo-collapse:active{background:#000000b3}.video-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:9999;display:flex;align-items:center;justify-content:center;animation:vp-fade-in .3s ease;padding:10px}@keyframes vp-fade-in{0%{opacity:0}to{opacity:1}}.video-modal{position:relative;width:100%;max-width:1200px;animation:vp-scale-in .3s cubic-bezier(.4,0,.2,1)}@keyframes vp-scale-in{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.video-modal-close{position:absolute;top:-32px;right:0;background:none;border:none;color:#ffffffb3;font-size:1.5rem;cursor:pointer;padding:4px 12px;transition:color .2s;z-index:1}.video-modal-close:hover{color:#fff}.video-modal-player{position:relative;padding-top:56.25%;border-radius:var(--radius-md);overflow:hidden;background:#000}.video-modal-player iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.course-card{display:block;flex-shrink:0;text-decoration:none;border-radius:var(--radius-md);overflow:hidden;transition:transform var(--transition-base);cursor:pointer}.course-card:hover{transform:scale(1.03);z-index:10}.course-card.poster{width:207px}.card-image-wrapper{position:relative;overflow:hidden;border-radius:var(--radius-md);background:var(--bg-secondary)}.course-card.poster .card-image-wrapper{aspect-ratio:3 / 4}.card-image{width:100%;height:100%;object-fit:cover;transition:all var(--transition-slow)}.course-card:hover .card-image{filter:brightness(.6);transform:scale(1.05)}.card-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-card-overlay);opacity:0;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--space-md);transition:opacity var(--transition-base)}.course-card:hover .card-overlay{opacity:1}.card-info{display:flex;flex-direction:column;gap:var(--space-xs)}.card-progress{width:100%;height:3px;background:#fff3;border-radius:var(--radius-full);overflow:hidden}.progress-bar{height:100%;background:var(--accent-primary);border-radius:var(--radius-full);transition:width var(--transition-base)}.card-duration,.card-lessons{font-size:var(--font-size-xs);color:var(--text-secondary)}.card-content{padding:var(--space-sm) 0}.card-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:0;line-height:1.4;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}.card-instructor{font-size:var(--font-size-xs);color:var(--text-muted);margin:var(--space-xs) 0 0 0}@media(max-width:768px){.course-card.poster{width:161px}}@media(max-width:480px){.course-card.poster{width:138px}}.card-coming-soon{position:absolute;top:0;right:0;bottom:0;left:0;background:#282828d9;display:flex;align-items:center;justify-content:center;z-index:5;border-radius:var(--radius-md)}.loading-dots{display:flex;gap:6px}.loading-dots span{width:10px;height:10px;background:#fff;border-radius:50%;animation:dots-bounce 1.4s ease-in-out infinite}.loading-dots span:nth-child(1){animation-delay:0s}.loading-dots span:nth-child(2){animation-delay:.2s}.loading-dots span:nth-child(3){animation-delay:.4s}@keyframes dots-bounce{0%,80%,to{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}.coming-soon-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease}.coming-soon-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:var(--space-xl);max-width:400px;width:90%;text-align:center;animation:slideUp .3s ease}.modal-icon{font-size:3rem;margin-bottom:var(--space-md)}.coming-soon-modal h3{color:var(--text-primary);font-size:var(--font-size-lg);margin:0 0 var(--space-sm) 0}.coming-soon-modal p{color:var(--text-secondary);font-size:var(--font-size-sm);margin:0 0 var(--space-lg) 0;line-height:1.5}.modal-close-btn{background:var(--accent-primary);color:#fff;border:none;padding:var(--space-sm) var(--space-xl);border-radius:var(--radius-full);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.modal-close-btn:hover{background:var(--accent-hover);transform:scale(1.05)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.course-row{padding:0}.row-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-lg)}.row-title{font-size:var(--font-size-2xl);font-weight:600;margin:0}.row-navigation{display:flex;gap:var(--space-sm)}.row-arrow{width:36px;height:36px;background:#ffffff1a;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-full);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.row-arrow:hover{background:#ffffff26;color:var(--text-primary);transform:scale(1.05)}.row-arrow:active{transform:scale(.95)}.row-scroll-wrapper{position:relative;overflow:hidden;max-height:var(--sidebar-height, none)}.row-cards{display:flex;flex-wrap:wrap;gap:var(--space-md);overflow-x:auto;scroll-behavior:smooth;scroll-snap-type:x mandatory;padding:var(--space-sm) 0;padding-bottom:var(--space-md);-ms-overflow-style:none;scrollbar-width:none}.row-cards::-webkit-scrollbar{display:none}.row-cards>*{scroll-snap-align:start}.row-scroll-wrapper:after{content:"";position:absolute;top:0;bottom:0;right:0;width:60px;pointer-events:none;z-index:5;background:linear-gradient(to left,var(--bg-primary),transparent)}.row-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3xl) var(--container-padding);text-align:center;color:var(--text-secondary)}.row-empty-state p{font-size:var(--font-size-lg);margin:0 0 var(--space-xs) 0;color:var(--text-primary)}.row-empty-state span{font-size:var(--font-size-sm);opacity:.7}@media(max-width:768px){.row-title,.row-navigation{display:none}.row-scroll-wrapper{max-height:none;overflow:visible}.row-cards{flex-wrap:nowrap;overflow-x:scroll;overflow-y:visible;scroll-snap-type:x mandatory;gap:var(--space-sm);padding:var(--space-sm) var(--container-padding) var(--space-md);-ms-overflow-style:none;scrollbar-width:none}.row-cards::-webkit-scrollbar{display:none}.row-cards>*{scroll-snap-align:start;flex-shrink:0}}.footer{background:var(--bg-secondary);border-top:1px solid rgba(255,255,255,.05);margin-top:var(--space-3xl);padding:calc(var(--space-xl) * .6) 0}.footer-container{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:var(--space-2xl);align-items:center;max-width:var(--container-max);margin:0 auto;padding:0 var(--container-padding)}.footer-brand{display:flex;flex-direction:column;gap:var(--space-lg)}.footer-logo{display:flex;align-items:center;gap:var(--space-sm)}.footer-logo-image{height:135px;width:auto;object-fit:contain}.footer-copyright{font-size:var(--font-size-sm);color:var(--text-muted);margin:0}.footer-section{display:flex;flex-direction:column;gap:var(--space-md)}.footer-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-primary);margin:0}.footer-nav{display:flex;flex-direction:column;gap:var(--space-sm)}.footer-nav a{font-size:var(--font-size-sm);color:var(--text-muted);text-decoration:none;transition:color var(--transition-fast);display:flex;align-items:center;gap:var(--space-sm)}.footer-nav a:hover{color:var(--text-primary)}.footer-social a{display:flex;align-items:center;gap:var(--space-sm)}.footer-social svg{opacity:.7;transition:opacity var(--transition-fast)}.footer-social a:hover svg{opacity:1}@media(max-width:1024px){.footer-container{grid-template-columns:1fr 1fr;gap:var(--space-xl)}.footer-brand{grid-column:span 2;flex-direction:row;justify-content:space-between;align-items:center}}@media(max-width:640px){.footer-container{grid-template-columns:1fr;text-align:center}.footer-brand{grid-column:span 1;flex-direction:column;align-items:center}.footer-logo{justify-content:center}.footer-nav{align-items:center}.footer-social a{justify-content:center}}.error-boundary{min-height:calc(100vh - var(--navbar-height));display:flex;align-items:center;justify-content:center;padding:var(--space-xl) var(--container-padding);background:var(--bg-primary);color:var(--text-primary)}.error-boundary--compact{min-height:240px}.error-boundary-card{max-width:520px;width:100%;background:var(--bg-card);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);padding:var(--space-xl);text-align:center;box-shadow:var(--shadow-md)}.error-boundary-title{margin:0 0 var(--space-sm);font-size:var(--font-size-xl);font-weight:600}.error-boundary-text{margin:0 0 var(--space-lg);color:var(--text-secondary);line-height:1.5}.error-boundary-actions{display:flex;gap:var(--space-sm);justify-content:center;flex-wrap:wrap}.error-boundary-debug{margin-top:var(--space-lg);padding:var(--space-md);text-align:left;font-size:var(--font-size-xs);color:var(--text-muted);background:#00000059;border-radius:var(--radius-sm);overflow:auto;max-height:240px;white-space:pre-wrap}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9999;background:var(--bg-primary, #0e0e0e);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:48px}.splash-logo{display:flex;align-items:center;justify-content:center}.splash-logo img{width:clamp(120px,28vw,200px);height:auto;opacity:.92}.splash-bar-track{width:clamp(160px,36vw,280px);height:3px;background:#ffffff14;border-radius:999px;overflow:hidden}.splash-bar-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent-primary, #4d9ba4),var(--accent-hover, #3a8a94));border-radius:999px;box-shadow:0 0 8px var(--accent-primary, #4d9ba4);animation:splash-fill .9s linear forwards}@keyframes splash-fill{0%{width:0%}to{width:100%}}
