.vv-home-wrap{width:100%;max-width:1180px;margin:0 auto;padding:0 20px;box-sizing:border-box}.vv-nowrap{white-space:nowrap}.vv-home-intro{padding-top:34px;padding-bottom:30px;text-align:center}.vv-home-h1{margin:0;font:700 46px/1.15 var(--font-display,var(--vv-font-display));letter-spacing:-.01em;color:var(--vv-text)}.vv-home-lead{max-width:780px;margin:12px auto 0;font-size:17px;line-height:1.6;color:var(--vv-text2);text-wrap:balance}.vv-home-h2{margin:0 0 20px;font:700 26px/1.2 var(--font-display,var(--vv-font-display));color:var(--vv-text)}.vv-cbadge{--b:40px;flex:none;box-sizing:border-box;width:var(--b);height:var(--b);border-radius:calc(var(--b) * .24);display:grid;align-items:end;justify-items:end;padding:0 calc(var(--b) * .1) calc(var(--b) * .07) 0}.vv-cbadge b{font:700 calc(var(--b) * .36)/1 var(--font-ui,var(--vv-font-ui));letter-spacing:-.02em}.vv-cbadge--js{background:#f7df1e;color:#1b1b1b}.vv-cbadge--dsa{background:linear-gradient(135deg,#8b5cf6,#ec4899);color:#fff}.vv-cbadge--dsa b{font-size:calc(var(--b) * .3)}.vv-cbadge--other{align-items:center;justify-items:center;padding:0;border:1px solid var(--vv-border-strong);background:var(--vv-card);color:var(--vv-text)}.vv-cbadge--other b{font-size:calc(var(--b) * .3)}.vv-cover{position:relative;aspect-ratio:700/380;border-radius:14px;overflow:hidden;background:#0a0a0b}.vv-cover-route{position:absolute;inset:0}.vv-cover-route canvas,.vv-cover-route__svg,.vv-cover-route__svg>svg{position:absolute;inset:0;display:block;width:100%;height:100%}.vv-cover-route canvas{opacity:0;transition:opacity .3s ease}.vv-cover-route canvas.is-live{opacity:1}.vv-cover__new{position:absolute;top:14px;right:14px;z-index:2;padding:6px 11px;border-radius:999px;font:600 12px/1 var(--font-ui,var(--vv-font-ui));color:#cfe6ff;background:rgba(10,10,11,.72);border:1px solid rgba(127,200,255,.45)}.vv-stage{position:absolute;inset:0;overflow:hidden;background:#111318;container-type:inline-size}.vv-stage__in{position:absolute;left:0;top:0;transform-origin:0 0;transform:scale(.96);transform:scale(tan(atan2(100cqw,560px)))}.vv-ide{position:absolute;display:flex;flex-direction:column;box-sizing:border-box;background:#111318;overflow:hidden;font-family:var(--vv-font-mono);font-variant-ligatures:none}.vv-ide__bar{flex:none;display:flex;align-items:center;gap:12px;height:34px;padding:0 12px 0 14px;background:#171a21;border-bottom:1px solid rgba(255,255,255,.06);font:500 12px/1 var(--font-ui,var(--vv-font-ui));color:rgba(230,237,243,.72)}.vv-ide__dots{display:inline-flex;gap:6px}.vv-ide__dots i{width:10px;height:10px;border-radius:50%;background:#f28b82}.vv-ide__dots i:nth-child(2){background:#f5cd6b}.vv-ide__dots i:nth-child(3){background:#86d196}.vv-ide__tab{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:7px;background:rgba(255,255,255,.05)}.vv-ide__js{display:inline-grid;align-items:end;justify-items:end;box-sizing:border-box;width:14px;height:14px;padding:0 1px 1px 0;border-radius:3px;background:#f7df1e;color:#1b1b1b;font:800 7px/1 var(--font-ui,var(--vv-font-ui))}.vv-ide__run{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:7px;color:rgba(230,237,243,.5);background:rgba(255,255,255,.04);transition:color .3s,background-color .3s}.vv-ide__run.is-on{color:#1b1b1b;background:#f7df1e;animation:vv-ide-run-pulse 1s ease-out 1}@keyframes vv-ide-run-pulse{0%{box-shadow:0 0 0 0 rgba(247,223,30,.6)}to{box-shadow:0 0 0 14px rgba(247,223,30,0)}}.vv-ide__code{flex:1 1 auto;padding:14px 14px 0 0;color:#e6edf3;white-space:pre;font-variant-ligatures:none}.vv-ide__line{position:relative;display:flex;overflow:hidden}.vv-ide__ln{flex:none;width:46px;padding-right:16px;box-sizing:border-box;text-align:right;color:rgba(230,237,243,.26)}.vv-ide__c{display:inline-block;white-space:pre;animation:vv-ide-c-in .55s cubic-bezier(.2,.7,.2,1) backwards}.vv-ide__c--fill{animation:vv-ide-c-fill .5s ease-out backwards}.is-still .vv-ide__c{animation:none}@keyframes vv-ide-c-in{0%{opacity:0;transform:translateY(6px) scale(1.25);color:#fffbe2;text-shadow:0 0 16px rgba(255,232,120,1),0 0 3px #fff;filter:blur(2px)}40%{opacity:1;transform:none;color:#fff6c6;text-shadow:0 0 12px rgba(255,232,120,.75);filter:none}}@keyframes vv-ide-c-fill{0%{opacity:0;background:rgba(106,156,251,.55)}25%{opacity:1;background:rgba(106,156,251,.4)}}.vv-ide__t--kw{color:#c2a4f2}.vv-ide__t--fn{color:#79b8ff}.vv-ide__t--prop{color:#a5d6ff}.vv-ide__t--str{color:#9fd67a}.vv-ide__t--num{color:#ffb54d}.vv-ide__t--p{color:#9aa4b2}.vv-ide__t--v{color:#e6edf3}.vv-ide__caret{flex:none;display:inline-block;width:2px;margin-left:1px;background:#f7df1e;box-shadow:0 0 10px rgba(247,223,30,.9);animation:vv-ide-blink 1.05s steps(1) infinite}@keyframes vv-ide-blink{50%{opacity:0}}.vv-ide__ghost{color:rgba(230,237,243,.34);font-style:italic}.vv-ide__con{flex:none;max-height:0;overflow:hidden;background:#0d0f13;border-top:1px solid transparent;transition:max-height .5s cubic-bezier(.2,.7,.2,1),border-color .5s}.vv-ide__con.is-open{max-height:90px;border-top-color:rgba(255,255,255,.06)}.vv-ide__con-cap{display:block;padding:10px 16px 0;font:600 10px/1 var(--font-ui,var(--vv-font-ui));letter-spacing:.1em;text-transform:uppercase;color:rgba(230,237,243,.36)}.vv-ide__out{padding:6px 16px 12px;font-size:15px;line-height:22px;color:#e6edf3}.vv-ide__out span{display:block;animation:vv-ide-out-in .65s ease-out backwards}.is-still .vv-ide__out span{animation:none}@keyframes vv-ide-out-in{0%{opacity:0;transform:translateY(6px);text-shadow:0 0 14px rgba(255,232,120,.9);color:#fff7cc}}.vv-ide__pop{position:absolute;z-index:3;min-width:158px;padding:4px;border-radius:9px;background:#1b1e26;border:1px solid rgba(255,255,255,.1);box-shadow:0 16px 34px -10px rgba(0,0,0,.8);font:13px/1 var(--vv-font-mono);animation:vv-ide-pop-in .16s ease-out}@keyframes vv-ide-pop-in{0%{opacity:0;transform:translateY(-4px)}}.vv-ide__pop-row{display:flex;align-items:center;gap:8px;height:24px;padding:0 8px;border-radius:6px;color:#c9d1d9}.vv-ide__pop-row.is-sel{background:rgba(106,156,251,.28);color:#fff}.vv-ide__pop-row b{color:#8fb8ff;font-weight:700}.vv-ide__pop-ic{flex:none;display:grid;place-items:center;width:16px;height:16px;border-radius:4px;font:700 10px/1 var(--font-ui,var(--vv-font-ui))}.vv-ide__pop-ic--m{background:rgba(194,164,242,.2);color:#c2a4f2}.vv-ide__pop-ic--k{background:rgba(255,181,77,.18);color:#ffb54d}.vv-ide__pop-ic--v{background:rgba(121,184,255,.2);color:#79b8ff}.vv-ide__key{position:absolute;right:14px;bottom:14px;z-index:3;padding:6px 10px;border-radius:7px;background:#f7df1e;color:#1b1b1b;font:700 12px/1 var(--font-ui,var(--vv-font-ui));box-shadow:0 3px 0 #b39d00,0 0 18px rgba(247,223,30,.45);animation:vv-ide-key-in .22s ease-out}@keyframes vv-ide-key-in{0%{opacity:0;transform:translateY(4px) scale(.9)}}[data-theme=light] .vv-cover{background:#f7f6f2}[data-theme=light] .vv-ide,[data-theme=light] .vv-stage{background:var(--vv-code)}[data-theme=light] .vv-ide__bar{background:color-mix(in oklab,var(--vv-code) 94%,var(--vv-text));border-bottom-color:color-mix(in oklab,var(--vv-text) 8%,transparent);color:var(--vv-text2)}[data-theme=light] .vv-ide__tab{background:color-mix(in oklab,var(--vv-text) 6%,transparent);color:var(--vv-text)}[data-theme=light] .vv-ide__run{color:var(--vv-text2);background:color-mix(in oklab,var(--vv-text) 5%,transparent)}[data-theme=light] .vv-ide__run.is-on{color:#1b1b1b;background:#f7df1e}[data-theme=light] .vv-ide__code,[data-theme=light] .vv-ide__t--v{color:var(--cg-tok-variable)}[data-theme=light] .vv-ide__ln{color:color-mix(in oklab,var(--vv-text2) 70%,transparent)}[data-theme=light] .vv-ide__t--kw{color:var(--cg-tok-keyword)}[data-theme=light] .vv-ide__t--fn{color:var(--cg-tok-function)}[data-theme=light] .vv-ide__t--prop{color:var(--cg-tok-property)}[data-theme=light] .vv-ide__t--str{color:var(--cg-tok-string)}[data-theme=light] .vv-ide__t--num{color:var(--cg-tok-number)}[data-theme=light] .vv-ide__t--p{color:var(--cg-tok-punctuation)}[data-theme=light] .vv-ide__caret{background:var(--vv-accent);box-shadow:none}[data-theme=light] .vv-ide__ghost{color:color-mix(in oklab,var(--vv-text) 38%,transparent)}[data-theme=light] .vv-ide__c:not(.vv-ide__c--fill){animation-name:vv-ide-c-in-light}@keyframes vv-ide-c-in-light{0%{opacity:0;transform:translateY(6px) scale(1.25);color:#9a6700;text-shadow:0 0 12px rgba(247,223,30,.95);filter:blur(2px)}40%{opacity:1;transform:none;color:#9a6700;text-shadow:0 0 8px rgba(247,223,30,.55);filter:none}}[data-theme=light] .vv-ide__con{background:color-mix(in oklab,var(--vv-code) 92%,var(--vv-text))}[data-theme=light] .vv-ide__con.is-open{border-top-color:color-mix(in oklab,var(--vv-text) 8%,transparent)}[data-theme=light] .vv-ide__con-cap{color:var(--vv-text2)}[data-theme=light] .vv-ide__out{color:var(--vv-text)}[data-theme=light] .vv-ide__out span{animation-name:vv-ide-out-in-light}@keyframes vv-ide-out-in-light{0%{opacity:0;transform:translateY(6px);color:#9a6700}}[data-theme=light] .vv-ide__pop{background:#fff;border-color:color-mix(in oklab,var(--vv-text) 12%,transparent);box-shadow:0 14px 30px -12px rgba(15,23,32,.3)}[data-theme=light] .vv-ide__pop-row{color:var(--vv-text)}[data-theme=light] .vv-ide__pop-row.is-sel{background:color-mix(in oklab,var(--vv-accent) 16%,transparent)}[data-theme=light] .vv-ide__pop-row b{color:var(--vv-accent-text)}[data-theme=light] .vv-cover__new{color:#6d28d9;background:rgba(255,255,255,.9);border-color:color-mix(in oklab,#8b5cf6 35%,transparent)}.vv-home-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.vv-home-cards.is-single{grid-template-columns:minmax(0,560px);justify-content:center}.vv-home-card{--lift:0 22px 44px -26px rgba(0,0,0,0.7);position:relative;display:flex;min-width:0}[data-theme=light] .vv-home-card{--lift:0 18px 36px -22px rgba(15,23,32,0.3)}.vv-home-card__link{position:relative;display:flex;flex-direction:column;flex:1 1 auto;min-width:0;padding:8px 8px 18px;border-radius:22px;background:var(--vv-card);border:1px solid var(--vv-border);color:inherit;text-decoration:none;transition:transform .25s cubic-bezier(.2,.7,.2,1),border-color .25s,box-shadow .25s}[data-theme=light] .vv-home-card__link{background:#fff;border-color:#e3e7ec}.vv-home-card__link:focus-visible{outline:2px solid var(--vv-accent);outline-offset:4px}.vv-home-card__head{display:flex;align-items:center;gap:14px;box-sizing:content-box;min-height:58px;padding:16px 10px 0}.vv-home-card__title{margin:0;min-width:0;font:700 24px/1.2 var(--font-display,var(--vv-font-display));color:var(--vv-text);text-wrap:balance}.vv-home-card__arrow{flex:none;display:grid;place-items:center;width:40px;height:40px;margin-left:auto;box-sizing:border-box;border-radius:50%;border:1px solid var(--vv-border-strong);color:var(--vv-text);transition:background .25s,border-color .25s,color .25s}.vv-home-card__arrow svg{transition:transform .25s cubic-bezier(.2,.7,.2,1)}@media (hover:hover){.vv-home-card.is-hover .vv-home-card__link{transform:translateY(-4px);border-color:var(--vv-border-strong);box-shadow:var(--lift)}.vv-home-card.is-hover .vv-home-card__arrow{background:var(--vv-accent);border-color:transparent;color:#fff}.vv-home-card.is-hover .vv-home-card__arrow svg{transform:translateX(2px)}}.vv-home-try{padding-top:88px;padding-bottom:48px}.vv-home-try>.vv-home-h2{text-align:center;margin-bottom:8px}.vv-home-try__lead{max-width:60ch;margin:0 auto 16px;text-align:center;font-size:17px;line-height:1.6;color:var(--vv-text2);text-wrap:balance}.vv-home-feat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:56px;align-items:center;padding:44px 0}.vv-home-feat.is-flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.vv-home-feat.is-flip .vv-home-feat__text{order:2}.vv-home-feat__cell,.vv-home-feat__text{min-width:0}.vv-home-feat__eyebrow{display:inline-block;font:600 12.5px/1 var(--font-ui,var(--vv-font-ui));letter-spacing:.1em;text-transform:uppercase;color:var(--vv-accent-text)}.vv-home-feat__title{margin:14px 0 0;font:700 50px/1.08 var(--font-display,var(--vv-font-display));letter-spacing:-.01em;color:var(--vv-text);text-wrap:balance}.vv-home-feat__title em{font-style:normal;background:linear-gradient(90deg,var(--vv-accent-text),#a78bfa);-webkit-background-clip:text;background-clip:text;color:transparent}.vv-home-final{padding-top:40px;padding-bottom:88px}.vv-home-final__panel{text-align:center;padding:64px 32px;border-radius:28px;border:1px solid var(--vv-border);background:var(--vv-card)}[data-theme=light] .vv-home-final__panel{border-color:#e3e7ec;box-shadow:0 1px 2px rgba(15,23,32,.05),0 8px 24px rgba(15,23,32,.06)}.vv-home-final__title{margin:0;font:700 40px/1.15 var(--font-display,var(--vv-font-display));color:var(--vv-text)}.vv-home-final__lead{max-width:52ch;margin:14px auto 0;font-size:17px;line-height:1.6;color:var(--vv-text2);text-wrap:balance}.vv-home-final__btns{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 14px;margin-top:28px}.vv-home-final__btn{gap:10px}.vv-home-final__author{display:flex;justify-content:center;margin-top:28px}.vv-course-hero{display:grid;grid-template-columns:minmax(0,10fr) minmax(0,11fr);gap:52px;align-items:start;padding-top:16px}.vv-course-hero:not(.is-band) .vv-course-hero__text{padding-top:24px}.vv-course-hero.is-visual{grid-template-columns:minmax(0,4fr) minmax(0,7fr)}.vv-course-hero.is-band{grid-template-columns:minmax(0,1fr)}.vv-course-hero__side,.vv-course-hero__text{min-width:0}.vv-course-hero__title{display:flex;align-items:flex-start;gap:18px}.vv-course-hero__h1{margin:calc((56px - 1.15em) / 2) 0 0;min-width:0;font:700 40px/1.15 var(--font-display,var(--vv-font-display));letter-spacing:-.01em;color:var(--vv-text);text-wrap:balance}.vv-course-hero__title.is-long .vv-course-hero__h1{margin-top:0}.vv-course-hero__title.is-long>:first-child{margin-top:4px}.vv-course-hero__lead{max-width:58ch;margin:18px 0 0;font-size:17px;line-height:1.6;color:var(--vv-text2)}.vv-course-hero__cta{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;margin-top:28px}.vv-course-hero__btn{gap:10px;min-width:0;max-width:min(100%,460px)}.vv-course-hero__btn svg{flex:none}.vv-course-hero__btn-text{display:flex;gap:.3em;min-width:0}.vv-course-hero__btn-fix{flex:none}.vv-course-hero__btn-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vv-course-program{margin:56px 0 0;font:700 26px/1.2 var(--font-display,var(--vv-font-display));color:var(--vv-text)}@media (max-width:820px){.vv-home-cards{grid-template-columns:minmax(0,1fr)}.vv-home-card__head{min-height:0}.vv-home-feat,.vv-home-feat.is-flip{grid-template-columns:minmax(0,1fr);gap:20px;padding:30px 0}.vv-home-feat.is-flip .vv-home-feat__text{order:0}.vv-home-feat__title{font-size:30px}.vv-course-hero,.vv-course-hero.is-visual{grid-template-columns:minmax(0,1fr);gap:28px;padding-top:4px}.vv-course-hero:not(.is-band) .vv-course-hero__text{padding-top:0}}@media (max-width:520px){.vv-home-h1{font-size:32px}.vv-home-lead{font-size:16px}.vv-home-intro{padding-top:28px;text-align:left}.vv-home-card__title{font-size:21px}.vv-home-try{padding-top:64px}.vv-home-try>.vv-home-h2,.vv-home-try__lead{text-align:left}.vv-home-final__panel{padding:40px 18px;text-align:left}.vv-home-final__title{font-size:30px}.vv-home-final__btns{justify-content:stretch}.vv-home-final__btn{width:100%}.vv-home-final__author{justify-content:flex-start}.vv-home-feat__title{font-size:26px}.vv-course-hero__h1{font-size:30px}.vv-course-hero__title.is-long>:first-child{margin-top:2px}.vv-course-hero__title{gap:14px}.vv-course-hero__lead{font-size:16px}.vv-course-hero__btn{width:100%}}@media (prefers-reduced-motion:reduce){.vv-cover-route canvas,.vv-home-card__arrow,.vv-home-card__arrow svg,.vv-home-card__link,.vv-ide__con{transition:none}.vv-ide__c,.vv-ide__c--fill,.vv-ide__caret,.vv-ide__key,.vv-ide__out span,.vv-ide__pop,.vv-ide__run.is-on,[data-theme=light] .vv-ide__c:not(.vv-ide__c--fill),[data-theme=light] .vv-ide__out span{animation:none}}