:root {
  --nso-brown-950: #211006;
  --nso-brown-900: #321408;
  --nso-brown-800: #4b1d09;
  --nso-brown-700: #6b280b;
  --nso-orange: #e85f0b;
  --nso-orange-bright: #ff7a16;
  --nso-gold: #ffc83d;
  --nso-cream: #fff9ed;
  --nso-paper: #fffdf7;
  --nso-text: #38271e;
  --nso-muted: #806a5d;
  --nso-border: #ead8c3;
  --nso-shadow: 0 12px 32px rgba(62, 27, 8, .14);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.nso-theme {
  min-height: 100vh;
  margin: 0;
  color: var(--nso-text);
  background: #f7eee1;
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-size: 15px;
}

.nso-background {
  position: fixed;
  inset: 0;
  z-index: -2;
  background:
    radial-gradient(circle at 18% 10%, rgba(255, 196, 88, .2), transparent 28rem),
    linear-gradient(180deg, #f6eadb 0%, #fffdf8 44%, #f7eee2 100%);
}
.nso-background::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .28;
  background-image: radial-gradient(rgba(95, 48, 15, .18) .7px, transparent .7px);
  background-size: 18px 18px;
}

.nso-header {
  position: sticky;
  top: 0;
  z-index: 1000;
  height: 80px;
  color: #fff;
  background: rgba(42, 17, 6, .96);
  border-bottom: 1px solid rgba(255, 193, 75, .25);
  box-shadow: 0 7px 25px rgba(28, 10, 2, .28);
  backdrop-filter: blur(14px);
}
.nso-header-inner {
  width: min(1180px, calc(100% - 32px));
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 22px;
}
.nso-brand { display: inline-flex; align-items: center; gap: 10px; color: #fff !important; text-decoration: none !important; flex: 0 0 auto; }
.nso-brand img { width: 58px; height: 58px; border-radius: 14px; box-shadow: 0 4px 18px rgba(0, 0, 0, .25); transition: transform .25s ease; }
.nso-brand:hover img { transform: rotate(-3deg) scale(1.06); }
.nso-brand span { display: flex; flex-direction: column; line-height: 1.05; }
.nso-brand strong { color: var(--nso-gold); font-size: 20px; letter-spacing: .5px; }
.nso-brand small { margin-top: 5px; color: #d7c3b5; font-size: 11px; }

.nso-desktop-nav { display: flex; align-items: center; gap: 3px; }
.nso-desktop-nav a { padding: 11px 13px; color: #e9d9cd; border-radius: 9px; font-weight: 650; text-decoration: none; transition: .2s ease; white-space: nowrap; }
.nso-desktop-nav a:hover, .nso-desktop-nav a.active { color: var(--nso-gold); background: rgba(255, 255, 255, .08); }
.nso-desktop-nav i { margin-right: 5px; color: #ff9a3d; }

.nso-account-actions { display: flex; align-items: center; gap: 8px; }
.nso-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: 11px; padding: 10px 17px; font-weight: 750; line-height: 1.2; text-decoration: none !important; transition: transform .2s ease, box-shadow .2s ease, background .2s ease; }
.nso-btn:hover { transform: translateY(-2px); }
.nso-btn-primary { color: #fff !important; background: linear-gradient(135deg, var(--nso-orange-bright), #c23d00); box-shadow: 0 7px 20px rgba(218, 74, 3, .3); }
.nso-btn-ghost { color: #fff !important; border-color: rgba(255, 255, 255, .28); background: rgba(255, 255, 255, .05); }
.nso-btn-outline { color: #fff !important; border-color: rgba(255, 255, 255, .62); background: rgba(30, 10, 2, .3); backdrop-filter: blur(5px); }
.nso-btn-large { min-width: 150px; padding: 14px 24px; font-size: 17px; }
.nso-user-pill { display: flex; align-items: center; gap: 8px; color: #fff !important; text-decoration: none !important; }
.nso-user-pill img { width: 42px; height: 42px; object-fit: contain; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.2); border-radius: 50%; }
.nso-user-pill span { display: flex; flex-direction: column; max-width: 100px; }
.nso-user-pill small { color: #d9c3b6; font-size: 10px; }
.nso-user-pill strong { color: var(--nso-gold); overflow: hidden; text-overflow: ellipsis; }

.nso-mobile-header { display: none; }

.nso-hero {
  position: relative;
  overflow: hidden;
  min-height: 520px;
  background:
    radial-gradient(circle at 72% 45%, rgba(239, 112, 17, .35), transparent 28rem),
    linear-gradient(115deg, #211006 0%, #4a1d09 55%, #281005 100%);
}
.nso-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .11;
  background-image: linear-gradient(30deg, transparent 45%, #ffb23f 46%, transparent 48%), linear-gradient(-30deg, transparent 45%, #ffb23f 46%, transparent 48%);
  background-size: 52px 90px;
}
.nso-hero-shade { position: absolute; inset: auto 0 0; height: 130px; background: linear-gradient(transparent, rgba(10,3,0,.45)); }
.nso-hero-inner { position: relative; z-index: 2; width: min(1180px, calc(100% - 32px)); min-height: 520px; margin: 0 auto; display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 28px; }
.nso-hero-copy { padding: 45px 0; color: #fff; }
.nso-eyebrow { display: inline-flex; padding: 8px 15px; color: var(--nso-gold); background: rgba(255, 164, 45, .1); border: 1px solid rgba(255, 192, 71, .55); border-radius: 999px; font-size: 13px; font-weight: 750; text-transform: uppercase; letter-spacing: .7px; }
.nso-wordmark { display: block; width: min(360px, 90%); height: auto; margin: 24px 0 18px; filter: drop-shadow(0 10px 10px rgba(0,0,0,.3)); }
.nso-hero-copy p { max-width: 550px; margin: 0 0 26px; color: #f6e9df; font-size: 18px; line-height: 1.7; }
.nso-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; }
.nso-hero-art { align-self: end; display: flex; align-items: flex-end; justify-content: flex-end; }
.nso-hero-art img { display: block; width: min(630px, 100%); height: auto; filter: drop-shadow(0 18px 20px rgba(0,0,0,.35)); animation: nsoFloat 5s ease-in-out infinite; }
@keyframes nsoFloat { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }

.nso-download-panel { position: relative; z-index: 5; width: min(1080px, calc(100% - 32px)); margin: -36px auto 36px; padding: 18px 22px; display: flex; align-items: center; gap: 24px; background: rgba(255, 253, 247, .97); border: 1px solid var(--nso-border); border-radius: 18px; box-shadow: var(--nso-shadow); }
.nso-download-heading { display: flex; align-items: center; gap: 13px; min-width: 255px; }
.nso-download-heading > span:last-child { display: flex; flex-direction: column; }
.nso-download-heading strong { font-size: 17px; }
.nso-download-heading small { color: var(--nso-muted); font-size: 11px; margin-top: 3px; }
.nso-download-icon { width: 47px; height: 47px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #ff8d20, #c54405); border-radius: 13px; font-size: 20px; }
.nso-download-links { flex: 1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.nso-download-links a { min-height: 62px; display: flex; align-items: center; justify-content: center; gap: 10px; color: var(--nso-text); background: #fff8ee; border: 1px solid #f0d9bd; border-radius: 11px; text-decoration: none !important; transition: .2s ease; }
.nso-download-links a:hover { color: #b63b00; border-color: #f39a50; transform: translateY(-2px); box-shadow: 0 7px 15px rgba(97,45,12,.1); }
.nso-download-links i { color: var(--nso-orange); font-size: 21px; }
.nso-download-links span { display: flex; flex-direction: column; font-weight: 800; }
.nso-download-links small { color: var(--nso-muted); font-size: 9px; font-weight: 500; }

.nso-member-bar { width: min(1080px, calc(100% - 32px)); margin: 20px auto; padding: 13px 16px; display: flex; align-items: center; justify-content: space-between; gap: 20px; background: var(--nso-paper); border: 1px solid var(--nso-border); border-radius: 15px; box-shadow: 0 8px 22px rgba(62,27,8,.08); }
.nso-member-info, .nso-member-links { display: flex; align-items: center; gap: 16px; }
.nso-member-info img { width: 50px; height: 50px; object-fit: contain; }
.nso-member-info span { display: flex; flex-direction: column; padding-right: 15px; border-right: 1px solid var(--nso-border); }
.nso-member-info small { color: var(--nso-muted); font-size: 10px; text-transform: uppercase; }
.nso-member-info strong { color: #6b280b; font-size: 13px; }
.nso-member-links { gap: 7px; flex-wrap: wrap; justify-content: flex-end; }
.nso-member-links a { padding: 8px 10px; color: #6a3518; background: #fff3df; border-radius: 8px; font-size: 12px; font-weight: 700; text-decoration: none; }
.nso-member-links a:hover { color: #fff; background: var(--nso-orange); }

.nso-page-main { min-height: 300px; padding: 0 16px 45px; }
.nso-inner .nso-page-main { padding-top: 34px; }
.nso-page-content { width: min(1080px, 100%); margin: 0 auto; }
.nso-page-content > main { display: block; }

/* Make the legacy PHP content feel like the imported Ninja Mobile interface. */
.nso-page-content .alert,
.nso-page-content .card,
.nso-page-content .bg-light {
  color: var(--nso-text);
  background: var(--nso-paper) !important;
  border-color: var(--nso-border) !important;
}
.nso-page-content > .alert,
.nso-page-content > main > .alert,
.nso-page-content > .card {
  border-radius: 15px !important;
  box-shadow: var(--nso-shadow) !important;
}
.nso-page-content .alert .alert { border-radius: 11px !important; box-shadow: none !important; }
.nso-page-content h1, .nso-page-content h2, .nso-page-content h3, .nso-page-content h4, .nso-page-content h5 { color: #642408; font-weight: 800; }
.nso-page-content hr { border-color: #ead2b5; }
.nso-page-content a:not(.btn) { color: #c24a08; }
.nso-page-content .btn-action, .nso-page-content .btn-download, .nso-page-content .btn-primary {
  color: #fff !important;
  background: linear-gradient(135deg, var(--nso-orange-bright), #bd3a00) !important;
  border: 0 !important;
  border-radius: 10px !important;
  box-shadow: 0 5px 13px rgba(192, 66, 4, .19);
}
.nso-page-content .form-control { min-height: 43px; border: 1px solid #dec5a7; border-radius: 9px !important; background: #fffdfa; }
.nso-page-content .form-control:focus { border-color: #e96a1b; box-shadow: 0 0 0 3px rgba(233,106,27,.13); }
.nso-page-content table { color: var(--nso-text); }

.nso-footer { padding: 32px 16px 105px; color: #d9c5b8; background: #291106; border-top: 4px solid #6d2b0c; }
.nso-footer-inner { width: min(1080px, 100%); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 25px; }
.nso-footer-brand { display: flex; align-items: center; gap: 12px; }
.nso-footer-brand img { width: 52px; height: 52px; border-radius: 12px; }
.nso-footer-brand span { display: flex; flex-direction: column; }
.nso-footer-brand strong { color: var(--nso-gold); }
.nso-footer-brand small { margin-top: 3px; }
.nso-footer-links { display: flex; gap: 18px; }
.nso-footer-links a { color: #ead9ce; text-decoration: none; font-weight: 650; }
.nso-footer-links a:hover { color: var(--nso-gold); }
.nso-footer p { margin: 0; font-size: 12px; }

.nso-zalo { position: fixed; right: 18px; bottom: 22px; z-index: 900; display: flex; align-items: center; gap: 8px; padding: 8px 13px 8px 8px; color: #fff !important; background: #0877e8; border-radius: 999px; box-shadow: 0 7px 20px rgba(0,89,187,.3); text-decoration: none !important; }
.nso-zalo strong { width: 31px; height: 31px; display: grid; place-items: center; background: #fff; color: #0877e8; border-radius: 50%; font-size: 18px; }
.nso-zalo span { font-size: 12px; font-weight: 750; }
.nso-bottom-nav { display: none; }

/* Dedicated download page */
.nso-download-page { display: flex; flex-direction: column; gap: 34px; }
.nso-download-page-hero { position: relative; min-height: 330px; padding: 42px 45px; overflow: hidden; display: grid; grid-template-columns: 1fr 1fr; align-items: center; color: #fff; background: radial-gradient(circle at 78% 25%, rgba(255,141,32,.4), transparent 23rem), linear-gradient(120deg, #261006, #682506); border: 1px solid #7e3714; border-radius: 22px; box-shadow: var(--nso-shadow); }
.nso-download-page-hero::before { content: ""; position: absolute; inset: 0; opacity: .12; background-image: linear-gradient(30deg, transparent 45%, #ffb23f 46%, transparent 48%), linear-gradient(-30deg, transparent 45%, #ffb23f 46%, transparent 48%); background-size: 44px 76px; }
.nso-download-page-copy { position: relative; z-index: 2; }
.nso-download-page-copy h1 { margin: 20px 0 12px; color: #fff; font-size: clamp(35px, 5vw, 55px); line-height: 1; }
.nso-download-page-copy > p { max-width: 590px; margin: 0; color: #f2ded1; font-size: 16px; line-height: 1.65; }
.nso-download-badges { margin-top: 25px; display: flex; flex-wrap: wrap; gap: 9px; }
.nso-download-badges span { padding: 7px 10px; color: #ffe3be; background: rgba(255,255,255,.08); border: 1px solid rgba(255,207,142,.22); border-radius: 8px; font-size: 11px; font-weight: 700; }
.nso-download-badges i { margin-right: 4px; color: var(--nso-gold); }
.nso-download-page-hero > img { position: absolute; z-index: 1; right: -5px; bottom: -16px; width: min(530px, 52%); filter: drop-shadow(0 18px 20px rgba(0,0,0,.4)); }
.nso-version-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 25px; }
.nso-version-heading span, .nso-section-kicker { color: var(--nso-orange); font-size: 11px; font-weight: 900; letter-spacing: 1.2px; }
.nso-version-heading h2, .nso-install-guide h2 { margin: 5px 0 0; color: #642408; font-size: 28px; }
.nso-version-heading p { max-width: 470px; margin: 0; color: var(--nso-muted); text-align: right; }
.nso-version-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.nso-version-card { position: relative; min-width: 0; padding: 24px 20px 20px; display: flex; flex-direction: column; background: var(--nso-paper); border: 1px solid var(--nso-border); border-radius: 16px; box-shadow: 0 7px 22px rgba(62,27,8,.08); transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease; }
.nso-version-card:hover { transform: translateY(-5px); border-color: #eaa166; box-shadow: var(--nso-shadow); }
.nso-version-card.recommended { border: 2px solid var(--nso-orange); }
.nso-recommended { position: absolute; top: -12px; right: 14px; padding: 5px 9px; color: #fff; background: linear-gradient(135deg, #ff7a16, #c64000); border-radius: 99px; font-size: 9px; font-weight: 900; text-transform: uppercase; letter-spacing: .5px; }
.nso-version-icon { width: 55px; height: 55px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #ff8820, #bd3a00); border-radius: 15px; font-size: 27px; box-shadow: 0 8px 17px rgba(190,60,0,.2); }
.nso-version-title { margin-top: 17px; }
.nso-version-title small { color: var(--nso-orange); font-weight: 900; letter-spacing: .8px; }
.nso-version-title h3 { margin: 2px 0 0; color: #5d2b12; font-size: 20px; }
.nso-version-card > p { min-height: 63px; margin: 12px 0; color: var(--nso-muted); font-size: 13px; line-height: 1.55; }
.nso-version-note { margin-bottom: 17px; color: #8c7566; font-size: 10px; }
.nso-version-note i { color: var(--nso-orange); }
.nso-version-button { margin-top: auto; padding: 12px 10px; color: #fff !important; background: linear-gradient(135deg, var(--nso-orange-bright), #bd3a00); border-radius: 9px; text-align: center; font-size: 12px; font-weight: 800; text-decoration: none !important; box-shadow: 0 5px 13px rgba(190,60,0,.18); }
.nso-version-button:hover { filter: brightness(1.08); }
.nso-install-area { display: grid; grid-template-columns: 1.25fr .75fr; gap: 18px; }
.nso-install-guide, .nso-download-help { padding: 30px; background: var(--nso-paper); border: 1px solid var(--nso-border); border-radius: 17px; box-shadow: 0 7px 22px rgba(62,27,8,.07); }
.nso-install-guide ol { margin: 24px 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; list-style: none; }
.nso-install-guide li { display: flex; align-items: flex-start; gap: 11px; }
.nso-install-guide li > strong { width: 34px; height: 34px; flex: 0 0 34px; display: grid; place-items: center; color: #fff; background: #6b280b; border-radius: 10px; }
.nso-install-guide li span { display: flex; flex-direction: column; }
.nso-install-guide li b { color: #5d2b12; }
.nso-install-guide li small { margin-top: 4px; color: var(--nso-muted); line-height: 1.5; }
.nso-download-help { color: #fff; background: linear-gradient(145deg, #5d2108, #311207); border-color: #723111; }
.nso-help-icon { width: 45px; height: 45px; display: grid; place-items: center; color: #5a2209; background: var(--nso-gold); border-radius: 13px; font-size: 23px; }
.nso-download-help h3 { margin: 17px 0 8px; color: #fff; font-size: 20px; }
.nso-download-help p { color: #dfcbbd; font-size: 13px; line-height: 1.55; }
.nso-download-help > div:last-child { display: flex; flex-wrap: wrap; gap: 8px; }
.nso-download-help a { padding: 9px 11px; color: #fff !important; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); border-radius: 8px; font-size: 11px; font-weight: 750; text-decoration: none !important; }
.nso-download-warning { padding: 15px 18px; display: flex; align-items: center; gap: 12px; color: #77400d; background: #fff3cf; border: 1px solid #f0d289; border-radius: 12px; }
.nso-download-warning > i { color: #e59c00; font-size: 21px; }
.nso-download-warning p { margin: 0; font-size: 12px; }

@media (max-width: 1020px) {
  .nso-desktop-nav a { padding: 10px 8px; font-size: 13px; }
  .nso-account-actions .nso-logout { display: none; }
  .nso-brand strong { font-size: 17px; }
  .nso-hero-inner { grid-template-columns: .8fr 1.2fr; }
  .nso-download-panel { align-items: stretch; flex-direction: column; }
  .nso-download-heading { min-width: 0; }
  .nso-member-bar { align-items: flex-start; flex-direction: column; }
  .nso-version-grid { grid-template-columns: repeat(2, 1fr); }
  .nso-download-page-hero > img { opacity: .6; width: 58%; }
}

@media (max-width: 767px) {
  body.nso-theme { font-size: 14px; padding-bottom: 70px; }
  .nso-header { display: none; }
  .nso-mobile-header { position: sticky; top: 0; z-index: 1000; height: 64px; padding: 0 14px; display: flex; align-items: center; justify-content: space-between; background: rgba(42,17,6,.97); border-bottom: 1px solid rgba(255,193,75,.25); box-shadow: 0 5px 18px rgba(28,10,2,.3); }
  .nso-mobile-header .nso-brand { gap: 8px; }
  .nso-mobile-header .nso-brand img { width: 41px; height: 41px; border-radius: 10px; }
  .nso-mobile-header .nso-brand strong { font-size: 13px; }
  .nso-mobile-header .nso-brand small { margin-top: 3px; font-size: 8px; }
  .nso-mobile-login { padding: 8px 10px; color: #fff !important; border: 1px solid rgba(255,255,255,.25); border-radius: 9px; font-size: 11px; font-weight: 750; text-decoration: none !important; }
  .nso-mobile-avatar img { width: 43px; height: 43px; object-fit: contain; }
  .nso-hero { min-height: auto; padding-bottom: 18px; }
  .nso-hero-inner { min-height: 0; width: min(100% - 28px, 560px); padding: 28px 0 0; display: flex; flex-direction: column; gap: 5px; }
  .nso-hero-copy { padding: 0; display: flex; flex-direction: column; align-items: center; text-align: center; }
  .nso-eyebrow { padding: 6px 11px; font-size: 10px; }
  .nso-wordmark { width: 205px; margin: 14px auto 10px; }
  .nso-hero-copy p { margin-bottom: 15px; font-size: 13px; line-height: 1.5; }
  .nso-hero-actions { justify-content: center; }
  .nso-btn-large { min-width: 125px; padding: 11px 14px; font-size: 14px; }
  .nso-hero-art { order: 2; width: 100%; justify-content: center; }
  .nso-hero-art img { width: min(460px, 100%); }
  .nso-download-panel { width: calc(100% - 24px); margin: -5px auto 24px; padding: 14px; gap: 13px; border-radius: 14px; }
  .nso-download-icon { width: 40px; height: 40px; }
  .nso-download-links { grid-template-columns: repeat(2, 1fr); }
  .nso-download-links a { min-height: 54px; justify-content: flex-start; padding: 0 12px; }
  .nso-member-bar { width: calc(100% - 24px); margin: 14px auto; padding: 11px; }
  .nso-member-info { width: 100%; display: grid; grid-template-columns: 45px 1fr 1fr; gap: 8px; }
  .nso-member-info img { width: 43px; height: 43px; grid-row: span 2; }
  .nso-member-info span { padding: 0; border: 0; }
  .nso-member-info span:last-child { display: none; }
  .nso-member-links { width: 100%; justify-content: flex-start; gap: 5px; }
  .nso-member-links a { flex: 1 1 30%; padding: 8px 5px; text-align: center; font-size: 10px; }
  .nso-page-main, .nso-inner .nso-page-main { padding: 15px 10px 28px; }
  .nso-page-content > .alert, .nso-page-content > main > .alert, .nso-page-content > .card { border-radius: 12px !important; }
  .nso-footer { padding: 26px 14px 24px; }
  .nso-footer-inner { flex-direction: column; text-align: center; gap: 14px; }
  .nso-footer-links { gap: 12px; flex-wrap: wrap; justify-content: center; }
  .nso-zalo { display: none; }
  .nso-bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1100; height: calc(68px + env(safe-area-inset-bottom, 0px)); padding: 7px 5px env(safe-area-inset-bottom, 0px); display: grid; grid-template-columns: repeat(5, 1fr); background: rgba(255,253,248,.98); border-top: 1px solid var(--nso-border); box-shadow: 0 -7px 20px rgba(61,25,6,.13); backdrop-filter: blur(12px); }
  .nso-bottom-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: #755d4e; font-size: 10px; font-weight: 650; text-decoration: none !important; }
  .nso-bottom-nav i { font-size: 19px; }
  .nso-bottom-nav .nso-bottom-main { color: var(--nso-orange); }
  .nso-bottom-nav .nso-bottom-main i { width: 44px; height: 44px; margin-top: -24px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #ff8a1c, #c33d00); border: 4px solid #fffaf2; border-radius: 50%; box-shadow: 0 5px 15px rgba(195,61,0,.3); }
  .nso-download-page { gap: 24px; }
  .nso-download-page-hero { min-height: 470px; padding: 27px 20px; display: block; border-radius: 16px; text-align: center; }
  .nso-download-page-copy { display: flex; flex-direction: column; align-items: center; }
  .nso-download-page-copy h1 { margin-top: 15px; font-size: 36px; }
  .nso-download-page-copy > p { font-size: 13px; }
  .nso-download-badges { justify-content: center; margin-top: 15px; }
  .nso-download-badges span { padding: 5px 7px; font-size: 9px; }
  .nso-download-page-hero > img { right: 50%; bottom: -5px; width: min(430px, 112%); max-width: none; opacity: 1; transform: translateX(50%); }
  .nso-version-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .nso-version-heading h2, .nso-install-guide h2 { font-size: 23px; }
  .nso-version-heading p { text-align: left; font-size: 12px; }
  .nso-version-grid { grid-template-columns: 1fr; gap: 12px; }
  .nso-version-card { padding: 18px; display: grid; grid-template-columns: 55px 1fr; column-gap: 14px; }
  .nso-version-title { margin: 3px 0 0; }
  .nso-version-card > p, .nso-version-note, .nso-version-button { grid-column: 1 / -1; }
  .nso-version-card > p { min-height: 0; margin: 12px 0 8px; }
  .nso-version-note { margin-bottom: 13px; }
  .nso-install-area { grid-template-columns: 1fr; }
  .nso-install-guide, .nso-download-help { padding: 21px 18px; }
  .nso-install-guide ol { grid-template-columns: 1fr; }
  .nso-download-warning { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
