/* NeuroDivine's brand kit: only what /brand/brand.css does not already draw.
   Loaded after love-sunday.css and brand.css, so the kit wears Love Sunday's
   palette, type, frames and spacing, and every text pairing here is one the
   stylesheet already measured. Written by hand; the page that links it is
   generated by scripts/build_neurodivine_kit.py.

   Like the brand it describes, nothing here moves on its own: no reveals, no
   transitions that play without a reader's hand. */

/* — nothing arrives —
   Love Sunday's stylesheet lets section labels slide in and list suns pop as
   they are scrolled to. NeuroDivine's rule is that the light is the only thing
   that changes by itself, so here every arrival is simply finished and the kit
   is complete at rest. */
.eyebrow, .sun-list > li, .sun-list > li::before, .mark--stop, .rise, .frame--print { animation: none !important; }

/* — the brand's two small rules — */
.love { font-style: italic; font-weight: 400; color: var(--red); }        /* one word, display sizes only */
.nm { text-transform: none; letter-spacing: 0.02em; }                        /* her name is Hk, never HK */

/* — the band and the nav — */
.nd-band { background: var(--blush); border-bottom: 1px solid var(--line); }
.nd-band p { padding-block: 0.7rem; font-size: var(--text-sm); }
.nd-band .notation { color: var(--red-ink); margin-inline-end: 0.7em; }
.nd-brand i { font-style: italic; font-weight: 400; color: var(--red); }
.nd-navmark { --mark-size: 3rem; }                                           /* sun ≥ 20px inside its rays */
.nd-nowrap { white-space: nowrap; }                                           /* 'vibe-checked' never breaks at its hyphen */

/* — the Copy buttons: a full 44px target, and one width for Copy and Copied, so nothing moves under a finger — */
.kit-copy { min-height: 44px; min-width: 6.2em; justify-content: center; }
@media (prefers-reduced-motion: no-preference) {
  /* the reader's own tap, answered once: the new word settles in */
  .kit-copy.is-done .kit-copy__word { display: inline-block; animation: nd-copied .28s cubic-bezier(.2, .7, .2, 1); }
}
@keyframes nd-copied { from { opacity: .3; transform: translateY(2px); } to { opacity: 1; transform: none; } }

/* — 01 the mark — */
.nd-stagemark { width: min(17rem, 62vw); height: auto; aspect-ratio: 1; overflow: visible;
  filter: drop-shadow(0 0 2.2rem var(--glow)); }
.nd-tilemark { width: 62%; height: 62%; }
.nd-tilemark--photo { position: relative; z-index: 1; filter: drop-shadow(0 2px 10px rgb(59 28 36 / 0.3)); }
.nd-rayorder { list-style: none; padding: 0; margin: 0 0 var(--space-3); display: flex; flex-wrap: wrap; gap: 0.5rem; counter-reset: ray; }
.nd-rayorder li { counter-increment: ray; }
.nd-rayname { display: inline-flex; align-items: center; gap: 0.5em; padding: 0.3em 0.85em 0.3em 0.55em;
  border-radius: 999px; background: var(--mat); box-shadow: inset 0 0 0 1px var(--line); font-weight: 600; font-size: var(--text-sm); }
.nd-rayname::before { content: counter(ray); font-family: var(--font-mono); font-weight: 400; font-size: 0.8em; color: var(--ink-soft); }
.nd-rayname::after { content: ""; width: 1.1em; height: 0.36em; border-radius: 999px; background: var(--ray); order: -1; }

/* — 02 the wordmark, live — */
.nd-live-lockup { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(1rem, 4vw, 2.5rem);
  margin-top: var(--space-6); padding: clamp(1.5rem, 5vw, 3.5rem); border-radius: var(--r-3, 1.5rem);
  background: var(--mat); box-shadow: var(--shadow-sm), var(--shadow-contact); }
.nd-live-mark { width: clamp(5rem, 16vw, 9.5rem); height: auto; aspect-ratio: 1; flex: none; overflow: visible; }
.nd-word { font-family: var(--font-display); font-weight: 500; font-variation-settings: "SOFT" 100, "WONK" 1;
  font-size: clamp(3rem, 1.6rem + 6vw, 6.75rem); line-height: 1; letter-spacing: -0.015em; }
.nd-word i { font-style: italic; font-weight: 400; color: var(--red); }
.nd-from { margin-top: 0.8rem; padding-left: 0.2rem; }

/* — 03 the halo — */
.nd-halo { display: block; width: 100%; height: auto; overflow: visible; }
.nd-anatomy { display: grid; gap: var(--space-6); align-items: center; margin-top: var(--space-6); }
@media (min-width: 60rem) { .nd-anatomy { grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr); } }
.nd-anatomy__fig { margin: 0; padding: clamp(1rem, 3vw, 2rem); border-radius: var(--r-3, 1.5rem);
  background: var(--mat); box-shadow: var(--shadow-sm), var(--shadow-contact); display: grid; gap: var(--space-3); }
.nd-anatomy__fig .nd-halo { max-width: 32rem; margin-inline: auto; }
.nd-anatomy__fig figcaption { text-align: center; }
.nd-subhead { margin-top: var(--space-7); margin-bottom: var(--space-4); }
.nd-lead { max-width: 60ch; margin-bottom: var(--space-5); }
.nd-glyphs { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-4);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); }
.nd-glyph { display: grid; grid-template-columns: 4rem 1fr; gap: var(--space-4); align-items: start;
  padding: var(--space-5); border-radius: 1.1rem; background: var(--mat);
  box-shadow: inset 0 0.3rem 0 0 var(--ray, var(--line-strong)), var(--shadow-contact); }
.nd-glyph img { width: 4rem; height: 4rem; }
.nd-glyph h4 { font-family: var(--font-display); font-weight: 500; font-variation-settings: "SOFT" 100, "WONK" 1;
  font-size: 1.45rem; line-height: 1.15; }
.nd-glyph p { font-size: var(--text-sm); margin-top: 0.35rem; }
.nd-side { margin-top: 0.2rem !important; }
.nd-scale { color: var(--ink-soft); }
.nd-specs { display: grid; gap: var(--space-5); grid-template-columns: repeat(auto-fit, minmax(min(100%, 16rem), 1fr)); }
.nd-spec { margin: 0; padding: var(--space-5); border-radius: 1.1rem; background: var(--mat);
  box-shadow: var(--shadow-sm), var(--shadow-contact); display: grid; gap: var(--space-3); align-content: start; }
.nd-spec .nd-halo { max-width: 18rem; margin-inline: auto; }
.nd-spec__sum { font-family: var(--font-display); font-weight: 500; font-variation-settings: "SOFT" 100, "WONK" 1;
  font-size: 1.2rem; line-height: 1.25; margin-top: 0.3rem; }
.nd-spec__words { font-size: var(--text-sm); }
.nd-spec__state { font-size: var(--text-sm); font-weight: 600; color: var(--red-ink); }
.nd-digits { white-space: nowrap; }                                           /* a halo's seven levels stay on one line */

/* — headings in the two-up sections keep Love Sunday's .kit-cols rhythm — */
.nd-anatomy h3, .nd-selkie h3 { margin-bottom: var(--space-3); }
.nd-anatomy h3:not(:first-child), .nd-selkie h3:not(:first-child) { margin-top: var(--space-6); }
.nd-anatomy .sun-list + p, .nd-selkie .sun-list + p { margin-top: var(--space-3); }

/* — 04 the Selkie — */
.nd-selkie { display: grid; gap: var(--space-6); align-items: center; margin-top: var(--space-6); }
@media (min-width: 60rem) { .nd-selkie { grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); } }
.nd-selkie__badge { justify-self: center; width: min(21rem, 78vw); rotate: -6deg;
  filter: drop-shadow(-6px 16px 22px rgb(74 30 40 / 0.2)); }
.nd-selkie__badge svg, .nd-door__decal svg { display: block; width: 100%; height: auto; }
.nd-gloss { font-family: var(--font-display); font-style: italic; font-weight: 400;
  font-variation-settings: "SOFT" 100, "WONK" 1; font-size: var(--text-lg); line-height: 1.35; margin-bottom: var(--space-4); }
.nd-proposed { display: block; width: fit-content; margin-bottom: 0.6rem; padding: 0.2em 0.7em; border-radius: 999px;
  background: var(--blush); color: var(--ink); }                             /* a chip over the heading, never inside its line */
.nd-door { margin-top: var(--space-7); display: grid; justify-items: center; gap: var(--space-4); }
.nd-door__frame { width: min(22rem, 86vw); aspect-ratio: 3 / 5; padding: 1.1rem; border-radius: 0.6rem 0.6rem 0 0;
  background: linear-gradient(180deg, #6F5F58, #4E423E); box-shadow: var(--shadow), var(--shadow-contact); }
.nd-door__glass { position: relative; height: 100%; border-radius: 0.3rem; overflow: hidden;
  background:
    linear-gradient(115deg, rgb(255 255 255 / 0.5) 0 18%, transparent 18% 30%, rgb(255 255 255 / 0.25) 30% 34%, transparent 34%),
    linear-gradient(180deg, #DDE8EA, #C3D3D6 60%, #B5C7CB); }
.nd-door__decal { position: absolute; top: 16%; left: 50%; width: 58%; translate: -50% 0; }
.nd-door__handle { position: absolute; right: 7%; top: 52%; width: 0.7rem; height: 5.5rem; border-radius: 999px;
  background: linear-gradient(90deg, #8B8F92, #D9DCDE 45%, #8B8F92); box-shadow: 0 2px 6px rgb(0 0 0 / 0.25); }

/* — 05 colour — */
.nd-raykey { display: grid; gap: var(--space-3); margin-top: var(--space-6); margin-bottom: var(--space-5); max-width: 60rem; }
.nd-raykey__row { display: grid; grid-template-columns: 3.5rem 1fr; gap: var(--space-4); align-items: center; }
.nd-raykey__ray { height: 0.9rem; border-radius: 999px; background: var(--ray); }
.nd-pairwhy { display: block; margin-top: 0.25rem; }                          /* who uses the pair, on its own line */

/* — 06 type — */
.nd-inline-demo { font-family: var(--font-display); font-weight: 500; font-variation-settings: "SOFT" 100, "WONK" 1;
  font-size: 1.6rem; white-space: nowrap; }
.nd-caps { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem; margin-top: var(--space-3); }
.nd-caps__ok, .nd-caps__no { font-size: var(--text-sm); font-weight: 600; padding: 0.15em 0.7em; border-radius: 999px; }
.nd-caps__ok { background: var(--mat); color: var(--ink); box-shadow: inset 0 0 0 1px var(--line-strong); }
.nd-caps__no { background: var(--red-ink); color: var(--mat); }

/* — 07 photography: Love Sunday's .kit-photos, one more column for eight — */
@media (min-width: 60rem) { .nd-photos { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* — 08 voice — */
.nd-words { display: grid; gap: var(--space-4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.nd-line--long blockquote p { font-size: var(--text-lg); line-height: 1.35; }   /* a paragraph, not a slogan */
.nd-words > div { padding: var(--space-4); border-radius: 1rem; background: var(--mat); box-shadow: var(--shadow-contact); }
.nd-words p + p { margin-top: 0.4rem; }
.nd-quotes { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-4); }
.nd-quotes p { font-family: var(--font-display); font-style: italic; font-weight: 400;
  font-variation-settings: "SOFT" 100, "WONK" 1; font-size: var(--text-lg); line-height: 1.3; }

/* — 09 built to be calm — */
.nd-calm { list-style: none; padding: 0; margin: var(--space-6) 0 0; display: grid; gap: var(--space-5);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); }
.nd-calm li { padding: var(--space-5); border-radius: 1.1rem; background: var(--mat); box-shadow: var(--shadow-contact); }
.nd-calm h3 { font-size: clamp(1.3rem, 1.15rem + 0.6vw, 1.6rem); margin-bottom: var(--space-2); }

/* — 10 templates — */
.nd-templates { display: grid; gap: var(--space-5); margin-top: var(--space-6); align-items: start;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr)); }
.nd-template { margin: 0; display: grid; gap: var(--space-3); }
.nd-template img { width: 100%; height: auto; border-radius: 0.5rem; box-shadow: var(--shadow), var(--shadow-contact); }
.nd-template figcaption { display: grid; gap: 0.3rem; }

/* — 11 still needed — */
.nd-tally { margin-top: var(--space-5); }

/* — the end — */
.nd-anchormark { width: clamp(7.5rem, 32vw, 14rem); height: auto; aspect-ratio: 1; overflow: visible;
  filter: drop-shadow(0 0 2.4rem var(--glow)); }
