/* not the same — theme layer on top of the ported design.css: base, transitions, sticky header, modal, hovers. */

:root {
	--nts-blue: #2416FF;
	--nts-ink: #0A0B12;
	--nts-lime: #D4FF3F;
	--nts-ease: cubic-bezier(.2, .7, .2, 1);
}

html { background: var(--nts-ink); -webkit-text-size-adjust: 100%; }
body { margin: 0; font-family: 'Inter Tight', system-ui, sans-serif; font-size: 17px; line-height: 1.6; color: #F3F2EE; }
button, input, textarea, select { font-family: inherit; }
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
:focus-visible { outline: 2px solid var(--nts-lime); outline-offset: 3px; }

/* Root keeps the design's look but lets the header stick. */
[data-nts-root] { overflow: clip !important; min-height: 100vh; }

/* ---------- Page transition curtain ---------- */
.nts-curtain {
	position: fixed; inset: 0; z-index: 200; pointer-events: none;
	background: var(--nts-blue); transform: scaleY(0); transform-origin: 50% 100%; will-change: transform;
}
.nts-curtain::after {
	content: "≠"; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
	font: 700 120px/1 'Inter Tight', sans-serif; color: var(--nts-lime); opacity: .9;
}

/* ---------- Sticky header ---------- */
[data-nts-root] > header, .nts-head {
	position: sticky; top: 0; z-index: 60;
	/* One solid dark bar on every page, light pages included: no see-through or white variants. */
	background: var(--nts-ink); color: #F3F2EE;
	box-shadow: 0 0 0 100vmax var(--nts-ink); clip-path: inset(0 -100vmax);
	transition: transform .45s var(--nts-ease), padding .3s;
}
.nts-head.is-stuck { padding-top: 14px !important; padding-bottom: 14px !important; }
.lt-page .nts-head b { color: #F3F2EE !important; }
.lt-page .nts-head a[aria-current] { color: var(--nts-lime) !important; }
.nts-head.is-hidden { transform: translateY(-110%); }
.nts-head nav a:not(.n-btn) { position: relative; }
.nts-head nav a:not(.n-btn)::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 1.5px;
	background: currentColor; transform: scaleX(0); transform-origin: left; transition: transform .35s var(--nts-ease);
}
.nts-head nav a:not(.n-btn):hover::after, .nts-head nav a[aria-current]::after { transform: scaleX(1); }
.nts-head nav a[aria-current] { color: var(--nts-lime); }

/* ---------- Hovers ---------- */
.n-btn { position: relative; overflow: hidden; isolation: isolate; transition: transform .35s var(--nts-ease), box-shadow .35s; will-change: transform; }
.n-btn::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit;
	background: linear-gradient(90deg, rgba(255,255,255,0) 0%, rgba(255,255,255,.35) 50%, rgba(255,255,255,0) 100%);
	transform: translateX(-110%); transition: transform .6s var(--nts-ease);
}
.n-btn:hover::before { transform: translateX(110%); }
.n-btn:hover { box-shadow: 0 10px 28px rgba(36, 22, 255, .22); }
.n-btn:active { transform: scale(.98); }

.n-cover { overflow: hidden; }
.n-cover-img, .n-post-img img, .n-feat img, .n-dip img { transition: transform .7s var(--nts-ease) !important; }
a:hover .n-cover-img, .n-case:hover .n-cover-img { transform: scale(1.05); }

.n-tile { transition: transform .3s var(--nts-ease), border-color .3s, box-shadow .3s; }
.n-tile:hover { transform: translateY(-2px); border-color: var(--nts-blue) !important; }
.n-tile svg { transition: transform .35s var(--nts-ease); }
.n-tile:hover svg { transform: scale(1.18); }

footer a:not(.n-btn) { background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .35s var(--nts-ease), color .2s; }
footer a:not(.n-btn):hover { background-size: 100% 1px; color: var(--nts-lime); }

/* Cursor bubble over covers. */
.nts-view {
	position: fixed; left: 0; top: 0; z-index: 150; pointer-events: none;
	width: 96px; height: 96px; margin: -48px 0 0 -48px; border-radius: 50%;
	background: var(--nts-lime); color: var(--nts-ink);
	display: flex; align-items: center; justify-content: center;
	font: 600 13px/1 'Inter Tight', sans-serif;
	transform: scale(0); transition: transform .35s var(--nts-ease); opacity: .95;
}
.nts-view.on { transform: scale(1); }

/* Tabs. */
.n-tab-btn { transition: background-color .25s, color .25s, border-color .25s; }
[data-tab].on, .n-tab-btn.on { background: var(--nts-ink) !important; color: #fff !important; border-color: var(--nts-ink) !important; }
[data-tab] { border: 1px solid #E6E6EC; border-radius: 999px; padding: 12px 18px; font-size: 13px; cursor: pointer; text-align: left; background: #FFFFFF; color: var(--nts-ink); }
[data-tab]:hover { border-color: var(--nts-blue); }


/* ---------- Modal ---------- */
.nts-modal { position: fixed; inset: 0; z-index: 120; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 40px 16px; }
.nts-modal[hidden] { display: none; }
.nts-modal-backdrop { position: fixed; inset: 0; background: rgba(10, 11, 18, .72); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.nts-modal-box { position: relative; width: min(1180px, 100%); border-radius: 24px; overflow: hidden; }
.nts-modal-x {
	position: absolute; right: 16px; top: 16px; z-index: 2; width: 44px; height: 44px; border-radius: 50%;
	border: 1px solid rgba(255,255,255,.2); background: rgba(10,11,18,.6); color: #fff; font-size: 24px; cursor: pointer;
	transition: transform .3s var(--nts-ease), background-color .3s;
}
.nts-modal-x:hover { transform: rotate(90deg); background: var(--nts-blue); }

/* ---------- Mobile menu ---------- */
.nts-menu { position: fixed; inset: 0; z-index: 110; background: var(--nts-ink); color: #F3F2EE; overflow-y: auto; }
.nts-menu[hidden] { display: none; }
.nts-menu-top { display: flex; justify-content: space-between; align-items: center; padding-top: 22px; padding-bottom: 22px; }
.nts-menu-x { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #2E3048; background: transparent; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.nts-menu a { transition: color .25s; }
.nts-menu a:not(.n-btn):hover { color: var(--nts-lime); }
body.menu-open .n-qc { display: none; }

/* ---------- Portfolio ---------- */
.nts-filters { display: flex; flex-wrap: wrap; gap: 12px; }
.nts-select { position: relative; display: inline-flex; flex-direction: column; gap: 2px; min-width: 240px; border: 1px solid #2E3048; border-radius: 12px; padding: 10px 16px; transition: border-color .25s; cursor: pointer; }
.nts-select:hover, .nts-select:focus-within { border-color: var(--nts-lime); }
.nts-select .n-mono { font-size: 10px; color: #6E7088; }
.nts-select select { appearance: none; -webkit-appearance: none; border: 0; background: transparent; color: inherit; font: inherit; font-size: 15px; padding: 0 28px 0 0; cursor: pointer; outline: 0; }
.nts-select select option { color: #0A0B12; }
.nts-select-arrow { position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: #A9ABBE; pointer-events: none; transition: transform .25s; }
.nts-select:hover .nts-select-arrow { transform: translateY(-30%); }
.nts-pgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 64px 40px; }
.nts-pgrid .n-pf-a { transition: transform .35s var(--nts-ease); }
.nts-pgrid .n-pf:hover .n-pf-a { transform: translate(4px, -4px); color: var(--nts-lime); }
.nts-pgrid.is-loading { opacity: .4; transition: opacity .2s; }
@media (max-width: 760px) { .nts-pgrid { grid-template-columns: 1fr; gap: 48px; } .nts-select { min-width: 0; flex: 1 1 160px; } }
.nts-proj-meta { display: grid; gap: 48px; }
.nts-prose { max-width: 760px; font-size: 18px; color: #C9CADA; }
.nts-next { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: 16px 48px; align-items: center; }
.nts-next-t { font-size: clamp(40px, 6vw, 96px); font-weight: 600; letter-spacing: -0.03em; line-height: 1; grid-column: 1; transition: color .3s; }
.nts-next-t span { display: inline-block; transition: transform .4s var(--nts-ease); }
.nts-next:hover .nts-next-t { color: var(--nts-blue); }
.nts-next:hover .nts-next-t span { transform: translateX(10px); }
.nts-next-img { grid-column: 2; grid-row: 1 / span 2; border-radius: 16px; overflow: hidden; aspect-ratio: 4/3; }
.nts-next-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .7s var(--nts-ease); }
.nts-next:hover .nts-next-img img { transform: scale(1.05); }
@media (max-width: 760px) { .nts-next { grid-template-columns: 1fr; } .nts-next-img { grid-column: 1; grid-row: auto; } }

/* ---------- Forms ---------- */
.n-drop { transition: border-color .2s, background-color .2s; }
.n-drop:hover, .n-drop.is-over { border-color: var(--nts-blue) !important; background: #F7F6FF; }
.n-drop.has-file { border-style: solid !important; border-color: var(--nts-blue) !important; }
.nts-sub-ok { display: flex; flex-direction: column; gap: 6px; padding: 18px 22px; border-radius: 16px; background: rgba(255,255,255,.12); }
.nts-sub-ok b { font-size: 20px; color: var(--nts-lime); }

/* ---------- Quiz ---------- */
.nts-quiz { position: relative; min-height: 520px; }
.nts-quiz-bar { height: 4px; border-radius: 4px; background: #EEEEF3; margin-bottom: 32px; overflow: hidden; }
.nts-quiz-bar span { display: block; height: 100%; border-radius: 4px; background: var(--nts-blue); transition: width .5s var(--nts-ease); }
.nts-quiz-q { margin: 0 0 24px; font-size: clamp(26px, 2.4vw, 34px); line-height: 1.2; font-weight: 600; }
.nts-quiz-hint { margin: -12px 0 20px; color: #5C5E72; font-size: 15px; }
.nts-quiz-opts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(240px, 100%), 1fr)); gap: 10px; }
.nts-qopt { text-align: left; border: 1px solid #D6D6E0; background: #FFFFFF; color: #0A0B12; border-radius: 12px; padding: 18px 20px; font: inherit; font-size: 17px; cursor: pointer; transition: border-color .2s, background-color .2s, transform .2s var(--nts-ease); }
.nts-qopt:hover { border-color: var(--nts-blue); transform: translateY(-2px); }
.nts-qopt.on { border: 2px solid var(--nts-blue); background: #F0EFFF; padding: 17px 19px; font-weight: 600; }
.nts-quiz-nav { display: flex; gap: 12px; margin-top: 28px; flex-wrap: wrap; align-items: center; }
.nts-qbtn { border: 0; border-radius: 999px; padding: 16px 28px; font: inherit; font-size: 16px; font-weight: 700; cursor: pointer; transition: transform .25s var(--nts-ease), filter .2s; }
.nts-qbtn:hover { transform: translateY(-2px); filter: brightness(1.05); }
.nts-qbtn.ghost { background: #F1F1F5; color: #0A0B12; }
.nts-qbtn.blue { background: var(--nts-blue); color: #FFFFFF; }
.nts-qbtn.lime { background: var(--nts-lime); color: #0A0B12; }
.nts-quiz-f { display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: #5C5E72; margin-bottom: 14px; }
.nts-quiz-f input { border: 1px solid #D6D6E0; border-radius: 12px; padding: 16px 18px; font: inherit; font-size: 17px; color: #0A0B12; transition: border-color .2s; }
.nts-quiz-f input:focus { outline: 0; border-color: var(--nts-blue); }
.nts-quiz-f input.err { border-color: #FF4D4F; }
.nts-quiz-legal { color: #5C5E72; font-size: 13px; }
.nts-quiz-legal a { text-decoration: underline; }
.nts-quiz-sum { margin: 0 0 8px; border-top: 1px solid #E6E6EC; }
.nts-quiz-sum div { display: grid; grid-template-columns: 220px 1fr; gap: 16px; padding: 12px 0; border-bottom: 1px solid #E6E6EC; font-size: 15px; }
.nts-quiz-sum dt { color: #5C5E72; } .nts-quiz-sum dd { margin: 0; font-weight: 600; }
@media (max-width: 700px) { .nts-quiz { padding: 24px !important; min-height: 0; } .nts-quiz-sum div { grid-template-columns: 1fr; gap: 2px; } }

/* ---------- Hub pages ---------- */
.nts-hub { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.nts-hub-card {
	position: relative; display: flex; flex-direction: column; gap: 14px; min-height: 180px; padding: 28px;
	border: 1px solid #23253A; border-radius: 16px; background: #12131C; transition: border-color .3s, transform .3s var(--nts-ease);
}
.nts-hub-card b { font-size: 26px; font-weight: 600; letter-spacing: -.02em; margin-top: auto; padding-right: 48px; }
.nts-hub-card b + span { padding-right: 48px; }
.nts-hub-a {
	position: absolute; right: 24px; bottom: 24px; width: 44px; height: 44px; border-radius: 50%; border: 1px solid #2E3048;
	display: flex; align-items: center; justify-content: center; transition: all .3s var(--nts-ease);
}
.nts-hub-card:hover { border-color: var(--nts-lime); transform: translateY(-4px); }
.nts-hub-card:hover .nts-hub-a { background: var(--nts-lime); color: var(--nts-ink); border-color: var(--nts-lime); }
@media (max-width: 900px) { .nts-hub { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .nts-hub { grid-template-columns: 1fr; } .nts-hub-card { min-height: 120px; } }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@media (max-width:700px){.n-th-word{font-size:15px!important}}
.nts-lang{color:inherit;opacity:.7;transition:opacity .2s}.nts-lang:hover{opacity:1;color:#D4FF3F}

/* Lead form: thank-you note in place of the form */
.nts-sent{display:flex;flex-direction:column;gap:10px;padding:28px 0;min-height:160px;justify-content:center}.nts-sent b{font-size:clamp(24px,2.4vw,34px);font-weight:600;letter-spacing:-.02em;line-height:1.15}.nts-sent span{opacity:.75;font-size:17px;line-height:1.5;max-width:520px}
/* Hover never drops a link to the page colour: the design reset's a:hover{#000} is gone, light sections hover in blue */
a:hover { color: inherit; }
.lt .n-post h3 a:hover, .nts-blog .n-post h3 a:hover, .lt .n-pf:hover .n-pf-a, .lt .nts-lang:hover { color: #2416FF; }
/* The hidden attribute wins over inline display (accordion panels, tab panes) */
[hidden] { display: none !important; }
/* Admin bar at the bottom of the screen for logged-in editors */
#wpadminbar { position: fixed !important; top: auto !important; bottom: 0; }
#wpadminbar .ab-sub-wrapper { top: auto !important; bottom: 100%; }
#wpadminbar .menupop .ab-sub-wrapper .ab-sub-wrapper { bottom: 0; }
body.admin-bar { padding-bottom: 32px; }
@media (max-width: 782px) { body.admin-bar { padding-bottom: 46px; } #wpadminbar { position: fixed !important; } }
body.admin-bar .n-qc { bottom: 56px !important; }

/* Empty contact field on submit */
.nts-err { outline: 2px solid #FF4D4F !important; outline-offset: 2px; border-color: #FF4D4F !important; }
/* Brief modal: attach a file and the NDA checkbox */
.n-attach { position: relative; display: inline-flex; gap: 8px; align-items: center; cursor: pointer; border: 0 !important; background: none !important; padding: 0; }
.n-attach b { font-weight: inherit; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px; transition: text-decoration-color .2s; }
.n-attach:hover b, .n-attach.has-file b { text-decoration-color: currentColor; }
.n-attach-h { color: #8B8DA3; font-size: 13px; }
.n-attach-h:empty { display: none; }
.n-file { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.n-check { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
.n-check input { width: 18px; height: 18px; margin: 0; accent-color: #2416FF; cursor: pointer; }
/* Home first screen buttons */
.n-hbtn { transition: background-color .25s, color .25s, border-color .25s, transform .25s var(--nts-ease); }
.n-hbtn:hover { transform: translateY(-2px); }
.n-hbtn-1:hover { background: #D4FF3F !important; color: #0A0B12 !important; }
.n-hbtn-2:hover { border-color: #D4FF3F !important; color: #D4FF3F !important; }
.n-float { transition: transform .35s var(--nts-ease), box-shadow .35s; }
.n-float:hover { transform: rotate(-8deg) scale(1.06) !important; box-shadow: 0 24px 70px rgba(212,255,63,.4) !important; }
/* Case study blocks inside the article (inc/cases.php) */
.n-case-facts { display: flex; flex-wrap: wrap; gap: 1px; background: #E6E6EC; border: 1px solid #E6E6EC; border-radius: 16px; overflow: hidden; margin: 0 0 40px; }
.n-case-facts div { flex: 1 1 150px; background: #FFFFFF; padding: 18px 20px; display: flex; flex-direction: column; gap: 6px; }
.n-case-facts span { font: 500 11px/1.3 'JetBrains Mono', monospace; text-transform: uppercase; color: #6E7088; }
.n-case-facts b { font-size: 17px; font-weight: 600; }
.n-case-chain { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; margin: 20px 0 8px; }
/* Process steps of a case: numbered text, not pills, so they don't read as links or buttons. */
.n-case-chain { counter-reset: nts-step; gap: 10px 14px; }
.n-case-chain span { counter-increment: nts-step; display: inline-flex; align-items: baseline; gap: 8px; color: #0A0B12; font-size: 16px; font-weight: 500; line-height: 1.4; }
.n-case-chain span::before { content: counter(nts-step, decimal-leading-zero); font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px; font-weight: 500; color: #2416FF; }
.n-case-chain i { font-style: normal; color: #B4B6C6; }
@media (max-width: 700px) {
	.n-case-chain { flex-direction: column; align-items: flex-start; gap: 0; border-left: 1px solid #E6E6EC; padding-left: 16px; }
	.n-case-chain span { padding: 7px 0; }
	.n-case-chain i { display: none; }
}
.n-case-hyp { border: 1px solid #E6E6EC; border-radius: 20px; padding: 28px; margin: 24px 0; }
.n-case-hyp > .n-mono { color: #2416FF; font-size: 12px; }
.n-case-hyp h3 { margin: 8px 0 16px !important; }
.n-case-hyp img { display: block; max-width: 100%; max-height: 640px; margin: 20px auto; border-radius: 14px; border: 1px solid #E6E6EC; }
.n-case-res { margin-top: 18px; background: #F6F6F9; border-left: 3px solid #D4FF3F; border-radius: 0 12px 12px 0; padding: 16px 18px; font-size: 17px; font-weight: 500; }
.n-case-res .n-mono { display: block; font-size: 11px; color: #6E7088; margin-bottom: 6px; }
.n-case-results ul { list-style: none; padding: 0 !important; display: grid; gap: 10px; }
.n-case-results li { background: #0A0B12; color: #F3F2EE; border-radius: 14px; padding: 16px 20px 16px 48px; position: relative; }
.n-case-results li::before { content: '✓'; position: absolute; left: 20px; color: #D4FF3F; font-weight: 700; }
.n-case-quote { margin: 40px 0; padding: 28px; border-radius: 20px; background: #2416FF; color: #FFFFFF; font-size: 20px; line-height: 1.5; }
.n-case-quote cite { display: block; margin-top: 12px; font-style: normal; font-size: 15px; color: #C9C6FF; }
.n-case-team { color: #4A4C60; font-size: 15px; }
.n-case-team .n-mono { font-size: 11px; color: #6E7088; margin-right: 8px; }

/* Project pages (inc/project-page.php) */
.n-next:hover img { transform: scale(1.04); }
.n-next:hover .n-next-a { transform: translate(4px, -4px); color: #D4FF3F; }
@media (max-width: 700px) {
	.n-next { grid-template-columns: 1fr !important; }
	.n-next > span:first-child { aspect-ratio: 4/3; }
	.n-pj-phones { display: grid !important; grid-template-columns: 1fr 1fr; gap: 16px !important; }
	.n-pj-phones figure { margin-top: 0 !important; max-width: none !important; }
	.n-pj-phones figure:nth-child(3) { grid-column: 1 / -1; max-width: 50% !important; justify-self: center; }
	.n-pj-home { max-height: 420px !important; }
}

/* Next project (inc/project-page.php): card with text and results on the left, cover with chips on the right */
.n-nx-sec { padding: 96px 0; }
.n-nx-k { font-size: 12px; text-transform: uppercase; color: #8B8DA3; margin-bottom: 20px; }
.n-nx { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.9fr); gap: 16px; padding: 16px; border-radius: 28px; background: #1A1B24; border: 1px solid #23253A; transition: border-color .3s; }
.n-nx-l { display: flex; flex-direction: column; gap: 18px; padding: 32px 24px 24px 24px; min-width: 0; }
.n-nx-tag { font-size: 12px; text-transform: uppercase; color: #8B8DA3; }
.n-nx-t { font-size: clamp(34px, 3.6vw, 56px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.02; }
.n-nx-x { color: #A9ABBE; font-size: 17px; line-height: 1.5; }
.n-nx-res { margin-top: auto; padding-top: 24px; display: flex; flex-direction: column; gap: 14px; }
.n-nx-rh { font-weight: 600; font-size: 16px; }
.n-nx-rr { display: flex; gap: 32px; flex-wrap: wrap; }
.n-nx-rr div { border-left: 2px solid #D4FF3F; padding-left: 16px; display: flex; flex-direction: column; gap: 6px; }
.n-nx-rr b { font-size: clamp(36px, 3.4vw, 52px); font-weight: 600; letter-spacing: -0.03em; line-height: 1; }
.n-nx-rr span { color: #8B8DA3; font-size: 14px; }
.n-nx-btn { align-self: flex-start; margin-top: 24px; border: 1px solid #D4FF3F; border-radius: 999px; padding: 14px 26px; font-size: 14px; text-transform: uppercase; letter-spacing: .04em; transition: background .3s, color .3s; }
.n-nx-btn i { font-style: normal; display: inline-block; margin-left: 6px; transition: transform .3s var(--nts-ease); }
.n-nx-res + .n-nx-btn { margin-top: 28px; }
.n-nx-l > .n-nx-x + .n-nx-btn { margin-top: auto; }
.n-nx-img { position: relative; display: block; overflow: hidden; border-radius: 18px; min-height: 460px; background: #12131C; }
.n-nx-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--nts-ease); }
.n-nx-chips { position: absolute; top: 16px; right: 16px; display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.n-nx-chips span { background: rgba(10, 11, 18, .72); backdrop-filter: blur(8px); border: 1px solid rgba(255,255,255,.22); color: #F3F2EE; border-radius: 999px; padding: 8px 14px; font-size: 12px; text-transform: uppercase; }
.n-nx:hover { border-color: #2E3048; }
.n-nx:hover .n-nx-img img { transform: scale(1.04); }
.n-nx:hover .n-nx-btn { background: #D4FF3F; color: #0A0B12; }
.n-nx:hover .n-nx-btn i { transform: translate(3px, -3px); }
@media (max-width: 900px) { .n-nx { grid-template-columns: 1fr; } .n-nx-img { order: -1; min-height: 0; aspect-ratio: 4/3; } .n-nx-l { padding: 16px 8px 8px; } .n-nx-sec { padding: 64px 0; } }

/* Blue lead form: white fields like the audit form on the home page */
#contact form label { gap: 10px !important; }
#contact form input:not([type=radio]):not([type=checkbox]):not([type=file]), #contact form textarea {
	background: #FFFFFF !important; border: 0 !important; border-radius: 16px !important;
	padding: 16px 20px !important; font-size: 17px !important; color: #0A0B12 !important;
	transition: box-shadow .25s;
}
#contact form input::placeholder, #contact form textarea::placeholder { color: #8B8DA3; }
#contact form input:focus, #contact form textarea:focus { outline: none; box-shadow: 0 0 0 3px #D4FF3F; }

/* Mobile header: two-line wordmark, short CTA next to the menu button */
@media (max-width: 700px) {
	.nts-head > a:first-child span, header > a:first-child span { font-size: 17px !important; line-height: 1.02; max-width: 4.2em; }
	header nav a.n-hcta { display: inline-flex !important; }
}

/* Tech tiles that open a technology page */
.n-tile-link { position: relative; text-decoration: none; color: inherit; }
.n-tile-link > i { position: absolute; top: 10px; right: 12px; font-style: normal; font-size: 14px; color: #2416FF; opacity: .55; transition: opacity .25s, transform .3s var(--nts-ease); }
.n-tile-link:hover > i { opacity: 1; transform: translate(2px, -2px); }

/* Portfolio filter dropdowns (dropdown() in app.js) */
.nts-select.is-open { border-color: var(--nts-lime); }
.nts-select.is-open .nts-select-arrow { transform: translateY(-50%) rotate(180deg); }
.nts-dd-btn { all: unset; cursor: pointer; font-size: 15px; font-weight: 500; padding-right: 28px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nts-dd-btn::after { content: ""; position: absolute; inset: 0; }
.nts-dd { position: absolute; z-index: 30; left: -1px; right: -1px; top: calc(100% + 8px); margin: 0; padding: 6px; list-style: none; background: #1A1B24; border: 1px solid #2E3048; border-radius: 14px; box-shadow: 0 24px 60px rgba(0, 0, 0, .45); max-height: 360px; overflow: auto; animation: nts-dd .22s var(--nts-ease); }
.nts-dd li { padding: 12px 14px; border-radius: 10px; font-size: 15px; color: #D7D8E2; cursor: pointer; outline: 0; transition: background .15s, color .15s; }
.nts-dd li:hover, .nts-dd li:focus { background: #262836; color: #FFFFFF; }
.nts-dd li[aria-selected] { background: #262836; color: var(--nts-lime); }
@keyframes nts-dd { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }

/* Running lines never stop, on hover or tap. */
.n-marq, .n-marq:hover { animation-play-state: running !important; }

/* Service steps without a link: no hover look, nothing to click. */
.n-svc article:not(:has(a)):hover { background: #FFFFFF; }
.n-svc article:not(:has(a)):hover h3 { color: inherit; }
.n-svc article:not(:has(a))::after { display: none; }

/* Rating cards: one name size on light and dark pages, long names wrap inside the card. */
[style*="border-radius: 12px; padding: 20px"] > span[style*="font-size: 28px; font-weight: 600"] { font-size: 22px !important; }

/* Article contents scroll with the text instead of sticking under the header. */
.n-toc-m { position: static !important; }

/* Award diploma full size */
.nts-lb { position: fixed; inset: 0; z-index: 130; background: rgba(10, 11, 18, .9); display: flex; align-items: center; justify-content: center; padding: 56px 16px 24px; cursor: zoom-out; animation: nts-dd .22s var(--nts-ease); }
.nts-lb img { max-width: min(100%, 900px); max-height: 100%; object-fit: contain; border-radius: 10px; box-shadow: 0 30px 80px rgba(0, 0, 0, .5); }
.nts-lb-x { position: absolute; top: max(12px, env(safe-area-inset-top)); right: 12px; width: 44px; height: 44px; padding: 0; margin: 0; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .25); background: rgba(10, 11, 18, .6); color: #FFFFFF; display: flex; align-items: center; justify-content: center; cursor: pointer; -webkit-appearance: none; appearance: none; }

@media (max-width: 700px) {
	/* Work stages: one straight column, no side lines. */
	section[style^="border-top: 1px solid #23253A"] > .n-wrap > div[style*="flex: 1 1 260px"] { padding: 28px 0 !important; border-right: 0 !important; border-bottom: 1px solid #23253A; }
	section[style^="border-top: 1px solid #23253A"] > .n-wrap > div[style*="flex: 1 1 260px"]:last-child { border-bottom: 0; }

	/* Stack: tabs wrap, technologies in a grid, no empty space under short lists. */
	.n-tabs [role=tablist] { flex-wrap: wrap !important; overflow: visible !important; }
	.n-tabs [role=tablist] .n-tab-btn { padding: 10px 14px !important; }
	.n-tabs > div[style*="min-height"] { min-height: 0 !important; }
	.n-tabs .n-tab-pane .n-tech { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
	.n-tabs .n-tab-pane .n-tile { padding: 12px !important; font-size: 14px !important; }

	/* Rating cards: names fit two per row. */
	[style*="border-radius: 12px; padding: 20px"]:has(> span[style*="font-weight: 600; letter-spacing: -0.02em; line-height: 1;"]) { padding: 16px !important; }
	[style*="border-radius: 12px; padding: 20px"] > span[style*="font-weight: 600; letter-spacing: -0.02em; line-height: 1;"] { font-size: 18px !important; }

	/* Awards: diplomas in a grid instead of a swipe row. */
	.n-dips { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 16px 10px !important; overflow: visible !important; margin: 32px 0 0 !important; padding: 0 !important; }
	.n-dip { width: auto !important; min-width: 0; }

	/* Contact form type switch: all tabs visible. */
	.n-ctabs { flex-wrap: wrap; width: 100% !important; border-radius: 22px !important; overflow: visible !important; }
	.n-ctabs [role=tab] { flex: 1 1 auto; justify-content: center; text-align: center; }

	/* Form buttons span the full width. */
	main form button[type=submit], main form button.n-btn, #contact form button, .nts-modal .n-modal-main button.n-btn, .n-ask button.n-btn { width: 100%; align-self: stretch !important; justify-content: center; text-align: center; }
}

/* Case screens of a phone: phone width, centred. */
.n-case-hyp img[src*="-mobile"], .n-case-hyp img[src*="-sticky"] { display: block; max-width: 340px; margin-left: auto; margin-right: auto; border-radius: 18px; box-shadow: 0 20px 50px rgba(10, 11, 18, .14); }

/* Cookie banner: CookieConsent v3 in the site colours (inc/tracking.php) */
#cc-main { --cc-font-family: 'Inter Tight', system-ui, sans-serif; --cc-modal-border-radius: 16px; --cc-btn-border-radius: 999px; --cc-bg: #14151F; --cc-primary-color: #F3F2EE; --cc-secondary-color: #C9CADB; --cc-btn-primary-bg: #D4FF3F; --cc-btn-primary-color: #0A0B12; --cc-btn-primary-border-color: #D4FF3F; --cc-btn-primary-hover-bg: #E4FF7A; --cc-btn-primary-hover-color: #0A0B12; --cc-btn-primary-hover-border-color: #E4FF7A; --cc-btn-secondary-bg: #1E2030; --cc-btn-secondary-color: #F3F2EE; --cc-btn-secondary-border-color: #3A3C4E; --cc-btn-secondary-hover-bg: #2A2C3C; --cc-btn-secondary-hover-color: #FFFFFF; --cc-btn-secondary-hover-border-color: #4A4C60; --cc-separator-border-color: #2A2C3C; --cc-toggle-on-bg: #2416FF; --cc-toggle-off-bg: #4A4C60; --cc-toggle-on-knob-bg: #FFFFFF; --cc-toggle-off-knob-bg: #FFFFFF; --cc-toggle-readonly-bg: #2A2C3C; --cc-toggle-readonly-knob-bg: #8B8DA3; --cc-cookie-category-block-bg: #1A1B28; --cc-cookie-category-block-border: #2A2C3C; --cc-cookie-category-block-hover-bg: #202232; --cc-cookie-category-block-hover-border: #3A3C4E; --cc-overlay-bg: rgba(10, 11, 18, .7); --cc-link-color: #D4FF3F; --cc-footer-bg: #14151F; --cc-footer-color: #C9CADB; --cc-footer-border-color: #2A2C3C; }
#cc-main .cm { border: 1px solid #2A2C3C; }
#cc-main .cm__btn, #cc-main .pm__btn { font-weight: 600; min-height: 44px; }

/* Option pills in forms (contacts: "Что нужно", "Бюджет"): no native checkbox/radio, the chosen pill turns blue like the brief modal chips. */
fieldset label:has(> input[type=checkbox]), fieldset label:has(> input[type=radio]) { position: relative; background: #FFFFFF; color: #0A0B12; transition: background-color .25s, color .25s, border-color .25s; user-select: none; }
fieldset label > input[type=checkbox], fieldset label > input[type=radio] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
fieldset label:has(> input[type=checkbox]):hover, fieldset label:has(> input[type=radio]):hover { border-color: #0A0B12 !important; }
fieldset label:has(> input:checked) { background: #2416FF; color: #FFFFFF; border-color: #2416FF !important; }
fieldset label:has(> input[type=checkbox]:checked)::before { content: "✓"; font-weight: 600; }
fieldset label:has(> input:focus-visible) { outline: 2px solid #2416FF; outline-offset: 2px; }

/* Article tables (inc/blog.php adds data-label): light rows on desktop, a card per row on phones. */
.n-body .wp-block-table { margin: 32px 0; overflow: visible; }
.n-body .n-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 16px; line-height: 1.5; border: 1px solid #E6E6EC; border-radius: 16px; overflow: hidden; }
.n-body .n-table th { background: #F4F4F8; text-align: left; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: #5C5E72; padding: 14px 18px; border: 0; border-bottom: 1px solid #E6E6EC; }
.n-body .n-table td { padding: 16px 18px; border: 0; border-bottom: 1px solid #EEEEF3; vertical-align: top; color: #2A2C3A; }
.n-body .n-table tr:last-child td { border-bottom: 0; }
.n-body .n-table td:first-child { font-weight: 600; color: #0A0B12; }
.n-body .n-table tbody tr:hover td { background: #FAFAFC; }
@media (max-width: 700px) {
	.n-body .n-table, .n-body .n-table tbody, .n-body .n-table tr, .n-body .n-table td { display: block; width: 100% !important; min-width: 0 !important; box-sizing: border-box; } /* some articles set min-width on the table for desktop scrolling */
	.n-body .n-table { border: 0; border-radius: 0; overflow: visible; }
	.n-body .n-table thead { display: none; }
	.n-body .n-table tr { border: 1px solid #E6E6EC; border-radius: 16px; padding: 6px 18px; margin-bottom: 12px; background: #FFFFFF; }
	.n-body .n-table td { padding: 12px 0; border-bottom: 1px solid #EEEEF3; }
	.n-body .n-table tr td:last-child { border-bottom: 0; }
	.n-body .n-table td[data-label]::before { content: attr(data-label); display: block; margin-bottom: 4px; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; color: #8B8DA3; }
	.n-body .n-table td:first-child { font-size: 18px; }
	.n-body .n-table tbody tr:hover td { background: transparent; }
}

/* Author avatar: the studio logo while articles are signed by the team. */
.n-av { display: inline-block; flex: none; border: 0 !important; border-radius: 24% !important; background: #2416FF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'%3E%3Crect x='9' y='14' width='22' height='3.5' rx='1.75' fill='%23F3F2EE'/%3E%3Crect x='9' y='22.5' width='22' height='3.5' rx='1.75' fill='%23F3F2EE'/%3E%3Crect x='18.2' y='7' width='3.6' height='26' rx='1.8' fill='%23D4FF3F' transform='rotate(28 20 20)'/%3E%3C/svg%3E") center / 100% no-repeat !important; }
@media (max-width: 700px) { .n-foot-sub { max-width: none !important; } .n-foot-sub form { flex-direction: column; } .n-foot-sub form button { width: 100%; } }
.n-foot-sub .nts-sub-ok { display: flex; flex-direction: column; gap: 4px; color: #F3F2EE; }
.n-foot-sub .nts-sub-ok span { color: #8B8DA3; font-size: 14px; }

/* Links inside article text (cross-links between posts, services, cases) */
.n-body p > a:not(.n-btn), .n-body li > a:not(.n-btn), [data-nts-related] a { color: #2416FF; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; transition: color .2s; }
.n-body p > a:not(.n-btn):hover, .n-body li > a:not(.n-btn):hover, [data-nts-related] a:hover { color: #0A0B12; }

/* Project page: link to the city page (Locations) */
.n-pj-city { padding: 56px 0 0; }
.n-pj-city a { color: #D4FF3F; font-size: 13px; letter-spacing: .04em; text-decoration: none; border-bottom: 1px solid currentColor; padding-bottom: 4px; }
.n-pj-city a:hover { color: #F3F2EE; }

/* Form blocks in the newsletter style (blog): blue, a thin grid, a lime glow and a big "≠" mark behind the content,
   white borderless fields and a full-width lime button. #contact – lead form at the end of pages,
   #cro-audit – express audit, .n-ask – "Остались вопросы?" in articles. */
#contact, #cro-audit, .n-ask { position: relative; overflow: hidden; isolation: isolate; }
#contact::before, #cro-audit::before, .n-ask::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
	background-image: radial-gradient(circle at 100% 100%, rgba(212, 255, 63, .38), rgba(212, 255, 63, 0) 38%), linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px);
	background-size: auto, 48px 48px, 48px 48px; }
#contact::after, #cro-audit::after, .n-ask::after { content: "≠"; position: absolute; left: -30px; bottom: -120px; z-index: -1; pointer-events: none; font-size: 420px; font-weight: 700; line-height: 1; letter-spacing: -0.05em; color: rgba(255, 255, 255, .06); }
.n-ask { background: #2416FF !important; color: #FFFFFF !important; border-radius: 28px !important; padding: 40px !important; }
.n-ask::after { font-size: 300px; bottom: -90px; }
.n-ask p { color: #DCDAFF !important; }
#cro-audit form input:not([type=radio]):not([type=checkbox]), .n-ask form input:not([type=radio]):not([type=checkbox]):not([type=file]), .n-ask form textarea {
	background: #FFFFFF !important; border: 0 !important; color: #0A0B12 !important; border-radius: 999px !important; padding: 16px 20px !important; font-size: 15px !important; }
.n-ask form textarea { border-radius: 20px !important; }
#cro-audit form input::placeholder, .n-ask form input::placeholder, .n-ask form textarea::placeholder { color: #8B8DA3 !important; }
#contact form button[type=submit], #contact form button.n-btn, #cro-audit form button, .n-ask form button { width: 100%; align-self: stretch !important; justify-content: center; text-align: center; background: #D4FF3F !important; color: #0A0B12 !important; }
@media (max-width: 700px) { .n-ask { padding: 28px 20px !important; } #contact::after, #cro-audit::after { font-size: 280px; bottom: -80px; } }
#contact form input:not([type=radio]):not([type=checkbox]):not([type=file]) { border-radius: 999px !important; }
#contact form textarea { border-radius: 20px !important; }

/* Language pill in the phone header (inc/render.php nts_mobile_lang) */
.n-mlang { display: none; position: relative; }
.n-mlang summary { list-style: none; display: flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid #2E3048; border-radius: 50%; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 13px; font-weight: 500; color: #F3F2EE; cursor: pointer; user-select: none; }
.n-mlang summary::-webkit-details-marker { display: none; }
.n-mlang[open] summary { border-color: #D4FF3F; color: #D4FF3F; }
.n-mlang > div { position: absolute; right: 0; top: calc(100% + 8px); z-index: 80; min-width: 190px; padding: 6px; border-radius: 16px; background: #14151F; border: 1px solid #2A2C3C; box-shadow: 0 20px 50px rgba(0, 0, 0, .45); display: flex; flex-direction: column; }
.n-mlang a, .n-mlang b { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 10px; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 13px; font-weight: 500; color: #F3F2EE; }
.n-mlang a span, .n-mlang b span { font-family: 'Inter Tight', system-ui, sans-serif; font-size: 15px; color: #A9ABBE; }
.n-mlang b { color: #D4FF3F; background: rgba(212, 255, 63, .08); }
.n-mlang a:hover { background: #1E2030; }
@media (max-width: 1023px) { .n-mlang { display: block; } }
@media (max-width: 700px) {
	header nav .n-mlang a { display: flex !important; }
	header nav { gap: 8px !important; }
	.n-mlang summary, header .n-burger { width: 40px !important; height: 40px !important; }
	header nav .n-hcta { padding: 10px 14px !important; }
}
@media (max-width: 700px) {
	header { gap: 12px !important; }
	header nav { flex-wrap: nowrap !important; }
	header nav .n-hcta { padding: 10px 12px !important; font-size: 13px !important; }
}
@media (max-width: 700px) {
	/* The header is full width on phones: no side shadow + clip-path trick, so the language list can drop below it. */
	[data-nts-root] > header, .nts-head { clip-path: none !important; box-shadow: none !important; }
}

/* Full-bleed header background without the box-shadow + clip-path trick: iOS Safari sometimes drops clip-path on a
   sticky element while scrolling and the 100vmax shadow painted the whole screen black. */
[data-nts-root] > header, .nts-head { box-shadow: none !important; clip-path: none !important; isolation: isolate; }
[data-nts-root] > header::before, .nts-head::before { content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 100vw; transform: translateX(-50%); background: var(--nts-ink, #0A0B12); z-index: -1; pointer-events: none; }
.n-tile .txt { min-width: 26px; width: auto !important; padding: 0 4px; box-sizing: border-box; font-size: 10px !important; letter-spacing: -.02em; }

/* Compact lead forms: placeholders instead of labels, name + e-mail in one row (#contact), article form in two columns. */
#contact form.n-compact { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px !important; align-content: start; }
#contact form.n-compact > *, #contact form.n-compact > div { grid-column: 1 / -1; margin-top: 0 !important; }
#contact form.n-compact > label.n-cl:nth-child(1), #contact form.n-compact > label.n-cl:nth-child(2) { grid-column: auto; }
#contact form.n-compact > div:first-child { display: contents !important; }
#contact form.n-compact > div:first-child > label { grid-column: auto; }
#contact form.n-compact > div:first-child > label:nth-child(n+3) { grid-column: 1 / -1; }
#contact form .n-cl { font-size: 0 !important; gap: 0 !important; margin: 0 !important; }
#contact form textarea { min-height: 96px; }
#contact form.n-compact button { margin-top: 6px !important; padding-top: 18px !important; padding-bottom: 18px !important; }
#contact form.n-compact > div:last-child span { display: none; }
.n-ask form { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px !important; max-width: none !important; }
.n-ask form > * { grid-column: 1 / -1; }
.n-ask form > input:nth-of-type(1), .n-ask form > input:nth-of-type(2), .n-ask form > label:nth-of-type(1), .n-ask form > label:nth-of-type(2) { grid-column: auto; }
.n-ask form textarea { min-height: 84px; }
@media (max-width: 700px) { #contact form.n-compact, .n-ask form { grid-template-columns: 1fr; } #contact form.n-compact > *, .n-ask form > * { grid-column: 1 / -1 !important; } }
.n-ask form > div > input:nth-child(1), .n-ask form > div > input:nth-child(2) { flex: 1 1 calc(50% - 6px) !important; min-width: 0; box-sizing: border-box; }
@media (max-width: 700px) { .n-ask form > div > input:nth-child(1), .n-ask form > div > input:nth-child(2) { flex-basis: 100% !important; } }
#contact form.n-compact label:has(textarea) { grid-column: 1 / -1 !important; }
.n-tile .n-tile-logo { width: 26px; height: 26px; flex: none; object-fit: contain; border-radius: 6px; }

/* Author page (single-nts_author.php) */
@media (max-width: 700px) { .n-author-hero { grid-template-columns: 1fr !important; gap: 20px !important; } .n-author-hero > .n-av { width: 96px !important; height: 96px !important; } .n-all .n-grid { grid-template-columns: 1fr !important; } }

/* "Before you go" modal (inc/exit-intent.php), in the newsletter style */
.nts-exit { position: fixed; inset: 0; z-index: 95; display: flex; align-items: center; justify-content: center; padding: 16px; }
.nts-exit[hidden] { display: none; }
.nts-exit-bg { position: absolute; inset: 0; background: rgba(10, 11, 18, .72); backdrop-filter: blur(4px); animation: nts-fade .25s ease; }
.nts-exit-box { position: relative; isolation: isolate; overflow: hidden; width: min(560px, 100%); padding: 44px 40px 28px; border-radius: 28px; background: #2416FF; color: #FFFFFF; box-shadow: 0 40px 120px rgba(0, 0, 0, .45); animation: nts-pop .35s cubic-bezier(.2, .8, .2, 1); }
.nts-exit-box::before { content: ""; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(circle at 100% 100%, rgba(212, 255, 63, .4), rgba(212, 255, 63, 0) 45%), linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: auto, 40px 40px, 40px 40px; }
.nts-exit-box::after { content: "≠"; position: absolute; left: -20px; bottom: -90px; z-index: -1; font-size: 300px; font-weight: 700; line-height: 1; color: rgba(255, 255, 255, .06); }
.nts-exit-x { position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: transparent; color: #FFFFFF; font-size: 22px; line-height: 1; cursor: pointer; }
.nts-exit-k { display: inline-flex; background: rgba(255, 255, 255, .12); border-radius: 999px; padding: 7px 14px; font-size: 11px; color: #D4FF3F; }
.nts-exit-t { margin-top: 18px; font-size: clamp(30px, 4.6vw, 42px); font-weight: 600; letter-spacing: -0.03em; line-height: 1.05; }
.nts-exit-t span { color: #D4FF3F; }
.nts-exit-box p { margin: 14px 0 0; color: #DCDAFF; font-size: 16px; line-height: 1.55; }
.nts-exit-b { display: flex; flex-direction: column; gap: 10px; margin-top: 24px; }
.nts-exit-b .n-btn { display: flex; justify-content: center; align-items: center; min-height: 52px; border-radius: 999px; font-weight: 700; font-size: 16px; }
.nts-exit-main { background: #D4FF3F; color: #0A0B12; }
.nts-exit-alt { border: 1px solid rgba(255, 255, 255, .45); color: #FFFFFF; }
.nts-exit-no { display: block; margin: 14px auto 0; background: none; border: 0; color: #C9C6FF; font: inherit; font-size: 14px; text-decoration: underline; cursor: pointer; }
html.nts-exit-on { overflow: hidden; }
@keyframes nts-fade { from { opacity: 0; } }
@keyframes nts-pop { from { opacity: 0; transform: translateY(16px) scale(.97); } }
@media (max-width: 700px) { .nts-exit-box { padding: 40px 22px 22px; } }
.nts-exit-main { border: 0; font: inherit; font-weight: 700; cursor: pointer; width: 100%; }

/* Submit buttons while sending (app.js busy()) */
.is-busy { cursor: progress !important; opacity: .85; display: inline-flex !important; align-items: center; justify-content: center; gap: 10px; }
.nts-spin { width: 16px; height: 16px; flex: none; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: nts-spin .7s linear infinite; }
@keyframes nts-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .nts-spin { animation-duration: 2s; } }
.nts-sent-modal{padding:48px;position:relative}.nts-sent-modal .nts-sent-close{margin-top:14px;align-self:flex-start;background:#0A0B12;color:#fff;padding:14px 28px;border-radius:999px;font-weight:600}
@media (max-width:700px){.nts-sent-modal{padding:32px 24px}}
/* Tablets and narrow laptops get the phone header (burger + language) – the full nav wraps below ~1000px. */
@media (min-width: 701px) and (max-width: 1023px) {
	header nav a:not(.n-btn):not(.n-mlang a), header nav > .n-mono { display: none !important; }
	header nav .n-mlang a { display: flex !important; }
	header nav { gap: 12px !important; }
	header .n-burger { display: flex !important; }
	header { flex-wrap: nowrap !important; }
}
/* Phones: slightly smaller type on the home first screen, so both buttons fit on it. */
@media (max-width: 700px) {
	#top { padding-top: 8px !important; }
	#top .n-label { margin-bottom: 16px !important; }
	#top .n-mega + div { margin-top: 24px !important; padding-top: 20px !important; }
	#top h1 { font-size: 22px !important; }
	#top .n-mega + div > div { font-size: 14px !important; line-height: 1.5 !important; }
	#top .n-hbtn { padding: 13px 20px !important; font-size: 15px; }
}
/* Header: translucent dark glass over the content, from the top of the page. */
.nts-head { background: transparent !important; }
.nts-head::before { background: rgba(10, 11, 18, .72) !important; -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4); border-bottom: 1px solid rgba(255, 255, 255, .06); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .nts-head::before { background: rgba(10, 11, 18, .94) !important; } }
/* "Back to top" only after the first screen. */
.n-up { transition: opacity .3s, transform .3s !important; }
html:not(.nts-scrolled) .n-up { opacity: 0; transform: translateY(12px) scale(.9); pointer-events: none; }
/* Phones: the floating "message us" button does not cover the first-screen buttons; it shows after a screen of scrolling. */
.n-qc { transition: opacity .3s, transform .3s; }
@media (max-width: 700px) { html:not(.nts-scrolled) .n-qc { opacity: 0; transform: translateY(12px); pointer-events: none; } }
/* Card grids (.n-svc): white base and lines drawn by the cards, so an incomplete last row leaves no grey block. */
.n-svc { background: #FFFFFF !important; gap: 0 !important; }
/* Each card overlaps its neighbours by 1px and draws its own left and top line; the outer lines close an incomplete row. */
.n-svc article { margin: -1px 0 0 -1px; box-shadow: inset 1px 0 0 #E6E6EC, inset 0 1px 0 #E6E6EC, 1px 0 0 #E6E6EC, 0 1px 0 #E6E6EC; }
/* Running-line separator (inc/setup.php replaces ✳ with this SVG). */
.n-ast { display: inline-block; vertical-align: middle; position: relative; top: -0.04em; }
/* Mobile menu logo: the wordmark wraps to two lines, as in the phone header. */
.nts-menu-logo { display: flex; align-items: center; gap: 12px; }
.nts-menu-logo span { max-width: 4.4em; font-size: 17px !important; line-height: 1.02; }
/* Article rating: the star sits in the middle on iOS too (no default button padding). */
.n-star { display: inline-flex; align-items: center; justify-content: center; padding: 0; line-height: 1; -webkit-appearance: none; appearance: none; }
/* Platform icons in articles: an SVG without its own size collapses in Safari; white tile instead of grey. */
.n-ico { background: #FFFFFF !important; border: 1px solid #E6E6EC; box-sizing: border-box; }
.n-ico svg { width: 24px; height: 24px; display: block; }
/* The rating block on articles uses the same stars on every layout. */
.n-rate + .n-author { margin-top: 32px !important; }
/* Article cards: rubric as a badge on the picture; author, date and reading time in one line below. */
.n-post-img, .n-feat > span:first-child { position: relative; display: block; }
.n-post-cat { position: absolute; left: 12px; top: 12px; max-width: calc(100% - 24px); box-sizing: border-box; padding: 6px 12px; border-radius: 999px; background: #D4FF3F; color: #0A0B12; font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 11px; font-weight: 500; line-height: 1.2; letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.n-post-dark .n-by { color: #A9ABBE !important; margin-top: auto; }
.n-post-dark .n-by b { color: #F3F2EE !important; }
@media (max-width: 700px) { .n-post-cat { left: 8px; top: 8px; max-width: calc(100% - 16px); padding: 4px 8px; font-size: 9px; } }
.n-rate-sum { margin-top: 10px; color: #6E7088; font-size: 14px; }
.n-body .wp-block-image{margin:32px 0}
.n-body .wp-block-image img{display:block;width:100%;height:auto;border-radius:16px}
.n-body .wp-block-image figcaption{margin-top:10px;font-size:14px;line-height:1.4;color:#6b6f80}
