/*
 * YourLabs palette (from yourlabs.org wordmark):
 *   navy #22598b  magenta #ff4ec2  cyan #53daff  periwinkle #91acff  deep #183858
 * Overrides Bulma 1.0 CSS variables so djcrud's default Bulma theme follows brand.
 *
 * This file is app static (tracked). Do not put it in staticfiles/ or in
 * static/natnux_agent/ (Vite dump). See docs/design/frontend.rst.
 */

:root {
  --natnux-navy: #22598b;
  --natnux-navy-deep: #183858;
  --natnux-magenta: #ff4ec2;
  --natnux-cyan: #53daff;
  --natnux-periwinkle: #91acff;
  --natnux-glyph-new: #16a34a;
  --natnux-glyph-sessions: #eab308;
  --natnux-glyph-queue: #eab308;
  --natnux-glyph-close: #dc2626;
  --natnux-glyph-git: #f05033;
  --natnux-glyph-plan: #ff8c00;
  --natnux-glyph-term: #3e8ed0;
  --natnux-glyph-mcp: #14b8a6;
  --natnux-glyph-share: #ff4ec2;
  --natnux-glyph-promote: #d946ef;
  --natnux-glyph-preview: #0ea5e9;
  --natnux-glyph-publish: #16a34a;
  --natnux-glyph-unpublish: #dc2626;
  --natnux-glyph-browse: #ff8c00;
  --natnux-glyph-open: #3e8ed0;
  --natnux-glyph-site: #16a34a;
  --natnux-glyph-refresh: #8b5cf6;
  --natnux-glyph-newfile: #16a34a;
  --natnux-glyph-newfolder: #15803d;
  --natnux-glyph-upload: #f59e0b;
  --natnux-glyph-up: #64748b;
  --natnux-glyph-unbind: #d97706;
  --natnux-glyph-copy: #7c6af7;
  --natnux-glyph-download: #0ea5e9;
  --natnux-glyph-save: #16a34a;
  --natnux-glyph-hidden: #64748b;
  --natnux-glyph-search: #8b5cf6;
  --natnux-glyph-agent: #16a34a;
  --natnux-glyph-account: #64748b;
  /* Logo title-bar: magenta → periwinkle → cyan */
  --natnux-logo-gradient: linear-gradient(
    90deg,
    var(--natnux-magenta),
    var(--natnux-periwinkle),
    var(--natnux-cyan)
  );

  --bulma-scheme-h: 209;
  --bulma-scheme-s: 28%;

  --bulma-primary-h: 321deg;
  --bulma-primary-s: 100%;
  --bulma-primary-l: 45%;
  --bulma-primary-rgb: 230, 0, 150;

  --bulma-link-h: 209deg;
  --bulma-link-s: 61%;
  --bulma-link-l: 34%;
  --bulma-link-rgb: 34, 89, 139;

  --bulma-info-h: 193deg;
  --bulma-info-s: 100%;
  --bulma-info-l: 66%;
  --bulma-info-rgb: 83, 218, 255;

  --bulma-focus-h: 193deg;
  --bulma-focus-s: 100%;

  /* Active menu: navy wash, not solid --bulma-link-l (too dark/light for text). */
  --bulma-menu-item-selected-h: var(--bulma-link-h);
  --bulma-menu-item-selected-s: var(--bulma-link-s);
  --bulma-menu-item-selected-l: var(--bulma-link-l);
  --bulma-menu-item-selected-background-l: 88%;
  --bulma-menu-item-selected-color-l: var(--bulma-link-l);
}

[data-theme="light"] {
  --bulma-scheme-h: 209;
  --bulma-scheme-s: 28%;
  --bulma-primary-h: 321deg;
  --bulma-primary-s: 100%;
  --bulma-primary-l: 45%;
  --bulma-link-h: 209deg;
  --bulma-link-s: 61%;
  --bulma-link-l: 34%;
  --bulma-info-h: 193deg;
  --bulma-info-s: 100%;
  --bulma-info-l: 66%;
  --bulma-menu-item-selected-background-l: 88%;
  --bulma-menu-item-selected-color-l: var(--bulma-link-l);
}

[data-theme="dark"] {
  --bulma-scheme-h: 209;
  --bulma-scheme-s: 42%;
  --bulma-primary-l: 62%;
  --bulma-primary-rgb: 255, 61, 188;
  --bulma-link-l: 70%;
  --bulma-link-rgb: 132, 180, 225;
  --bulma-info-l: 70%;
  --bulma-menu-item-selected-background-l: 22%;
  --bulma-menu-item-selected-color-l: var(--bulma-link-l);
}

@media (prefers-color-scheme: dark) {
  :root {
    --bulma-scheme-h: 209;
    --bulma-scheme-s: 42%;
    --bulma-primary-l: 62%;
    --bulma-primary-rgb: 255, 61, 188;
    --bulma-link-l: 70%;
    --bulma-link-rgb: 132, 180, 225;
    --bulma-info-l: 70%;
    --bulma-menu-item-selected-background-l: 22%;
    --bulma-menu-item-selected-color-l: var(--bulma-link-l);
  }
}

.natnux-brand {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  color: inherit;
  text-decoration: none;
}

/* Bulma's .navbar-brand uses align-items: stretch. The brand link has no
   fixed height, so it stretches to fill the bar and self-centers its
   content -- but .natnux-icon-btn sets a fixed height, so it *can't*
   stretch, and flexbox falls back to top-aligning fixed-height children
   instead of centering them. Same container either way; just force
   center so the glyph row and logo actually sit on the same line. */
.navbar-brand {
  align-items: center;
  gap: 0.42rem;
}

button.natnux-brand {
  border: 0;
  background: transparent;
  padding: 0;
  cursor: pointer;
  font: inherit;
}

.natnux-brand img,
.natnux-brand-mark {
  display: block;
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
}

svg.natnux-brand-mark {
  overflow: visible;
}

/* Resting lift so the mark already reads as a thing in the air. */
.natnux-brand-mark {
  --natnux-float-y: -2.5px;
  filter:
    drop-shadow(0 3px 5px rgba(255, 78, 194, 0.22))
    drop-shadow(0 1px 8px rgba(83, 218, 255, 0.18));
}

.navbar-item:has(.natnux-brand-mark) {
  overflow: visible;
}

/* Extra space after the mascot so the clock-history glyph is not flush. */
.navbar-item.natnux-brand,
.navbar-brand > .navbar-item:has(.natnux-brand) {
  margin-inline-end: 0.3rem;
}

/* SPA brand uses the same hit box as the glyph row; the SVG stays 1.75rem. */
.djcrud-spa-toolbar .navbar-item.natnux-brand {
  width: 2.35rem;
  height: 2.35rem;
  padding: 0.3rem;
  justify-content: center;
  box-sizing: border-box;
}

.djcrud-spa-toolbar.navbar {
  overflow: visible;
}

/* Icon groups live in one navbar-item; hover/focus must stay on the button. */
.djcrud-spa-toolbar .navbar-item:hover,
.djcrud-spa-toolbar .navbar-item:focus,
.djcrud-spa-toolbar .navbar-item:focus-within {
  background: transparent;
  background-color: transparent;
  color: inherit;
}

.djcrud-spa-toolbar .natnux-icon-btn[title] {
  position: relative;
  overflow: visible;
}

.djcrud-spa-toolbar .natnux-icon-btn[title]:hover::after,
.djcrud-spa-toolbar .natnux-icon-btn[title]:focus-visible::after {
  content: attr(title);
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  transform: translateX(-50%);
  z-index: 80;
  padding: 0.2rem 0.45rem;
  border-radius: 0.3rem;
  background: var(--bulma-scheme-invert, #0a0a0a);
  color: var(--bulma-scheme-main, #fff);
  font-size: 0.7rem;
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
  box-shadow: 0 2px 8px rgba(10, 10, 10, 0.18);
}

/* Title chip sits over the menu if it stays up while the dropdown is open. */
.djcrud-spa-toolbar .dropdown.is-active .natnux-icon-btn[title]::after,
.djcrud-spa-toolbar .natnux-icon-btn[title][aria-expanded="true"]::after {
  content: none;
}

.natnux-icon-btns {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.38rem;
}

a.natnux-icon-btn,
button.natnux-icon-btn,
label.natnux-icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.35rem;
  height: 2.35rem;
  padding: 0.25rem;
  margin: 0;
  border: none;
  border-radius: 4px;
  background: transparent;
  box-shadow: none;
  color: var(--bulma-text, inherit);
  cursor: pointer;
  text-decoration: none;
  line-height: 1;
  box-sizing: border-box;
}

a.natnux-icon-btn:hover:not([aria-disabled="true"]),
button.natnux-icon-btn:hover:not(:disabled),
label.natnux-icon-btn:hover,
a.natnux-icon-btn:focus-visible,
button.natnux-icon-btn:focus-visible,
label.natnux-icon-btn:focus-within {
  background: var(--bulma-scheme-main-bis, rgba(10, 10, 10, 0.06));
  color: inherit;
}

button.natnux-icon-btn:disabled,
a.natnux-icon-btn[aria-disabled="true"],
.natnux-icon-btn:disabled {
  opacity: 0.35;
  cursor: not-allowed;
}

.natnux-icon-btn .icon,
.natnux-icon-btn i {
  color: inherit;
  margin: 0;
}

.natnux-icon-btn.is-new,
.natnux-icon-btn.is-newfile,
.natnux-icon-btn.is-publish,
.natnux-icon-btn.is-save {
  color: var(--natnux-glyph-new);
}
.natnux-icon-btn.is-newfolder {
  color: var(--natnux-glyph-newfolder);
}
.natnux-icon-btn.is-sessions {
  color: var(--natnux-glyph-sessions);
}
.natnux-icon-btn.is-close,
.natnux-icon-btn.is-unpublish,
.natnux-icon-btn.is-delete,
.natnux-icon-btn.is-remove,
.natnux-icon-btn.is-danger {
  color: var(--natnux-glyph-close);
}
.natnux-icon-btn.is-git {
  color: var(--natnux-glyph-git);
}
.natnux-icon-btn.is-plan {
  color: var(--natnux-glyph-plan);
}
.natnux-icon-btn.is-term {
  color: var(--natnux-glyph-term);
}
.natnux-icon-btn.is-agent {
  color: var(--natnux-glyph-agent);
}
.natnux-icon-btn .natnux-brand-mark,
.natnux-agent-mark {
  width: 1.25rem;
  height: 1.25rem;
}

/* List-row mascots are action glyphs, not the brand — no float/glow. */
.natnux-dash-folder-row .natnux-brand-mark,
.natnux-session-row .natnux-brand-mark {
  --natnux-float-y: 0;
  animation: none;
  filter: none;
  transform: none;
}
.natnux-dash-folder-row .natnux-brand-mark .natnux-ill-eye,
.natnux-session-row .natnux-brand-mark .natnux-ill-eye {
  animation: none;
}
.natnux-icon-btn.is-mcp {
  color: var(--natnux-glyph-mcp);
}
.natnux-icon-btn.is-share,
.natnux-icon-btn.is-invite {
  color: var(--natnux-glyph-share);
}
.natnux-icon-btn.is-preview {
  color: var(--natnux-glyph-preview);
}
.natnux-icon-btn.is-browse {
  color: var(--natnux-glyph-browse);
}
.natnux-icon-btn.is-open,
.natnux-icon-btn.is-view {
  color: var(--natnux-glyph-open);
}
.natnux-icon-btn.is-site {
  color: var(--natnux-glyph-site);
}
.natnux-icon-btn.is-promote {
  color: var(--natnux-glyph-promote);
}
.natnux-icon-btn.is-whatsapp { color: #25d366; }
.natnux-icon-btn.is-facebook { color: #1877f2; }
.natnux-icon-btn.is-linkedin { color: #0a66c2; }
.natnux-icon-btn.is-x { color: var(--bulma-text, inherit); }
.natnux-icon-btn.is-telegram { color: #229ed9; }
.natnux-icon-btn.is-email { color: var(--natnux-glyph-share); }
.natnux-icon-btn.is-google { color: #4285f4; }
.natnux-icon-btn.is-bing { color: #008373; }
.natnux-promote-url-row {
  display: flex;
  gap: 0.35rem;
  align-items: stretch;
}
.natnux-promote-url-row .input { flex: 1 1 auto; }
.natnux-promote-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.natnux-icon-btn.is-refresh {
  color: var(--natnux-glyph-refresh);
}
.natnux-icon-btn.is-upload {
  color: var(--natnux-glyph-upload);
}
.natnux-icon-btn.is-queue {
  color: var(--natnux-glyph-queue);
  gap: 0.15rem;
  width: auto;
  min-width: 2.35rem;
  padding-inline: 0.4rem;
}
.natnux-icon-btn.is-labeled {
  width: auto;
  min-width: 2.35rem;
  padding-inline: 0.45rem;
  gap: 0.3rem;
  font-size: 0.85rem;
}
.natnux-icon-btn.is-labeled .natnux-btn-label {
  line-height: 1;
}
.natnux-icon-btn.is-up,
.natnux-icon-btn.is-movetop,
.natnux-icon-btn.is-moveup,
.natnux-icon-btn.is-movedown,
.natnux-icon-btn.is-movebottom {
  color: var(--natnux-glyph-up);
}
.natnux-icon-btn.is-unbind {
  color: var(--natnux-glyph-unbind);
}
.natnux-icon-btn.is-copy {
  color: var(--natnux-glyph-copy);
}
.natnux-icon-btn.is-download {
  color: var(--natnux-glyph-download);
}
.natnux-icon-btn.is-hiddenfiles {
  color: var(--natnux-glyph-hidden);
}
.natnux-icon-btn.is-search {
  color: var(--natnux-glyph-search);
}

.djcrud-row-action.natnux-icon-btn {
  width: 1.75rem;
  height: 1.75rem;
  padding: 0;
}

@media (prefers-reduced-motion: no-preference) {
  /* Brand mark (the only nav affordance left, everywhere): gentle hover in
     the air, lifts on hover/focus. Eyes blink like the home-page mascot. */
  .natnux-brand-mark {
    animation: natnux-mark-float-glow 3.8s ease-in-out infinite;
  }

  .natnux-brand-mark .natnux-ill-eye {
    transform-box: fill-box;
    transform-origin: center;
    animation: natnux-blink-eye 5.6s ease-in-out infinite;
  }

  .natnux-brand:hover .natnux-brand-mark,
  .natnux-brand:focus-visible .natnux-brand-mark {
    animation: none;
    transform: translateY(-2px) scale(1.06);
    filter:
      drop-shadow(0 8px 12px rgba(255, 78, 194, 0.5))
      drop-shadow(0 0 14px rgba(145, 172, 255, 0.55))
      drop-shadow(0 0 10px rgba(83, 218, 255, 0.45));
  }
}

@media (prefers-reduced-motion: reduce) {
  .natnux-brand-mark,
  .natnux-brand-mark .natnux-ill-eye {
    animation: none;
  }
}

.natnux-home-mark {
  width: 6rem;
  height: 6rem;
}

body.natnux-nochrome {
  min-height: 100dvh;
  margin: 0;
  display: flex;
  flex-direction: column;
  font-family: system-ui, -apple-system, "Segoe UI", sans-serif;
  line-height: 1.5;
  color: var(--natnux-navy-deep, #183858);
  background: #fff;
}

body.natnux-nochrome .natnux-nochrome-top {
  display: flex;
  align-items: center;
  padding: 0.7rem 1.25rem;
  border-bottom: 1px solid #d0d7de;
  background: #fff;
}

body.natnux-nochrome .natnux-nochrome-top .natnux-brand {
  color: inherit;
  text-decoration: none;
}

body.natnux-nochrome .natnux-nochrome-main {
  flex: 1 0 auto;
  max-width: 38rem;
  margin: 0 auto;
  padding: 1.5rem 1.25rem 2rem;
  width: 100%;
  box-sizing: border-box;
}

body.natnux-home {
  background: #f4f7ff;
  text-align: initial;
}

body.natnux-home.natnux-nochrome .natnux-nochrome-top,
body.natnux-home.natnux-nochrome footer.natnux-nochrome-footer {
  background: #f4f7ff;
}

body.natnux-home.natnux-nochrome .natnux-nochrome-top {
  border-bottom-color: #e3eaf3;
}

body.natnux-home.natnux-nochrome .natnux-nochrome-main {
  max-width: 56rem;
  padding-bottom: 2.5rem;
}

body.natnux-home.natnux-nochrome footer.natnux-nochrome-footer {
  position: static;
}

body.natnux-legal {
  text-align: left;
}

body.natnux-home .natnux-home-hero {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.7rem;
  margin: 1.4rem 0 2.2rem;
  text-align: center;
}

body.natnux-home h1 {
  margin: 0;
  font-size: 2.5rem;
  font-weight: 750;
  letter-spacing: -0.02em;
}

body.natnux-home .natnux-home-tagline {
  margin: 0;
  font-size: 1.08rem;
  color: var(--natnux-navy, #22598b);
}

body.natnux-home .natnux-home-lead {
  margin: 0.55rem 0 0;
  max-width: 42rem;
  font-size: 1.32rem;
  font-weight: 650;
  line-height: 1.35;
  text-wrap: balance;
  color: var(--natnux-navy-deep, #183858);
}

body.natnux-home .natnux-home-lead-answer {
  margin: 0;
  font-size: 1.32rem;
  font-weight: 750;
  color: var(--natnux-navy, #22598b);
}

body.natnux-home .natnux-home-lead-sub {
  margin: 0.15rem 0 0.35rem;
  max-width: 32rem;
  font-size: 1.05rem;
  color: var(--natnux-navy, #22598b);
}

body.natnux-home .natnux-home-prompt {
  margin: 0.55rem 0 0;
  max-width: 36rem;
  padding: 0.7rem 1rem;
  font-size: 0.98rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: left;
  color: var(--natnux-navy-deep, #183858);
  background: #fff;
  border: 1px solid #e3eaf3;
  border-left: 4px solid var(--natnux-navy, #22598b);
  border-radius: 0.7rem;
}

body.natnux-home .natnux-home-hero .natnux-home-prompt {
  text-align: center;
  border-left-width: 1px;
  border-top: 4px solid var(--natnux-navy, #22598b);
}

body.natnux-home h2 {
  margin: 1.75rem 0 0.6rem;
  font-size: 1.28rem;
  font-weight: 700;
  text-wrap: balance;
}

body.natnux-home .natnux-home-band h2 {
  margin-top: 0;
}

body.natnux-home .natnux-home-copy {
  text-align: left;
}

body.natnux-home .natnux-home-copy p,
body.natnux-home .natnux-home-copy ul,
body.natnux-home .natnux-home-band p {
  margin: 0.6rem 0;
}

body.natnux-home .natnux-home-copy ul {
  list-style-position: outside;
  padding-left: 1.2rem;
}

body.natnux-home .natnux-home-copy li + li {
  margin-top: 0.35rem;
}

body.natnux-home a {
  color: var(--natnux-navy, #22598b);
}

body.natnux-home .natnux-home-band,
body.natnux-home .natnux-home-block {
  text-align: left;
  margin: 1.15rem 0;
  padding: 1.5rem 1.55rem 1.55rem;
  background: #fff;
  border: 1px solid #e3eaf3;
  border-radius: 1.2rem;
}

body.natnux-home .natnux-home-band {
  display: grid;
  grid-template-columns: minmax(10rem, 0.78fr) minmax(0, 1.55fr);
  gap: 1.1rem 1.75rem;
  align-items: center;
}

body.natnux-home .natnux-home-band-reverse {
  grid-template-columns: minmax(0, 1.55fr) minmax(10rem, 0.78fr);
}

body.natnux-home .natnux-home-band-reverse .natnux-ill {
  order: 2;
}

body.natnux-home .natnux-ill {
  width: 100%;
  height: auto;
  max-width: 22rem;
  justify-self: center;
  overflow: visible;
}

body.natnux-home .natnux-ill-card {
  width: 4.6rem;
  max-width: none;
  display: block;
  margin: 0;
}

body.natnux-home .natnux-home-punch {
  font-weight: 650;
  text-wrap: pretty;
  color: var(--natnux-navy, #22598b);
}

body.natnux-home .natnux-home-kicker {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--natnux-navy, #22598b);
}

body.natnux-home .natnux-home-block > h2,
body.natnux-home .natnux-home-kicker + h2 {
  margin-top: 0;
}

body.natnux-home .natnux-home-block > p,
body.natnux-home .natnux-home-block > ul:not(.natnux-home-cards) {
  max-width: 42rem;
}

body.natnux-home .natnux-home-copy .natnux-home-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.85rem;
  list-style: none;
  padding: 0;
  margin: 1rem 0 1.1rem;
  text-align: left;
}

body.natnux-home .natnux-home-copy .natnux-home-cards li {
  display: grid;
  grid-template-columns: 4.6rem 1fr;
  column-gap: 0.85rem;
  align-items: center;
  margin: 0;
  padding: 0.95rem 1rem;
  background: #f4f7ff;
  border: 1px solid #e3eaf3;
  border-radius: 1rem;
}

body.natnux-home .natnux-home-copy .natnux-home-cards li + li {
  margin-top: 0;
}

body.natnux-home .natnux-home-cards li::before {
  content: "";
  grid-column: 1 / -1;
  display: block;
  height: 3px;
  margin: -0.95rem -1rem 0.75rem;
  background: var(--natnux-logo-gradient);
  border-radius: 1rem 1rem 0 0;
}

body.natnux-home .natnux-home-cards p {
  margin: 0;
  font-size: 0.98rem;
  line-height: 1.4;
}

body.natnux-home .natnux-home-feature-list {
  color: #5b6b7a;
  font-size: 0.9rem;
  text-align: left;
  margin: 0.35rem 0 0.5rem;
}

body.natnux-home .natnux-cta-line {
  display: block;
  margin: 1.5rem 0 0.4rem;
  text-align: center;
}

body.natnux-home .natnux-home-band .natnux-cta-line,
body.natnux-home .natnux-home-block .natnux-cta-line {
  text-align: left;
  margin-bottom: 0;
}

body.natnux-home .natnux-cta {
  display: inline-block;
  margin: 0;
  padding: 0.8rem 1.7rem;
  background: var(--natnux-navy, #22598b);
  color: #fff;
  font-weight: 650;
  text-decoration: none;
  border-radius: 999px;
  box-shadow: 0 8px 20px rgba(34, 89, 139, 0.18);
}

body.natnux-home .natnux-cta:hover,
body.natnux-home .natnux-cta:focus {
  background: var(--natnux-navy-deep, #183858);
  color: #fff;
}

body.natnux-directory .natnux-home-street {
  text-align: left;
  margin: 1.15rem 0;
  padding: 1.6rem 1.55rem 1.7rem;
  background: #fff;
  border: 1px solid var(--natnux-line, #e9e4db);
  border-radius: 1.2rem;
}

body.natnux-directory .natnux-directory-grid {
  list-style: none;
  padding: 0;
  margin: 1.2rem 0 0;
  display: grid;
  gap: 1.1rem;
}

body.natnux-directory .natnux-directory-grid li {
  margin: 0;
}

body.natnux-directory .natnux-directory-card {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--natnux-line, #e9e4db);
  border-radius: 1.5rem;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 24px 60px rgba(33, 39, 51, 0.08);
}

body.natnux-directory .natnux-directory-card:hover,
body.natnux-directory .natnux-directory-card:focus {
  border-color: var(--natnux-periwinkle, #91acff);
  box-shadow:
    0 10px 22px rgba(255, 78, 194, 0.12),
    0 6px 16px rgba(83, 218, 255, 0.14);
}

body.natnux-directory .natnux-directory-bar {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.7rem 1rem;
  background: #faf8f4;
  border-bottom: 1px solid var(--natnux-line, #e9e4db);
}

body.natnux-directory .natnux-directory-dot {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 50%;
  background: #e7ddd0;
}

body.natnux-directory .natnux-directory-url {
  margin-left: 0.45rem;
  padding: 0.15rem 0.75rem;
  font-size: 0.75rem;
  color: var(--natnux-muted, #67707f);
  background: #fff;
  border: 1px solid var(--natnux-line, #e9e4db);
  border-radius: 999px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

body.natnux-directory .natnux-directory-pane {
  display: block;
  height: 11rem;
  background:
    radial-gradient(420px 180px at 80% 0%, rgba(255, 78, 194, 0.08), transparent 60%),
    radial-gradient(380px 160px at 0% 100%, rgba(83, 218, 255, 0.1), transparent 60%),
    #fbf8f3;
  overflow: hidden;
}

body.natnux-directory .natnux-directory-pane img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

body.natnux-directory .natnux-directory-card strong {
  display: block;
  margin: 0.85rem 1.05rem 0.25rem;
  font-family: var(--natnux-disp, inherit);
  font-size: 1.08rem;
  color: var(--natnux-ink, #212733);
}

body.natnux-directory .natnux-directory-desc {
  display: block;
  margin: 0 1.05rem 1.05rem;
  color: var(--natnux-muted, #67707f);
  font-size: 0.92rem;
  line-height: 1.45;
}

body.natnux-directory .natnux-directory-pages {
  display: flex;
  gap: 0.85rem;
  align-items: center;
  margin: 1.1rem 0 0;
}

@media (min-width: 52rem) {
  body.natnux-directory .natnux-directory-grid {
    grid-template-columns: 1fr 1fr;
  }

  body.natnux-directory .natnux-directory-grid li:first-child {
    grid-column: 1 / -1;
  }

  body.natnux-directory .natnux-directory-grid li:first-child .natnux-directory-pane {
    height: 16rem;
  }
}

@media (max-width: 40rem) {
  body.natnux-home .natnux-home-band,
  body.natnux-home .natnux-home-band-reverse {
    grid-template-columns: 1fr;
    text-align: center;
  }

  body.natnux-home .natnux-home-band-reverse .natnux-ill {
    order: 0;
  }

  body.natnux-home .natnux-home-band .natnux-home-prompt {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
    border-left-width: 1px;
    border-top: 4px solid var(--natnux-navy, #22598b);
  }

  body.natnux-home .natnux-home-band .natnux-cta-line,
  body.natnux-home .natnux-home-block .natnux-cta-line {
    text-align: center;
  }

  body.natnux-home .natnux-home-copy .natnux-home-cards {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: no-preference) {
  body.natnux-home .natnux-ill-smile,
  body.natnux-home .natnux-ill-eye,
  body.natnux-home .natnux-ill-cursor,
  body.natnux-home .natnux-ill-swirl,
  body.natnux-home .natnux-ill-wave,
  body.natnux-home .natnux-ill-prompt,
  body.natnux-home .natnux-ill-friend,
  body.natnux-home .natnux-ill-grump,
  body.natnux-home .natnux-ill-nice,
  body.natnux-home .natnux-ill-bubble,
  body.natnux-home .natnux-ill-bob,
  body.natnux-home .natnux-ill-fly,
  body.natnux-home .natnux-ill-spark,
  body.natnux-home .natnux-ill-folder,
  body.natnux-home .natnux-ill-lock,
  .natnux-ill-scene .natnux-ill-smile,
  .natnux-ill-scene .natnux-ill-eye,
  .natnux-ill-scene .natnux-ill-cursor,
  .natnux-ill-scene .natnux-ill-swirl,
  .natnux-ill-scene .natnux-ill-wave,
  .natnux-ill-scene .natnux-ill-prompt,
  .natnux-ill-scene .natnux-ill-friend,
  .natnux-ill-scene .natnux-ill-fly,
  .natnux-ill-scene .natnux-ill-spark,
  .natnux-ill-scene .natnux-ill-lock {
    transform-box: fill-box;
    transform-origin: center;
  }

  body.natnux-home .natnux-home-mark {
    --natnux-float-y: -6px;
    animation: natnux-mark-float-glow 4.8s ease-in-out infinite;
  }

  body.natnux-home .natnux-home-mark .natnux-ill-eye {
    animation: natnux-blink-eye 5.6s ease-in-out infinite;
  }

  body.natnux-home .natnux-home-mark .natnux-ill-smile,
  body.natnux-home .natnux-ill .natnux-ill-smile,
  .natnux-ill-scene .natnux-ill-smile {
    animation: natnux-smile 3.4s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-cursor,
  .natnux-ill-scene .natnux-ill-cursor {
    animation: natnux-blink 1.05s steps(1) infinite;
  }

  body.natnux-home .natnux-ill-swirl,
  .natnux-ill-scene .natnux-ill-swirl {
    animation: natnux-spin 8s linear infinite;
  }

  body.natnux-home .natnux-ill-wave,
  .natnux-ill-scene .natnux-ill-wave {
    transform-origin: left center;
    animation: natnux-wave 1.55s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-prompt,
  .natnux-ill-scene .natnux-ill-prompt {
    animation: natnux-wobble 3.2s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-friend,
  .natnux-ill-scene .natnux-ill-friend {
    animation: natnux-float 4.4s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-grump {
    animation: natnux-slump 3.8s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-nice {
    animation: natnux-float 4.2s ease-in-out 0.4s infinite;
  }

  body.natnux-home .natnux-ill-bubble {
    animation: natnux-bob 2.5s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-bob-a {
    animation: natnux-bob 2.4s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-bob-b {
    animation: natnux-bob 2.7s ease-in-out 0.35s infinite;
  }

  body.natnux-home .natnux-ill-fly,
  .natnux-ill-scene .natnux-ill-fly {
    animation: natnux-fly 3.1s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-spark,
  .natnux-ill-scene .natnux-ill-spark {
    animation: natnux-spark 1.6s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-folder-a {
    animation: natnux-pop 2.8s ease-in-out infinite;
  }

  body.natnux-home .natnux-ill-folder-b {
    animation: natnux-pop 2.8s ease-in-out 0.25s infinite;
  }

  body.natnux-home .natnux-ill-folder-c {
    animation: natnux-pop 2.8s ease-in-out 0.5s infinite;
  }

  body.natnux-home .natnux-ill-lock,
  .natnux-ill-scene .natnux-ill-lock {
    animation: natnux-wiggle 2.6s ease-in-out infinite;
  }

  body.natnux-home .natnux-home-band:hover .natnux-ill-wave,
  .natnux-usage-band:hover .natnux-ill-wave {
    animation-duration: 0.7s;
  }
}

@keyframes natnux-smile {
  0%,
  100% {
    transform: scaleX(1);
  }
  50% {
    transform: scaleX(1.1);
  }
}

@keyframes natnux-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}

@keyframes natnux-mark-float-glow {
  0%,
  100% {
    transform: translateY(0);
    filter:
      drop-shadow(0 2px 4px rgba(255, 78, 194, 0.22))
      drop-shadow(0 0 6px rgba(83, 218, 255, 0.2));
  }
  50% {
    transform: translateY(var(--natnux-float-y, -2.5px));
    filter:
      drop-shadow(0 8px 12px rgba(255, 78, 194, 0.48))
      drop-shadow(0 4px 14px rgba(145, 172, 255, 0.42))
      drop-shadow(0 0 12px rgba(83, 218, 255, 0.38));
  }
}


@keyframes natnux-blink-eye {
  0%,
  41%,
  49%,
  100% {
    transform: scaleY(1);
  }
  45% {
    transform: scaleY(0.12);
  }
}

@keyframes natnux-blink {
  0%,
  49% {
    opacity: 1;
  }
  50%,
  100% {
    opacity: 0;
  }
}

@keyframes natnux-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

@keyframes natnux-wave {
  0%,
  100% {
    transform: rotate(12deg);
  }
  50% {
    transform: rotate(-22deg);
  }
}

@keyframes natnux-wobble {
  0%,
  100% {
    transform: rotate(-2deg);
  }
  50% {
    transform: rotate(2.5deg);
  }
}

@keyframes natnux-slump {
  0%,
  100% {
    transform: rotate(0deg) translateY(0);
  }
  50% {
    transform: rotate(-3deg) translateY(2px);
  }
}

@keyframes natnux-bob {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}

@keyframes natnux-fly {
  0%,
  100% {
    transform: translate(0, 0);
  }
  50% {
    transform: translate(3px, -6px);
  }
}

@keyframes natnux-spark {
  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }
  50% {
    transform: scale(1.35);
    opacity: 0.65;
  }
}

@keyframes natnux-pop {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}

@keyframes natnux-wiggle {
  0%,
  80%,
  100% {
    transform: rotate(0deg);
  }
  85% {
    transform: rotate(-12deg);
  }
  92% {
    transform: rotate(10deg);
  }
}

body.natnux-nochrome footer.natnux-nochrome-footer {
  position: sticky;
  bottom: 0;
  z-index: 5;
  margin-top: auto;
  width: 100%;
  box-sizing: border-box;
  padding: 1rem 1.25rem calc(1rem + env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 1px solid #d0d7de;
  text-align: center;
}

body.natnux-nochrome footer.natnux-nochrome-footer .natnux-home-legal {
  margin: 0 0 0.45rem;
}

body.natnux-nochrome footer.natnux-nochrome-footer .natnux-home-byline {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
  color: #5b6b7a;
}

body.natnux-nochrome footer.natnux-nochrome-footer .natnux-home-byline a {
  color: var(--natnux-navy, #22598b);
  font-weight: 600;
  text-decoration: underline;
}

body.natnux-nochrome footer.natnux-nochrome-footer .natnux-home-legal a {
  font-size: 1rem;
  font-weight: 600;
  color: var(--natnux-navy, #22598b);
  text-decoration: underline;
}

body.natnux-nochrome footer.natnux-nochrome-footer .natnux-lang {
  display: inline-flex;
  justify-content: center;
}

body.natnux-nochrome footer.natnux-nochrome-footer .navbar-item {
  padding: 0;
  display: block;
}

body.natnux-nochrome .natnux-lang .buttons {
  display: inline-flex;
  gap: 0;
}

body.natnux-nochrome .natnux-lang button {
  font-size: 0.75rem;
  min-width: 2.25rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  padding: 0.3rem 0.55rem;
  border: 1px solid var(--natnux-navy, #22598b);
  background: transparent;
  color: inherit;
  cursor: pointer;
}

body.natnux-nochrome .natnux-lang button.is-dark,
body.natnux-nochrome .natnux-lang button[aria-current="true"] {
  background: var(--natnux-navy, #22598b);
  color: #fff;
}

body.natnux-legal h1 {
  margin: 0 0 0.4rem;
  font-size: 1.7rem;
  font-weight: 700;
}

body.natnux-legal h2 {
  margin: 1.75rem 0 0.55rem;
  font-size: 1.15rem;
  font-weight: 700;
}

body.natnux-legal .natnux-muted {
  margin: 0 0 1.25rem;
  font-size: 0.85rem;
  color: #5b6b7a;
}

body.natnux-legal .natnux-legal-copy p,
body.natnux-legal .natnux-legal-copy ul {
  margin: 0.6rem 0;
}

body.natnux-legal .natnux-legal-copy li + li {
  margin-top: 0.35rem;
}

.natnux-home-points {
  padding-left: 1.2rem;
  line-height: 1.6;
}

.natnux-home-points li + li {
  margin-top: 0.35rem;
}

.natnux-lang .button {
  font-size: 0.7rem;
  min-width: 2.25rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

@media (prefers-color-scheme: dark) {
  html,
  body {
    background-color: var(--bulma-scheme-main);
    color: var(--bulma-text);
  }

  body.natnux-nochrome {
    background: #12263a;
    color: #e8f1fa;
  }

  body.natnux-nochrome .natnux-nochrome-top,
  body.natnux-nochrome footer.natnux-nochrome-footer {
    background: #12263a;
    border-color: #2a4a6a;
  }

  body.natnux-home {
    background: #12263a;
  }

  body.natnux-home.natnux-nochrome .natnux-nochrome-top,
  body.natnux-home.natnux-nochrome footer.natnux-nochrome-footer {
    background: #12263a;
  }

  body.natnux-home .natnux-home-tagline,
  body.natnux-home .natnux-home-lead-sub,
  body.natnux-home .natnux-home-punch,
  body.natnux-home .natnux-home-kicker {
    color: var(--natnux-periwinkle, #91acff);
  }

  body.natnux-home .natnux-home-lead {
    color: #e8f1fa;
  }

  body.natnux-home .natnux-home-band,
  body.natnux-home .natnux-home-block {
    background: #1a334d;
    border-color: #2a4a6a;
  }

  body.natnux-home .natnux-home-copy .natnux-home-cards li {
    background: #12263a;
    border-color: #2a4a6a;
  }

  body.natnux-home .natnux-home-feature-list {
    color: #9bb0c4;
  }

  body.natnux-home .natnux-home-prompt {
    color: #e8f1fa;
    background: #12263a;
    border-color: #2a4a6a;
  }

  body.natnux-nochrome footer.natnux-nochrome-footer .natnux-home-byline {
    color: #9bb0c4;
  }

  body.natnux-nochrome footer.natnux-nochrome-footer .natnux-home-byline a {
    color: var(--natnux-periwinkle, #91acff);
  }

  body.natnux-home .natnux-ill-paper {
    fill: #1a334d;
  }

  body.natnux-home a,
  body.natnux-legal a {
    color: var(--natnux-cyan, #53daff);
  }

  body.natnux-home .natnux-cta {
    background: var(--natnux-navy, #22598b);
    color: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.28);
  }

  body.natnux-home .natnux-home-lead-answer {
    color: var(--natnux-periwinkle, #91acff);
  }

  body.natnux-legal .natnux-muted {
    color: #9bb0c4;
  }

  .navbar {
    background-color: var(--bulma-scheme-main-bis);
    border-bottom-color: var(--bulma-border);
  }

  .navbar-item,
  .navbar-link {
    color: var(--bulma-text);
  }

  .navbar-item:hover,
  .navbar-link:hover {
    background-color: var(--bulma-scheme-main-ter);
    color: var(--bulma-text-strong);
  }

  .djcrud-sidebar {
    background-color: var(--bulma-scheme-main-bis);
    border-right-color: var(--bulma-border);
  }

  .menu-label {
    color: var(--bulma-text-weak);
  }

  .menu-list a:not(.is-active) {
    color: var(--bulma-text);
  }

  .menu-list a:hover {
    background-color: var(--bulma-scheme-main-ter);
    color: var(--bulma-text-strong);
  }
}

.djcrud-sidebar .menu-list a.is-active,
.menu-list a.is-active,
.menu-list a.is-active:hover {
  background-color: hsl(
    var(--bulma-menu-item-selected-h),
    var(--bulma-menu-item-selected-s),
    var(--bulma-menu-item-selected-background-l)
  );
  color: hsl(
    var(--bulma-menu-item-selected-h),
    var(--bulma-menu-item-selected-s),
    var(--bulma-menu-item-selected-color-l)
  );
}

/* Auth pages (login / signup / reset): homepage shell + form. */
body.natnux-auth .natnux-home-band {
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}

body.natnux-auth .natnux-auth-mascot,
body.natnux-auth .natnux-ill-card {
  justify-self: center;
}

body.natnux-auth .natnux-auth-google {
  margin: 1.1rem 0 0.35rem;
}

body.natnux-auth .natnux-auth-google.is-quiet {
  margin-top: 0.35rem;
  text-align: center;
}

body.natnux-auth .natnux-google-quiet {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--natnux-navy, #22598b);
  border: 1px solid #d5deea;
  background: #fff;
}

body.natnux-auth details.natnux-auth-password {
  margin: 1rem 0 0;
}

body.natnux-auth details.natnux-auth-password summary {
  cursor: pointer;
  color: var(--natnux-navy, #22598b);
  font-weight: 600;
  font-size: 0.95rem;
}

body.natnux-auth .natnux-auth-or {
  margin: 1rem 0 0.85rem;
  text-align: center;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--natnux-navy, #22598b);
}

body.natnux-auth form .field {
  margin: 0.7rem 0;
}

body.natnux-auth .natnux-turnstile {
  margin: 0.7rem 0 0.2rem;
}

body.natnux-auth form .label {
  color: var(--natnux-navy-deep, #183858);
}

body.natnux-auth button.natnux-cta {
  font: inherit;
  border: 0;
  cursor: pointer;
}

body.natnux-auth .natnux-auth-links {
  margin: 1.1rem 0 0;
  font-size: 0.95rem;
}

body.natnux-auth .natnux-auth-links a {
  color: var(--natnux-navy, #22598b);
}

body.natnux-auth .natnux-auth-messages {
  max-width: 40rem;
  margin: 0 auto 1rem;
  padding: 0.7rem 1rem;
  list-style: none;
  background: #fff;
  border: 1px solid #e3eaf3;
  border-radius: 0.8rem;
  color: var(--natnux-navy, #22598b);
}

body.natnux-auth .natnux-share-landing {
  max-width: 44rem;
}

body.natnux-auth .natnux-share-landing h1 {
  letter-spacing: -0.02em;
}

body.natnux-auth .natnux-share-auth-row {
  display: grid;
  gap: 0.6rem;
}

body.natnux-auth .natnux-share-shot {
  justify-self: center;
  width: min(100%, 16rem);
  overflow: hidden;
  background: #fff;
  border: 1px solid var(--natnux-line, #e9e4db);
  border-radius: 0.9rem;
}

body.natnux-auth .natnux-share-shot-bar {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.45rem 0.7rem;
  background: #faf8f4;
  border-bottom: 1px solid var(--natnux-line, #e9e4db);
}

body.natnux-auth .natnux-share-shot-bar span {
  width: 0.5rem;
  height: 0.5rem;
  border-radius: 50%;
  background: #e7ddd0;
}

body.natnux-auth .natnux-share-shot img {
  display: block;
  width: 100%;
  height: 8.5rem;
  object-fit: cover;
  object-position: top center;
}

@media (max-width: 40rem) {
  body.natnux-auth .natnux-home-band {
    grid-template-columns: 1fr;
  }
}

/* Warm story homepage (cream paper + chat demo). Directory/auth keep their layout. */
body.natnux-home {
  --natnux-paper: #fbf8f3;
  --natnux-ink: #212733;
  --natnux-muted: #67707f;
  --natnux-line: #e9e4db;
  --natnux-disp: "Space Grotesk", "Inter", system-ui, sans-serif;
  --natnux-sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  background:
    radial-gradient(900px 500px at 85% -10%, rgba(255, 78, 194, 0.1), transparent 60%),
    radial-gradient(800px 520px at -10% 0%, rgba(83, 218, 255, 0.12), transparent 60%),
    radial-gradient(700px 500px at 50% 115%, rgba(145, 172, 255, 0.14), transparent 60%),
    var(--natnux-paper);
  color: var(--natnux-ink);
  font-family: var(--natnux-sans);
}

body.natnux-home.natnux-nochrome .natnux-nochrome-top,
body.natnux-home.natnux-nochrome footer.natnux-nochrome-footer {
  background: rgba(251, 248, 243, 0.82);
  backdrop-filter: blur(12px);
  border-color: var(--natnux-line);
}

body.natnux-home-story.natnux-nochrome .natnux-nochrome-main {
  max-width: 70rem;
}

body.natnux-home-story .natnux-home-hero {
  align-items: center;
  text-align: center;
  margin: 2.2rem 0 0.6rem;
  gap: 0.85rem;
}

body.natnux-home-story .natnux-home-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  padding: 0.45rem 1rem;
  font-size: 0.84rem;
  font-weight: 600;
  color: #7a1f5c;
  background: color-mix(in srgb, var(--natnux-magenta) 12%, #fff);
  border: 1px solid color-mix(in srgb, var(--natnux-magenta) 28%, #fff);
  border-radius: 999px;
}

body.natnux-home-story .natnux-home-eyebrow-dot {
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--natnux-magenta);
}

body.natnux-home-story .natnux-home-display {
  margin: 0;
  font-family: var(--natnux-disp);
  font-size: clamp(2.15rem, 6vw, 4.2rem);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.03em;
  max-width: 18ch;
}

body.natnux-home-story .natnux-home-wordmark {
  display: block;
  margin: 0 0 0.45rem;
  font-size: 0.95rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--natnux-navy);
}

body.natnux-home-story .natnux-home-grad {
  background: var(--natnux-logo-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

body.natnux-home-story .natnux-home-lead {
  max-width: 36rem;
  font-size: 1.28rem;
  font-weight: 600;
}

body.natnux-home-story .natnux-home-lead-sub {
  max-width: 38rem;
  margin: 0;
  font-size: 1.05rem;
  color: var(--natnux-muted);
}

body.natnux-home-story .natnux-home-tagline {
  margin: 0.15rem 0 0;
  font-size: 0.92rem;
  color: var(--natnux-muted);
}

body.natnux-home-story .natnux-home-note {
  margin: 0;
  font-size: 0.88rem;
  color: #8a93a2;
}

body.natnux-home-story .natnux-cta {
  background: linear-gradient(135deg, #c2187a, var(--natnux-navy) 85%);
  box-shadow: 0 10px 26px rgba(255, 78, 194, 0.28);
}

body.natnux-home-story .natnux-cta:hover,
body.natnux-home-story .natnux-cta:focus {
  background: linear-gradient(135deg, #a01466, var(--natnux-navy-deep) 85%);
}

body.natnux-home-story .natnux-home-hero .natnux-cta-line {
  margin-top: 0.6rem;
}

body.natnux-home-story .natnux-home-demo {
  display: grid;
  grid-template-columns: minmax(260px, 22rem) minmax(0, 1fr);
  gap: 1.5rem;
  align-items: center;
  margin: 2.4rem 0 2.6rem;
  text-align: left;
}

body.natnux-home-story .natnux-home-chat {
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
  padding: 1.15rem 1.15rem 1.25rem;
  background: #fff;
  border: 1px solid var(--natnux-line);
  border-radius: 1.5rem;
  box-shadow: 0 24px 60px rgba(33, 39, 51, 0.08);
}

body.natnux-home-story .natnux-home-chat-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding-bottom: 0.7rem;
  border-bottom: 1px dashed var(--natnux-line);
  font-size: 0.82rem;
  font-weight: 500;
  color: var(--natnux-muted);
}

body.natnux-home-story .natnux-home-chat-mark {
  width: 2.1rem;
  height: 2.1rem;
}

body.natnux-home-story .natnux-home-bubble {
  margin: 0;
  max-width: 92%;
  padding: 0.7rem 0.95rem;
  font-size: 0.92rem;
  line-height: 1.5;
  border-radius: 1rem;
}

body.natnux-home-story .natnux-home-bubble.is-you {
  align-self: flex-end;
  background: #f3f4f7;
  border-bottom-right-radius: 0.3rem;
}

body.natnux-home-story .natnux-home-bubble.is-ai {
  align-self: flex-start;
  background: color-mix(in srgb, var(--natnux-cyan) 22%, #fff);
  color: #183858;
  border-bottom-left-radius: 0.3rem;
}

body.natnux-home-story .natnux-home-bubble-cta {
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  padding: 0.6rem 1rem;
  border-radius: 0.75rem;
  background: linear-gradient(135deg, #c2187a, var(--natnux-navy) 120%);
  color: #fff;
  font-size: 0.88rem;
  font-weight: 650;
  text-decoration: none;
  box-shadow: 0 8px 18px rgba(255, 78, 194, 0.25);
}

body.natnux-home-story .natnux-home-bubble-cta:hover,
body.natnux-home-story .natnux-home-bubble-cta:focus {
  color: #fff;
}

body.natnux-home-story .natnux-home-preview {
  background: #fff;
  border: 1px solid var(--natnux-line);
  border-radius: 1.5rem;
  overflow: hidden;
  box-shadow: 0 30px 70px rgba(33, 39, 51, 0.1);
  transform: rotate(0.4deg);
}

body.natnux-home-story .natnux-home-preview-bar {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.7rem 1rem;
  background: #faf8f4;
  border-bottom: 1px solid var(--natnux-line);
}

body.natnux-home-story .natnux-home-preview-dot {
  width: 0.62rem;
  height: 0.62rem;
  border-radius: 50%;
  background: #e7ddd0;
}

body.natnux-home-story .natnux-home-preview-url {
  margin-left: 0.45rem;
  padding: 0.15rem 0.75rem;
  font-size: 0.75rem;
  color: var(--natnux-muted);
  background: #fff;
  border: 1px solid var(--natnux-line);
  border-radius: 999px;
}

body.natnux-home-story .natnux-home-preview-site {
  background: linear-gradient(180deg, #f7fbfe, #fff 42%);
  font-family: var(--natnux-disp);
}

body.natnux-home-story .natnux-home-preview-top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0.95rem 1.3rem;
  border-bottom: 1px solid var(--natnux-line);
  font-size: 0.88rem;
}

body.natnux-home-story .natnux-home-preview-top i {
  font-style: normal;
  background: var(--natnux-logo-gradient);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

body.natnux-home-story .natnux-home-preview-nav {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.85rem;
  font-size: 0.75rem;
  color: var(--natnux-muted);
}

body.natnux-home-story .natnux-home-preview-hero {
  padding: 1.5rem 1.3rem 1.6rem;
  text-align: center;
}

body.natnux-home-story .natnux-home-preview-badge {
  display: inline-block;
  margin-bottom: 0.7rem;
  padding: 0.22rem 0.75rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--natnux-navy);
  background: color-mix(in srgb, var(--natnux-cyan) 22%, #fff);
  border-radius: 999px;
}

body.natnux-home-story .natnux-home-preview-title {
  margin: 0;
  font-size: clamp(1.2rem, 2.6vw, 1.65rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.15;
}

body.natnux-home-story .natnux-home-preview-desc {
  max-width: 22rem;
  margin: 0.5rem auto 0.9rem;
  font-family: var(--natnux-sans);
  font-size: 0.82rem;
  color: var(--natnux-muted);
}

body.natnux-home-story .natnux-home-preview-btn {
  display: inline-block;
  padding: 0.45rem 1rem;
  border-radius: 999px;
  background: var(--natnux-ink);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 600;
}

body.natnux-home-story .natnux-home-preview-foot {
  margin: 0;
  padding: 0.7rem 1.1rem 0.9rem;
  font-size: 0.78rem;
  color: var(--natnux-muted);
  text-align: center;
}

body.natnux-home-story .natnux-home-how,
body.natnux-home-story .natnux-home-ideas,
body.natnux-home-story .natnux-home-close {
  text-align: left;
  margin: 1.15rem 0;
  padding: 1.6rem 1.55rem 1.7rem;
  background: #fff;
  border: 1px solid var(--natnux-line);
  border-radius: 1.2rem;
}

body.natnux-home-story h2 {
  font-family: var(--natnux-disp);
  font-size: clamp(1.45rem, 3vw, 2rem);
}

body.natnux-home-story .natnux-home-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.1rem;
  list-style: none;
  margin: 1.2rem 0 0;
  padding: 0;
}

body.natnux-home-story .natnux-home-steps h3 {
  margin: 0.55rem 0 0.35rem;
  font-family: var(--natnux-disp);
  font-size: 1.08rem;
}

body.natnux-home-story .natnux-home-step-n {
  display: inline-grid;
  place-items: center;
  width: 1.8rem;
  height: 1.8rem;
  border-radius: 999px;
  background: var(--natnux-logo-gradient);
  color: #fff;
  font-size: 0.85rem;
  font-weight: 700;
}

body.natnux-home-story .natnux-home-steps .natnux-home-prompt {
  text-align: left;
  border-left-width: 4px;
  border-top-width: 1px;
}

body.natnux-home-story .natnux-home-idea-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.9rem;
  list-style: none;
  margin: 1.1rem 0 0.6rem;
  padding: 0;
}

body.natnux-home-story .natnux-home-idea-grid li {
  margin: 0;
  padding: 1rem 1.05rem 1.1rem;
  background: var(--natnux-paper);
  border: 1px solid var(--natnux-line);
  border-radius: 1.05rem;
}

body.natnux-home-story .natnux-home-idea-grid li::before {
  content: "";
  display: block;
  height: 3px;
  margin: -1rem -1.05rem 0.85rem;
  background: var(--natnux-logo-gradient);
  border-radius: 1.05rem 1.05rem 0 0;
}

body.natnux-home-story .natnux-home-idea-grid h3 {
  margin: 0.35rem 0 0.3rem;
  font-family: var(--natnux-disp);
  font-size: 1.05rem;
}

body.natnux-home-story .natnux-home-idea-grid .natnux-ill-card {
  width: 4.2rem;
}

body.natnux-linux .natnux-home-preview-url {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  letter-spacing: 0.01em;
}

@media (min-width: 52rem) {
  body.natnux-linux .natnux-home-idea-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

body.natnux-home-story .natnux-home-close {
  text-align: center;
}

body.natnux-home-story .natnux-home-close .natnux-cta-line {
  text-align: center;
}

body.natnux-home-story .natnux-home-copy .natnux-home-block {
  border-color: var(--natnux-line);
}

body.natnux-home-story .natnux-home-copy #app-purpose,
body.natnux-home-story .natnux-home-copy [aria-labelledby="google-heading"] {
  background: transparent;
  border-style: dashed;
  color: var(--natnux-muted);
  font-size: 0.92rem;
}

@media (max-width: 52rem) {
  body.natnux-home-story .natnux-home-demo,
  body.natnux-home-story .natnux-home-steps,
  body.natnux-home-story .natnux-home-idea-grid {
    grid-template-columns: 1fr;
  }

  body.natnux-home-story .natnux-home-preview {
    transform: none;
  }

  body.natnux-home-story .natnux-home-preview-nav {
    display: none;
  }
}

@media (prefers-reduced-motion: no-preference) {
  body.natnux-home-story .natnux-home-eyebrow-dot {
    box-shadow: 0 0 0 0 rgba(255, 78, 194, 0.5);
    animation: natnux-home-pulse 2.2s infinite;
  }

  body.natnux-home-story .natnux-home-bubble-cta {
    animation: natnux-home-wave 2.6s ease-in-out infinite;
  }
}

@keyframes natnux-home-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(255, 78, 194, 0.5);
  }
  70% {
    box-shadow: 0 0 0 10px rgba(255, 78, 194, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(255, 78, 194, 0);
  }
}

@keyframes natnux-home-wave {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-3px);
  }
}

/* Homepage dark mode. color-scheme: dark stops Chrome Auto Dark from
   inverting our whites while leaving navy punch text untouched. */
@media (prefers-color-scheme: dark) {
  html:not([data-theme="light"]) body.natnux-home {
    --natnux-paper: #141820;
    --natnux-ink: #e8eef4;
    --natnux-muted: #a8b4c0;
    --natnux-line: #2c3542;
    --natnux-navy: #91acff;
    --natnux-navy-deep: #e8eef4;
    color-scheme: dark;
    color: var(--natnux-ink);
    background:
      radial-gradient(900px 500px at 85% -10%, rgba(255, 78, 194, 0.14), transparent 60%),
      radial-gradient(800px 520px at -10% 0%, rgba(83, 218, 255, 0.1), transparent 60%),
      radial-gradient(700px 500px at 50% 115%, rgba(145, 172, 255, 0.1), transparent 60%),
      var(--natnux-paper);
  }

  html:not([data-theme="light"]) body.natnux-home.natnux-nochrome .natnux-nochrome-top,
  html:not([data-theme="light"]) body.natnux-home.natnux-nochrome footer.natnux-nochrome-footer {
    background: rgba(20, 24, 32, 0.88);
    border-color: var(--natnux-line);
  }

  html:not([data-theme="light"]) body.natnux-home .natnux-home-band,
  html:not([data-theme="light"]) body.natnux-home .natnux-home-block,
  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-how,
  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-ideas,
  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-close,
  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-chat,
  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-preview,
  html:not([data-theme="light"]) body.natnux-directory .natnux-home-street,
  html:not([data-theme="light"]) body.natnux-directory .natnux-directory-card {
    background: #1c2430;
    border-color: var(--natnux-line);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
  }

  html:not([data-theme="light"]) body.natnux-home .natnux-home-copy .natnux-home-cards li,
  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-idea-grid li {
    background: #141820;
    border-color: var(--natnux-line);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-bubble.is-you {
    background: #2a3340;
    color: var(--natnux-ink);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-bubble.is-ai {
    background: color-mix(in srgb, var(--natnux-cyan) 16%, #1a2830);
    color: var(--natnux-ink);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-preview-bar {
    background: #141820;
    border-color: var(--natnux-line);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-preview-url,
  html:not([data-theme="light"]) body.natnux-directory .natnux-directory-url {
    background: #1c2430;
    border-color: var(--natnux-line);
    color: var(--natnux-muted);
  }

  html:not([data-theme="light"]) body.natnux-directory .natnux-directory-bar {
    background: #141820;
    border-color: var(--natnux-line);
  }

  html:not([data-theme="light"]) body.natnux-directory .natnux-directory-pane {
    background:
      radial-gradient(420px 180px at 80% 0%, rgba(255, 78, 194, 0.1), transparent 60%),
      radial-gradient(380px 160px at 0% 100%, rgba(83, 218, 255, 0.08), transparent 60%),
      #141820;
  }

  html:not([data-theme="light"]) body.natnux-directory .natnux-directory-card strong {
    color: var(--natnux-ink);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-preview-site {
    background: linear-gradient(180deg, #18222c, #1c2430 42%);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-preview-top {
    border-color: var(--natnux-line);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-preview-btn {
    background: #e8eef4;
    color: #141820;
  }

  html:not([data-theme="light"]) body.natnux-home .natnux-home-prompt {
    background: #141820;
    border-color: var(--natnux-line);
    color: var(--natnux-ink);
  }

  html:not([data-theme="light"]) body.natnux-home .natnux-cta {
    color: #fff;
  }

  html:not([data-theme="light"]) body.natnux-home a {
    color: var(--natnux-cyan);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-eyebrow {
    color: #ffb3e3;
    background: color-mix(in srgb, var(--natnux-magenta) 22%, #1c2430);
    border-color: color-mix(in srgb, var(--natnux-magenta) 40%, #1c2430);
  }

  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-copy #app-purpose,
  html:not([data-theme="light"]) body.natnux-home-story .natnux-home-copy [aria-labelledby="google-heading"] {
    color: var(--natnux-muted);
    border-color: var(--natnux-line);
  }
}

/* Dashboard (classic server-rendered page, natnux/dashboard.html) */
.natnux-dash {
  max-width: 40rem;
  margin-left: auto;
  margin-right: auto;
}
.natnux-dash-folders {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.natnux-dash-folder-row {
  display: block;
  width: 100%;
  padding: 0;
}
.natnux-dash-folder-bubble {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  width: 100%;
  box-sizing: border-box;
  min-width: 0;
  padding: 0.55rem 1rem;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--natnux-periwinkle, #91acff) 55%, transparent);
  background: color-mix(in srgb, var(--natnux-cyan, #53daff) 10%, var(--bulma-scheme-main, #fff));
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  line-height: 1.2;
}
button.natnux-dash-folder-bubble {
  font: inherit;
  text-align: left;
}
.natnux-dash-folder-bubble:hover,
.natnux-dash-folder-bubble:focus-visible {
  border-color: color-mix(in srgb, var(--natnux-magenta, #ff4ec2) 45%, var(--natnux-cyan, #53daff));
  background: color-mix(in srgb, var(--natnux-magenta, #ff4ec2) 8%, var(--bulma-scheme-main, #fff));
}
.natnux-dash-folder-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.95rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.natnux-dash-git {
  color: var(--natnux-glyph-git);
  flex-shrink: 0;
}
.natnux-preview-share,
.natnux-preview-share .icon {
  color: var(--natnux-glyph-share);
}
.natnux-preview-overlay .natnux-brand-mark,
.natnux-preview-overlay .natnux-agent-mark {
  --natnux-float-y: 0;
  animation: none;
  filter: none;
  transform: none;
  width: 1.25rem;
  height: 1.25rem;
}
.natnux-preview-title {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 0.35rem 0.5rem;
  min-width: 0;
}
.natnux-dash-actions-row {
  display: flex;
  align-items: center;
  gap: 1rem;
}
.natnux-dash-history-link {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  color: inherit;
}
.natnux-dash-history-link .icon {
  color: var(--natnux-glyph-sessions);
}
.natnux-dash-browse-link .icon {
  color: var(--natnux-glyph-browse);
}
.natnux-dash-upload-link .icon {
  color: var(--natnux-glyph-upload);
}
.natnux-dash-account-link .icon {
  color: var(--natnux-glyph-account);
}
.natnux-dash-sub-link .icon {
  color: var(--natnux-glyph-plan);
}
.natnux-dash-logout-link .icon {
  color: var(--natnux-glyph-close);
}
.natnux-dash-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}
.natnux-dash-section-head .title {
  margin-bottom: 0;
}

/* General-purpose CTA pill (no body-class gate, unlike the home/auth page
   variants) -- used by the Dashboard's "Start" agent action. */
.natnux-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0;
  padding: 0.55rem 1.1rem;
  background: var(--natnux-navy, #22598b);
  color: #fff;
  font: inherit;
  font-weight: 650;
  border: 0;
  border-radius: 999px;
  box-shadow: 0 6px 16px rgba(34, 89, 139, 0.22);
  cursor: pointer;
  text-decoration: none;
}
.natnux-cta:hover,
.natnux-cta:focus-visible {
  background: var(--natnux-navy-deep, #183858);
  color: #fff;
}
.natnux-cta .icon {
  color: #fff;
}
.natnux-cta .natnux-cta-mark {
  width: 1.35rem;
  height: 1.35rem;
}

/* Top navbar glyph row: same padding as .natnux-icon-btn (not a second fight). */
.navbar-item.natnux-icon-btn {
  padding: 0.25rem;
}
.natnux-dash-quota-row {
  font-size: 0.85rem;
  margin-bottom: 0.6rem;
}
.natnux-dash-quota-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.15rem;
}
.natnux-dash-quota-bar {
  height: 0.45rem;
  border-radius: 999px;
  overflow: visible;
  background: color-mix(in srgb, var(--bulma-border, #d4d4d8) 55%, transparent);
}
.natnux-dash-quota-bar-fill {
  display: block;
  height: 100%;
  border-radius: inherit;
  background: var(--natnux-logo-gradient);
}
.natnux-dash-quota-bar.is-warning .natnux-dash-quota-bar-fill {
  background: #eab308;
  box-shadow: 0 0 10px 2px rgba(234, 179, 8, 0.75);
  filter: brightness(1.15);
}
.natnux-dash-quota-bar.is-danger .natnux-dash-quota-bar-fill {
  background: #dc2626;
  box-shadow: 0 0 12px 3px rgba(220, 38, 38, 0.8);
  filter: brightness(1.2);
}
.natnux-dash-quota-hint {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  color: var(--bulma-text-weak, #7a7a7a);
}
.natnux-dash-sub {
  font-size: 0.95rem;
}

.natnux-history-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
}
.natnux-history-glyph {
  color: var(--natnux-glyph-sessions, #eab308);
}
.natnux-history-glyph i {
  font-size: 1.35rem;
}
.natnux-history-search input {
  width: min(24rem, 100%);
  padding: 0.45rem 0.7rem;
  border: 1px solid var(--bulma-border, #dbdbdb);
  border-radius: 4px;
  font-size: 0.95rem;
}

.natnux-session-list {
  display: flex;
  flex-direction: column;
}
.natnux-session-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem;
  padding: 0.9rem 0.1rem;
  border-bottom: 1px solid color-mix(in srgb, var(--bulma-border, #d4d4d8) 85%, transparent);
}
.natnux-session-row:last-child {
  border-bottom: 0;
}
.natnux-session-main {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  min-width: 0;
  color: inherit;
  text-decoration: none;
}
.natnux-session-main:hover .natnux-session-title {
  color: var(--natnux-navy, #22598b);
}
.natnux-session-title {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.95rem;
  font-weight: 550;
}
.natnux-session-git {
  flex: 0 0 auto;
  color: var(--natnux-glyph-git, #f05033);
  font-size: 0.95rem;
}
.natnux-session-workdir {
  flex: 0 0 auto;
  max-width: 10rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0.12rem 0.55rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.01em;
  background: var(--bulma-scheme-main-bis, #f4f5f7);
  color: var(--bulma-text-weak, #6b7280);
}
.natnux-session-meta {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex: 0 0 auto;
}
.natnux-session-status {
  font-size: 0.8rem;
  color: var(--bulma-text-weak, #7a7a7a);
}
