:root{--navy:#0b365e;--blue:#1769aa;--sky:#eaf6fd;--line:#d4e5ef;--yellow:#ffd166;--green:#14966f;--ink:#102d48;--muted:#526c80;--surface:#fff;--page:#f5f9f7}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 12% 8%,#fff6db 0,transparent 28%),var(--page);color:var(--ink);font-family:"Be Vietnam Pro",sans-serif}a{color:inherit}.hub-site-header{min-height:72px;padding:8px max(20px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.92);backdrop-filter:blur(14px);position:sticky;top:0;z-index:20}.hub-brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:18px;font-weight:800}.hub-brand img{width:48px;height:48px;object-fit:contain}.hub-brand small{display:block;color:var(--muted);font-size:10px;font-weight:500}.hub-home-button,.hub-primary{min-height:44px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;text-decoration:none;font-weight:800;transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease}.hub-home-button{border:1px solid var(--line);background:#fff;color:var(--navy)}main{width:min(1120px,calc(100% - 32px));margin:16px auto 52px}.hub-breadcrumb{display:flex;align-items:center;gap:8px;margin-bottom:14px;color:var(--muted);font-size:13px}.hub-breadcrumb a{color:var(--blue);font-weight:700;text-decoration:none}.hub-hero{padding:clamp(22px,3.5vw,36px);display:grid;grid-template-columns:minmax(0,1.65fr) minmax(240px,.65fr);gap:28px;align-items:center;border-radius:24px;background:linear-gradient(135deg,#0a355f,#176eaf);color:#fff;box-shadow:0 16px 40px rgba(10,53,95,.14);overflow:hidden;position:relative}.hub-hero:after{content:"";position:absolute;width:320px;height:320px;right:-130px;top:-170px;border-radius:50%;background:rgba(255,255,255,.08)}.hub-eyebrow,.hub-section-heading>span{color:var(--yellow);font-size:11px;font-weight:900;letter-spacing:.13em}.hub-hero h1{max-width:760px;margin:8px 0;font-size:clamp(28px,4vw,44px);line-height:1.12}.hub-hero p{max-width:730px;margin:0 0 16px;color:#e5f4ff;font-size:14px;line-height:1.65}.hub-primary{background:var(--yellow);color:#163957}.hub-hero aside{padding:16px;border:1px solid rgba(255,255,255,.2);border-radius:16px;background:rgba(255,255,255,.11);position:relative;z-index:2}.hub-hero aside strong,.hub-hero aside small{display:block}.hub-hero aside small{margin-top:8px;color:#d9ecf8;font-size:11px}.hub-progress{height:8px;margin-top:10px;border-radius:999px;background:rgba(255,255,255,.2);overflow:hidden}.hub-progress i{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--yellow),#67dfbf);transition:width .25s ease}.hub-lessons{padding-top:28px}.hub-section-heading{margin-bottom:14px}.hub-section-heading>span{color:var(--blue)}.hub-section-heading h2{margin:4px 0 0;font-size:clamp(24px,3vw,32px)}.hub-home-button:focus-visible,.hub-primary:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}
@media(max-width:820px){.hub-hero{grid-template-columns:1fr;gap:16px}.hub-hero aside{max-width:none}}
@media(max-width:580px){.hub-site-header{min-height:64px;padding:7px 10px}.hub-brand{gap:8px;font-size:15px}.hub-brand img{width:42px;height:42px}.hub-brand small{display:none}.hub-home-button{min-height:44px;padding:8px 10px;font-size:10px}main{width:calc(100% - 16px);margin-top:10px}.hub-breadcrumb{padding:0 2px;margin-bottom:8px;font-size:11px}.hub-hero{padding:18px 15px;border-radius:18px;gap:14px}.hub-eyebrow{font-size:9px}.hub-hero h1{font-size:26px}.hub-hero p{font-size:12px;line-height:1.55}.hub-primary{width:100%;font-size:13px}.hub-hero aside{padding:13px}.hub-lessons{padding-top:24px}.hub-section-heading{margin-bottom:10px}.hub-section-heading h2{font-size:22px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hub-progress i{transition:none}}

/* 2026 hub responsive UX refresh */
@media(min-width:581px) and (max-width:1024px){main{width:min(100% - 32px,920px)}.hub-site-header{padding-inline:20px}.hub-hero{grid-template-columns:minmax(0,1.45fr) minmax(220px,.65fr);gap:20px}}
@media(max-width:580px){body{overflow-x:hidden}.hub-site-header{padding-top:max(7px,env(safe-area-inset-top))}.hub-brand,.hub-brand span{min-width:0}.hub-home-button{flex:0 0 auto}.hub-hero h1{font-size:clamp(24px,7.5vw,30px);text-wrap:balance}.hub-hero p{font-size:14px}}
