/* VMTools uses its own app palette, independently of the host website. */
.vm-showcase,.vmtools-portal{--vm-bg:#0c1117;--vm-panel:#161c24;--vm-line:#2b3440;--vm-text:#f4f6f8;--vm-muted:#9ba8b8;--vm-accent:#448dff;--vm-glow:#183252;color:var(--vm-text);background:var(--vm-bg);font-family:Arial,Helvetica,sans-serif}
.vm-showcase[data-vm-theme=light],.vmtools-portal[data-vm-theme=light]{--vm-bg:#fff;--vm-panel:#f5f7fa;--vm-line:#d6dfe9;--vm-text:#141920;--vm-muted:#596777;--vm-accent:#156ce4;--vm-glow:#e2edff}
.vm-showcase *,.vmtools-portal *{box-sizing:border-box}.vm-showcase a,.vmtools-portal a{color:inherit;text-decoration:none}.vm-showcase button,.vmtools-portal button{font:inherit;cursor:pointer}.vm-showcase button:focus-visible,.vm-showcase a:focus-visible,.vmtools-portal :focus-visible{outline:3px solid var(--vm-accent);outline-offset:4px}
.vm-showcase{position:relative;overflow:hidden;padding:80px 24px 0;isolation:isolate}.vm-showcase::before{content:'';position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse 75% 55% at 50% 40%,var(--vm-glow),transparent);pointer-events:none}
.vm-showcase .vm-intro{max-width:980px;margin:auto;text-align:center}.vm-eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--vm-muted);margin:0 0 28px}.vm-eyebrow::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--vm-accent)}
.vm-showcase .vm-logo{width:62px;height:62px;border-radius:16px;display:block;margin:0 auto 24px}.vm-showcase h1,.vm-showcase h2.vm-title{font:500 clamp(44px,6.2vw,88px)/1.08 Arial,Helvetica,sans-serif;letter-spacing:-.055em;margin:0 0 24px;color:var(--vm-text)}.vm-showcase .vm-description{max-width:650px;margin:0 auto 30px;color:var(--vm-muted);font-size:clamp(17px,1.6vw,21px);line-height:1.6;letter-spacing:-.02em}.vm-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:12px}
.vm-button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:48px;padding:13px 23px;border:1px solid var(--vm-line);border-radius:999px;background:var(--vm-panel);color:var(--vm-text);font-weight:600;font-size:14px;line-height:1.4;transition:transform .18s,background .18s}.vm-button:hover{transform:translateY(-2px);background:var(--vm-line)}.vm-button.primary{background:var(--vm-text);color:var(--vm-bg);border-color:var(--vm-text)}.vm-button:disabled{opacity:.55;cursor:default;transform:none}.vm-button.link{border-color:transparent;background:transparent}
.vm-showcase .vm-micro{font-size:12px;color:var(--vm-muted);margin:17px 0 34px}.vm-theme-picker{display:inline-flex;padding:4px;background:var(--vm-panel);border:1px solid var(--vm-line);border-radius:999px;gap:3px}.vm-theme-picker button{border:0;border-radius:999px;background:transparent;color:var(--vm-muted);padding:8px 15px;font-size:12px}.vm-theme-picker button[aria-pressed=true]{background:var(--vm-text);color:var(--vm-bg)}
.vm-stage{max-width:1280px;margin:34px auto 0;perspective:1800px}.vm-window{border:1px solid var(--vm-line);border-radius:16px 16px 0 0;overflow:hidden;background:var(--vm-panel);box-shadow:0 15px 80px #0003;transform-origin:50% 100%;animation:vm-arrive 1s ease-out both}.vm-window-bar{display:flex;align-items:center;justify-content:space-between;padding:12px 18px;font-size:11px;color:var(--vm-muted);border-bottom:1px solid var(--vm-line);letter-spacing:.05em}.vm-window-bar i{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--vm-muted);margin-right:4px;opacity:.6}.vm-window img{width:100%;height:auto;aspect-ratio:1680/1050;display:block;object-fit:contain;background:var(--vm-bg)}
.vm-gallery-tabs{display:flex;justify-content:center;gap:10px;margin:25px 0 0;flex-wrap:wrap}.vm-gallery-tabs button{border:0;background:transparent;color:var(--vm-muted);padding:11px 16px;border-radius:8px;font-size:13px}.vm-gallery-tabs button[aria-pressed=true]{color:var(--vm-text);background:var(--vm-panel)}.vm-caption{color:var(--vm-muted);font-size:12px;text-align:center;margin:15px auto 0;line-height:1.6;padding-bottom:40px}
.vmtools-portal{margin:0;min-height:100dvh}.vmtools-portal-head{height:70px;position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:24px;padding:0 max(24px,calc((100vw - 1360px)/2));border-bottom:1px solid var(--vm-line);background:var(--vm-bg)}.vmtools-portal-head>a{font-size:12px;color:var(--vm-muted)}.vmtools-portal-head strong{font-size:18px}.vmtools-portal-head nav{margin-left:auto;display:flex;gap:12px;align-items:center}.vmtools-portal-head .vm-button{min-height:36px;padding:8px 16px;font-size:12px}.vmtools-portal-head .vm-home-link{display:none}
.vm-section{max-width:1280px;margin:auto;padding:100px 28px}.vm-section h2{font-size:clamp(30px,4vw,48px);letter-spacing:-.045em;font-weight:500;margin:0 0 20px;line-height:1.15}.vm-section>p{color:var(--vm-muted);line-height:1.7;max-width:760px}.vm-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:50px}.vm-feature-grid article{padding-top:24px;border-top:1px solid var(--vm-line)}.vm-feature-grid span{color:var(--vm-accent);font-size:12px}.vm-feature-grid h3{font-size:21px;font-weight:500;line-height:1.3}.vm-feature-grid p{font-size:15px;color:var(--vm-muted);line-height:1.7}
.vm-download-section{border-top:1px solid var(--vm-line);background:var(--vm-panel);scroll-margin-top:70px}.vm-release-label{color:var(--vm-accent);font-size:12px;letter-spacing:.08em}.vm-download-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:35px 0}.vm-download-grid article{border:1px solid var(--vm-line);border-radius:18px;padding:28px;background:var(--vm-bg);display:flex;flex-direction:column;align-items:flex-start;min-width:0}.vm-platform-symbol{font-size:32px;margin-bottom:28px;color:var(--vm-text)}.vm-download-grid h3{margin:0 0 12px;font-size:25px;font-weight:500;letter-spacing:-.03em}.vm-download-grid p{font-size:14px;line-height:1.65;color:var(--vm-muted);margin:0 0 24px}.vm-download-grid .vm-button{margin-top:auto;width:100%}.vm-download-grid .vm-download-meta{font-size:11px;margin:15px 0 0}.vm-download-grid .vm-manifest{font-size:12px;padding:14px 0 0;text-decoration:underline;background:none;border:0;color:var(--vm-muted)}.vm-access-note{padding:18px 22px;border:1px solid var(--vm-line);border-radius:12px;line-height:1.7;font-size:14px;color:var(--vm-muted)}.vm-access-note a{text-decoration:underline;color:var(--vm-text)}.vm-feedback{font-size:14px;line-height:1.5;min-height:22px;color:var(--vm-muted)}
.vm-updates{display:grid;grid-template-columns:1fr 1fr;gap:80px}.vm-steps{list-style:none;padding:0;margin:0;counter-reset:step}.vm-steps li{position:relative;padding:0 0 30px 52px;counter-increment:step}.vm-steps li::before{content:counter(step);position:absolute;left:0;top:0;width:30px;height:30px;border:1px solid var(--vm-line);border-radius:50%;display:grid;place-items:center;color:var(--vm-muted);font-size:13px}.vm-steps strong{font-size:17px;font-weight:500}.vm-steps p{font-size:14px;line-height:1.7;color:var(--vm-muted);margin-top:8px}.vm-notes{white-space:pre-line;color:var(--vm-muted);font-size:14px;line-height:1.8}.vm-footer{border-top:1px solid var(--vm-line);padding:30px 24px;display:flex;gap:20px;justify-content:space-between;color:var(--vm-muted);font-size:12px}.vm-footer a{text-decoration:underline}.vm-web-workspace{width:100%;height:calc(100dvh - 70px);border:0;display:block}.vmtools-portal [hidden]{display:none!important}
.vm-home-showcase{margin:28px auto 48px!important;max-width:1320px!important;border-radius:28px;overflow:hidden;border:1px solid #8193a32b;box-shadow:0 24px 80px #0002}.vm-home-showcase .vm-showcase{padding-top:80px}.vm-home-showcase .vm-stage{max-width:1120px}.vm-home-showcase .vm-title{font-size:clamp(40px,5.5vw,72px);text-transform:none!important}.vm-showcase .vm-author{max-width:580px;margin:20px auto 0;color:var(--vm-muted);font-size:13px;line-height:1.8;letter-spacing:0;text-transform:none}@media(max-width:760px){.vm-home-showcase{border-radius:20px;margin:20px 12px 36px!important}.vm-home-showcase .vm-showcase{padding-top:48px}}
@keyframes vm-arrive{from{opacity:0;transform:translateY(32px) rotateX(3deg)}to{opacity:1;transform:none}}
@media(max-width:760px){.vm-showcase{padding:55px 16px 0}.vm-showcase h1,.vm-showcase h2.vm-title{letter-spacing:-.045em}.vm-feature-grid,.vm-download-grid,.vm-updates{grid-template-columns:1fr;gap:24px}.vm-section{padding:60px 20px}.vmtools-portal-head{padding:0 16px;gap:14px;height:64px}.vmtools-portal-head>a{display:none}.vmtools-portal-head nav{gap:3px}.vmtools-portal-head .vm-button{padding:8px 10px}.vm-window{border-radius:9px 9px 0 0}.vm-window-bar{padding:9px 12px}.vm-gallery-tabs{gap:2px}.vm-gallery-tabs button{padding:9px;font-size:12px}.vm-footer{flex-direction:column}.vm-showcase .vm-micro{line-height:1.8}.vm-web-workspace{height:calc(100dvh - 64px)}}
@media(prefers-reduced-motion:reduce){.vm-showcase *,.vmtools-portal *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Compact host controls; hiding them keeps the same live iframe and lesson. */
.vm-download-first{padding:32px 28px 24px}.vm-download-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.vm-download-heading .vm-eyebrow{margin-bottom:14px}.vm-download-heading h1{font-size:clamp(30px,3.4vw,46px);font-weight:500;letter-spacing:-.045em;line-height:1.15;margin:0 0 12px}.vm-download-heading p:not(.vm-eyebrow):not(.vm-release-label){font-size:16px;line-height:1.55;color:var(--vm-muted);margin:0;max-width:760px}.vm-download-heading .vm-release-label{white-space:nowrap;border:1px solid var(--vm-line);border-radius:999px;padding:8px 12px;margin-top:0}.vm-download-first .vm-download-grid{margin:24px 0 16px}.vm-download-first .vm-download-grid article{padding:22px}.vm-download-first .vm-platform-symbol{font-size:26px;margin-bottom:12px}.vm-download-first .vm-download-grid h3{font-size:23px;margin-bottom:10px}.vm-download-first .vm-download-grid p{margin-bottom:16px;font-size:13px}.vm-download-first .vm-download-meta{margin:10px 0 0!important}.vm-download-first .vm-access-note{padding:12px 16px;font-size:13px}.vm-feedback:empty{display:none}.vm-install-help{margin-top:20px;color:var(--vm-muted);font-size:13px;line-height:1.7}.vm-install-help summary{cursor:pointer;padding:8px 0;color:var(--vm-text)}.vm-install-help>p{max-width:860px}.vm-install-help details{border-top:1px solid var(--vm-line)}.vm-download-first .vinh-contact{margin-top:18px;background:var(--vm-bg)}.vm-teaching-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;max-width:1120px;margin:36px auto 0;text-align:left}.vm-teaching-grid article{padding:26px;border:1px solid var(--vm-line);border-radius:18px;background:var(--vm-panel)}.vm-teaching-grid span{font-size:11px;letter-spacing:.12em;color:var(--vm-accent)}.vm-teaching-grid h3{font-size:23px;font-weight:500;line-height:1.3;margin:14px 0}.vm-teaching-grid p{color:var(--vm-muted);font-size:15px;line-height:1.7;margin:0}.vm-showcase .vm-title{font-size:clamp(36px,4.8vw,64px)!important}.vm-showcase .vm-description{max-width:740px}.vm-showcase .vm-micro{margin-bottom:22px}
@media(max-width:760px){.vm-download-first{padding:24px 16px}.vm-download-heading{display:block}.vm-download-heading .vm-release-label{display:inline-block;margin:16px 0 0}.vm-download-first .vm-download-grid{gap:12px;margin-top:8px}.vm-download-first .vm-download-grid article{padding:20px}.vm-teaching-grid{grid-template-columns:1fr;gap:14px}.vm-teaching-grid article{padding:22px}.vm-teaching-grid h3{font-size:21px}}
.vmtools-portal.vm-working{height:100dvh;min-height:0;overflow:hidden;--vm-bar-height:40px}
.vm-contact-shortcut{display:inline-block;font-size:13px;color:var(--vm-accent)!important;margin-top:12px;text-decoration:underline!important;text-underline-offset:4px}#lien-he{scroll-margin-top:85px}.vm-download-first .vm-download-grid article{position:relative}.vm-download-first .vm-platform-symbol{position:absolute;right:22px;top:20px;font-size:24px}.vm-download-first .vm-download-grid h3{padding-right:36px}.vm-download-first .vm-download-grid .vm-button{min-height:42px;padding:10px 16px}.vm-download-first .vm-download-grid .vm-button+.vm-button{margin-top:6px}
.vm-working .vmtools-portal-head{height:var(--vm-bar-height);padding:0 12px;gap:12px}
.vm-working .vmtools-portal-head strong{font-size:13px}
.vm-working .vmtools-portal-head nav{gap:6px}
.vm-working .vmtools-portal-head .vm-button{min-height:28px;padding:4px 10px;font-size:11px}
.vm-working #use-web{display:none}
.vm-working .vm-web-workspace{height:calc(100dvh - var(--vm-bar-height));background:var(--vm-bg);color-scheme:dark}
.vm-working.vm-toolbar-hidden .vmtools-portal-head{display:none}
.vm-working.vm-toolbar-hidden .vm-web-workspace{height:100dvh}
.vm-show-toolbar{position:fixed;right:8px;top:0;z-index:60;width:34px;height:26px;border:1px solid var(--vm-line);border-top:0;border-radius:0 0 8px 8px;background:var(--vm-panel);color:var(--vm-text);font-size:18px!important;box-shadow:0 2px 8px #0003}
.vm-showcase .vm-author{max-width:760px;margin:24px auto 0;color:var(--vm-text);line-height:1.55}
.vm-author strong{display:block;font-size:clamp(18px,1.7vw,23px);font-weight:600}
.vm-author span{display:block;margin-top:6px;color:var(--vm-muted);font-size:14px}
.vm-showcase .vm-experience{background:#156ce4;color:#fff;border-color:#65a4fa;box-shadow:0 6px 24px #156ce42e;font-size:15px;min-height:50px;padding:14px 24px}
.vm-showcase .vm-experience:hover{background:#206cd6;box-shadow:0 8px 28px #156ce445}
html[data-vm-theme=light] .vmtools-portal{--vm-bg:#fff;--vm-panel:#f5f7fa;--vm-line:#d6dfe9;--vm-text:#141920;--vm-muted:#596777;--vm-accent:#156ce4;--vm-glow:#e2edff}
@media(max-width:760px){.vmtools-portal.vm-working{--vm-bar-height:44px}.vm-working .vmtools-portal-head>a{display:inline}.vm-working .vmtools-portal-head{gap:8px;padding:0 8px}.vm-working .vmtools-portal-head strong{display:none}.vm-working .vmtools-portal-head .vm-button{min-height:32px}.vm-showcase .vm-experience{max-width:100%;font-size:14px;padding:13px 18px}.vm-author strong{font-size:18px}.vm-author span{font-size:13px}}
