@keyframes skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;scroll-behavior:smooth;hanging-punctuation:first last;scroll-padding-top:var(--space-16)}body{min-height:100dvh;line-height:1.6;font-family:var(--font-body,sans-serif);font-size:var(--text-base);color:var(--color-text);background-color:var(--color-bg)}img,picture,video,canvas,svg{max-width:100%;height:auto;display:block}img{background:var(--color-surface-offset)}ul[role=list],ol[role=list]{list-style:none}input,button,textarea,select{font:inherit;color:inherit}h1,h2,h3,h4,h5,h6{font-family:var(--font-display,sans-serif);text-wrap:balance;line-height:1.2}p,li,figcaption{text-wrap:pretty;max-width:72ch}button{cursor:pointer;background:0 0;border:none}table{border-collapse:collapse;width:100%}::selection{background:oklch(from var(--color-primary) l c h/.2);color:var(--color-text)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@font-face{font-family:Sora;src:url(../../../fonts/Sora-VariableFont_wght.woff2)format("woff2 supports variations"),url(../../../fonts/Sora-VariableFont_wght.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url(../../../fonts/Poppins-Regular.woff2)format("woff2"),url(../../../fonts/Poppins-Regular.ttf)format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url(../../../fonts/Poppins-Medium.woff2)format("woff2"),url(../../../fonts/Poppins-Medium.ttf)format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Poppins;src:url(../../../fonts/Poppins-Bold.woff2)format("woff2"),url(../../../fonts/Poppins-Bold.ttf)format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(../../../fonts/JetBrainsMono-VariableFont_wght.woff2)format("woff2 supports variations"),url(../../../fonts/JetBrainsMono-VariableFont_wght.woff2)format("woff2");font-weight:100 800;font-style:normal;font-display:swap}h1{font-family:var(--font-display);font-size:var(--text-hero);letter-spacing:-.02em;font-weight:800}h2{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:-.015em;font-weight:700}h3{font-family:var(--font-display);font-size:var(--text-xl);font-weight:700}h4{font-family:var(--font-body);font-size:var(--text-lg);font-weight:600}h5{font-family:var(--font-body);font-size:var(--text-base);font-weight:600}h6{font-family:var(--font-body);font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;font-weight:600}p{font-size:var(--text-base);color:var(--color-text);line-height:1.7}p.lead{font-size:var(--text-lg);color:var(--color-text-muted);line-height:1.6}p.caption{font-size:var(--text-xs);color:var(--color-text-faint);letter-spacing:.02em}a{color:var(--color-primary);transition-property:color background border-color box-shadow;transition-duration:var(--transition-interactive);text-decoration:none;transition-timing-function:cubic-bezier(.16,1,.3,1)}a:hover{color:var(--color-primary-hover);text-decoration:underline}a:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}strong,b{font-weight:600}em,i{font-style:italic}code{font-family:var(--font-mono);background:var(--color-surface-offset);border-radius:var(--radius-sm);color:var(--color-primary);padding:.15em .4em;font-size:.9em}pre{font-family:var(--font-mono);font-size:var(--text-sm);background:var(--color-surface-offset);padding:var(--space-4);border-radius:var(--radius-md);line-height:1.6;overflow-x:auto}pre code{color:inherit;background:0 0;padding:0}blockquote{border-left:3px solid var(--color-primary);padding-left:var(--space-4);color:var(--color-text-muted);margin-block:var(--space-6);font-style:italic}.container{max-width:var(--content-default);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.container{padding-inline:var(--space-8)}}.container--narrow{max-width:var(--content-narrow);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.container--narrow{padding-inline:var(--space-8)}}.container--wide{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.container--wide{padding-inline:var(--space-8)}}.grid{gap:var(--space-6);display:grid}.grid--2{grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr))}.grid--3{grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr))}.grid--4{grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr))}@media (width>=1024px){.grid--sidebar{grid-template-columns:260px 1fr}}.layout-public{flex-direction:column;min-height:100dvh;display:flex}.layout-public__main{flex:1}.layout-app{min-height:100dvh;display:grid}@media (width>=1024px){.layout-app{grid-template-columns:260px 1fr}}.layout-app__sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);height:100dvh;position:sticky;top:0;overflow-y:auto}.layout-app__main{padding:var(--space-8);overflow-y:auto}.section{padding-block:clamp(var(--space-12), 6vw, var(--space-24))}.btn{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);font-size:var(--text-sm);border-radius:var(--radius-md);white-space:nowrap;min-height:44px;transition-property:color background border-color box-shadow;transition-duration:var(--transition-interactive);border:1px solid #0000;font-weight:500;line-height:1;text-decoration:none;transition-timing-function:cubic-bezier(.16,1,.3,1);display:inline-flex}.btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.btn--primary{background:var(--color-primary);color:var(--color-text-inverse);border-color:var(--color-primary)}.btn--primary:hover{color:var(--color-primary-highlight)}.btn--primary:active{background:var(--color-primary-active)}.btn--secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}.btn--secondary:hover{background:var(--color-surface-offset)}.btn--secondary:active{background:var(--color-divider)}.btn--ghost{color:var(--color-primary);background:0 0;border-color:#0000}.btn--ghost:hover{background:var(--color-primary-highlight)}.btn--ghost:active{background:oklch(from var(--color-primary) l c h/.15)}.btn--danger{background:var(--color-error);color:#fff;border-color:var(--color-error)}.btn--danger:hover{opacity:.88}.btn--danger:active{opacity:.76}.btn--sm{padding:var(--space-1) var(--space-3);font-size:var(--text-xs);border-radius:var(--radius-sm);min-height:32px}.btn--lg{padding:var(--space-3) var(--space-8);font-size:var(--text-base);border-radius:var(--radius-lg);min-height:52px}.btn--icon{padding:var(--space-2);border-radius:var(--radius-md);width:44px;height:44px}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed;pointer-events:none}.card{background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);border-radius:var(--radius-lg);transition-property:box-shadow transform border-color;transition-duration:var(--transition-interactive);flex-direction:column;transition-timing-function:cubic-bezier(.16,1,.3,1);display:flex;overflow:hidden}.card__thumbnail{aspect-ratio:1.77778;object-fit:cover;background:var(--color-surface-offset);flex-shrink:0;width:100%;position:relative}.card__body{padding:var(--space-5);gap:var(--space-2);flex-direction:column;flex:1;display:flex}.card__badge{align-items:center;gap:var(--space-1);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary);background:var(--color-primary-highlight);padding:var(--space-1) var(--space-2);border-radius:var(--radius-full);font-weight:600;display:inline-flex}.card__title{font-size:var(--text-lg);color:var(--color-text);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0;font-weight:700;display:-webkit-box;overflow:hidden}.card__description{font-size:var(--text-sm);color:var(--color-text-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;flex:1;max-width:none;display:-webkit-box;overflow:hidden}.card__meta{align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-faint);flex-wrap:wrap;display:flex}.card__footer{padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-divider);justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.card--course{cursor:pointer;color:inherit;text-decoration:none}.card--course:hover{box-shadow:var(--shadow-md);border-color:color-mix(in oklab, var(--color-primary) 22%, var(--color-border));text-decoration:none;transform:translateY(-2px)}.card--course:hover .card__title,.card--course:hover .course-card__link,.card--course:hover .course-card__icon{color:var(--color-primary)}.card--course:active{transform:translateY(0)}.card--lesson{padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);align-items:center;gap:var(--space-3);cursor:pointer;flex-direction:row}.card--lesson:hover{background:var(--color-surface-offset)}.card--lesson.is-active{background:var(--color-primary-highlight)}.card--lesson.is-active .card__title{color:var(--color-primary)}.card--lesson.is-completed .card__title{color:var(--color-text-muted)}.card--lesson .card__thumbnail{aspect-ratio:16/9;border-radius:var(--radius-sm);width:80px;min-width:80px}.card--lesson .card__body{gap:var(--space-1);padding:0}.card--lesson .card__title{font-size:var(--text-sm);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.card--stat{padding:var(--space-5);align-items:flex-start;gap:var(--space-4);flex-direction:row}.card--stat .card__icon{border-radius:var(--radius-md);background:var(--color-primary-highlight);width:44px;height:44px;color:var(--color-primary);flex-shrink:0;place-items:center;display:grid}.card--stat .card__value{font-size:var(--text-2xl);font-variant-numeric:tabular-nums;font-weight:800;line-height:1}.card--stat .card__label{font-size:var(--text-xs);color:var(--color-text-muted);margin-top:var(--space-1);max-width:none}.course-card__thumbnail{overflow:hidden}.course-card__image,.course-card__placeholder{width:100%;height:100%;position:absolute;inset:0}.course-card__image{object-fit:cover}.course-card__placeholder{padding:var(--space-4);background:radial-gradient(circle at top left, color-mix(in oklab, var(--color-primary) 24%, transparent), transparent 42%), linear-gradient(135deg, var(--color-surface-offset), var(--color-surface));color:var(--color-primary);font-size:var(--text-sm);letter-spacing:.04em;text-transform:uppercase;place-items:center;font-weight:700;display:grid}.course-card__header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.course-card__footer{color:var(--color-text-muted)}.course-card__link{font-size:var(--text-sm);color:inherit;font-weight:600}.course-card__icon{color:inherit;transition-property:transform color;transition-duration:var(--transition-interactive);font-size:1.125rem;line-height:1;transition-timing-function:cubic-bezier(.16,1,.3,1)}.course-card:hover .course-card__icon{transform:translate(2px)}.nav{z-index:100;background:var(--color-surface);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);position:sticky;top:0}.nav__inner{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.nav__inner{padding-inline:var(--space-8)}}.nav__inner{justify-content:space-between;align-items:center;gap:var(--space-6);height:64px;display:flex}.nav__logo{align-items:center;gap:var(--space-2);color:var(--color-text);font-size:var(--text-lg);font-weight:700;font-family:var(--font-display);flex-shrink:0;justify-self:start;text-decoration:none;display:flex}.nav__logo:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.nav__logo img{background:0 0;width:auto;height:34px}.nav__center{justify-self:center;display:none}@media (width>=768px){.nav__center{display:flex}}.nav__links{align-items:center;gap:var(--space-1);background-color:var(--color-surface-offset);padding:var(--space-1) var(--space-2);list-style:none;display:flex}.nav__item{display:flex}.nav__link{font-size:var(--text-sm);color:var(--color-text-muted);padding:var(--space-2) var(--space-4);transition-property:color background border-color box-shadow;transition-duration:var(--transition-interactive);border-bottom:2px solid #0000;font-weight:500;text-decoration:none;transition-timing-function:cubic-bezier(.16,1,.3,1)}.nav__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.nav__link:hover{color:var(--color-text);border-bottom-color:var(--color-text-muted);text-decoration:none}.nav__link.is-active{color:var(--color-text);border-bottom-color:var(--color-primary)}.nav__actions{align-items:center;gap:var(--space-2);justify-self:end;display:flex}.nav__toggle{display:flex}@media (width>=768px){.nav__toggle{display:none}}.nav__mobile{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-4);display:none}.nav__mobile.is-open{display:block}.nav__mobile .nav__link{padding:var(--space-3) var(--space-4);border-bottom:2px solid #0000;display:block}.nav__mobile .nav__link:hover{border-bottom-color:var(--color-text-muted)}.nav__mobile .nav__link.is-active{border-bottom-color:var(--color-primary)}.nav__mobile-item{list-style:none}.nav__mobile-cta{padding-top:var(--space-3);border-top:1px solid var(--color-border);margin-top:var(--space-2);list-style:none}.nav__mobile-cta .btn{justify-content:center;width:100%}.sidebar{padding:var(--space-6) var(--space-4);gap:var(--space-1);flex-direction:column;display:flex}.sidebar__logo{padding:var(--space-2) var(--space-3);margin-bottom:var(--space-4);align-items:center;gap:var(--space-2);font-weight:700;font-family:var(--font-display);color:var(--color-text);text-decoration:none;display:flex}.sidebar__logo:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.sidebar__section{margin-top:var(--space-4);margin-bottom:var(--space-1);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-faint);padding-inline:var(--space-3);font-weight:600}.sidebar__link{align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);border-radius:var(--radius-md);min-height:44px;transition-property:color background border-color box-shadow;transition-duration:var(--transition-interactive);font-weight:500;text-decoration:none;transition-timing-function:cubic-bezier(.16,1,.3,1);display:flex}.sidebar__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.sidebar__link:hover{color:var(--color-text);background:var(--color-surface-offset)}.sidebar__link.is-active{color:var(--color-primary);background:var(--color-primary-highlight);font-weight:600}.sidebar__link__icon{flex-shrink:0;width:20px;height:20px}.footer{color:#e8e6e2;background:#111110}.footer__body{padding-block:clamp(var(--space-12), 8vw, var(--space-20))}.footer__container{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.footer__container{padding-inline:var(--space-8)}}.footer__grid{gap:var(--space-10);grid-template-columns:1fr;display:grid}@media (width>=768px){.footer__grid{grid-template-columns:1fr 1fr}}@media (width>=1024px){.footer__grid{gap:var(--space-12);grid-template-columns:2fr 1fr 1fr}}.footer__brand{gap:var(--space-5);flex-direction:column;display:flex}.footer__logo{align-items:center;text-decoration:none;display:inline-flex}.footer__logo:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.footer__logo-text{font-family:var(--font-display);font-size:var(--text-xl);color:#e8e6e2;letter-spacing:-.02em;font-weight:800}.footer__tagline{font-size:var(--text-sm);color:#8a8885;max-width:38ch;line-height:1.6}.footer__social{align-items:center;gap:var(--space-2);margin:0;padding:0;list-style:none;display:flex}.footer__social-link{border-radius:var(--radius-md);color:#8a8885;width:36px;height:36px;transition-property:color background-color border-color;transition-duration:var(--transition-interactive);border:1px solid #2e2c2a;justify-content:center;align-items:center;transition-timing-function:cubic-bezier(.16,1,.3,1);display:inline-flex}.footer__social-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.footer__social-link svg{flex-shrink:0;width:16px;height:16px}.footer__social-link:hover{color:var(--color-text-inverse);background:var(--color-primary);border-color:var(--color-primary)}.footer__nav{gap:var(--space-4);flex-direction:column;display:flex}.footer__nav-title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:#e8e6e2;margin:0;font-weight:700}.footer__nav-list{gap:var(--space-3);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.footer__nav-link{font-size:var(--text-sm);color:#8a8885;transition-property:color;transition-duration:var(--transition-interactive);text-decoration:none;transition-timing-function:cubic-bezier(.16,1,.3,1)}.footer__nav-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.footer__nav-link:hover{color:#e8e6e2}.footer__bar{padding-block:var(--space-6);border-top:1px solid #2e2c2a}.footer__bar-inner{align-items:center;gap:var(--space-4);text-align:center;flex-direction:column;display:flex}@media (width>=768px){.footer__bar-inner{text-align:left;flex-direction:row;justify-content:space-between}}.footer__copy{font-size:var(--text-xs);color:#555350;max-width:none;margin:0}.footer__copy-link{color:#8a8885;transition-property:color;transition-duration:var(--transition-interactive);text-decoration:none;transition-timing-function:cubic-bezier(.16,1,.3,1)}.footer__copy-link:hover{color:var(--color-primary)}.footer__legal-links{align-items:center;gap:var(--space-5);flex-wrap:wrap;justify-content:center;margin:0;padding:0;list-style:none;display:flex}@media (width>=768px){.footer__legal-links{justify-content:flex-end}}.footer__bmc{margin-top:var(--space-4)}.form-field{gap:var(--space-2);flex-direction:column;display:flex}.form-label{font-size:var(--text-sm);color:var(--color-text);font-weight:500}.form-label--required:after{content:" *";color:var(--color-error)}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-2) var(--space-4);font-size:var(--text-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);min-height:44px;transition-property:border-color box-shadow background;transition-duration:var(--transition-interactive);line-height:1.5;transition-timing-function:cubic-bezier(.16,1,.3,1)}.form-input:focus-visible,.form-select:focus-visible,.form-textarea:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.form-input::placeholder,.form-select::placeholder,.form-textarea::placeholder{color:var(--color-text-faint)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--color-text-muted)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--color-primary);background:var(--color-surface-2)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{opacity:.5;cursor:not-allowed;background:var(--color-surface-offset)}.form-input.has-error,.form-select.has-error,.form-textarea.has-error{border-color:var(--color-error);background:var(--color-error-highlight)}.form-input.has-error:focus,.form-select.has-error:focus,.form-textarea.has-error:focus{box-shadow:0 0 0 3px oklch(from var(--color-error) l c h/.15)}.form-textarea{resize:vertical;min-height:120px}.form-helper{font-size:var(--text-xs);color:var(--color-text-faint);max-width:none}.form-error{font-size:var(--text-xs);color:var(--color-error);max-width:none;font-weight:500}.progress-bar{background:var(--color-divider);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-bar__fill{background:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow);min-width:4px}.progress-bar--sm{height:4px}.progress-bar--lg{height:10px}.progress-bar--success .progress-bar__fill{background:var(--color-success)}.progress-label{justify-content:space-between;align-items:center;gap:var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);margin-bottom:var(--space-2);display:flex}.progress-label__value{color:var(--color-primary);font-variant-numeric:tabular-nums;font-weight:600}.badge{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-size:var(--text-xxs);text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full);white-space:nowrap;font-weight:600;line-height:1;display:inline-flex}.badge--primary{color:var(--color-primary);background:var(--color-primary-highlight)}.badge--success{color:var(--color-success);background:var(--color-success-highlight)}.badge--warning{color:var(--color-warning);background:var(--color-warning-highlight)}.badge--error{color:var(--color-error);background:var(--color-error-highlight)}.badge--neutral{color:var(--color-text-muted);background:var(--color-surface-offset)}.roadmap-tree{gap:var(--space-4);flex-direction:column;display:flex}.roadmap-tree__list{gap:var(--space-4);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.roadmap-tree__item{padding-left:var(--space-6);position:relative}.roadmap-tree__connector{left:calc(var(--space-3) - 1px);top:calc(var(--space-8) * .5);bottom:calc(var(--space-4) * -1);background:linear-gradient(180deg, var(--color-primary-highlight), var(--color-border));border-radius:var(--radius-full);width:2px;position:absolute}.roadmap-tree__node{gap:var(--space-4);color:inherit;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-sm);transition-property:border-color box-shadow transform background;transition-duration:var(--transition-interactive);grid-template-columns:auto 1fr;align-items:start;text-decoration:none;transition-timing-function:cubic-bezier(.16,1,.3,1);display:grid}.roadmap-tree__node:hover{border-color:color-mix(in oklab, var(--color-primary) 22%, var(--color-border));box-shadow:var(--shadow-md);text-decoration:none;transform:translateY(-1px)}.roadmap-tree__node--current{border-color:var(--color-primary);background:color-mix(in oklab, var(--color-primary) 7%, var(--color-surface));box-shadow:var(--shadow-md)}.roadmap-tree__node--completed{border-color:color-mix(in oklab, var(--color-success) 30%, var(--color-border));background:color-mix(in oklab, var(--color-success) 6%, var(--color-surface))}.roadmap-tree__node-head{align-items:center;gap:var(--space-2);flex-direction:column;min-width:42px;display:flex}.roadmap-tree__index{border-radius:var(--radius-full);background:var(--color-surface-offset);width:42px;height:42px;color:var(--color-primary);font-size:var(--text-sm);font-variant-numeric:tabular-nums;place-items:center;font-weight:800;display:grid}.roadmap-tree__status{font-size:var(--text-xs);color:var(--color-text-muted);line-height:1}.roadmap-tree__content{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.roadmap-tree__title{font-size:var(--text-base);color:var(--color-text);margin:0;font-weight:700}.roadmap-tree__meta{gap:var(--space-2) var(--space-3);font-size:var(--text-xs);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.roadmap-tree__skills{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.hero{padding-block:clamp(var(--space-16), 10vw, var(--space-24));background:var(--color-bg)}.hero__inner{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.hero__inner{padding-inline:var(--space-8)}}.hero__inner{gap:var(--space-12);align-items:center;display:grid}@media (width>=1024px){.hero__inner{grid-template-columns:1fr 1fr}}.hero__eyebrow{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.08em;color:var(--color-primary);margin-bottom:var(--space-4);font-weight:600}.hero__title{font-size:var(--text-hero);letter-spacing:-.025em;color:var(--color-text);margin-bottom:var(--space-5);font-weight:800;line-height:1.05}.hero__subtitle{font-size:var(--text-lg);color:var(--color-text-muted);margin-bottom:var(--space-8);max-width:48ch;line-height:1.6}.hero__actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.hero__image{border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);aspect-ratio:1.33333;object-fit:cover;width:100%}.hero__title-highlight{color:var(--color-primary);white-space:nowrap;position:relative}.hero__visual{display:none}@media (width>=1024px){.hero__visual{justify-content:center;align-items:center;display:flex}}@keyframes hero-float{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes hero-glow-pulse{0%,to{filter:drop-shadow(0 0 8px color-mix(in srgb, var(--color-primary) 60%, transparent)) drop-shadow(0 0 20px color-mix(in srgb, var(--color-primary) 30%, transparent)) drop-shadow(0 0 40px color-mix(in srgb, var(--color-primary-active) 50%, transparent))}50%{filter:drop-shadow(0 0 14px color-mix(in srgb, var(--color-primary) 80%, transparent)) drop-shadow(0 0 32px color-mix(in srgb, var(--color-primary) 55%, transparent)) drop-shadow(0 0 60px color-mix(in srgb, var(--color-primary) 25%, transparent))}}.hero__picture{background:0 0}.hero__picture img{will-change:transform, filter;background:0 0;animation:4s ease-in-out infinite hero-float,3s ease-in-out infinite hero-glow-pulse}@media (prefers-reduced-motion:reduce){.hero__picture img{filter:drop-shadow(0 0 12px color-mix(in srgb, var(--color-primary) 45%, transparent)) drop-shadow(0 0 28px color-mix(in srgb, var(--color-primary) 20%, transparent));animation:none}}.section-container{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.section-container{padding-inline:var(--space-8)}}.section-container{padding-block:clamp(var(--space-12), 8vw, var(--space-20))}.section-header{margin-bottom:var(--space-10)}.section-header__title{font-size:var(--text-2xl);color:var(--color-text);letter-spacing:-.02em;margin-bottom:var(--space-3);font-weight:800;line-height:1.1}.section-header__description{font-size:var(--text-base);color:var(--color-text-muted);max-width:54ch}.featured-courses{background:var(--color-surface)}.featured-courses__cta{margin-top:var(--space-10);text-align:center}.courses-grid{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (width>=768px){.courses-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.courses-grid{grid-template-columns:repeat(3,1fr)}}.empty-state{padding:var(--space-16) var(--space-8);text-align:center;color:var(--color-text-muted)}.empty-state__text{font-size:var(--text-base);max-width:none}.features__grid{max-width:var(--content-default);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.features__grid{padding-inline:var(--space-8)}}.features__grid{gap:var(--space-8);display:grid}@media (width>=768px){.features__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.features__grid{grid-template-columns:repeat(3,1fr)}}.features__item{gap:var(--space-3);flex-direction:column;display:flex}.features__icon{width:40px;height:40px;color:var(--color-primary)}.features__title{font-size:var(--text-base);color:var(--color-text);margin:0;font-weight:600}.features__description{font-size:var(--text-sm);color:var(--color-text-muted);max-width:42ch;line-height:1.6}#bmc-wbtn img{background:0 0!important}.dashboard__header{margin-bottom:var(--space-8)}.dashboard__header h1{font-size:var(--text-xl);margin-bottom:var(--space-2);font-weight:700}.dashboard__header p{color:var(--color-text-muted);font-size:var(--text-base);max-width:none}.dashboard__stats{gap:var(--space-4);margin-bottom:var(--space-8);grid-template-columns:repeat(auto-fill,minmax(min(200px,100%),1fr));display:grid}.dashboard__section-title{font-size:var(--text-lg);margin-bottom:var(--space-5);color:var(--color-text);font-weight:700}.dashboard__courses{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(min(280px,100%),1fr));display:grid}.course-progress{align-items:center;gap:var(--space-4);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);color:inherit;transition:box-shadow var(--transition-interactive);text-decoration:none;display:flex}.course-progress:hover{box-shadow:var(--shadow-md)}.course-progress__thumbnail{border-radius:var(--radius-md);object-fit:cover;background:var(--color-surface-offset);flex-shrink:0;width:72px;height:72px}.course-progress__info{flex:1;min-width:0}.course-progress__title{font-size:var(--text-base);white-space:nowrap;text-overflow:ellipsis;margin-bottom:var(--space-2);font-weight:600;overflow:hidden}.page-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding-block:var(--space-6)}.page-header__inner{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.page-header__inner{padding-inline:var(--space-8)}}.page-header__inner{justify-content:space-between;align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.page-header__title{font-size:var(--text-xl);color:var(--color-text);font-weight:700;line-height:1.2}.breadcrumb__list{align-items:center;gap:var(--space-1);margin:0;padding:0;list-style:none;display:flex}.breadcrumb__item{font-size:var(--text-sm);color:var(--color-text-muted)}.breadcrumb__item--separator{color:var(--color-text-faint);-webkit-user-select:none;user-select:none}.breadcrumb__item--current{color:var(--color-primary);font-weight:500}.breadcrumb__link{color:var(--color-text-muted);transition:color var(--transition-interactive);text-decoration:none}.breadcrumb__link:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.breadcrumb__link:hover{color:var(--color-text)}.courses-page{padding-block:clamp(var(--space-10), 6vw, var(--space-16))}.courses-page__inner{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.courses-page__inner{padding-inline:var(--space-8)}}.courses-page__filters{align-items:center;gap:var(--space-2);margin-bottom:var(--space-8);flex-wrap:wrap;display:flex}.courses-page__count{font-size:var(--text-sm);color:var(--color-text-muted);margin-left:auto}.courses-page__grid{gap:var(--space-6);grid-template-columns:1fr;display:grid}@media (width>=768px){.courses-page__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.courses-page__grid{grid-template-columns:repeat(3,1fr)}}.filter-btn{align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-4);font-size:var(--text-sm);border-radius:var(--radius-full);border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;min-height:36px;transition-property:color background border-color;transition-duration:var(--transition-interactive);background:0 0;font-weight:500;transition-timing-function:cubic-bezier(.16,1,.3,1);display:inline-flex}.filter-btn:focus-visible{outline:2px solid var(--color-primary);outline-offset:3px;border-radius:var(--radius-sm)}.filter-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background:var(--color-primary-highlight)}.filter-btn--active{background:var(--color-primary-highlight);border-color:var(--color-primary);color:var(--color-primary);font-weight:600}.empty-state{text-align:center;padding:var(--space-16) var(--space-8);align-items:center;gap:var(--space-4);flex-direction:column;display:flex}.empty-state__icon{font-size:3rem;line-height:1}.empty-state__title{font-size:var(--text-lg);color:var(--color-text);font-weight:700}.empty-state__text{font-size:var(--text-base);color:var(--color-text-muted);max-width:42ch}.course-detail{padding-block:clamp(var(--space-10), 6vw, var(--space-16))}.course-detail__inner{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.course-detail__inner{padding-inline:var(--space-8)}}.course-detail__layout{gap:var(--space-8);align-items:start;display:grid}@media (width>=1024px){.course-detail__layout{gap:var(--space-12);grid-template-columns:1fr 320px}}.course-detail__main{gap:var(--space-8);flex-direction:column;min-width:0;display:flex}.course-detail__cover{border-radius:var(--radius-xl);background:var(--color-surface-offset);aspect-ratio:1.77778;object-fit:cover;width:100%;overflow:hidden}.course-detail__cover--placeholder{justify-content:center;align-items:center;display:flex}.course-detail__cover-img{object-fit:cover;width:100%;height:100%;display:block}.course-detail__cover-label{font-size:var(--text-xl);color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.1em;font-weight:800}.course-detail__badges{gap:var(--space-2);flex-wrap:wrap;display:flex}.course-detail__meta{gap:var(--space-5);padding:0;padding-block:var(--space-4);border-block:1px solid var(--color-border);flex-wrap:wrap;margin:0;list-style:none;display:flex}.course-detail__meta-item{align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.course-detail__meta-icon{width:18px;height:18px;color:var(--color-primary);flex-shrink:0}.course-detail__section{gap:var(--space-4);flex-direction:column;display:flex}.course-detail__section-title{font-size:var(--text-lg);color:var(--color-text);font-weight:700}.course-detail__description{font-size:var(--text-base);color:var(--color-text-muted);max-width:70ch;line-height:1.7}@media (width>=1024px){.course-detail__sidebar{top:calc(var(--space-16) + var(--space-4));position:sticky}}.course-sidebar{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-6);gap:var(--space-5);flex-direction:column;display:flex}.course-sidebar__price{font-size:var(--text-xl);color:var(--color-primary);margin:0;font-weight:800}.course-sidebar__title{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted);margin:0;font-weight:700}.course-sidebar__cta{text-align:center;width:100%}.course-sidebar__list{gap:var(--space-3);border-top:1px solid var(--color-border);padding:0;padding-top:var(--space-4);flex-direction:column;margin:0;list-style:none;display:flex}.course-sidebar__item{align-items:center;gap:var(--space-3);font-size:var(--text-sm);color:var(--color-text-muted);display:flex}.course-sidebar__item strong{color:var(--color-text)}.course-sidebar__item svg{width:18px;height:18px;color:var(--color-primary);flex-shrink:0}.prose{font-size:var(--text-base);color:var(--color-text-muted);max-width:70ch;line-height:1.75}.prose h1,.prose h2,.prose h3,.prose h4{color:var(--color-text);margin-top:var(--space-8);margin-bottom:var(--space-3);font-weight:700;line-height:1.25}.prose h2{font-size:var(--text-lg)}.prose h3{font-size:var(--text-base)}.prose p{margin-bottom:var(--space-4)}.prose ul,.prose ol{margin-bottom:var(--space-4);padding-left:var(--space-6)}.prose ul li,.prose ol li{margin-bottom:var(--space-2)}.prose code{font-family:var(--font-mono);background:var(--color-surface-offset);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-primary);padding:.1em .35em;font-size:.88em}.prose pre{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);margin-bottom:var(--space-6);overflow-x:auto}.prose pre code{font-size:var(--text-sm);color:var(--color-text);background:0 0;border:none;padding:0}.prose blockquote{border-left:3px solid var(--color-primary);padding-left:var(--space-4);color:var(--color-text-muted);margin-bottom:var(--space-4);font-style:italic}.prose a{color:var(--color-primary);text-underline-offset:3px;text-decoration:underline}.prose a:hover{color:var(--color-primary-hover)}.prose img{border-radius:var(--radius-lg);margin-block:var(--space-6);max-width:100%}.prose hr{border:none;border-top:1px solid var(--color-border);margin-block:var(--space-8)}.related-courses{background:var(--color-surface);border-top:1px solid var(--color-border);padding-block:clamp(var(--space-12), 8vw, var(--space-20))}.related-courses__inner{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.related-courses__inner{padding-inline:var(--space-8)}}.lesson-detail .course-detail__main{gap:var(--space-6)}.lesson-video{border-radius:var(--radius-xl);background:var(--color-surface-offset);border:1px solid var(--color-border);box-shadow:var(--shadow-sm);aspect-ratio:16/9;overflow:hidden}.lesson-video iframe{border:0;width:100%;height:100%;display:block}.lesson-nav{justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-2);display:flex}.lesson-nav .btn{max-width:min(100%,320px)}@media (width<=767px){.lesson-nav{flex-direction:column;align-items:stretch}.lesson-nav .btn{text-align:center;width:100%;max-width:none}}.lesson-index{gap:var(--space-4);flex-direction:column;display:flex}.lesson-index__list{gap:var(--space-2);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.lesson-index__item{margin:0}.lesson-index__link{gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text);transition:border-color var(--transition-interactive), background-color var(--transition-interactive), color var(--transition-interactive), transform var(--transition-interactive);grid-template-columns:auto 1fr;align-items:start;text-decoration:none;display:grid}.lesson-index__link:hover{border-color:var(--color-primary);background:var(--color-surface-2);color:var(--color-primary-hover);transform:translateY(-1px)}.lesson-index__link--active,.lesson-index__link[aria-current=page]{border-color:var(--color-primary);background:var(--color-primary-highlight);color:var(--color-text);font-weight:600}.lesson-index__order{color:var(--color-text-muted);font-size:var(--text-sm);font-variant-numeric:tabular-nums}.lesson-nav__btn{gap:var(--space-1);height:auto;padding-block:var(--space-3);flex-direction:column;line-height:1.3;display:flex}.lesson-nav__btn--prev{text-align:left;align-items:flex-start}.lesson-nav__btn--next{text-align:right;align-items:flex-end}.lesson-nav__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;opacity:.7;font-weight:600}.lesson-nav__title{font-size:var(--text-sm);font-weight:500}.lesson-complete{justify-content:center;display:flex}.lesson-complete__btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border:2px solid var(--color-border);border-radius:var(--radius-full);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:border-color var(--transition-interactive), background var(--transition-interactive), color var(--transition-interactive);font-weight:600;display:inline-flex}.lesson-complete__btn svg{flex-shrink:0;width:18px;height:18px}.lesson-complete__btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.lesson-complete__btn--done{border-color:var(--color-success);background:var(--color-success-highlight);color:var(--color-success)}.lesson-complete__btn--done:hover{border-color:var(--color-success-hover);color:var(--color-success-hover)}.progress-bar{gap:var(--space-2);flex-direction:column;display:flex}.progress-bar__header{justify-content:space-between;align-items:baseline;display:flex}.progress-bar__label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:700}.progress-bar__pct{font-size:var(--text-sm);font-variant-numeric:tabular-nums;color:var(--color-primary);font-weight:700}.progress-bar__track{background:var(--color-surface-offset);border-radius:var(--radius-full);height:6px;overflow:hidden}.progress-bar__fill{background:var(--color-primary);border-radius:var(--radius-full);min-width:0;height:100%;transition:width .4s cubic-bezier(.16,1,.3,1)}.lesson-index__link{grid-template-columns:auto 1fr auto}.lesson-index__check{width:16px;height:16px;color:var(--color-success);flex-shrink:0}.course-sidebar__bmc{padding-block:var(--space-4);border-top:1px solid var(--color-divider);border-bottom:1px solid var(--color-divider);text-align:center}.roadmap-page,.roadmap-node-page{padding-block:clamp(var(--space-10), 6vw, var(--space-16))}.roadmap-detail-layout{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.roadmap-detail-layout{padding-inline:var(--space-8)}}.roadmap-detail-layout{gap:var(--space-8);align-items:start;display:grid}@media (width>=1024px){.roadmap-detail-layout{gap:var(--space-12);grid-template-columns:minmax(0,1fr) 360px}}.roadmap-node-layout{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.roadmap-node-layout{padding-inline:var(--space-8)}}.roadmap-node-layout{gap:var(--space-8);align-items:start;display:grid}@media (width>=1024px){.roadmap-node-layout{gap:var(--space-12);grid-template-columns:minmax(0,1fr) 340px}}.roadmap-detail-content,.roadmap-node-content{gap:var(--space-6);flex-direction:column;min-width:0;display:flex}@media (width>=1024px){.roadmap-detail-sidebar,.roadmap-node-sidebar{top:calc(var(--space-16) + var(--space-4));max-height:calc(100dvh - var(--space-16) - var(--space-8));scrollbar-width:thin;scrollbar-color:var(--color-border) transparent;position:sticky;overflow-y:auto}}.roadmap-node-sidebar__header{justify-content:space-between;align-items:baseline;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.roadmap-node-sidebar__title{font-size:var(--text-sm);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.04em;font-weight:700;line-height:1.3}.roadmap-node-sidebar__progress{font-size:var(--text-xs);color:var(--color-primary);flex-shrink:0;font-weight:700}.roadmap-node-sidebar__progress-bar{border-radius:var(--radius-full);background:var(--color-surface-offset);height:4px;margin-bottom:var(--space-4);overflow:hidden}.roadmap-node-sidebar__progress-fill{border-radius:var(--radius-full);background:var(--color-primary);height:100%;transition:width .4s cubic-bezier(.16,1,.3,1)}.roadmap-node-sidebar__tree{padding-top:var(--space-1)}.roadmap-detail-card .card__body{gap:var(--space-4)}.roadmap-detail-card__cta{text-align:center;width:100%;margin-top:var(--space-2)}.roadmap-detail-card--sidebar .roadmap-tree__list{gap:var(--space-3)}.roadmap-detail-card--sidebar .roadmap-tree__node{padding:var(--space-3)}.roadmap-node-page .lesson-actions{justify-content:flex-start;gap:var(--space-3);display:flex}.roadmap-node-page .lesson-player{border-radius:var(--radius-xl);border:1px solid var(--color-border);background:var(--color-surface);box-shadow:var(--shadow-sm);overflow:hidden}.roadmap-node-page .lesson-player iframe{aspect-ratio:16/9;border:0;width:100%;display:block}.roadmap-node-page .lesson-nav{justify-content:space-between;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--color-border);flex-wrap:wrap;display:flex}.featured-roadmaps .roadmaps-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.featured-roadmaps__cta{margin-top:var(--space-8);justify-content:center;display:flex}.roadmaps-page{padding-block:clamp(var(--space-10), 6vw, var(--space-16))}.roadmaps-page__inner{max-width:var(--content-wide);padding-inline:var(--space-4);margin-inline:auto}@media (width>=768px){.roadmaps-page__inner{padding-inline:var(--space-8)}}.roadmaps-page__inner{gap:var(--space-8);flex-direction:column;display:flex}.roadmaps-page__filters{align-items:center;gap:var(--space-3);padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-xl);background:var(--color-surface);box-shadow:var(--shadow-sm);flex-wrap:wrap;display:flex}.roadmaps-page__count{font-size:var(--text-sm);color:var(--color-text-muted);margin-left:auto;font-weight:600}.roadmaps-page__grid{gap:var(--space-6);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));display:grid}.filter-btn{border-radius:var(--radius-full);border:1px solid var(--color-border);background:var(--color-surface-offset);min-height:44px;color:var(--color-text-muted);font-size:var(--text-sm);transition-property:background border-color color transform box-shadow;transition-duration:var(--transition-interactive);justify-content:center;align-items:center;padding:.75rem 1rem;font-weight:600;transition-timing-function:cubic-bezier(.16,1,.3,1);display:inline-flex}.filter-btn:hover{color:var(--color-text);border-color:color-mix(in oklab, var(--color-primary) 18%, var(--color-border));background:color-mix(in oklab, var(--color-primary) 6%, var(--color-surface));transform:translateY(-1px)}.filter-btn--active{color:var(--color-text-inverse);background:var(--color-primary);border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.roadmap-detail-content__badges{gap:var(--space-2);flex-wrap:wrap;display:flex}.roadmap-detail-content__prose{min-width:0}.featured-roadmaps--related{padding-block:0 clamp(var(--space-10), 6vw, var(--space-16))}.proyecto-section{padding-block:clamp(var(--space-12), 7vw, var(--space-24))}.proyecto-section--alt{background:var(--color-surface)}.proyecto-section__inner{max-width:var(--content-default);padding-inline:var(--space-6);margin-inline:auto}.proyecto-section__header{margin-bottom:var(--space-10)}.proyecto-section__title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text);margin-bottom:var(--space-3)}.proyecto-section__subtitle{font-size:var(--text-base);color:var(--color-text-muted);max-width:52ch}.principios-grid{gap:var(--space-6);grid-template-columns:repeat(auto-fill,minmax(min(260px,100%),1fr));display:grid}.principio-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6);gap:var(--space-3);transition:box-shadow var(--transition-interactive);flex-direction:column;display:flex}.principio-card:hover{box-shadow:var(--shadow-md)}.principio-card__icon{width:36px;height:36px;color:var(--color-primary)}.principio-card__icon svg{width:100%;height:100%}.principio-card__title{font-size:var(--text-lg);color:var(--color-text);font-weight:700}.principio-card__desc{font-size:var(--text-base);color:var(--color-text-muted);line-height:1.65}.proyecto-built{gap:var(--space-16);grid-template-columns:1fr 1fr;align-items:center;display:grid}@media (width<=768px){.proyecto-built{gap:var(--space-10);grid-template-columns:1fr}}.proyecto-built__copy{gap:var(--space-4);flex-direction:column;display:flex}.proyecto-built__copy p{font-size:var(--text-base);color:var(--color-text-muted);max-width:52ch;line-height:1.7}.proyecto-built__stack{gap:var(--space-3);flex-direction:column;display:flex}.stack-chip{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:transform var(--transition-interactive), background var(--transition-interactive), border-color var(--transition-interactive), box-shadow var(--transition-interactive);display:flex}.stack-chip:hover{background:color-mix(in oklch, var(--color-primary) 6%, var(--color-surface-2));border-color:color-mix(in oklch, var(--color-primary) 40%, var(--color-border));box-shadow:0 4px 12px color-mix(in srgb, var(--color-primary) 12%, transparent), var(--shadow-sm);transform:translateY(-3px)}.stack-chip__icon-container{width:50px}.stack-chip__icon{background:0 0;width:auto;height:34px}.stack-chip__nombre{font-size:var(--text-sm);color:var(--color-text);flex:1;font-weight:700}.stack-chip__rol{font-size:var(--text-xs);color:var(--color-text-muted)}.proyecto-faq{gap:var(--space-16);grid-template-columns:1fr 2fr;align-items:start;display:grid}@media (width<=768px){.proyecto-faq{gap:var(--space-8);grid-template-columns:1fr}}.faq-list{border-top:1px solid var(--color-divider);flex-direction:column;display:flex}.faq-item{border-bottom:1px solid var(--color-divider)}.faq-item__trigger{justify-content:space-between;align-items:center;gap:var(--space-4);width:100%;padding-block:var(--space-5);cursor:pointer;font-size:var(--text-base);color:var(--color-text);text-align:left;transition:color var(--transition-interactive);background:0 0;border:none;font-weight:600;display:flex}.faq-item__trigger:hover{color:var(--color-primary)}.faq-item__chevron{width:18px;height:18px;color:var(--color-text-muted);transition:transform var(--transition-interactive);flex-shrink:0}.faq-item--open .faq-item__chevron{transform:rotate(180deg)}.faq-item__body{padding-bottom:var(--space-5)}.faq-item__body p{font-size:var(--text-base);color:var(--color-text-muted);max-width:60ch;line-height:1.7}.proyecto-cta{padding-block:clamp(var(--space-16), 10vw, var(--space-24));background:var(--color-surface);border-top:1px solid var(--color-divider)}.proyecto-cta__inner{max-width:var(--content-default);padding-inline:var(--space-6);align-items:center;gap:var(--space-12);grid-template-columns:1fr auto;margin-inline:auto;display:grid}@media (width<=640px){.proyecto-cta__inner{grid-template-columns:1fr}}.proyecto-cta__content{align-items:flex-start;gap:var(--space-5);flex-direction:column;display:flex}.proyecto-cta__media{flex-shrink:0}@media (width<=640px){.proyecto-cta__media{display:none}}@keyframes cta-avatar-pulse{0%,to{filter:drop-shadow(0 0 4px color-mix(in srgb, var(--color-primary) 25%, transparent)) drop-shadow(0 0 12px color-mix(in srgb, var(--color-primary) 12%, transparent))}50%{filter:drop-shadow(0 0 8px color-mix(in srgb, var(--color-primary) 40%, transparent)) drop-shadow(0 0 20px color-mix(in srgb, var(--color-primary) 20%, transparent))}}.proyecto-cta__avatar{border-radius:var(--radius-lg);will-change:filter;width:clamp(160px,20vw,280px);height:auto;animation:5s ease-in-out infinite cta-avatar-pulse;display:block}@media (prefers-reduced-motion:reduce){.proyecto-cta__avatar{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--color-primary) 20%, transparent));animation:none}}.proyecto-cta__title{font-family:var(--font-display);font-size:var(--text-xl);color:var(--color-text)}.proyecto-cta__desc{font-size:var(--text-base);color:var(--color-text-muted);max-width:52ch;line-height:1.7}.legal-page{padding-block:clamp(var(--space-12), 7vw, var(--space-24))}.legal-page__container{max-width:var(--content-narrow);padding-inline:var(--space-6);margin-inline:auto}.legal-header{margin-bottom:var(--space-12);padding-bottom:var(--space-8);border-bottom:1px solid var(--color-divider)}.legal-header__tag{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--color-primary);margin-bottom:var(--space-3);font-weight:600;display:inline-block}.legal-header__title{font-family:var(--font-display);font-size:var(--text-2xl);color:var(--color-text);margin-bottom:var(--space-3);font-weight:700;line-height:1.1}.legal-header__meta{font-size:var(--text-sm);color:var(--color-text-faint)}.legal-header__meta time{color:var(--color-text-muted)}.legal-body{gap:var(--space-10);flex-direction:column;display:flex}.legal-section{gap:var(--space-4);flex-direction:column;display:flex}.legal-section__title{font-family:var(--font-display);font-size:var(--text-lg);color:var(--color-text);font-weight:700;line-height:1.3}.legal-section p{font-size:var(--text-base);color:var(--color-text-muted);max-width:68ch;line-height:1.75}.legal-section strong{color:var(--color-text);font-weight:600}.legal-dl{border:1px solid var(--color-border);border-radius:var(--radius-lg);flex-direction:column;gap:0;display:flex;overflow:hidden}.legal-dl__row{gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-divider);background:var(--color-surface);transition:background var(--transition-interactive);grid-template-columns:10rem 1fr;display:grid}.legal-dl__row:last-child{border-bottom:none}.legal-dl__row:hover{background:var(--color-surface-2)}@media (width<=480px){.legal-dl__row{gap:var(--space-1);grid-template-columns:1fr}}.legal-dl__row dt{font-size:var(--text-sm);color:var(--color-text-muted);align-self:center;font-weight:600}@media (width<=480px){.legal-dl__row dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em}}.legal-dl__row dd{font-size:var(--text-sm);color:var(--color-text);align-self:center;line-height:1.5}.legal-list{gap:var(--space-2);padding-left:var(--space-6);flex-direction:column;list-style:none;display:flex}.legal-list li{font-size:var(--text-base);color:var(--color-text-muted);max-width:64ch;line-height:1.65;position:relative}.legal-list li:before{content:"";left:calc(-1 * var(--space-4));border-radius:var(--radius-full);background:var(--color-primary);flex-shrink:0;width:5px;height:5px;position:absolute;top:.6em}.legal-link{color:var(--color-primary);border-bottom:1px solid color-mix(in oklch, var(--color-primary) 35%, transparent);transition:color var(--transition-interactive), border-color var(--transition-interactive);text-decoration:none}.legal-link:hover{color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.cookies-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-lg);-webkit-overflow-scrolling:touch;overflow-x:auto}@media (width<=640px){.cookies-table-wrap{display:none}}.cookies-table{width:100%;font-size:var(--text-sm);border-collapse:collapse}.cookies-table thead{background:var(--color-surface-offset)}.cookies-table thead th{padding:var(--space-3) var(--space-5);text-align:left;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);white-space:nowrap;border-bottom:1px solid var(--color-border);font-weight:600}.cookies-table tbody tr{background:var(--color-surface);border-bottom:1px solid var(--color-divider);transition:background var(--transition-interactive)}.cookies-table tbody tr:last-child{border-bottom:none}.cookies-table tbody tr:hover{background:var(--color-surface-2)}.cookies-table tbody td{padding:var(--space-4) var(--space-5);color:var(--color-text-muted);vertical-align:top;line-height:1.55}.cookies-table__muted{color:var(--color-text-faint)!important;font-size:var(--text-xs)!important}.cookies-cards{gap:var(--space-4);flex-direction:column;padding:0;list-style:none;display:none}@media (width<=640px){.cookies-cards{display:flex}}.cookies-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-5);gap:var(--space-3);flex-direction:column;display:flex}.cookies-card__head{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.cookies-card__finalidad{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;line-height:1.6}.cookies-card__meta{gap:var(--space-6);padding-top:var(--space-3);border-top:1px solid var(--color-divider);display:flex}.cookies-card__meta div{gap:var(--space-1);flex-direction:column;display:flex}.cookies-card__meta dt{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-faint);font-weight:600}.cookies-card__meta dd{font-size:var(--text-xs);color:var(--color-text-muted)}.cookies-badge{padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.cookies-badge--propia{background:var(--color-primary-highlight);color:var(--color-primary)}.cookies-badge--terceros{background:color-mix(in oklch, var(--color-accent) 12%, var(--color-surface));color:var(--color-accent)}.cookies-code{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text);background:var(--color-surface-offset);padding:.15em var(--space-2);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.legal-contact{gap:var(--space-5);padding:var(--space-6);background:color-mix(in oklch, var(--color-primary) 6%, var(--color-surface));border:1px solid color-mix(in oklch, var(--color-primary) 20%, var(--color-border));border-radius:var(--radius-lg);margin-top:var(--space-4);align-items:flex-start;display:flex}.legal-contact__icon{width:36px;height:36px;color:var(--color-primary);margin-top:var(--space-1);flex-shrink:0}.legal-contact__icon svg{width:100%;height:100%}.legal-contact__body{gap:var(--space-1);flex-direction:column;display:flex}.legal-contact__title{font-size:var(--text-base);color:var(--color-text);font-weight:700}.legal-contact__desc{font-size:var(--text-sm);color:var(--color-text-muted);max-width:52ch;line-height:1.65}:root{--font-display:"Sora", "Helvetica Neue", sans-serif;--font-body:"Poppins", "Helvetica Neue", sans-serif;--font-mono:"JetBrains Mono", "Courier New", monospace;--text-xxs:clamp(.45rem, .5rem + .25vw, .75rem);--text-xs:clamp(.75rem, .7rem + .25vw, .875rem);--text-sm:clamp(.875rem, .8rem + .35vw, 1rem);--text-base:clamp(1rem, .95rem + .25vw, 1.125rem);--text-lg:clamp(1.125rem, 1rem + .75vw, 1.5rem);--text-xl:clamp(1.5rem, 1.2rem + 1.25vw, 2.25rem);--text-2xl:clamp(2rem, 1.2rem + 2.5vw, 3.5rem);--text-hero:clamp(2.5rem, 1rem + 4vw, 5rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-20:5rem;--space-24:6rem;--content-narrow:640px;--content-default:960px;--content-wide:1200px;--radius-sm:.375rem;--radius-md:.5rem;--radius-lg:.75rem;--radius-xl:1rem;--radius-full:9999px;--transition-fast:.12s cubic-bezier(.16, 1, .3, 1);--transition-interactive:.18s cubic-bezier(.16, 1, .3, 1);--transition-slow:.32s cubic-bezier(.16, 1, .3, 1);--color-bg:#111110;--color-surface:#191919;--color-surface-2:#1f1e1c;--color-surface-offset:#252421;--color-divider:#2e2c2a;--color-border:#3a3835;--color-text:#e8e6e2;--color-text-muted:#8a8885;--color-text-faint:#555350;--color-text-inverse:#111110;--color-primary:#28e98c;--color-primary-hover:#0f9454;--color-primary-active:#0a6539;--color-primary-highlight:#032515;--color-accent:#38bdf8;--color-accent-hover:#7dd3fc;--color-success:#6daa45;--color-success-highlight:#1e3a0f;--color-warning:#fbbf24;--color-warning-highlight:#451a03;--color-error:#f87171;--color-error-highlight:#450a0a;--shadow-sm:0 1px 2px oklch(0% 0 0/.25);--shadow-md:0 4px 12px oklch(0% 0 0/.35);--shadow-lg:0 12px 32px oklch(0% 0 0/.45)}@keyframes svelte-10vw0je-skeleton-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.nav__logo-text.svelte-10vw0je{font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:-.02em;color:var(--color-text);font-weight:800}.nav__cta.svelte-10vw0je{display:none}@media (width>=768px){.nav__cta.svelte-10vw0je{display:inline-flex}}
