:root {
    --ns-accent: #7B2C9E;
    --ns-accent-dark: #5A1C75;
    --ns-soft: #f6f1f9;
    --bs-link-color: #7B2C9E;
    --bs-link-hover-color: #5A1C75;
}

body { color: #2b2b2f; }

.ns-nav { background: linear-gradient(180deg, #8E3BB5, #6A2489); }
.ns-nav .nav-link { color: rgba(255, 255, 255, .9); }
.ns-nav .nav-link:hover { color: #fff; }

.ns-hero { background: linear-gradient(180deg, #8E3BB5 0%, #5A1C75 100%); color: #fff; }
.ns-hero .lead { color: #efe3f6; }
.ns-hero img.ns-logo { filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .25)); }

.btn-ns { background: var(--ns-accent); border-color: var(--ns-accent); color: #fff; }
.btn-ns:hover, .btn-ns:focus { background: var(--ns-accent-dark); border-color: var(--ns-accent-dark); color: #fff; }

.ns-feature { background: #fff; border: 1px solid #e8e0ee; border-radius: .75rem; padding: 1.25rem; height: 100%; }
.ns-feature .ns-icon { width: 2.5rem; height: 2.5rem; border-radius: .6rem; background: var(--ns-soft); color: var(--ns-accent);
    display: inline-flex; align-items: center; justify-content: center; font-weight: 700; margin-bottom: .75rem; }

.ns-price { border: 2px solid var(--ns-accent); border-radius: 1rem; }
.ns-price-free { border: 1px solid #ddd; border-radius: 1rem; }
.ns-price .display-5 { color: var(--ns-accent); }

.ns-soft { background: var(--ns-soft); }

.ns-code { font-family: Consolas, Menlo, monospace; font-size: .9rem; background: var(--ns-soft); border: 1px solid #e0d2ea;
    border-radius: .5rem; padding: .75rem; word-break: break-all; }

.ns-footer { background: #efe8f3; color: #555; }
.ns-footer a { color: var(--ns-accent); }

.ns-terms { white-space: pre-wrap; font-family: inherit; font-size: .95rem; }

@media print {
    .ns-nav, .ns-footer, .no-print { display: none !important; }
    body { background: #fff; }
}

/* Widths as classes: the Content-Security-Policy does not allow style attributes. */
.ns-w420 { max-width: 420px; }
.ns-w640 { max-width: 640px; }
.ns-w760 { max-width: 760px; }
.ns-w800 { max-width: 800px; }
.ns-w860 { max-width: 860px; }

/* Screenshots on the front page (rendered at 2x by tools/ui-snapshot --demo). */
.ns-shot img { border: 1px solid #e3dceb; border-radius: .5rem; box-shadow: 0 10px 28px rgba(60, 20, 80, .12); background: #fff; }
.ns-shot figcaption { color: #666; font-size: .9rem; margin-top: .6rem; }
.ns-lang { font-size: .9rem; opacity: .9; }
