/* ==========================================================================
   NEUTO MEDIA™ — Light Studio Design System
   Direction: premium editorial media studio meets verified rights infrastructure.
   Everything foil-toned is a *verified* state. Never decorate with it.
   ========================================================================== */

/* --- 1. Tokens ----------------------------------------------------------- */

:root {
  /* Surface — passport ink, not pure black. Slight blue keeps foil readable. */
  --n-void:        #ffffff;
  --n-base:        #fbfbfa;
  --n-slate:       #f5f6f6;
  --n-raised:      #ffffff;
  --n-line:        rgba(15, 20, 24, 0.10);
  --n-line-strong: rgba(15, 20, 24, 0.18);

  /* Ink — warm off-white, the colour of passport paper */
  --n-paper:  #101316;
  --n-mist:   #626a72;
  --n-faint:  #8a9299;

  /* Foil — the one bold move. Iridescent security hologram. */
  --n-foil-a: #46f5d4;  /* verify cyan   */
  --n-foil-b: #9b6bff;  /* passport violet */
  --n-foil-c: #ffd166;  /* seal gold     */
  --n-seal:   #ff5a3c;  /* vermillion — revoked / denied only */

  --n-foil: linear-gradient(100deg,
    var(--n-foil-a) 0%,
    #7fd8ff 22%,
    var(--n-foil-b) 48%,
    #ff7bd5 68%,
    var(--n-foil-c) 100%);

  /* Type */
  --n-display: "Bricolage Grotesque", "Archivo", system-ui, sans-serif;
  --n-body:    "Inter Tight", "Inter", system-ui, sans-serif;
  --n-machine: "JetBrains Mono", ui-monospace, "SFMono-Regular", monospace;

  /* Scale — fluid, 1.28 ratio at the top end */
  --t-hero: clamp(2.9rem, 7.6vw, 7.4rem);
  --t-h2:   clamp(2rem, 4.4vw, 3.9rem);
  --t-h3:   clamp(1.25rem, 1.9vw, 1.65rem);
  --t-body: clamp(1rem, 1.05vw, 1.1rem);
  --t-mrz:  clamp(0.62rem, 0.78vw, 0.74rem);

  /* Space */
  --s-1: 0.5rem;  --s-2: 0.875rem; --s-3: 1.5rem;
  --s-4: 2.5rem;  --s-5: 4rem;     --s-6: 6.5rem;  --s-7: 10rem;

  --n-radius: 14px;
  --n-radius-lg: 22px;
  --n-shell: min(1240px, 92vw);

  /* Motion — springs are handled in JS; these are the CSS counterparts */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
}

/* --- 2. Reset & base ----------------------------------------------------- */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--n-void);
  color: var(--n-paper);
  font-family: var(--n-body);
  font-size: var(--t-body);
  line-height: 1.6;
  font-synthesis-weight: none;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

img, svg, video { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }

::selection { background: var(--n-foil-b); color: #06070c; }

:focus-visible {
  outline: 2px solid var(--n-foil-a);
  outline-offset: 3px;
  border-radius: 4px;
}

/* --- 3. Typographic roles ------------------------------------------------ */

.n-display {
  font-family: var(--n-display);
  font-weight: 700;
  font-variation-settings: "wdth" 96, "opsz" 42;
  letter-spacing: -0.035em;
  line-height: 0.94;
  margin: 0;
}

.n-hero-type { font-size: var(--t-hero); }
.n-h2 { font-size: var(--t-h2); }

.n-h3 {
  font-family: var(--n-display);
  font-weight: 600;
  font-size: var(--t-h3);
  letter-spacing: -0.02em;
  line-height: 1.15;
  margin: 0;
}

/* Machine-readable face — used for anything a system would print, never for prose */
.n-machine,
.n-eyebrow,
.n-mrz,
.n-tag {
  font-family: var(--n-machine);
  text-transform: uppercase;
  letter-spacing: 0.16em;
  font-size: 0.7rem;
  font-weight: 500;
}

.n-eyebrow {
  color: var(--n-faint);
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
}

.n-eyebrow::before {
  content: "";
  width: 22px; height: 1px;
  background: var(--n-foil);
}

.n-lede {
  color: var(--n-mist);
  font-size: clamp(1.05rem, 1.35vw, 1.25rem);
  line-height: 1.55;
  max-width: 56ch;
  margin: 0;
}

.n-foil-text {
  background: var(--n-foil);
  background-size: 220% 100%;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: foil-drift 9s linear infinite;
}

@keyframes foil-drift {
  to { background-position: 220% 0; }
}

/* --- 4. Shell & sections ------------------------------------------------- */

.n-shell {
  width: var(--n-shell);
  margin-inline: auto;
}

.n-section { padding-block: var(--s-6); position: relative; }
.n-section--tight { padding-block: var(--s-5); }

.n-section-head {
  display: grid;
  gap: var(--s-2);
  max-width: 62ch;
  margin-bottom: var(--s-4);
}

/* Hairline that reads as a document rule, not a decoration */
.n-rule {
  height: 1px;
  border: 0;
  margin: 0;
  background: linear-gradient(90deg,
    transparent, var(--n-line-strong) 12%, var(--n-line-strong) 88%, transparent);
}

/* --- 5. Atmosphere: grain, guilloché, aurora ----------------------------- */

.n-grain {
  position: fixed;
  inset: 0;
  z-index: 60;
  pointer-events: none;
  opacity: 0.4;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)' opacity='0.42'/%3E%3C/svg%3E");
}

.n-aurora {
  position: absolute;
  inset: -30% -10% auto -10%;
  height: 130vh;
  z-index: -2;
  pointer-events: none;
  filter: blur(90px);
  opacity: 0.5;
}

.n-aurora span {
  position: absolute;
  border-radius: 50%;
  will-change: transform;
}

.n-aurora span:nth-child(1) {
  width: 46vw; height: 46vw; left: 4%; top: 8%;
  background: radial-gradient(circle, rgba(70,245,212,0.32), transparent 68%);
}
.n-aurora span:nth-child(2) {
  width: 52vw; height: 52vw; right: 2%; top: 0%;
  background: radial-gradient(circle, rgba(155,107,255,0.34), transparent 68%);
}
.n-aurora span:nth-child(3) {
  width: 34vw; height: 34vw; left: 38%; top: 34%;
  background: radial-gradient(circle, rgba(255,209,102,0.20), transparent 70%);
}

/* Guilloché engraving — the passport's own texture, drawn by JS */
.n-guilloche {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  opacity: 0.16;
  color: var(--n-foil-a);
}

/* --- 6. Header ----------------------------------------------------------- */

.n-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 50;
  padding-block: var(--s-2);
  transition: background 0.4s var(--ease-out), border-color 0.4s var(--ease-out);
  border-bottom: 1px solid transparent;
}

.n-header[data-stuck="true"] {
  background: rgba(5, 6, 10, 0.72);
  backdrop-filter: blur(18px) saturate(140%);
  border-bottom-color: var(--n-line);
}

.n-header__inner {
  display: flex;
  align-items: center;
  gap: var(--s-3);
  justify-content: space-between;
}

.n-logo {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  font-family: var(--n-display);
  font-weight: 800;
  font-size: 1.22rem;
  letter-spacing: -0.045em;
}

.n-logo sup {
  font-family: var(--n-body);
  font-size: 0.5em;
  font-weight: 500;
  color: var(--n-mist);
  top: -0.9em;
}

.n-nav {
  display: flex;
  gap: var(--s-3);
  align-items: center;
}

.n-nav a {
  font-size: 0.9rem;
  color: var(--n-mist);
  position: relative;
  padding-block: 0.25rem;
  transition: color 0.25s var(--ease-out);
}

.n-nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  height: 1px; width: 100%;
  background: var(--n-foil);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.42s var(--ease-out);
}

.n-nav a:hover { color: var(--n-paper); }
.n-nav a:hover::after { transform: scaleX(1); transform-origin: left; }

@media (max-width: 880px) { .n-nav { display: none; } }

/* Scroll progress — a foil thread across the top of the document */
.n-progress {
  position: fixed;
  inset: 0 0 auto 0;
  height: 2px;
  z-index: 55;
  background: var(--n-foil);
  transform-origin: 0 50%;
  transform: scaleX(0);
}

/* --- 7. Buttons ---------------------------------------------------------- */

.n-btn {
  --btn-bg: var(--n-raised);
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  padding: 0.85rem 1.5rem;
  min-height: 46px;
  border-radius: 999px;
  border: 1px solid var(--n-line-strong);
  background: var(--btn-bg);
  color: var(--n-paper);
  font-family: var(--n-body);
  font-size: 0.94rem;
  font-weight: 500;
  cursor: pointer;
  overflow: hidden;
  isolation: isolate;
  transition: border-color 0.3s var(--ease-out), color 0.3s var(--ease-out);
  will-change: transform;
}

.n-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: var(--n-foil);
  transform: translateY(101%);
  transition: transform 0.45s var(--ease-out);
}

.n-btn:hover { color: #06070c; border-color: transparent; }
.n-btn:hover::before { transform: translateY(0); }

.n-btn--primary {
  background: var(--n-foil);
  color: #06070c;
  border-color: transparent;
  font-weight: 600;
}
.n-btn--primary::before { background: var(--n-paper); }

.n-btn--ghost { background: transparent; }

/* --- 8. Hero: the generation console ------------------------------------- */

.n-hero {
  position: relative;
  padding-top: clamp(8rem, 15vh, 11rem);
  padding-bottom: var(--s-6);
  min-height: 100svh;
  display: flex;
  align-items: center;
  overflow: clip;
}

.n-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.82fr);
  gap: clamp(2rem, 5vw, 4.5rem);
  align-items: center;
  width: 100%;
}

@media (max-width: 1020px) {
  .n-hero__grid { grid-template-columns: 1fr; }
  .n-hero { min-height: auto; }
}

.n-hero__copy { display: grid; gap: var(--s-3); justify-items: start; }

.n-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: var(--s-2);
}

/* Word-level reveal target */
.n-reveal-line { display: block; overflow: hidden; }
.n-reveal-word { display: inline-block; will-change: transform, filter, opacity; }

/* Prompt console — where the page's job actually happens */
.n-console {
  border: 1px solid var(--n-line-strong);
  border-radius: var(--n-radius-lg);
  background: linear-gradient(180deg, rgba(23,27,40,0.92), rgba(10,12,19,0.92));
  backdrop-filter: blur(14px);
  padding: var(--s-2);
  width: 100%;
  max-width: 620px;
  box-shadow: 0 24px 70px -30px rgba(0,0,0,0.9);
}

.n-console__bar {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.35rem 0.4rem 0.6rem;
  border-bottom: 1px solid var(--n-line);
}

.n-console__field {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.9rem 0.4rem 0.4rem;
}

.n-console__input {
  flex: 1;
  min-width: 0;
  font-family: var(--n-body);
  font-size: 1rem;
  color: var(--n-paper);
  background: transparent;
  border: 0;
  padding: 0.4rem 0;
}
.n-console__input::placeholder { color: var(--n-faint); }
.n-console__input:focus { outline: none; }

.n-caret {
  width: 2px;
  height: 1.15em;
  background: var(--n-foil-a);
  animation: blink 1.1s steps(2) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

/* --- 9. Passport chip — THE SIGNATURE ELEMENT ---------------------------- */

.n-chip-stage {
  perspective: 1400px;
  display: flex;
  justify-content: center;
}

.n-chip {
  position: relative;
  width: min(420px, 84vw);
  aspect-ratio: 1.586 / 1;      /* ID-1, the real passport-card ratio */
  border-radius: 18px;
  padding: 1.15rem 1.25rem;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 0.5rem;
  transform-style: preserve-3d;
  will-change: transform;
  border: 1px solid var(--n-line-strong);
  background:
    linear-gradient(155deg, rgba(155,107,255,0.16), transparent 45%),
    linear-gradient(15deg, rgba(70,245,212,0.14), transparent 52%),
    var(--n-slate);
  box-shadow:
    0 40px 90px -40px rgba(0,0,0,0.95),
    inset 0 1px 0 rgba(242,241,237,0.08);
  overflow: hidden;
}

/* The foil sweep tracks the pointer via --mx/--my set in JS */
.n-chip__foil {
  position: absolute;
  inset: -1px;
  pointer-events: none;
  border-radius: inherit;
  background: radial-gradient(
    360px circle at var(--mx, 50%) var(--my, 0%),
    rgba(255,255,255,0.24),
    rgba(155,107,255,0.16) 28%,
    transparent 62%);
  mix-blend-mode: screen;
  opacity: 0.9;
}

.n-chip__engrave {
  position: absolute;
  inset: 0;
  opacity: 0.22;
  pointer-events: none;
  color: var(--n-foil-a);
}

.n-chip__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 1rem;
  transform: translateZ(28px);
}

.n-chip__body {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.9rem;
  align-items: center;
  transform: translateZ(20px);
}

.n-chip__portrait {
  width: 62px; height: 78px;
  border-radius: 8px;
  border: 1px solid var(--n-line-strong);
  background:
    conic-gradient(from 200deg at 50% 40%, rgba(70,245,212,0.5), rgba(155,107,255,0.5), rgba(255,209,102,0.4), rgba(70,245,212,0.5));
  filter: saturate(0.85) contrast(1.05);
  position: relative;
  overflow: hidden;
}

.n-chip__portrait::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, rgba(5,6,10,0.5) 0 1px, transparent 1px 3px);
}

.n-chip__fields { display: grid; gap: 0.42rem; min-width: 0; }

.n-field { display: grid; gap: 0.1rem; }
.n-field dt {
  font-family: var(--n-machine);
  font-size: 0.56rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--n-faint);
}
.n-field dd {
  margin: 0;
  font-family: var(--n-machine);
  font-size: 0.78rem;
  color: var(--n-paper);
  letter-spacing: 0.02em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Machine-readable zone — the strip that makes it read as a real document */
.n-mrz {
  transform: translateZ(14px);
  border-top: 1px solid var(--n-line);
  padding-top: 0.5rem;
  font-size: var(--t-mrz);
  letter-spacing: 0.12em;
  color: var(--n-faint);
  white-space: nowrap;
  overflow: hidden;
  line-height: 1.5;
}

/* Ink stamp — presses in when the custody sequence resolves */
.n-stamp {
  position: absolute;
  right: 4%;
  bottom: 12%;
  width: 118px; height: 118px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  border: 2.5px solid var(--n-foil-a);
  color: var(--n-foil-a);
  font-family: var(--n-machine);
  font-size: 0.62rem;
  letter-spacing: 0.2em;
  text-align: center;
  transform: rotate(-16deg) scale(2.4) translateZ(48px);
  opacity: 0;
  mix-blend-mode: screen;
  pointer-events: none;
}

.n-stamp[data-stamped="true"] {
  animation: stamp-press 0.6s var(--ease-out) forwards;
}

@keyframes stamp-press {
  0%   { opacity: 0; transform: rotate(-16deg) scale(2.4) translateZ(48px); }
  55%  { opacity: 1; transform: rotate(-16deg) scale(0.92) translateZ(48px); }
  100% { opacity: 0.85; transform: rotate(-16deg) scale(1) translateZ(48px); }
}

/* Status pills */
.n-tag {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.28rem 0.6rem;
  border-radius: 999px;
  border: 1px solid var(--n-line-strong);
  color: var(--n-mist);
  font-size: 0.6rem;
  background: rgba(5,6,10,0.5);
}

.n-tag--verified { color: var(--n-foil-a); border-color: rgba(70,245,212,0.4); }
.n-tag--revoked  { color: var(--n-seal);   border-color: rgba(255,90,60,0.4); }

.n-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 0 currentColor;
  animation: pulse 2.4s var(--ease-out) infinite;
}

@keyframes pulse {
  0%   { box-shadow: 0 0 0 0 rgba(70,245,212,0.5); }
  70%  { box-shadow: 0 0 0 8px rgba(70,245,212,0); }
  100% { box-shadow: 0 0 0 0 rgba(70,245,212,0); }
}

/* --- 10. Preset rail (velocity-skewed marquee) --------------------------- */

.n-rail {
  position: relative;
  overflow: hidden;
  padding-block: var(--s-3);
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}

.n-rail__track {
  display: flex;
  gap: var(--s-2);
  width: max-content;
  will-change: transform;
}

.n-preset {
  position: relative;
  width: 268px;
  flex: 0 0 auto;
  border-radius: var(--n-radius);
  border: 1px solid var(--n-line);
  background: var(--n-base);
  overflow: hidden;
  transition: border-color 0.35s var(--ease-out), transform 0.45s var(--ease-out);
}

.n-preset:hover { border-color: var(--n-line-strong); transform: translateY(-6px); }

.n-preset__frame {
  aspect-ratio: 4 / 3;
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 30% 10%, rgba(155,107,255,0.35), transparent 60%),
    radial-gradient(100% 80% at 80% 90%, rgba(70,245,212,0.28), transparent 62%),
    var(--n-slate);
}

.n-preset__frame::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, rgba(5,6,10,0.32) 0 1px, transparent 1px 4px);
  opacity: 0.5;
}

/* Camera-move glyph animates only on hover — motion previews the motion */
.n-preset__glyph {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--n-paper);
  opacity: 0.85;
}

.n-preset:hover .n-preset__glyph > * { animation-play-state: running; }
.n-preset__glyph > * { animation-play-state: paused; }

.n-preset__meta {
  padding: 0.85rem 1rem 1rem;
  display: grid;
  gap: 0.4rem;
}

.n-preset__name {
  font-family: var(--n-display);
  font-weight: 600;
  font-size: 1.02rem;
  letter-spacing: -0.015em;
}

.n-preset__note { color: var(--n-faint); font-size: 0.82rem; }

/* --- 11. Chain of custody (pinned sequence) ------------------------------ */

.n-custody { position: relative; }

.n-custody__grid {
  display: grid;
  grid-template-columns: minmax(0, 0.95fr) minmax(0, 1fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: start;
}

@media (max-width: 1020px) { .n-custody__grid { grid-template-columns: 1fr; } }

.n-custody__sticky {
  position: sticky;
  top: 18vh;
  display: grid;
  gap: var(--s-3);
}

@media (max-width: 1020px) { .n-custody__sticky { position: static; } }

.n-steps { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }

.n-step {
  display: grid;
  grid-template-columns: 4.2rem 1fr;
  gap: var(--s-2);
  padding-block: var(--s-3);
  border-top: 1px solid var(--n-line);
  opacity: 0.35;
  transition: opacity 0.5s var(--ease-out);
}

.n-step:last-child { border-bottom: 1px solid var(--n-line); }
.n-step[data-active="true"] { opacity: 1; }

.n-step__index {
  font-family: var(--n-machine);
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  color: var(--n-faint);
  padding-top: 0.35rem;
}

.n-step[data-active="true"] .n-step__index {
  background: var(--n-foil);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.n-step__body { display: grid; gap: 0.35rem; }
.n-step__body p { margin: 0; color: var(--n-mist); font-size: 0.98rem; }

/* --- 12. Model grid ------------------------------------------------------ */

.n-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--s-2);
}

.n-card {
  position: relative;
  padding: var(--s-3);
  border-radius: var(--n-radius);
  border: 1px solid var(--n-line);
  background: var(--n-base);
  display: grid;
  gap: 0.7rem;
  align-content: start;
  overflow: hidden;
  transition: border-color 0.35s var(--ease-out), background 0.35s var(--ease-out);
}

.n-card::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),
    rgba(155,107,255,0.13), transparent 60%);
  transition: opacity 0.4s var(--ease-out);
}

.n-card:hover { border-color: var(--n-line-strong); }
.n-card:hover::before { opacity: 1; }

.n-card p { margin: 0; color: var(--n-mist); font-size: 0.94rem; }

.n-card__io {
  display: flex;
  gap: 0.4rem;
  flex-wrap: wrap;
  margin-top: 0.3rem;
}

/* Bento emphasis for the first card, without breaking the auto-fit grid */
@media (min-width: 900px) {
  .n-grid--bento > .n-card:first-child { grid-column: span 2; }
}

/* --- 13. Pricing --------------------------------------------------------- */

.n-plan {
  padding: var(--s-3);
  border-radius: var(--n-radius-lg);
  border: 1px solid var(--n-line);
  background: var(--n-base);
  display: grid;
  gap: var(--s-2);
  align-content: start;
}

.n-plan[data-featured="true"] {
  border-color: transparent;
  background:
    linear-gradient(var(--n-base), var(--n-base)) padding-box,
    var(--n-foil) border-box;
  border: 1px solid transparent;
}

.n-plan__price {
  font-family: var(--n-display);
  font-size: 2.6rem;
  font-weight: 700;
  letter-spacing: -0.04em;
  line-height: 1;
}

.n-plan__price small {
  font-family: var(--n-body);
  font-size: 0.85rem;
  font-weight: 400;
  color: var(--n-faint);
  letter-spacing: 0;
}

.n-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.55rem; }

.n-list li {
  display: grid;
  grid-template-columns: 1rem 1fr;
  gap: 0.6rem;
  font-size: 0.93rem;
  color: var(--n-mist);
}

.n-list li::before {
  content: "";
  width: 7px; height: 7px;
  margin-top: 0.55em;
  border-radius: 2px;
  background: var(--n-foil);
}

/* --- 14. Footer ---------------------------------------------------------- */

.n-footer {
  border-top: 1px solid var(--n-line);
  padding-block: var(--s-5) var(--s-4);
  margin-top: var(--s-6);
}

.n-footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) repeat(auto-fit, minmax(140px, 1fr));
  gap: var(--s-4);
}

.n-footer h4 {
  font-family: var(--n-machine);
  font-size: 0.66rem;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--n-faint);
  margin: 0 0 0.9rem;
  font-weight: 500;
}

.n-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.n-footer a { color: var(--n-mist); font-size: 0.92rem; }
.n-footer a:hover { color: var(--n-paper); }

.n-disclosure {
  margin-top: var(--s-4);
  padding-top: var(--s-3);
  border-top: 1px solid var(--n-line);
  color: var(--n-faint);
  font-size: 0.8rem;
  max-width: 78ch;
}

/* --- 15. Cursor ---------------------------------------------------------- */

.n-cursor {
  position: fixed;
  top: 0; left: 0;
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 1px solid var(--n-line-strong);
  pointer-events: none;
  z-index: 70;
  mix-blend-mode: difference;
  will-change: transform;
  opacity: 0;
  transition: opacity 0.3s, width 0.3s var(--ease-out), height 0.3s var(--ease-out);
}

.n-cursor[data-active="true"] { opacity: 1; }
.n-cursor[data-hot="true"] { width: 54px; height: 54px; background: var(--n-paper); }

@media (hover: none), (pointer: coarse) { .n-cursor { display: none; } }

/* --- 16. Scroll-reveal defaults ------------------------------------------ */

[data-reveal] { opacity: 0; }
.no-js [data-reveal], [data-reveal].is-in { opacity: 1; }

/* --- 17. Reduced motion -------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
  [data-reveal] { opacity: 1 !important; transform: none !important; filter: none !important; }
  .n-cursor, .n-grain { display: none; }
  .n-rail__track { transform: none !important; }
}

/* --- 18. WordPress editor/admin harmony ---------------------------------- */

.editor-styles-wrapper { background: var(--n-void); }
.wp-site-blocks > * { margin-block: 0; }
.n-screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  overflow: hidden; clip-path: inset(50%);
  white-space: nowrap;
}

/* --- 19. Camera-move glyphs ---------------------------------------------
   Each preset card previews its own motion. The glyph is the demo. */

.mv { width: 62%; aspect-ratio: 16/9; border: 1px solid currentColor; border-radius: 3px;
      position: relative; opacity: 0.9; }
.mv::after { content:""; position:absolute; inset:22% 30%; border:1px solid currentColor; opacity:0.55; border-radius:2px; }

.mv--zoom    { animation: mv-zoom 2.4s var(--ease-in-out) infinite; }
.mv--dolly   { animation: mv-dolly 3s var(--ease-in-out) infinite; }
.mv--orbit   { animation: mv-orbit 4s linear infinite; }
.mv--pan     { animation: mv-pan 2.6s var(--ease-in-out) infinite; }
.mv--crane   { animation: mv-crane 3.2s var(--ease-in-out) infinite; }
.mv--vertigo { animation: mv-vertigo 3.4s var(--ease-in-out) infinite; }
.mv--hand    { animation: mv-hand 1.1s linear infinite; }
.mv--bullet  { animation: mv-bullet 3.6s var(--ease-in-out) infinite; }

@keyframes mv-zoom    { 0%,100% { transform: scale(1); } 50% { transform: scale(1.45); } }
@keyframes mv-dolly   { 0%,100% { transform: scale(1.3) translateZ(0); } 50% { transform: scale(0.82); } }
@keyframes mv-orbit   { to { transform: rotateY(360deg); } }
@keyframes mv-pan     { 0%,100% { transform: translateX(-14%) rotateY(-14deg); } 50% { transform: translateX(14%) rotateY(14deg); } }
@keyframes mv-crane   { 0%,100% { transform: translateY(-12%) rotateX(12deg); } 50% { transform: translateY(12%) rotateX(-8deg); } }
@keyframes mv-vertigo { 0%,100% { transform: scale(1) perspective(300px) rotateX(0); } 50% { transform: scale(1.35) perspective(140px) rotateX(10deg); } }
@keyframes mv-hand    { 0% { transform: translate(0,0) rotate(0); } 25% { transform: translate(1.5%,-1%) rotate(0.5deg); }
                        50% { transform: translate(-1%,1.5%) rotate(-0.4deg); } 75% { transform: translate(1%,1%) rotate(0.3deg); }
                        100% { transform: translate(0,0) rotate(0); } }
@keyframes mv-bullet  { 0%,100% { transform: rotateY(0) scale(1); } 45% { transform: rotateY(180deg) scale(1.1); } 55% { transform: rotateY(180deg) scale(1.1); } }

.n-preset__glyph { perspective: 600px; }
.n-preset__glyph .mv { transform-style: preserve-3d; }

/* --- 20. Stat band ------------------------------------------------------- */
.n-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: var(--s-3); }
.n-stat { display: grid; gap: 0.3rem; padding-left: var(--s-2); border-left: 1px solid var(--n-line); }
.n-stat__num { font-family: var(--n-display); font-size: clamp(2rem, 3.4vw, 3rem); font-weight: 700;
               letter-spacing: -0.04em; line-height: 1; }
.n-stat__label { color: var(--n-faint); font-size: 0.86rem; }

/* ==========================================================================
   NEUTO MEDIA™ — LIGHT / INSTITUTIONAL OVERRIDES
   White is the primary surface. Foil is reserved for verified states and
   restrained interaction cues. The Creator Passport portal remains separately
   scoped and can still switch between light and dark modes.
   ========================================================================== */

:root {
  --n-void: #ffffff;
  --n-base: #fbfbfa;
  --n-slate: #f4f5f5;
  --n-raised: #ffffff;
  --n-line: rgba(14,18,22,.10);
  --n-line-strong: rgba(14,18,22,.18);
  --n-paper: #101316;
  --n-mist: #5f686f;
  --n-faint: #899198;
  --n-shadow-soft: 0 18px 60px rgba(13,18,23,.07);
  --n-shadow-card: 0 8px 30px rgba(13,18,23,.055);
}

body:not(.neuto-portal-app) {
  background:#fff;
  color:var(--n-paper);
}

body:not(.neuto-portal-app) .site-main { background:#fff; }

/* Atmospheric layers are intentionally much quieter on white. */
body:not(.neuto-portal-app) .n-grain { opacity:.07; mix-blend-mode:multiply; }
body:not(.neuto-portal-app) .n-aurora { opacity:.20; filter:blur(110px); }
body:not(.neuto-portal-app) .n-aurora span:nth-child(1){background:radial-gradient(circle,rgba(70,245,212,.19),transparent 68%)}
body:not(.neuto-portal-app) .n-aurora span:nth-child(2){background:radial-gradient(circle,rgba(155,107,255,.15),transparent 68%)}
body:not(.neuto-portal-app) .n-aurora span:nth-child(3){background:radial-gradient(circle,rgba(255,209,102,.11),transparent 70%)}
body:not(.neuto-portal-app) .n-guilloche { opacity:.09; }

/* Public header — premium white glass, not dark chrome. */
body:not(.neuto-portal-app) .site-header,
body:not(.neuto-portal-app) .n-header {
  background:rgba(255,255,255,.88);
  border-bottom:1px solid rgba(13,18,22,.07);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
}
body:not(.neuto-portal-app) .n-header[data-stuck="true"],
body:not(.neuto-portal-app) .site-header[data-stuck="true"] {
  background:rgba(255,255,255,.94);
  border-bottom-color:rgba(13,18,22,.12);
  box-shadow:0 10px 35px rgba(13,18,22,.04);
}
body:not(.neuto-portal-app) .primary-nav a { color:#515960; }
body:not(.neuto-portal-app) .primary-nav a:hover { color:#101316; }
body:not(.neuto-portal-app) .primary-nav a::after { background:var(--n-foil); }

/* Studio console becomes a precision white instrument panel. */
body:not(.neuto-portal-app) .n-console {
  background:linear-gradient(180deg,#ffffff,#f8f9f9);
  border-color:rgba(13,18,22,.14);
  box-shadow:0 22px 65px rgba(15,20,24,.09);
  color:#101316;
}
body:not(.neuto-portal-app) .n-console__bar,
body:not(.neuto-portal-app) .n-console__prompt {
  border-color:rgba(13,18,22,.10);
}
body:not(.neuto-portal-app) .n-console__input { color:#101316; }
body:not(.neuto-portal-app) .n-console__input::placeholder { color:#8d949a; }
body:not(.neuto-portal-app) .n-console__scene {
  background:
    radial-gradient(circle at 25% 35%,rgba(70,245,212,.11),transparent 34%),
    radial-gradient(circle at 75% 25%,rgba(155,107,255,.10),transparent 36%),
    linear-gradient(135deg,#f7f8f8,#eceff0);
}

/* Passport chip reads like a physical security document on warm white stock. */
body:not(.neuto-portal-app) .n-chip {
  background:linear-gradient(145deg,#fff,#f6f7f7 58%,#fff);
  color:#101316;
  border-color:rgba(13,18,22,.17);
  box-shadow:0 28px 80px rgba(12,17,21,.11);
}
body:not(.neuto-portal-app) .n-chip::after { border-color:rgba(13,18,22,.07); }
body:not(.neuto-portal-app) .n-chip__head { border-bottom-color:rgba(13,18,22,.10); }
body:not(.neuto-portal-app) .n-field dt { color:#8a9298; }
body:not(.neuto-portal-app) .n-field dd { color:#252b2f; }
body:not(.neuto-portal-app) .n-mrz { color:#777f86; }
body:not(.neuto-portal-app) .n-chip__portrait {
  background:
    radial-gradient(circle at 50% 33%,rgba(16,19,22,.20) 0 13%,transparent 14%),
    radial-gradient(ellipse at 50% 74%,rgba(16,19,22,.15) 0 27%,transparent 28%),
    linear-gradient(145deg,#eef0f0,#fafafa);
  border-color:rgba(13,18,22,.12);
}

/* Cards, plans and custody steps. */
body:not(.neuto-portal-app) .n-card,
body:not(.neuto-portal-app) .n-plan,
body:not(.neuto-portal-app) .n-preset,
body:not(.neuto-portal-app) .n-step {
  background:#fff;
  color:#101316;
  border-color:rgba(13,18,22,.11);
}
body:not(.neuto-portal-app) .n-card,
body:not(.neuto-portal-app) .n-plan { box-shadow:var(--n-shadow-card); }
body:not(.neuto-portal-app) .n-card:hover,
body:not(.neuto-portal-app) .n-plan:hover { border-color:rgba(13,18,22,.22); box-shadow:var(--n-shadow-soft); }
body:not(.neuto-portal-app) .n-preset__frame { background:#f4f6f6; border-color:rgba(13,18,22,.10); }
body:not(.neuto-portal-app) .n-preset__meta { border-color:rgba(13,18,22,.10); }
body:not(.neuto-portal-app) .n-plan[data-featured="true"] { background:linear-gradient(180deg,#fff,#f7fbfa); }
body:not(.neuto-portal-app) .n-step::before { background:rgba(13,18,22,.09); }
body:not(.neuto-portal-app) .n-step__index { color:#899198; }

/* Buttons stay monochrome and enterprise; foil appears only on the primary edge. */
body:not(.neuto-portal-app) .n-btn {
  background:#fff;
  color:#111518;
  border-color:#cfd4d6;
  box-shadow:none;
}
body:not(.neuto-portal-app) .n-btn:hover { border-color:#111518; }
body:not(.neuto-portal-app) .n-btn--primary {
  color:#fff;
  background:#101316;
  border-color:#101316;
  position:relative;
}
body:not(.neuto-portal-app) .n-btn--primary::after {
  content:"";
  position:absolute;
  left:16%; right:16%; bottom:-1px;
  height:1px;
  background:var(--n-foil);
  opacity:.8;
}
body:not(.neuto-portal-app) .n-btn--primary:hover { background:#20262a; }

/* Footer becomes an editorial white end-cap. */
body:not(.neuto-portal-app) .n-footer,
body:not(.neuto-portal-app) .site-footer {
  background:#f8f9f9;
  color:#101316;
  border-top:1px solid rgba(13,18,22,.10);
}
body:not(.neuto-portal-app) .n-footer a,
body:not(.neuto-portal-app) .site-footer a { color:#596168; }
body:not(.neuto-portal-app) .n-footer a:hover,
body:not(.neuto-portal-app) .site-footer a:hover { color:#101316; }

/* Merge the existing Creator Passport public templates into the light Studio system. */
body:not(.neuto-portal-app) .section-dark,
body:not(.neuto-portal-app) .closing-section-v2,
body:not(.neuto-portal-app) .closing-section,
body:not(.neuto-portal-app) .workflow-section {
  background:#fff!important;
  color:#101316!important;
  border-top:1px solid rgba(13,18,22,.10);
  border-bottom:1px solid rgba(13,18,22,.10);
}
body:not(.neuto-portal-app) .section-dark p,
body:not(.neuto-portal-app) .dark-section-intro p,
body:not(.neuto-portal-app) .workflow-copy p { color:#626a72!important; }
body:not(.neuto-portal-app) .section-label.light,
body:not(.neuto-portal-app) .section-dark .eyebrow { color:#7f878e!important; }
body:not(.neuto-portal-app) .workflow-panel { background:#fff; border-color:#d9dddf; box-shadow:var(--n-shadow-card); }
body:not(.neuto-portal-app) .workflow-tabs { border-bottom-color:#dfe3e4; }
body:not(.neuto-portal-app) .workflow-tabs button { background:#fff; color:#656d73; border-right-color:#dfe3e4; }
body:not(.neuto-portal-app) .workflow-tabs button.is-active { background:#101316; color:#fff; }
body:not(.neuto-portal-app) .workflow-tabs button.is-active span { color:#aeb6bb; }
body:not(.neuto-portal-app) .workflow-object { border-right-color:#dfe3e4; }
body:not(.neuto-portal-app) .workflow-object strong { color:#101316; }
body:not(.neuto-portal-app) .workflow-object small { color:#177c73; }
body:not(.neuto-portal-app) .workflow-io>div { border-top-color:#d9dddf; }
body:not(.neuto-portal-app) .workflow-io strong { color:#242a2e; }
body:not(.neuto-portal-app) .api-window { background:#fff; color:#20262a; border-color:#d8dddf; box-shadow:var(--n-shadow-card); }
body:not(.neuto-portal-app) .api-window-top { border-bottom-color:#e0e4e5; }
body:not(.neuto-portal-app) .api-window-top span { background:#101316; color:#fff; }
body:not(.neuto-portal-app) .api-window pre span { color:#177c73; }
body:not(.neuto-portal-app) .btn-ghost-dark { color:#101316; border-color:#cbd1d3; }

/* Interior public pages: editorial spacing and premium white cards. */
body:not(.neuto-portal-app) .public-page-hero {
  background:#fff;
  border-bottom:1px solid rgba(13,18,22,.09);
  padding-top:clamp(130px,14vw,190px);
}
body:not(.neuto-portal-app) .public-page-hero h1 {
  max-width:1000px;
  font-family:var(--n-display);
  font-size:clamp(3rem,7vw,6.7rem);
  line-height:.94;
  letter-spacing:-.055em;
}
body:not(.neuto-portal-app) .public-page-hero p { color:#626a72; max-width:760px; }
body:not(.neuto-portal-app) .usecase-detail,
body:not(.neuto-portal-app) .scope-grid>div,
body:not(.neuto-portal-app) .contact-card,
body:not(.neuto-portal-app) .legal-card {
  background:#fff;
  border-color:rgba(13,18,22,.11);
}

/* Parent-brand bridge section. */
.n-media-platform {
  border-top:1px solid var(--n-line);
  border-bottom:1px solid var(--n-line);
  background:#fbfbfa;
}
.n-media-platform__grid { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(2rem,6vw,6rem); align-items:start; }
.n-media-platform__copy { position:sticky; top:120px; }
.n-media-platform__copy h2 { margin:.7rem 0 1.2rem; }
.n-media-platform__list { display:grid; border-top:1px solid var(--n-line-strong); }
.n-media-platform__item { display:grid; grid-template-columns:52px minmax(0,1fr); gap:1rem; padding:1.65rem 0; border-bottom:1px solid var(--n-line); }
.n-media-platform__item>span { font-family:var(--n-machine); color:var(--n-faint); font-size:.68rem; letter-spacing:.1em; }
.n-media-platform__item h3 { margin:0 0 .45rem; font-size:1.2rem; }
.n-media-platform__item p { margin:0; color:var(--n-mist); }

.n-media-proof { padding-block:clamp(5rem,9vw,8rem); }
.n-media-proof__row { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--n-line); background:#fff; }
.n-media-proof__row>div { padding:1.5rem; border-right:1px solid var(--n-line); min-width:0; }
.n-media-proof__row>div:last-child { border-right:0; }
.n-media-proof__row span { display:block; font-family:var(--n-machine); font-size:.63rem; letter-spacing:.13em; color:var(--n-faint); text-transform:uppercase; }
.n-media-proof__row strong { display:block; margin-top:.55rem; font-size:1.02rem; }

/* Responsive refinement */
@media (max-width: 980px) {
  .n-media-platform__grid { grid-template-columns:1fr; }
  .n-media-platform__copy { position:static; }
  .n-media-proof__row { grid-template-columns:1fr 1fr; }
  .n-media-proof__row>div:nth-child(2){border-right:0}
  .n-media-proof__row>div:nth-child(-n+2){border-bottom:1px solid var(--n-line)}
}
@media (max-width: 720px) {
  :root { --n-shell:min(100% - 32px,1240px); }
  .n-section { padding-block:4.6rem; }
  .n-hero { padding-top:7.5rem; }
  .n-media-proof__row { grid-template-columns:1fr; }
  .n-media-proof__row>div { border-right:0!important; border-bottom:1px solid var(--n-line); }
  .n-media-proof__row>div:last-child{border-bottom:0}
  body:not(.neuto-portal-app) .public-page-hero { padding-top:120px; }
}

/* Public navigation integration with the Creator Passport theme shell. */
body:not(.neuto-portal-app) .header-row { min-height:72px; height:72px; }
body:not(.neuto-portal-app) .brand-wordmark { position:relative; z-index:2; }
body:not(.neuto-portal-app) .nav-brand-lockup { gap:10px; }
body:not(.neuto-portal-app) .nav-brand-icon { width:30px; height:30px; flex-basis:30px; }
body:not(.neuto-portal-app) .nav-brand-copy strong { font-family:var(--n-display); font-size:1.03rem; font-weight:760; letter-spacing:-.04em; color:#101316; }
body:not(.neuto-portal-app) .primary-nav { gap:4px; }
body:not(.neuto-portal-app) .primary-nav a { min-height:38px; padding:0 10px; border-radius:999px; font-size:.84rem; font-weight:580; }
body:not(.neuto-portal-app) .primary-nav a:not(.nav-cta):hover { background:#f3f5f5; opacity:1; }
body:not(.neuto-portal-app) .primary-nav .nav-cta { background:#101316; color:#fff; border-color:#101316; padding-inline:15px; }
body:not(.neuto-portal-app) .primary-nav .nav-cta:hover { background:#24292d; opacity:1; }
body:not(.neuto-portal-app) .menu-toggle { position:relative; padding:0; }
body:not(.neuto-portal-app) .menu-toggle span { display:block; width:18px; height:1.5px; background:#101316; position:absolute; left:12px; transition:transform .22s var(--ease-out),top .22s var(--ease-out),opacity .18s ease; }
body:not(.neuto-portal-app) .menu-toggle span:nth-child(1){top:14px}
body:not(.neuto-portal-app) .menu-toggle span:nth-child(2){top:20px}
body:not(.neuto-portal-app) .menu-toggle span:nth-child(3){top:26px}
body.site-nav-open:not(.neuto-portal-app) .menu-toggle span:nth-child(1){top:20px;transform:rotate(45deg)}
body.site-nav-open:not(.neuto-portal-app) .menu-toggle span:nth-child(2){opacity:0}
body.site-nav-open:not(.neuto-portal-app) .menu-toggle span:nth-child(3){top:20px;transform:rotate(-45deg)}

/* Login is part of the parent brand and therefore stays white-first too. */
body.neuto-login-page { background:#fff; }
body.neuto-login-page .login-brand-panel { background:#fff; color:#101316; border-right:1px solid var(--n-line); }
body.neuto-login-page .login-brand-panel .login-logo { background:transparent; padding:0; width:auto; }
body.neuto-login-page .login-brand-copy p { color:#626a72; }
body.neuto-login-page .login-brand-copy .eyebrow { color:#858e95; }
body.neuto-login-page .login-trust-strip { border-top-color:#dfe3e4; color:#7d858b; }
body.neuto-login-page .login-form-panel { background:#f8f9f9; }
body.neuto-login-page .login-brand-lockup { display:inline-flex; align-items:center; gap:11px; }
body.neuto-login-page .login-brand-icon { width:38px; height:38px; object-fit:contain; }
body.neuto-login-page .login-brand-copy { display:block; }
body.neuto-login-page .login-brand-copy strong { display:block; font-family:var(--n-display); font-size:1.12rem; letter-spacing:-.035em; }
body.neuto-login-page .login-brand-copy small { display:block; margin-top:2px; color:#7c858b; font-family:var(--n-machine); font-size:.52rem; letter-spacing:.1em; text-transform:uppercase; }

@media (max-width: 980px) {
  body:not(.neuto-portal-app) .primary-nav.is-open {
    top:72px;
    background:rgba(255,255,255,.98);
    backdrop-filter:blur(22px);
    border-bottom:1px solid var(--n-line);
    padding:12px 18px 18px;
    gap:2px;
  }
  body:not(.neuto-portal-app) .primary-nav.is-open a { border-radius:8px; min-height:46px; padding-inline:12px; }
  body:not(.neuto-portal-app) .primary-nav.is-open .nav-cta { margin-top:6px; border-radius:8px; }
}

/* Content must remain readable if motion JavaScript is unavailable. */
body:not(.neuto-portal-app) [data-reveal] { opacity:1; }

/* ==========================================================================
   NEUTO™ v3.1 — WHITE-FIRST / BLACK-CONTRAST EDITORIAL SYSTEM
   Primary surface is white. Black is used as deliberate spatial punctuation:
   custody, selected model cards, the featured access tier and the final CTA.
   ========================================================================== */

body:not(.neuto-portal-app){
  --n-black-panel:#0a0c0e;
  --n-black-panel-2:#111417;
  --n-dark-line:rgba(255,255,255,.13);
  --n-dark-muted:#9ca4aa;
  --n-dark-paper:#f7f8f8;
}

/* Wordmark: visual identity is now just Neuto™. */
body:not(.neuto-portal-app) .nav-brand-wordmark-only{display:inline-flex;align-items:center;gap:0}
body:not(.neuto-portal-app) .nav-brand-wordmark-only .nav-brand-copy strong{
  font-size:1.26rem;
  font-weight:780;
  letter-spacing:-.055em;
  line-height:1;
}
body:not(.neuto-portal-app) .footer-nav-brand .nav-brand-copy strong{font-size:1.36rem}
body.neuto-login-page .login-brand-lockup{gap:0}
body.neuto-login-page .login-brand-lockup .login-brand-icon{display:none!important}
body.neuto-login-page .login-brand-copy strong{font-size:1.28rem!important}

/* White hero with a more architectural composition and a contained black
   instrument surface. This preserves breathing room while adding depth. */
body:not(.neuto-portal-app) .n-hero{
  background:
    linear-gradient(90deg,rgba(15,20,24,.035) 1px,transparent 1px) 0 0/72px 72px,
    linear-gradient(rgba(15,20,24,.035) 1px,transparent 1px) 0 0/72px 72px,
    #fff;
  border-bottom:1px solid var(--n-line);
}
body:not(.neuto-portal-app) .n-hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;
  background:linear-gradient(90deg,transparent 3%,#111 20%,#111 80%,transparent 97%);
  opacity:.22;
}
body:not(.neuto-portal-app) .n-hero__copy{position:relative;z-index:2}
body:not(.neuto-portal-app) .n-hero .n-console{
  border-radius:18px;
  background:var(--n-black-panel)!important;
  color:var(--n-dark-paper)!important;
  border-color:#1f2428!important;
  box-shadow:0 28px 80px rgba(10,14,18,.16)!important;
}
body:not(.neuto-portal-app) .n-hero .n-console__bar,
body:not(.neuto-portal-app) .n-hero .n-console__prompt{border-color:var(--n-dark-line)!important}
body:not(.neuto-portal-app) .n-hero .n-console__input{color:#fff!important}
body:not(.neuto-portal-app) .n-hero .n-console__input::placeholder{color:#858d93!important}
body:not(.neuto-portal-app) .n-hero .n-console .n-tag{background:#111519;color:#9ea6ac;border-color:#2b3135}
body:not(.neuto-portal-app) .n-hero .n-console .n-tag--verified{color:var(--n-foil-a);border-color:rgba(70,245,212,.34)}

/* Passport remains light, but sits in a black exhibition plinth. */
body:not(.neuto-portal-app) .n-chip-stage{
  position:relative;
  min-height:560px;
  padding:clamp(2rem,4vw,3.4rem);
  border-radius:30px;
  background:
    radial-gradient(circle at 15% 15%,rgba(70,245,212,.10),transparent 28%),
    radial-gradient(circle at 85% 18%,rgba(155,107,255,.12),transparent 31%),
    var(--n-black-panel);
  border:1px solid #1d2226;
  box-shadow:0 32px 90px rgba(11,15,18,.13);
  align-items:center;
}
body:not(.neuto-portal-app) .n-chip-stage::before{
  content:"CREATOR / RIGHTS / PROVENANCE";
  position:absolute;left:24px;bottom:20px;color:#626b72;
  font:500 .56rem/1 var(--n-machine);letter-spacing:.17em;
}
body:not(.neuto-portal-app) .n-chip-stage .n-chip{box-shadow:0 38px 90px rgba(0,0,0,.34)}

/* Camera rail stays white, but individual frames carry black gallery edges. */
body:not(.neuto-portal-app) #moves{background:#fff}
body:not(.neuto-portal-app) #moves .n-preset{border-radius:16px;box-shadow:0 8px 28px rgba(12,17,21,.045)}
body:not(.neuto-portal-app) #moves .n-preset__frame{border-bottom:1px solid var(--n-line)}

/* Full black custody section — the strongest contrast moment. */
body:not(.neuto-portal-app) #custody{
  background:var(--n-black-panel);
  color:var(--n-dark-paper);
  border-top:1px solid #171b1e;
  border-bottom:1px solid #171b1e;
}
body:not(.neuto-portal-app) #custody .n-display,
body:not(.neuto-portal-app) #custody .n-h3{color:#fff}
body:not(.neuto-portal-app) #custody .n-lede,
body:not(.neuto-portal-app) #custody .n-step__body p{color:var(--n-dark-muted)}
body:not(.neuto-portal-app) #custody .n-eyebrow{color:#8e969c}
body:not(.neuto-portal-app) #custody .n-step{
  background:transparent!important;
  color:#fff!important;
  box-shadow:none!important;
  border-color:var(--n-dark-line)!important;
}
body:not(.neuto-portal-app) #custody .n-step::before{background:rgba(255,255,255,.12)!important}
body:not(.neuto-portal-app) #custody .n-step__index{color:#747d84!important}
body:not(.neuto-portal-app) #custody .n-step[data-active="true"] .n-step__index{
  background:var(--n-foil);-webkit-background-clip:text;background-clip:text;color:transparent!important;
}
body:not(.neuto-portal-app) #custody .n-chip{
  background:linear-gradient(145deg,#171b1f,#0d1012 62%,#161a1d)!important;
  color:#fff!important;
  border-color:#343b40!important;
  box-shadow:0 34px 100px rgba(0,0,0,.44)!important;
}
body:not(.neuto-portal-app) #custody .n-chip .n-field dd{color:#e8ebed!important}
body:not(.neuto-portal-app) #custody .n-chip .n-field dt,
body:not(.neuto-portal-app) #custody .n-chip .n-mrz{color:#7e878e!important}
body:not(.neuto-portal-app) #custody .n-chip__portrait{border-color:#343b40!important}

/* Creator Passport bridge: white page, black sticky content block. */
body:not(.neuto-portal-app) .n-media-platform{
  background:#fff;
  padding-block:clamp(6rem,10vw,9rem);
}
body:not(.neuto-portal-app) .n-media-platform__copy{
  background:var(--n-black-panel);
  color:#fff;
  border:1px solid #1d2226;
  border-radius:24px;
  padding:clamp(1.8rem,3vw,3rem);
  box-shadow:0 28px 75px rgba(12,17,21,.10);
}
body:not(.neuto-portal-app) .n-media-platform__copy .n-lede{color:#a1a9af}
body:not(.neuto-portal-app) .n-media-platform__copy .n-eyebrow{color:#879098}
body:not(.neuto-portal-app) .n-media-platform__copy .n-btn{background:#fff;color:#111518;border-color:#fff}
body:not(.neuto-portal-app) .n-media-platform__copy .n-btn--primary{background:#fff;color:#111518;border-color:#fff}
body:not(.neuto-portal-app) .n-media-platform__copy .n-btn--primary::after{background:var(--n-foil)}
body:not(.neuto-portal-app) .n-media-platform__copy .n-btn:hover{background:#edf0f1;color:#111518}
body:not(.neuto-portal-app) .n-media-platform__item{transition:padding .28s var(--ease-out),background .28s var(--ease-out)}
body:not(.neuto-portal-app) .n-media-platform__item:hover{padding-left:1rem;background:#fafbfb}

/* Model bench: white canvas with a deliberately asymmetric black bento rhythm. */
body:not(.neuto-portal-app) #models{background:#fafafa;border-top:1px solid var(--n-line);border-bottom:1px solid var(--n-line)}
body:not(.neuto-portal-app) #models .n-card{min-height:250px;border-radius:18px;padding:clamp(1.35rem,2.2vw,2rem)}
body:not(.neuto-portal-app) #models .n-card:nth-child(1),
body:not(.neuto-portal-app) #models .n-card:nth-child(4){
  background:var(--n-black-panel)!important;
  color:#fff!important;
  border-color:#1e2428!important;
  box-shadow:0 24px 65px rgba(12,17,21,.12)!important;
}
body:not(.neuto-portal-app) #models .n-card:nth-child(1) p,
body:not(.neuto-portal-app) #models .n-card:nth-child(4) p{color:#9da5ab!important}
body:not(.neuto-portal-app) #models .n-card:nth-child(1) .n-tag,
body:not(.neuto-portal-app) #models .n-card:nth-child(4) .n-tag{background:#15191d;color:#abb3b9;border-color:#30373c}

/* Proof row becomes a black content block within a white field. */
body:not(.neuto-portal-app) .n-media-proof{background:#fff}
body:not(.neuto-portal-app) .n-media-proof .n-rule{opacity:.45}
body:not(.neuto-portal-app) .n-media-proof__row{
  background:var(--n-black-panel)!important;
  color:#fff!important;
  border-color:#22282c!important;
  border-radius:20px;
  overflow:hidden;
  box-shadow:0 25px 70px rgba(11,15,18,.10);
}
body:not(.neuto-portal-app) .n-media-proof__row>div{border-color:var(--n-dark-line)!important;padding:1.8rem}
body:not(.neuto-portal-app) .n-media-proof__row span{color:#79838a}
body:not(.neuto-portal-app) .n-media-proof__row strong{color:#fff}

/* Access remains primarily white, but the featured tier reads as a black
   enterprise object rather than another pale card. */
body:not(.neuto-portal-app) #plans{background:#fff}
body:not(.neuto-portal-app) #plans .n-plan{min-height:100%;border-radius:20px;padding:clamp(1.5rem,2.4vw,2.2rem)}
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"]{
  background:var(--n-black-panel)!important;
  color:#fff!important;
  border-color:#1d2226!important;
  box-shadow:0 28px 80px rgba(11,15,18,.14)!important;
}
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"] p,
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"] .n-list li,
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"] .n-plan__price small{color:#a0a8ae!important}
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"] .n-btn--primary{background:#fff;color:#111518;border-color:#fff}

/* Final CTA is a black architectural end-cap before the light footer. */
body:not(.neuto-portal-app) .n-final-cta{
  background:var(--n-black-panel);
  color:#fff;
  border-top:1px solid #191e21;
  border-bottom:1px solid #191e21;
  padding-block:clamp(7rem,12vw,11rem);
}
body:not(.neuto-portal-app) .n-final-cta .n-lede{color:#9fa7ad!important}
body:not(.neuto-portal-app) .n-final-cta .n-eyebrow{color:#838c93}
body:not(.neuto-portal-app) .n-final-cta .n-btn{background:transparent;color:#fff;border-color:#3a4247}
body:not(.neuto-portal-app) .n-final-cta .n-btn:hover{background:#fff;color:#111518;border-color:#fff}
body:not(.neuto-portal-app) .n-final-cta .n-btn--primary{background:#fff;color:#111518;border-color:#fff}
body:not(.neuto-portal-app) .n-final-cta .n-btn--primary:hover{background:#edf0f1}

/* Interior public pages use black editorial feature blocks without turning the
   entire site dark. */
body:not(.neuto-portal-app) .public-page-hero{position:relative;overflow:hidden}
body:not(.neuto-portal-app) .public-page-hero::after{
  content:"";position:absolute;right:max(3vw,24px);bottom:0;width:min(28vw,380px);height:7px;
  background:#101316;
}
body:not(.neuto-portal-app) .section-soft{background:#f7f8f8}
body:not(.neuto-portal-app) .contact-form-card,
body:not(.neuto-portal-app) .legal-index{
  border-radius:16px;
}

@media (max-width:1020px){
  body:not(.neuto-portal-app) .n-chip-stage{min-height:470px}
  body:not(.neuto-portal-app) .n-media-platform__copy{position:static}
  body:not(.neuto-portal-app) #custody .n-custody__sticky{max-width:620px}
}
@media (max-width:720px){
  body:not(.neuto-portal-app) .n-hero{background-size:44px 44px}
  body:not(.neuto-portal-app) .n-chip-stage{min-height:0;padding:2rem 1rem 3.25rem;border-radius:22px}
  body:not(.neuto-portal-app) .n-chip-stage::before{left:16px;bottom:14px;font-size:.48rem}
  body:not(.neuto-portal-app) .n-media-platform__copy{border-radius:18px;padding:1.5rem}
  body:not(.neuto-portal-app) .n-media-platform__item:hover{padding-left:0;background:transparent}
  body:not(.neuto-portal-app) #models .n-card{min-height:0}
  body:not(.neuto-portal-app) .n-media-proof__row{border-radius:16px}
  body:not(.neuto-portal-app) .n-final-cta{padding-block:6.5rem}
}

@media (prefers-reduced-motion:reduce){
  body:not(.neuto-portal-app) .n-media-platform__item{transition:none}
}

/* ==========================================================================
   NEUTO™ v3.2 — CINEMATIC INSTITUTIONAL SYSTEM
   Dark is the primary operating surface. White is used as an editorial
   support surface to create rhythm, contrast and institutional clarity.
   Content and Creator Passport application behavior are unchanged.
   ========================================================================== */

:root {
  --n-void:#05070a;
  --n-base:#090c11;
  --n-slate:#0e131a;
  --n-raised:#121820;
  --n-line:rgba(241,244,246,.095);
  --n-line-strong:rgba(241,244,246,.18);
  --n-paper:#f5f4ef;
  --n-mist:#9ea7b2;
  --n-faint:#626d79;
  --n-shadow-soft:0 32px 100px rgba(0,0,0,.42);
  --n-shadow-card:0 20px 60px rgba(0,0,0,.28);
  --n-shadow-float:0 34px 100px rgba(0,0,0,.50),0 0 0 1px rgba(255,255,255,.035) inset;
}

body:not(.neuto-portal-app){
  background:var(--n-void);
  color:var(--n-paper);
}
body:not(.neuto-portal-app) .site-main{
  background:
    radial-gradient(1000px 700px at 86% -4%,rgba(155,107,255,.08),transparent 58%),
    radial-gradient(900px 620px at -8% 22%,rgba(70,245,212,.055),transparent 62%),
    var(--n-void);
}
body:not(.neuto-portal-app) .n-grain{opacity:.22;mix-blend-mode:soft-light}
body:not(.neuto-portal-app) .n-aurora{opacity:.44;filter:blur(105px)}
body:not(.neuto-portal-app) .n-aurora span:nth-child(1){background:radial-gradient(circle,rgba(70,245,212,.25),transparent 67%)}
body:not(.neuto-portal-app) .n-aurora span:nth-child(2){background:radial-gradient(circle,rgba(155,107,255,.26),transparent 67%)}
body:not(.neuto-portal-app) .n-aurora span:nth-child(3){background:radial-gradient(circle,rgba(255,209,102,.12),transparent 70%)}
body:not(.neuto-portal-app) .n-guilloche{opacity:.12;color:rgba(70,245,212,.78)}

/* Dark institutional navigation with glass depth. */
body:not(.neuto-portal-app) .site-header,
body:not(.neuto-portal-app) .n-header{
  background:rgba(5,7,10,.70);
  border-bottom:1px solid rgba(255,255,255,.065);
  backdrop-filter:blur(24px) saturate(145%);
  -webkit-backdrop-filter:blur(24px) saturate(145%);
  box-shadow:0 1px 0 rgba(255,255,255,.02) inset;
}
body:not(.neuto-portal-app) .n-header[data-stuck="true"],
body:not(.neuto-portal-app) .site-header[data-stuck="true"]{
  background:rgba(5,7,10,.91);
  border-bottom-color:rgba(255,255,255,.11);
  box-shadow:0 16px 50px rgba(0,0,0,.28);
}
body:not(.neuto-portal-app) .nav-brand-copy strong{color:#f5f4ef}
body:not(.neuto-portal-app) .primary-nav a{color:#9fa7b0}
body:not(.neuto-portal-app) .primary-nav a:hover{color:#fff}
body:not(.neuto-portal-app) .primary-nav a:not(.nav-cta):hover{background:rgba(255,255,255,.055)}
body:not(.neuto-portal-app) .primary-nav .nav-cta{
  background:#f4f3ee;color:#090c10;border-color:#f4f3ee;
  box-shadow:0 8px 26px rgba(0,0,0,.24);
}
body:not(.neuto-portal-app) .primary-nav .nav-cta:hover{background:#fff;color:#07090c}
body:not(.neuto-portal-app) .menu-toggle{border-color:rgba(255,255,255,.13);background:rgba(255,255,255,.035)}
body:not(.neuto-portal-app) .menu-toggle span{background:#f4f3ee}

/* Hero: cinematic, dimensional, calm. */
body:not(.neuto-portal-app) .n-hero{
  min-height:100svh;
  background:
    linear-gradient(180deg,rgba(255,255,255,.018),transparent 22%),
    radial-gradient(900px 560px at 74% 46%,rgba(95,112,255,.055),transparent 62%);
  border-bottom:1px solid rgba(255,255,255,.07);
}
body:not(.neuto-portal-app) .n-hero::after{
  content:"";position:absolute;inset:auto 0 0;height:28%;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(0,0,0,.34));
}
body:not(.neuto-portal-app) .n-hero__grid{position:relative;z-index:2}
body:not(.neuto-portal-app) .n-hero-type{text-wrap:balance;text-shadow:0 1px 0 rgba(255,255,255,.02)}
body:not(.neuto-portal-app) .n-lede{color:#9ea7b2}
body:not(.neuto-portal-app) .n-eyebrow{color:#6f7a87}

/* Precision black generation console. */
body:not(.neuto-portal-app) .n-console{
  background:
    linear-gradient(180deg,rgba(18,24,32,.96),rgba(7,10,14,.98));
  border:1px solid rgba(255,255,255,.13);
  box-shadow:0 30px 90px rgba(0,0,0,.52),0 1px 0 rgba(255,255,255,.05) inset;
  color:#f5f4ef;
  position:relative;
  overflow:hidden;
}
body:not(.neuto-portal-app) .n-console::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(110deg,transparent 18%,rgba(255,255,255,.03) 48%,transparent 70%);
  transform:translateX(-120%);animation:n-console-sheen 9s var(--ease-in-out) infinite;
}
@keyframes n-console-sheen{0%,72%{transform:translateX(-120%)}88%,100%{transform:translateX(120%)}}
body:not(.neuto-portal-app) .n-console__bar{border-color:rgba(255,255,255,.085)}
body:not(.neuto-portal-app) .n-console__input{color:#f6f5f1}
body:not(.neuto-portal-app) .n-console__input::placeholder{color:#65707d}

/* Buttons: quiet institutional defaults, bright primary in dark contexts. */
body:not(.neuto-portal-app) .n-btn{
  background:rgba(255,255,255,.025);color:#eceeea;border-color:rgba(255,255,255,.16);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset;
}
body:not(.neuto-portal-app) .n-btn:hover{border-color:rgba(255,255,255,.34)}
body:not(.neuto-portal-app) .n-btn--primary{
  background:#f4f3ee;color:#07090c;border-color:#f4f3ee;font-weight:650;
  box-shadow:0 12px 30px rgba(0,0,0,.24);
}
body:not(.neuto-portal-app) .n-btn--primary::before{background:var(--n-foil)}
body:not(.neuto-portal-app) .n-btn--primary:hover{color:#05070a;border-color:transparent}
body:not(.neuto-portal-app) .n-btn--primary::after{
  content:"";position:absolute;left:18%;right:18%;bottom:-1px;height:1px;background:var(--n-foil);opacity:.9;
}

/* Signature passport: darker security document with controlled foil. */
body:not(.neuto-portal-app) .n-chip{
  background:
    linear-gradient(155deg,rgba(155,107,255,.13),transparent 42%),
    linear-gradient(20deg,rgba(70,245,212,.10),transparent 52%),
    linear-gradient(145deg,#10161f,#090d13 64%,#111820);
  color:#f5f4ef;
  border-color:rgba(255,255,255,.16);
  box-shadow:var(--n-shadow-float);
}
body:not(.neuto-portal-app) .n-chip::after{
  content:"";position:absolute;inset:8px;border:1px solid rgba(255,255,255,.035);border-radius:12px;pointer-events:none;
}
body:not(.neuto-portal-app) .n-chip__foil{opacity:.92}
body:not(.neuto-portal-app) .n-field dt{color:#687483}
body:not(.neuto-portal-app) .n-field dd{color:#e8ebe8}
body:not(.neuto-portal-app) .n-mrz{color:#66717e;border-top-color:rgba(255,255,255,.09)}
body:not(.neuto-portal-app) .n-chip__portrait{border-color:rgba(255,255,255,.13)}
body:not(.neuto-portal-app) .n-tag{background:rgba(2,4,7,.42);border-color:rgba(255,255,255,.13);color:#909aa5}
body:not(.neuto-portal-app) .n-tag--verified{color:var(--n-foil-a);border-color:rgba(70,245,212,.34)}

/* Supporting white editorial section: camera language. */
body:not(.neuto-portal-app) #moves{
  background:#f3f2ed;color:#111419;
  border-top:1px solid #deded9;border-bottom:1px solid #deded9;
}
body:not(.neuto-portal-app) #moves .n-lede{color:#626a72}
body:not(.neuto-portal-app) #moves .n-eyebrow{color:#7c858d}
body:not(.neuto-portal-app) #moves .n-media-proof__row{background:#fff;border-color:#d8dad8;box-shadow:0 18px 55px rgba(19,25,31,.06)}
body:not(.neuto-portal-app) #moves .n-media-proof__row>div{border-color:#e0e1df}
body:not(.neuto-portal-app) #moves .n-media-proof__row span{color:#8b9298}
body:not(.neuto-portal-app) #moves .n-media-proof__row strong{color:#12161a}
body:not(.neuto-portal-app) #moves .n-preset{
  background:#fff;color:#101419;border-color:#d7d9d7;
  box-shadow:0 18px 50px rgba(17,23,28,.08);
}
body:not(.neuto-portal-app) #moves .n-preset__frame{
  background:radial-gradient(120% 90% at 28% 12%,rgba(155,107,255,.17),transparent 60%),radial-gradient(100% 80% at 82% 90%,rgba(70,245,212,.15),transparent 62%),#111720;
}
body:not(.neuto-portal-app) #moves .n-preset__glyph{color:#f6f5ef}
body:not(.neuto-portal-app) #moves .n-preset__note{color:#767f86}
body:not(.neuto-portal-app) #moves .n-tag{background:#f7f7f4;border-color:#d9dcda;color:#697179}

/* Chain of custody stays a high-security dark operating surface. */
body:not(.neuto-portal-app) .n-custody{
  background:
    linear-gradient(180deg,#080b10,#05070a 42%,#070a0e),
    var(--n-void);
  border-bottom:1px solid rgba(255,255,255,.065);
  overflow:clip;
}
body:not(.neuto-portal-app) .n-custody::before{
  content:"";position:absolute;width:620px;height:620px;border-radius:50%;right:-240px;top:8%;pointer-events:none;
  background:radial-gradient(circle,rgba(70,245,212,.07),transparent 68%);filter:blur(16px);
}
body:not(.neuto-portal-app) .n-step{background:transparent;color:#f4f3ef;border-color:rgba(255,255,255,.095)}
body:not(.neuto-portal-app) .n-step__body p{color:#8f99a4}

/* White Creator Passport bridge — a deliberate institutional pause. */
body:not(.neuto-portal-app) .n-media-platform{
  background:#f5f4ef;color:#111419;border-color:#dadbd8;
  position:relative;overflow:clip;
}
body:not(.neuto-portal-app) .n-media-platform::after{
  content:"";position:absolute;right:-12%;bottom:-38%;width:520px;height:520px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(155,107,255,.08),transparent 66%);
}
body:not(.neuto-portal-app) .n-media-platform .n-lede,
body:not(.neuto-portal-app) .n-media-platform__item p{color:#626a72}
body:not(.neuto-portal-app) .n-media-platform .n-eyebrow,
body:not(.neuto-portal-app) .n-media-platform__item>span{color:#818a91}
body:not(.neuto-portal-app) .n-media-platform__list{border-top-color:#cfd1cf}
body:not(.neuto-portal-app) .n-media-platform__item{border-bottom-color:#d8dad8;transition:background .35s var(--ease-out),padding-left .45s var(--ease-out)}
body:not(.neuto-portal-app) .n-media-platform__item:hover{background:#fff;padding-left:1rem}
body:not(.neuto-portal-app) .n-media-platform .n-btn{background:#fff;color:#111419;border-color:#c9ccca}
body:not(.neuto-portal-app) .n-media-platform .n-btn--primary{background:#111419;color:#fff;border-color:#111419}
body:not(.neuto-portal-app) .n-media-platform .n-btn--primary:hover{color:#05070a;border-color:transparent}
body:not(.neuto-portal-app) .n-media-platform .n-tag{background:#fff;color:#6b747b;border-color:#d1d4d2}

/* Model cards: state-of-the-art depth, pointer glow and edge light. */
body:not(.neuto-portal-app) #models{
  background:linear-gradient(180deg,#07090d,#05070a);
}
body:not(.neuto-portal-app) .n-card{
  background:
    linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.012)),
    #0a0e14;
  color:#f3f3ef;
  border-color:rgba(255,255,255,.09);
  box-shadow:0 16px 50px rgba(0,0,0,.22);
  min-height:230px;
  transition:border-color .4s var(--ease-out),box-shadow .5s var(--ease-out),translate .5s var(--ease-out),scale .5s var(--ease-out),background .4s ease;
  isolation:isolate;
}
body:not(.neuto-portal-app) .n-card::before{
  opacity:.34;
  background:radial-gradient(520px circle at var(--mx,50%) var(--my,50%),rgba(112,130,255,.16),rgba(70,245,212,.055) 33%,transparent 66%);
}
body:not(.neuto-portal-app) .n-card::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;border-radius:inherit;padding:1px;
  background:linear-gradient(115deg,transparent 10%,rgba(255,255,255,.08) 34%,rgba(70,245,212,.16) 50%,rgba(155,107,255,.13) 66%,transparent 88%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  opacity:0;transition:opacity .45s var(--ease-out);
}
body:not(.neuto-portal-app) .n-card:hover{
  border-color:rgba(255,255,255,.18);box-shadow:0 34px 90px rgba(0,0,0,.42);translate:0 -8px;scale:1.008;
}
body:not(.neuto-portal-app) .n-card:hover::before{opacity:1}
body:not(.neuto-portal-app) .n-card:hover::after{opacity:1}
body:not(.neuto-portal-app) .n-card p{color:#8f99a4}
body:not(.neuto-portal-app) .n-card .n-tag{justify-self:start}
@media(min-width:900px){
  body:not(.neuto-portal-app) .n-grid--bento>.n-card:first-child{min-height:330px;background:linear-gradient(145deg,rgba(70,245,212,.045),rgba(155,107,255,.06) 52%,rgba(255,255,255,.018)),#090d13}
  body:not(.neuto-portal-app) .n-grid--bento>.n-card:nth-child(4){background:#f4f3ee;color:#111419;border-color:#f4f3ee}
  body:not(.neuto-portal-app) .n-grid--bento>.n-card:nth-child(4) p{color:#626a72}
  body:not(.neuto-portal-app) .n-grid--bento>.n-card:nth-child(4) .n-tag{background:#fff;color:#606970;border-color:#d7d9d7}
}

/* Proof band reads like an institutional operating ledger. */
body:not(.neuto-portal-app) .n-media-proof{
  background:#020304;padding-block:clamp(5rem,9vw,8rem);border-top:1px solid rgba(255,255,255,.055);border-bottom:1px solid rgba(255,255,255,.055);
}
body:not(.neuto-portal-app) .n-media-proof__row{background:#080b0f;border-color:rgba(255,255,255,.09);box-shadow:0 28px 90px rgba(0,0,0,.34)}
body:not(.neuto-portal-app) .n-media-proof__row>div{border-color:rgba(255,255,255,.08);transition:background .35s ease,translate .4s var(--ease-out)}
body:not(.neuto-portal-app) .n-media-proof__row>div:hover{background:rgba(255,255,255,.035);translate:0 -3px}
body:not(.neuto-portal-app) .n-media-proof__row span{color:#687481}
body:not(.neuto-portal-app) .n-media-proof__row strong{color:#edf0ec}

/* Supporting white access section, with one dark featured institutional card. */
body:not(.neuto-portal-app) #plans{
  background:#f4f3ee;color:#111419;border-top:1px solid #dedfdb;border-bottom:1px solid #dedfdb;
}
body:not(.neuto-portal-app) #plans .n-lede{color:#626a72}
body:not(.neuto-portal-app) #plans .n-eyebrow{color:#7e878e}
body:not(.neuto-portal-app) #plans .n-plan{
  background:#fff;color:#111419;border-color:#d8dad8;box-shadow:0 18px 56px rgba(16,21,26,.065);
  transition:translate .45s var(--ease-out),box-shadow .45s var(--ease-out),border-color .35s ease;
}
body:not(.neuto-portal-app) #plans .n-plan:hover{translate:0 -8px;box-shadow:0 30px 80px rgba(16,21,26,.13);border-color:#c4c8c5}
body:not(.neuto-portal-app) #plans .n-plan p,
body:not(.neuto-portal-app) #plans .n-list li{color:#626a72}
body:not(.neuto-portal-app) #plans .n-tag{background:#f8f8f5;border-color:#d8dad8;color:#737c83}
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"]{
  background:linear-gradient(145deg,#10161e,#070a0e);color:#f4f3ef;border-color:#1a222c;box-shadow:0 28px 80px rgba(6,9,12,.28);
}
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"] p,
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"] .n-list li{color:#9aa4ae}
body:not(.neuto-portal-app) #plans .n-plan[data-featured="true"] .n-tag{background:rgba(3,5,8,.45);color:var(--n-foil-a);border-color:rgba(70,245,212,.30)}
body:not(.neuto-portal-app) #plans .n-plan .n-btn{background:#fff;color:#111419;border-color:#cbd0cc}
body:not(.neuto-portal-app) #plans .n-plan .n-btn--primary{background:#f4f3ee;color:#07090c;border-color:#f4f3ee}

/* Final statement returns to black. */
body:not(.neuto-portal-app) .n-final-cta{
  background:
    radial-gradient(600px 380px at 50% 65%,rgba(92,106,255,.09),transparent 66%),
    #05070a;
  border-top:1px solid rgba(255,255,255,.07);
  min-height:68vh;display:grid;align-items:center;
}

/* Footer remains dark, sparse and institutional. */
body:not(.neuto-portal-app) .n-footer,
body:not(.neuto-portal-app) .site-footer{
  background:#05070a;color:#f4f3ee;border-top:1px solid rgba(255,255,255,.08);
}
body:not(.neuto-portal-app) .n-footer a,
body:not(.neuto-portal-app) .site-footer a{color:#8e98a3}
body:not(.neuto-portal-app) .n-footer a:hover,
body:not(.neuto-portal-app) .site-footer a:hover{color:#fff}

/* Existing Creator Passport public content adopts the same dark institution. */
body:not(.neuto-portal-app) .section-dark,
body:not(.neuto-portal-app) .closing-section-v2,
body:not(.neuto-portal-app) .closing-section,
body:not(.neuto-portal-app) .workflow-section{
  background:#070a0e!important;color:#f3f3ef!important;border-color:rgba(255,255,255,.075)!important;
}
body:not(.neuto-portal-app) .section-dark p,
body:not(.neuto-portal-app) .dark-section-intro p,
body:not(.neuto-portal-app) .workflow-copy p{color:#959faa!important}
body:not(.neuto-portal-app) .workflow-panel,
body:not(.neuto-portal-app) .api-window{
  background:#0b1016;color:#edf0ec;border-color:rgba(255,255,255,.10);box-shadow:var(--n-shadow-card);
}
body:not(.neuto-portal-app) .workflow-tabs{border-bottom-color:rgba(255,255,255,.09)}
body:not(.neuto-portal-app) .workflow-tabs button{background:#0b1016;color:#8e98a3;border-right-color:rgba(255,255,255,.08)}
body:not(.neuto-portal-app) .workflow-tabs button.is-active{background:#f2f1ec;color:#0a0c10}
body:not(.neuto-portal-app) .workflow-object{border-right-color:rgba(255,255,255,.08)}
body:not(.neuto-portal-app) .workflow-object strong,
body:not(.neuto-portal-app) .workflow-io strong{color:#ecf0ec}
body:not(.neuto-portal-app) .workflow-io>div{border-top-color:rgba(255,255,255,.08)}
body:not(.neuto-portal-app) .api-window-top{border-bottom-color:rgba(255,255,255,.08)}
body:not(.neuto-portal-app) .api-window-top span{background:#f3f2ed;color:#0a0d11}
body:not(.neuto-portal-app) .btn-ghost-dark{color:#f1f2ee;border-color:rgba(255,255,255,.18)}

/* Interior public pages: dark masthead + white editorial body. */
body:not(.neuto-portal-app) .public-page-hero{
  background:
    radial-gradient(700px 460px at 80% 20%,rgba(155,107,255,.08),transparent 66%),
    #06080c;
  color:#f4f3ef;border-bottom:1px solid rgba(255,255,255,.08);
}
body:not(.neuto-portal-app) .public-page-hero p{color:#9aa4ae}
body:not(.neuto-portal-app) .public-page-content,
body:not(.neuto-portal-app) .usecase-section,
body:not(.neuto-portal-app) .legal-section,
body:not(.neuto-portal-app) .contact-section{background:#f4f3ee;color:#111419}
body:not(.neuto-portal-app) .usecase-detail,
body:not(.neuto-portal-app) .scope-grid>div,
body:not(.neuto-portal-app) .contact-card,
body:not(.neuto-portal-app) .legal-card{
  background:#fff;color:#111419;border-color:#d9dbd8;box-shadow:0 16px 52px rgba(16,22,28,.055);
}

/* Cursor and progress become subtle security-film details. */
body:not(.neuto-portal-app) .n-progress{box-shadow:0 0 18px rgba(70,245,212,.18)}
body:not(.neuto-portal-app) .n-cursor{border-color:rgba(255,255,255,.24)}

/* Card micro-motion classes populated by media-motion.js. */
body:not(.neuto-portal-app) .n-preset,
body:not(.neuto-portal-app) .n-plan,
body:not(.neuto-portal-app) .n-media-platform__item,
body:not(.neuto-portal-app) .n-media-proof__row>div{
  position:relative;overflow:hidden;
}
body:not(.neuto-portal-app) .n-preset::after,
body:not(.neuto-portal-app) .n-plan::after,
body:not(.neuto-portal-app) .n-media-platform__item::after,
body:not(.neuto-portal-app) .n-media-proof__row>div::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(360px circle at var(--mx,50%) var(--my,50%),rgba(155,107,255,.10),transparent 62%);
  transition:opacity .4s var(--ease-out);
}
body:not(.neuto-portal-app) .n-preset:hover::after,
body:not(.neuto-portal-app) .n-plan:hover::after,
body:not(.neuto-portal-app) .n-media-platform__item:hover::after,
body:not(.neuto-portal-app) .n-media-proof__row>div:hover::after{opacity:1}

@media(max-width:980px){
  body:not(.neuto-portal-app) .n-hero{min-height:auto;padding-top:9rem}
  body:not(.neuto-portal-app) .n-chip-stage{margin-top:1rem}
  body:not(.neuto-portal-app) .n-card{min-height:210px}
}
@media(max-width:720px){
  body:not(.neuto-portal-app) .n-aurora{opacity:.30}
  body:not(.neuto-portal-app) .n-console{border-radius:18px}
  body:not(.neuto-portal-app) .n-console__bar{flex-wrap:wrap}
  body:not(.neuto-portal-app) .n-console__field{align-items:stretch;flex-wrap:wrap}
  body:not(.neuto-portal-app) .n-console__field .n-btn{width:100%}
  body:not(.neuto-portal-app) .n-chip{width:min(420px,92vw)}
  body:not(.neuto-portal-app) #moves .n-media-proof__row{box-shadow:none}
  body:not(.neuto-portal-app) .n-card{min-height:0}
  body:not(.neuto-portal-app) .n-final-cta{min-height:58vh}
}

@media(prefers-reduced-motion:reduce){
  body:not(.neuto-portal-app) .n-console::before{animation:none!important}
  body:not(.neuto-portal-app) .n-card,
  body:not(.neuto-portal-app) .n-plan,
  body:not(.neuto-portal-app) .n-preset{translate:none!important;scale:1!important}
}


/* ==========================================================================
   Neuto v3.3 — AI lockup + refined hero identity
   Existing waveform icon + Neuto™ wordmark. Portal product identity remains
   Neuto™ Creator Passport so operational navigation is not rebranded.
   ========================================================================== */
body:not(.neuto-portal-app) .nav-brand-ai{
  display:inline-flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
body:not(.neuto-portal-app) .nav-brand-ai .nav-brand-icon{
  display:block;
  width:31px;
  height:31px;
  flex:0 0 31px;
  object-fit:contain;
  filter:drop-shadow(0 0 14px rgba(70,245,212,.16));
}
body:not(.neuto-portal-app) .nav-brand-ai .nav-brand-copy{
  display:flex;
  align-items:center;
  min-width:0;
}
body:not(.neuto-portal-app) .nav-brand-ai .nav-brand-copy strong{
  display:block;
  margin:0;
  color:#f5f4ef;
  font-family:"Bricolage Grotesque",Inter,system-ui,sans-serif;
  font-size:1.18rem;
  font-weight:760;
  line-height:1;
  letter-spacing:-.052em;
  white-space:nowrap;
}
body:not(.neuto-portal-app) .footer-nav-brand.nav-brand-ai .nav-brand-icon{
  width:34px;
  height:34px;
  flex-basis:34px;
}
body:not(.neuto-portal-app) .footer-nav-brand.nav-brand-ai .nav-brand-copy strong{
  font-size:1.26rem;
}
body.neuto-login-page .login-brand-lockup{
  display:inline-flex;
  align-items:center;
  gap:11px;
}
body.neuto-login-page .login-brand-lockup .login-brand-icon{
  display:block!important;
  width:36px;
  height:36px;
  flex:0 0 36px;
  object-fit:contain;
  filter:drop-shadow(0 0 16px rgba(70,245,212,.15));
}
body.neuto-login-page .login-brand-copy strong{
  font-size:1.22rem!important;
  letter-spacing:-.045em;
}
body.neuto-login-page .login-brand-copy small{
  margin-top:4px;
}
@media(max-width:720px){
  body:not(.neuto-portal-app) .header-nav-brand.nav-brand-ai{gap:8px}
  body:not(.neuto-portal-app) .header-nav-brand.nav-brand-ai .nav-brand-icon{
    width:28px;height:28px;flex-basis:28px;
  }
  body:not(.neuto-portal-app) .header-nav-brand.nav-brand-ai .nav-brand-copy strong{
    font-size:1.02rem;
  }
}

/* --------------------------------------------------------------------------
 * Neuto AI v3.4 — contact, legal and pricing polish
 * -------------------------------------------------------------------------- */
body:not(.neuto-portal-app) #plans .n-plan:not([data-featured="true"]) p,
body:not(.neuto-portal-app) #plans .n-plan:not([data-featured="true"]) .n-list li,
body:not(.neuto-portal-app) #plans .n-plan:not([data-featured="true"]) .n-plan__price small,
body:not(.neuto-portal-app) #plans .n-plan:not([data-featured="true"]) .n-tag,
body:not(.neuto-portal-app) #plans .n-eyebrow,
body:not(.neuto-portal-app) #plans .n-lede{color:#111419!important}

body:not(.neuto-portal-app) .contact-hero,
body:not(.neuto-portal-app) .legal-hero{
  background:
    radial-gradient(720px 420px at 82% 18%,rgba(92,106,255,.10),transparent 65%),
    radial-gradient(520px 360px at 18% 72%,rgba(70,245,212,.055),transparent 68%),
    #07090d;
  color:#fff;
  border-bottom:1px solid #1b2229;
}
body:not(.neuto-portal-app) .contact-hero::after,
body:not(.neuto-portal-app) .legal-hero::after{background:linear-gradient(90deg,var(--n-foil-a),var(--n-foil-b),var(--n-foil-c));opacity:.85}
body:not(.neuto-portal-app) .contact-hero .eyebrow,
body:not(.neuto-portal-app) .legal-hero .eyebrow{color:#8f9aa3}
body:not(.neuto-portal-app) .contact-hero p,
body:not(.neuto-portal-app) .legal-hero p{color:#aeb6bc;max-width:820px}
body:not(.neuto-portal-app) .legal-hero .legal-meta{color:#7f8a92;border-color:#2a3137}

body:not(.neuto-portal-app) .contact-section{background:#f4f3ee}
body:not(.neuto-portal-app) .contact-grid-premium{gap:clamp(3rem,6vw,6rem)}
body:not(.neuto-portal-app) .contact-direct-card{
  display:grid;gap:.35rem;margin:2rem 0 2.5rem;padding:1.35rem 1.45rem;border-radius:16px;
  background:#0a0d11;color:#fff;border:1px solid #1d242a;box-shadow:0 24px 64px rgba(7,10,13,.12);
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .35s ease;
}
body:not(.neuto-portal-app) .contact-direct-card:hover{transform:translateY(-4px);box-shadow:0 34px 80px rgba(7,10,13,.18);border-color:#313a42}
body:not(.neuto-portal-app) .contact-direct-kicker{font-family:var(--n-mono);font-size:.62rem;letter-spacing:.13em;color:#7f8990}
body:not(.neuto-portal-app) .contact-direct-card strong{font-size:clamp(1.25rem,2.1vw,1.65rem);letter-spacing:-.025em;color:#fff;overflow-wrap:anywhere}
body:not(.neuto-portal-app) .contact-direct-card>span:last-child{font-size:.72rem;color:#9ca5ab}
body:not(.neuto-portal-app) .contact-form-card-premium{
  position:relative;overflow:hidden;background:#fff;border-color:#d7d9d7;border-radius:20px;padding:clamp(1.4rem,2.5vw,2.2rem);
  box-shadow:0 28px 80px rgba(18,22,25,.10)
}
body:not(.neuto-portal-app) .contact-form-card-premium::before{
  content:"";position:absolute;inset:0 0 auto;height:3px;background:linear-gradient(90deg,var(--n-foil-a),var(--n-foil-b),var(--n-foil-c));opacity:.9
}
body:not(.neuto-portal-app) .form-grid-selects{align-items:end}
body:not(.neuto-portal-app) .contact-form-note{margin:0;font-size:.7rem;color:#687178}
body:not(.neuto-portal-app) .contact-form-note a{color:#111419;text-decoration:underline;text-underline-offset:3px}

body:not(.neuto-portal-app) .legal-section{background:#f4f3ee}
body:not(.neuto-portal-app) .legal-copy{min-width:0}
body:not(.neuto-portal-app) .legal-copy>section{
  background:#fff;border:1px solid #dddeda;border-radius:16px;padding:clamp(1.45rem,2.4vw,2rem);margin-bottom:16px;
  box-shadow:0 12px 34px rgba(18,22,25,.035)
}
body:not(.neuto-portal-app) .legal-copy>section h2{margin-top:0;color:#111419}
body:not(.neuto-portal-app) .legal-copy>section p{color:#525b61}
body:not(.neuto-portal-app) .legal-copy>section a{color:#111419;text-decoration:underline;text-underline-offset:3px}
body:not(.neuto-portal-app) .legal-intro-card{
  background:linear-gradient(145deg,#111720,#070a0e)!important;color:#fff!important;border-color:#1c242d!important;
  box-shadow:0 26px 76px rgba(7,10,13,.18)!important
}
body:not(.neuto-portal-app) .legal-intro-card span{display:block;margin-bottom:.8rem;font-family:var(--n-mono);font-size:.62rem;letter-spacing:.14em;color:var(--n-foil-a)}
body:not(.neuto-portal-app) .legal-intro-card strong{display:block;font-size:clamp(1.3rem,2.1vw,1.8rem);line-height:1.12;letter-spacing:-.03em;color:#fff}
body:not(.neuto-portal-app) .legal-intro-card p{color:#9da7ae!important;margin-bottom:0}
body:not(.neuto-portal-app) .legal-index{background:#fff;border-color:#dddeda;box-shadow:0 14px 44px rgba(18,22,25,.04)}
body:not(.neuto-portal-app) .legal-index a{color:#535c62}
body:not(.neuto-portal-app) .legal-index a:hover{color:#111419}

@media(max-width:980px){
  body:not(.neuto-portal-app) .contact-grid-premium{gap:2.5rem}
  body:not(.neuto-portal-app) .legal-copy>section{padding:1.35rem}
}
@media(max-width:720px){
  body:not(.neuto-portal-app) .contact-direct-card{margin:1.5rem 0 2rem;padding:1.15rem}
  body:not(.neuto-portal-app) .contact-form-card-premium{border-radius:16px}
  body:not(.neuto-portal-app) .legal-copy>section{border-radius:13px;padding:1.15rem}
}
body:not(.neuto-portal-app) .contact-direct-card{text-decoration:none}


/* --------------------------------------------------------------------------
 * Neuto AI v3.5 — legal spacing + dedicated pricing experience
 * -------------------------------------------------------------------------- */
body:not(.neuto-portal-app) .legal-layout{
  grid-template-columns:minmax(220px,250px) minmax(0,820px);
  gap:clamp(3rem,6vw,6rem);
}
body:not(.neuto-portal-app) .legal-index{
  border:1px solid #d9dcda!important;
  border-radius:18px!important;
  padding:1.45rem 1.5rem 1.55rem!important;
  gap:.62rem;
  overflow:hidden;
}
body:not(.neuto-portal-app) .legal-index>span{grid-column:1/-1;margin:0 0 .35rem;color:#747e85}
body:not(.neuto-portal-app) .legal-index a{
  display:block;
  line-height:1.38;
  padding:.16rem 0;
  overflow-wrap:anywhere;
}
body:not(.neuto-portal-app) .legal-copy>section{
  padding:clamp(1.8rem,3vw,2.6rem)!important;
  margin-bottom:1.15rem!important;
}
body:not(.neuto-portal-app) .legal-copy>section h2{margin-bottom:1rem}
body:not(.neuto-portal-app) .legal-copy>section p{line-height:1.78;margin-top:0}
body:not(.neuto-portal-app) .legal-copy>section p:last-child{margin-bottom:0}

/* Dedicated pricing page */
body:not(.neuto-portal-app) .pricing-hero{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(780px 460px at 82% 14%,rgba(92,106,255,.12),transparent 66%),
    radial-gradient(600px 420px at 14% 78%,rgba(70,245,212,.06),transparent 70%),
    #07090d;
  color:#fff;
  border-bottom:1px solid #1d242b;
}
body:not(.neuto-portal-app) .pricing-hero::after{
  content:"";position:absolute;left:max(3vw,24px);right:max(3vw,24px);bottom:0;height:3px;
  background:linear-gradient(90deg,var(--n-foil-a),var(--n-foil-b),var(--n-foil-c));opacity:.72;
}
body:not(.neuto-portal-app) .pricing-hero .eyebrow{color:#87929a}
body:not(.neuto-portal-app) .pricing-hero p{color:#aab3ba;max-width:860px}
body:not(.neuto-portal-app) .pricing-page{background:#f4f3ee;color:#111419}
body:not(.neuto-portal-app) .pricing-page .n-section-head{max-width:840px}
body:not(.neuto-portal-app) .pricing-page .n-section-head .n-eyebrow{color:#687279}
body:not(.neuto-portal-app) .pricing-page .n-section-head .n-lede{color:#535c62}
body:not(.neuto-portal-app) .pricing-plan-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:clamp(2.25rem,4vw,3.5rem);
}
body:not(.neuto-portal-app) .pricing-plan-card{
  position:relative;min-width:0;display:flex;flex-direction:column;gap:1.15rem;
  padding:clamp(1.55rem,2.5vw,2.25rem);border:1px solid #d7d9d7;border-radius:22px;
  background:#fff;color:#111419;box-shadow:0 20px 60px rgba(12,16,19,.055);overflow:hidden;
  transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out),border-color .35s ease;
}
body:not(.neuto-portal-app) .pricing-plan-card::before{
  content:"";position:absolute;inset:0 0 auto;height:3px;background:#111419;opacity:.12;
}
body:not(.neuto-portal-app) .pricing-plan-card:hover{transform:translateY(-5px);border-color:#bfc4c2;box-shadow:0 30px 78px rgba(12,16,19,.10)}
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"]{
  background:linear-gradient(150deg,#111720,#070a0e);color:#fff;border-color:#1f2730;
  box-shadow:0 28px 82px rgba(7,10,13,.18);
}
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"]::before{background:linear-gradient(90deg,var(--n-foil-a),var(--n-foil-b),var(--n-foil-c));opacity:1}
body:not(.neuto-portal-app) .pricing-plan-card .n-tag{justify-self:start;color:#111419;border-color:#d1d5d3;background:#f7f8f6}
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"] .n-tag{color:#d9fff8;background:rgba(70,245,212,.07);border-color:rgba(70,245,212,.24)}
body:not(.neuto-portal-app) .pricing-plan-card .n-plan__price{margin:.25rem 0 0;color:#111419}
body:not(.neuto-portal-app) .pricing-plan-card .n-plan__price small{color:#111419!important}
body:not(.neuto-portal-app) .pricing-plan-card>p:not(.n-plan__price){margin:0;color:#111419;line-height:1.6}
body:not(.neuto-portal-app) .pricing-plan-card .n-list{margin:.25rem 0 0;flex:1}
body:not(.neuto-portal-app) .pricing-plan-card .n-list li{color:#111419!important;line-height:1.5}
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"] .n-plan__price,
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"]>p:not(.n-plan__price),
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"] .n-list li{color:#fff!important}
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"] .n-plan__price small{color:#a9b1b7!important}
body:not(.neuto-portal-app) .pricing-plan-card .n-btn{margin-top:.4rem;justify-content:center;min-height:46px}
body:not(.neuto-portal-app) .pricing-plan-card:not([data-featured="true"]) .n-btn{background:#111419;color:#fff;border-color:#111419}
body:not(.neuto-portal-app) .pricing-plan-card[data-featured="true"] .n-btn{background:#fff;color:#111419;border-color:#fff}

body:not(.neuto-portal-app) .pricing-value-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#d9dcda;border:1px solid #d9dcda;border-radius:20px;overflow:hidden;
}
body:not(.neuto-portal-app) .pricing-value-grid article{background:#fff;padding:clamp(1.35rem,2.5vw,2rem);min-width:0}
body:not(.neuto-portal-app) .pricing-value-grid span{display:block;font-family:var(--n-mono);font-size:.58rem;letter-spacing:.13em;color:#7a8389;margin-bottom:2rem}
body:not(.neuto-portal-app) .pricing-value-grid h3{font-size:1.05rem;letter-spacing:-.025em;margin:0 0 .65rem}
body:not(.neuto-portal-app) .pricing-value-grid p{margin:0;color:#555f65;font-size:.84rem;line-height:1.6}

body:not(.neuto-portal-app) .pricing-enterprise{
  background:linear-gradient(145deg,#111720,#070a0e);color:#fff;border-top:1px solid #1b232a;border-bottom:1px solid #1b232a;
}
body:not(.neuto-portal-app) .pricing-enterprise-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(3rem,7vw,7rem);align-items:start}
body:not(.neuto-portal-app) .pricing-enterprise .n-eyebrow{color:#7f8a92}
body:not(.neuto-portal-app) .pricing-enterprise .n-lede{color:#a4adb4}
body:not(.neuto-portal-app) .pricing-enterprise-list{display:grid;border-top:1px solid #252e35}
body:not(.neuto-portal-app) .pricing-enterprise-list article{display:grid;grid-template-columns:42px 1fr;gap:1rem;padding:1.35rem 0;border-bottom:1px solid #252e35}
body:not(.neuto-portal-app) .pricing-enterprise-list article>span{font-family:var(--n-mono);font-size:.58rem;color:#6f7b84;padding-top:.18rem}
body:not(.neuto-portal-app) .pricing-enterprise-list h3{font-size:1rem;margin:0 0 .35rem;color:#fff}
body:not(.neuto-portal-app) .pricing-enterprise-list p{font-size:.82rem;line-height:1.6;color:#97a1a8;margin:0}

body:not(.neuto-portal-app) .pricing-comparison-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid #d9dcda;border-radius:18px;background:#fff}
body:not(.neuto-portal-app) .pricing-comparison{width:100%;min-width:760px;border-collapse:collapse;color:#111419}
body:not(.neuto-portal-app) .pricing-comparison th,
body:not(.neuto-portal-app) .pricing-comparison td{padding:1rem 1.15rem;text-align:left;border-bottom:1px solid #e2e4e2;font-size:.8rem;vertical-align:top}
body:not(.neuto-portal-app) .pricing-comparison th{font-family:var(--n-mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:#687279;background:#f8f8f5}
body:not(.neuto-portal-app) .pricing-comparison tr:last-child td{border-bottom:0}
body:not(.neuto-portal-app) .pricing-comparison td:first-child{font-weight:650;width:26%}

body:not(.neuto-portal-app) .pricing-process{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
body:not(.neuto-portal-app) .pricing-process article{background:#fff;border:1px solid #d9dcda;border-radius:18px;padding:1.5rem}
body:not(.neuto-portal-app) .pricing-process span{font-family:var(--n-mono);font-size:.58rem;letter-spacing:.12em;color:#7b858b}
body:not(.neuto-portal-app) .pricing-process h3{font-size:1.05rem;margin:2.2rem 0 .55rem}
body:not(.neuto-portal-app) .pricing-process p{margin:0;color:#596269;font-size:.84rem;line-height:1.62}

body:not(.neuto-portal-app) .pricing-faq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
body:not(.neuto-portal-app) .pricing-faq article{background:#fff;border:1px solid #d9dcda;border-radius:18px;padding:1.45rem 1.55rem}
body:not(.neuto-portal-app) .pricing-faq h3{font-size:.98rem;margin:0 0 .6rem}
body:not(.neuto-portal-app) .pricing-faq p{margin:0;color:#596269;font-size:.82rem;line-height:1.65}

body:not(.neuto-portal-app) .pricing-cta{background:#fff;color:#111419;border-top:1px solid #dadcd9}
body:not(.neuto-portal-app) .pricing-cta-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2rem;align-items:end}
body:not(.neuto-portal-app) .pricing-cta .n-lede{color:#535c62}

@media(max-width:980px){
  body:not(.neuto-portal-app) .legal-layout{grid-template-columns:1fr;gap:2rem}
  body:not(.neuto-portal-app) .legal-index{position:static!important;grid-template-columns:repeat(2,minmax(0,1fr));padding:1.25rem!important}
  body:not(.neuto-portal-app) .pricing-plan-grid{grid-template-columns:1fr}
  body:not(.neuto-portal-app) .pricing-value-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  body:not(.neuto-portal-app) .pricing-enterprise-grid{grid-template-columns:1fr}
  body:not(.neuto-portal-app) .pricing-process{grid-template-columns:1fr}
  body:not(.neuto-portal-app) .pricing-cta-inner{grid-template-columns:1fr;align-items:start}
}
@media(max-width:720px){
  body:not(.neuto-portal-app) .legal-index{grid-template-columns:1fr 1fr;padding:1.15rem 1.2rem!important;border-radius:14px!important}
  body:not(.neuto-portal-app) .legal-copy>section{padding:1.35rem!important;border-radius:14px!important}
  body:not(.neuto-portal-app) .pricing-plan-card{border-radius:17px;padding:1.35rem}
  body:not(.neuto-portal-app) .pricing-value-grid{grid-template-columns:1fr;border-radius:16px}
  body:not(.neuto-portal-app) .pricing-faq{grid-template-columns:1fr}
}
@media(max-width:430px){
  body:not(.neuto-portal-app) .legal-index{grid-template-columns:1fr}
  body:not(.neuto-portal-app) .legal-copy>section{padding:1.2rem!important}
}


/* ==========================================================================
   Neuto AI v3.6.1 — brand microtype + protected page gutters
   ========================================================================== */
body:not(.neuto-portal-app) .n-shell,
body:not(.neuto-portal-app) .container{
  width:min(1200px,calc(100% - 96px));
}

/* Give the icon and wordmark more deliberate breathing room. */
body:not(.neuto-portal-app) .nav-brand-ai{
  gap:14px;
}
body:not(.neuto-portal-app) .nav-brand-ai .nav-brand-copy strong,
body.neuto-login-page .login-brand-copy strong,
body.neuto-portal-app .portal-brand-copy strong{
  display:inline-flex;
  align-items:flex-start;
  gap:0;
}
.neuto-tm{
  display:inline-block;
  margin-left:.08em;
  font-size:.46em;
  line-height:1;
  font-weight:700;
  letter-spacing:0;
  transform:translateY(-.18em);
}
body:not(.neuto-portal-app) .footer-nav-brand.nav-brand-ai{gap:15px}
body.neuto-login-page .login-brand-lockup{gap:14px}

/* Clear disclosure directly beneath the hero prompt without changing the
   editable Studio block contract. */
body:not(.neuto-portal-app) .n-hero .n-console::after{
  content:"For Illustrative Purposes Only";
  position:relative;
  z-index:2;
  display:block;
  margin:.62rem .42rem .08rem;
  padding-top:.62rem;
  border-top:1px solid rgba(255,255,255,.08);
  color:rgba(219,224,228,.52);
  font-family:var(--n-machine);
  font-size:.54rem;
  font-weight:560;
  line-height:1.35;
  letter-spacing:.13em;
  text-transform:uppercase;
}

@media(max-width:980px){
  body:not(.neuto-portal-app) .n-shell,
  body:not(.neuto-portal-app) .container{
    width:min(1200px,calc(100% - 56px));
  }
}
@media(max-width:720px){
  body:not(.neuto-portal-app) .n-shell,
  body:not(.neuto-portal-app) .container{
    width:calc(100% - 32px);
  }
  body:not(.neuto-portal-app) .header-nav-brand.nav-brand-ai{gap:10px}
  body:not(.neuto-portal-app) .n-hero .n-console::after{
    margin:.55rem .2rem .04rem;
    padding-top:.55rem;
    font-size:.5rem;
  }
}
@media(max-width:390px){
  body:not(.neuto-portal-app) .n-shell,
  body:not(.neuto-portal-app) .container{
    width:calc(100% - 24px);
  }
}


/* ==========================================================================
   Neuto AI v3.6.2 — light login contrast hardening
   The public Studio is dark-first, but /login/ is intentionally a light
   enterprise surface. These explicit colors prevent the broad public dark
   palette from being inherited by login headings, labels and account links.
   ========================================================================== */
body.neuto-login-page{
  background:#ffffff!important;
  color:#111419!important;
  color-scheme:light;
}
body.neuto-login-page .custom-login-shell{
  color:#111419;
}
body.neuto-login-page .login-brand-panel{
  background:#ffffff!important;
  color:#111419!important;
  border-right:1px solid #e0e4e5!important;
}
body.neuto-login-page .login-brand-copy strong,
body.neuto-login-page .login-brand-copy h1{
  color:#111419!important;
  -webkit-text-fill-color:#111419;
}
body.neuto-login-page .login-brand-copy .eyebrow{
  color:#6f7880!important;
}
body.neuto-login-page .login-brand-copy p{
  color:#566169!important;
}
body.neuto-login-page .login-brand-copy small,
body.neuto-login-page .login-trust-strip{
  color:#6f7880!important;
}
body.neuto-login-page .login-form-panel{
  background:#f7f8f8!important;
  color:#111419!important;
  color-scheme:light;
}
body.neuto-login-page .login-form-head>span{
  color:#667078!important;
}
body.neuto-login-page .login-form-head h2{
  color:#111419!important;
  -webkit-text-fill-color:#111419;
}
body.neuto-login-page .login-form-head p{
  color:#59636a!important;
}
body.neuto-login-page .neuto-login-form,
body.neuto-login-page .neuto-login-form>label{
  color:#252c31!important;
}
body.neuto-login-page .neuto-login-form input[type=text],
body.neuto-login-page .neuto-login-form input[type=password]{
  background:#ffffff!important;
  border-color:#c8ced1!important;
  color:#111419!important;
  caret-color:#111419;
  -webkit-text-fill-color:#111419;
  opacity:1;
}
body.neuto-login-page .neuto-login-form input::placeholder{
  color:#8a9298!important;
  -webkit-text-fill-color:#8a9298;
  opacity:1;
}
body.neuto-login-page .neuto-login-form input:focus{
  border-color:#5e686f!important;
  box-shadow:0 0 0 3px rgba(17,20,25,.09)!important;
}
body.neuto-login-page .neuto-login-form input:-webkit-autofill,
body.neuto-login-page .neuto-login-form input:-webkit-autofill:hover,
body.neuto-login-page .neuto-login-form input:-webkit-autofill:focus{
  -webkit-text-fill-color:#111419!important;
  box-shadow:0 0 0 1000px #ffffff inset!important;
  transition:background-color 9999s ease-out 0s;
}
body.neuto-login-page .login-options,
body.neuto-login-page .remember-row,
body.neuto-login-page .remember-row span{
  color:#566169!important;
}
body.neuto-login-page .login-options a,
body.neuto-login-page .login-public-link{
  color:#374149!important;
  text-decoration-color:#9ca4a9;
}
body.neuto-login-page .login-options a:hover,
body.neuto-login-page .login-public-link:hover{
  color:#111419!important;
}
body.neuto-login-page .login-security-note{
  border-top-color:#d6dcde!important;
}
body.neuto-login-page .login-security-note p{
  color:#69737a!important;
}
body.neuto-login-page .already-auth{
  color:#111419!important;
  background:#ffffff!important;
  border-color:#d5dadd!important;
}
body.neuto-login-page .already-auth>strong{color:#111419!important}
body.neuto-login-page .already-auth>p{color:#626c73!important}
body.neuto-login-page .form-message.success{
  color:#155f3c!important;
  background:#f1faf5!important;
  border-color:#b9dbc7!important;
}
body.neuto-login-page .form-message.error{
  color:#8a2727!important;
  background:#fff5f5!important;
  border-color:#e1c0c0!important;
}
body.neuto-login-page .login-submit{
  background:#0e1113!important;
  border-color:#0e1113!important;
  color:#ffffff!important;
  -webkit-text-fill-color:#ffffff;
}
body.neuto-login-page .login-submit:hover{
  background:#23282c!important;
}


/* ==========================================================================
   Neuto AI v3.6.3 — expanded hero composition + simplified Passport title
   The public hero uses more of the available canvas while retaining a
   deliberate protected gutter. The Creator Passport title is kept concise.
   ========================================================================== */
@media (min-width:1180px){
  body:not(.neuto-portal-app) .n-shell,
  body:not(.neuto-portal-app) .container{
    width:min(1360px,calc(100% - 112px));
  }
  body:not(.neuto-portal-app) .n-hero__grid{
    grid-template-columns:minmax(0,1.28fr) minmax(390px,.72fr);
    gap:clamp(3rem,4.25vw,4.75rem);
  }
  body:not(.neuto-portal-app) .n-hero__copy{
    min-width:0;
    max-width:none;
  }
  body:not(.neuto-portal-app) .n-hero-type{
    width:100%;
    max-width:13.5ch;
    font-size:clamp(5.6rem,7vw,7.15rem);
    line-height:.92;
    letter-spacing:-.064em;
  }
  body:not(.neuto-portal-app) .n-hero .n-lede{
    max-width:760px;
  }
  body:not(.neuto-portal-app) .n-hero .n-console{
    max-width:720px;
  }
  body:not(.neuto-portal-app) .n-chip-stage{
    min-width:0;
  }
}
@media (min-width:1021px) and (max-width:1179px){
  body:not(.neuto-portal-app) .n-hero__grid{
    grid-template-columns:minmax(0,1.16fr) minmax(360px,.84fr);
    gap:2.5rem;
  }
  body:not(.neuto-portal-app) .n-hero-type{max-width:12ch}
}

/* Hide an obsolete second hero line if an older editable block still emits an
   empty line wrapper, avoiding leftover vertical space after the copy change. */
body:not(.neuto-portal-app) .n-hero-type .n-reveal-line:empty,
body:not(.neuto-portal-app) .n-hero-type .n-reveal-line:has(> span:empty){display:none}


/* Neuto v3.6.4 — simplified public brand lockup. */
body:not(.neuto-portal-app) .nav-brand-ai .nav-brand-copy strong{letter-spacing:-.045em}

/* ==========================================================================
   Neuto v3.6.7 — authoritative monochrome icon lockup
   ========================================================================== */
body:not(.neuto-portal-app) .nav-brand-ai .nav-brand-icon,
body:not(.neuto-portal-app) .footer-nav-brand.nav-brand-ai .nav-brand-icon,
body.neuto-login-page .login-brand-lockup .login-brand-icon{
  border-radius:50%;
  background:#000;
  object-fit:cover;
  filter:none!important;
  box-shadow:none!important;
}
body:not(.neuto-portal-app) .nav-brand-ai .nav-brand-copy strong{
  color:#f6f5f1;
}
body.neuto-login-page .login-brand-lockup .login-brand-copy strong{
  color:#101315!important;
}


/* Neuto v3.6.8 — final public wordmark treatment. */
body:not(.neuto-portal-app) .nav-brand-copy strong,
body.neuto-login-page .login-brand-copy strong,
body:not(.neuto-portal-app) .n-chip__head .n-h3{
  font-family:"Helvetica Neue",Helvetica,Arial,system-ui,-apple-system,sans-serif!important;
  font-weight:300!important;
  text-transform:uppercase!important;
  letter-spacing:.265em!important;
  line-height:.92!important;
  font-synthesis:none!important;
  -webkit-font-smoothing:antialiased;
}
body:not(.neuto-portal-app) .n-chip__head .n-h3{letter-spacing:.19em!important}
body:not(.neuto-portal-app) .neuto-tm,
body.neuto-login-page .neuto-tm{
  margin-left:.16em!important;
  font-family:Arial,Helvetica,sans-serif!important;
  font-size:.29em!important;
  font-weight:500!important;
  letter-spacing:0!important;
  text-transform:none!important;
  vertical-align:top!important;
  transform:translateY(-.12em)!important;
}
@media(max-width:720px){
  body:not(.neuto-portal-app) .nav-brand-copy strong,
  body.neuto-login-page .login-brand-copy strong{letter-spacing:.22em!important}
}

/* ========================================================================== 
   Neuto v3.7.0 — footer responsive architecture + mobile spacing
   Prevent narrow first-column collapse caused by the Studio auto-fit grid.
   The brand block gets full measure on mobile, navigation groups remain
   readable, and disclosure/legal rows flow below without collision.
   ========================================================================== */
body:not(.neuto-portal-app) .n-footer.site-footer{
  margin-top:0;
  padding-top:clamp(3.75rem,6vw,5.5rem);
  padding-bottom:clamp(2rem,4vw,3rem);
  overflow:hidden;
}
body:not(.neuto-portal-app) .n-footer__grid.footer-grid{
  grid-template-columns:minmax(250px,1.45fr) repeat(3,minmax(150px,1fr));
  gap:clamp(2.25rem,4vw,4.5rem);
  align-items:start;
}
body:not(.neuto-portal-app) .n-footer__grid.footer-grid > *{
  min-width:0;
}
body:not(.neuto-portal-app) .footer-brand-column{
  max-width:30rem;
}
body:not(.neuto-portal-app) .footer-position{
  max-width:28rem;
  margin:1.25rem 0 0;
  color:#8e98a3;
  font-size:.92rem;
  line-height:1.72;
  overflow-wrap:anywhere;
}
body:not(.neuto-portal-app) .footer-title{
  margin:0 0 1rem;
  color:#f4f3ee;
  font-size:.78rem;
  line-height:1.25;
}
body:not(.neuto-portal-app) .footer-links{
  display:grid;
  gap:.72rem;
  color:#8e98a3;
  font-size:.9rem;
  line-height:1.45;
}
body:not(.neuto-portal-app) .footer-links a{
  display:block;
  min-width:0;
  overflow-wrap:anywhere;
}
body:not(.neuto-portal-app) .n-disclosure{
  width:100%;
  max-width:82rem;
  margin:3.25rem 0 0;
  padding:1.5rem 0 0;
  border-top:1px solid rgba(255,255,255,.08);
  color:#747e88;
  font-size:.76rem;
  line-height:1.7;
}
body:not(.neuto-portal-app) .footer-bottom{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:1rem 2rem;
  margin-top:2rem;
  padding-top:1.35rem;
  border-top:1px solid rgba(255,255,255,.08);
  color:#747e88;
  font-size:.74rem;
  line-height:1.5;
}
body:not(.neuto-portal-app) .footer-bottom > *{
  min-width:0;
  overflow-wrap:anywhere;
}

@media(max-width:980px){
  body:not(.neuto-portal-app) .n-footer__grid.footer-grid{
    grid-template-columns:minmax(0,1.2fr) repeat(2,minmax(0,1fr));
    gap:3rem 2.25rem;
  }
  body:not(.neuto-portal-app) .footer-column-company{
    grid-column:2 / -1;
  }
}

@media(max-width:720px){
  body:not(.neuto-portal-app) .n-footer.site-footer{
    padding-top:3.5rem;
    padding-bottom:max(2.25rem,env(safe-area-inset-bottom));
  }
  body:not(.neuto-portal-app) .n-footer__grid.footer-grid{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:2.75rem 1.75rem!important;
  }
  body:not(.neuto-portal-app) .footer-brand-column{
    grid-column:1 / -1;
    max-width:100%;
    padding-bottom:.25rem;
  }
  body:not(.neuto-portal-app) .footer-brand-column .footer-brand{
    width:max-content;
    max-width:100%;
  }
  body:not(.neuto-portal-app) .footer-position{
    max-width:31rem;
    margin-top:1.15rem;
    font-size:.9rem;
    line-height:1.65;
  }
  body:not(.neuto-portal-app) .footer-column-company{
    grid-column:1 / -1;
    padding-top:.15rem;
  }
  body:not(.neuto-portal-app) .footer-column-company .footer-links{
    grid-template-columns:repeat(2,minmax(0,1fr));
    column-gap:1.5rem;
  }
  body:not(.neuto-portal-app) .footer-title{
    margin-bottom:1rem;
    font-size:.78rem;
  }
  body:not(.neuto-portal-app) .footer-links{
    gap:.82rem;
    font-size:.88rem;
  }
  body:not(.neuto-portal-app) .n-disclosure{
    margin-top:2.75rem;
    padding-top:1.35rem;
    font-size:.72rem;
    line-height:1.68;
  }
  body:not(.neuto-portal-app) .footer-bottom{
    grid-template-columns:1fr;
    gap:.55rem;
    margin-top:1.75rem;
    padding-top:1.25rem;
    font-size:.71rem;
  }
}

@media(max-width:390px){
  body:not(.neuto-portal-app) .n-footer__grid.footer-grid{
    gap:2.5rem 1.25rem!important;
  }
  body:not(.neuto-portal-app) .footer-column-company .footer-links{
    grid-template-columns:1fr 1fr;
    column-gap:1rem;
  }
  body:not(.neuto-portal-app) .footer-links{
    font-size:.84rem;
  }
}
