/* ═══════════════════════════════════════════════════════════════
   North Light — Design-A
   All selectors scoped under [data-design="a"] .dq-design
   or [data-design="a"] prefix. ZERO bare element rules.
   Keyframes prefixed nl-. ~1000 lines.
   ═══════════════════════════════════════════════════════════════ */

/* ── Fonts ── */
@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400;1,6..72,500&family=Outfit:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');

/* ── Design tokens ── */
[data-design="a"] {
  --design-a-primary       : #1B3A52;

  --nl-linen               : #F4F2EC;
  --nl-linen-warm          : #E5E1D6;
  --nl-linen-dark          : #1C1813;
  --nl-ink                 : #1C1813;
  --nl-ink-soft            : #3F362C;
  --nl-muted               : #807767;
  --nl-rule                : #C9C2B0;
  --nl-rule-strong         : #6E6655;

  --nl-chip-01             : #E8E4D4;
  --nl-chip-02             : #6B5645;
  --nl-chip-03             : #B9914A;
  --nl-chip-04             : #1B3A52;
  --nl-chip-01-wet         : #DDD9C8;
  --nl-chip-02-wet         : #7C6650;
  --nl-chip-03-wet         : #C99C52;
  --nl-chip-04-wet         : #224862;

  --nl-light-warm          : #F1D7A0;
  --nl-light-cool          : #C7CFD6;
  --nl-pigment-bloom       : rgba(105,80,55,0.18);
  --nl-critical            : #B23A1F;
  --nl-success             : #6F7A3A;

  --nl-surface             : var(--nl-linen);
  --nl-surface-sunk        : var(--nl-linen-warm);
  --nl-text                : var(--nl-ink);
  --nl-text-soft           : var(--nl-ink-soft);
  --nl-text-mute           : var(--nl-muted);
  --nl-brand               : var(--nl-chip-04);
  --nl-brand-wet           : var(--nl-chip-04-wet);
  --nl-accent              : var(--nl-chip-03);

  --nl-font-display        : 'Newsreader', 'Source Serif 4', Georgia, serif;
  --nl-font-body           : 'Outfit', -apple-system, 'Helvetica Neue', sans-serif;
  --nl-font-mono           : 'JetBrains Mono', 'SFMono-Regular', Menlo, monospace;

  --nl-type-spread         : clamp(40px, 7vw, 88px);
  --nl-type-display        : clamp(32px, 5vw, 60px);
  --nl-type-headline       : clamp(22px, 3vw, 30px);
  --nl-type-body-lg        : clamp(18px, 1.6vw, 21px);
  --nl-type-body           : clamp(16px, 1.4vw, 18px);
  --nl-type-caption        : 14px;
  --nl-type-stamp          : 12px;

  --nl-hairline            : 1px;
  --nl-thread              : 4px;
  --nl-grain               : 8px;
  --nl-stroke              : 16px;
  --nl-coat                : 24px;
  --nl-canvas              : 40px;
  --nl-wall                : 64px;
  --nl-room                : 96px;
  --nl-atelier             : 160px;

  --nl-radius-chip         : 0;
  --nl-radius-tag          : 2px;
  --nl-radius-btn          : 4px;

  --nl-dur-touch           : 220ms;
  --nl-dur-settle          : 380ms;
  --nl-dur-bloom           : 900ms;
  --nl-dur-load            : 1400ms;
  --nl-dur-cure            : 1800ms;
  --nl-dur-light           : 24000ms;
  --nl-dur-light-b         : 17000ms;
  --nl-dur-breath          : 6400ms;
  --nl-dur-pointer         : 8000ms;

  --nl-ease-light          : cubic-bezier(.45,.15,.35,1);
  --nl-ease-bloom          : cubic-bezier(.22,.61,.36,1);
  --nl-ease-settle         : cubic-bezier(.16,1,.3,1);

  --nl-elev-bloom          : 0 0 0 1px var(--nl-pigment-bloom), 0 0 32px -8px var(--nl-pigment-bloom);

  background              : var(--nl-linen);
  color                   : var(--nl-ink);
  font-family             : var(--nl-font-body);
  font-size               : var(--nl-type-body);
  line-height             : 1.65;
}

/* ── Base reset (scoped) ── */
[data-design="a"] .dq-design,
[data-design="a"].dq-design {
  box-sizing: border-box;
}
[data-design="a"].dq-design *,
[data-design="a"].dq-design *::before,
[data-design="a"].dq-design *::after {
  box-sizing: inherit;
}

/* ══════════════════════════════════════════════════════
   SHARED COMPONENTS
   ══════════════════════════════════════════════════════ */

/* Tag (museum catalog plate-number) */
[data-design="a"] .nl-tag {
  font-family    : var(--nl-font-mono);
  font-size      : var(--nl-type-stamp);
  letter-spacing : 0.06em;
  text-transform : uppercase;
  color          : var(--nl-text-mute);
  background     : var(--nl-linen-warm);
  border         : 1px solid var(--nl-rule);
  border-radius  : var(--nl-radius-tag);
  padding        : 3px 8px;
  display        : inline-block;
}

/* CTA — Loaded Stroke (E2) */
[data-design="a"] .nl-cta {
  position       : relative;
  display        : inline-flex;
  align-items    : center;
  gap            : var(--nl-stroke);
  padding        : 18px 30px;
  min-height     : 56px;
  min-width      : 44px;
  background     : var(--nl-brand);
  background-image: linear-gradient(95deg, var(--nl-brand-wet) 0%, var(--nl-brand) 35%, var(--nl-brand) 70%, var(--nl-brand-wet) 100%);
  background-size: 200% 100%;
  color          : var(--nl-linen);
  font-family    : var(--nl-font-body);
  font-weight    : 500;
  font-size      : 16px;
  text-decoration: none;
  border-radius  : var(--nl-radius-btn);
  cursor         : pointer;
  border         : 0;
  letter-spacing : 0.01em;
  animation      : nl-cta-breath var(--nl-dur-breath) ease-in-out infinite;
  transition     : box-shadow var(--nl-dur-settle) var(--nl-ease-bloom),
                   transform var(--nl-dur-touch) var(--nl-ease-settle);
  box-shadow     : 0 0 0 0 transparent;
}
[data-design="a"] .nl-cta__arrow {
  font-family : var(--nl-font-mono);
  font-size   : 18px;
  line-height : 1;
  transition  : transform var(--nl-dur-settle) var(--nl-ease-settle);
}
[data-design="a"] .nl-cta:hover {
  box-shadow: var(--nl-elev-bloom);
}
[data-design="a"] .nl-cta:hover .nl-cta__arrow {
  transform: translateX(4px);
}
[data-design="a"] .nl-cta:focus-visible {
  outline       : 2px solid var(--nl-brand);
  outline-offset: 4px;
  box-shadow    : var(--nl-elev-bloom);
}
[data-design="a"] .nl-cta:active {
  transform : scale(0.985);
  box-shadow: 0 0 0 1px var(--nl-pigment-bloom), 0 0 48px -4px var(--nl-pigment-bloom);
}

/* Ghost CTA variant */
[data-design="a"] .nl-cta--ghost {
  background       : transparent;
  background-image : none;
  color            : var(--nl-ink);
  border           : 1px solid var(--nl-rule-strong);
  animation        : none;
}
[data-design="a"] .nl-cta--ghost:hover {
  border-color: var(--nl-ink);
}

@keyframes nl-cta-breath {
  0%, 100% { background-position: 0% 50%; }
  50%      { background-position: 100% 50%; }
}

/* Field (input) */
[data-design="a"] .nl-field {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-grain);
}
[data-design="a"] .nl-field__label {
  font-family : var(--nl-font-display);
  font-style  : italic;
  font-size   : var(--nl-type-caption);
  color       : var(--nl-text-soft);
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-field__note {
  font-style: normal;
  color      : var(--nl-text-mute);
}
[data-design="a"] .nl-field__input {
  background   : transparent;
  border       : none;
  border-bottom: 1px solid var(--nl-rule);
  border-radius: 0;
  padding      : var(--nl-grain) 0;
  font-family  : var(--nl-font-body);
  font-size    : var(--nl-type-body);
  color        : var(--nl-ink);
  outline      : none;
  transition   : border-color var(--nl-dur-settle) var(--nl-ease-settle);
  width        : 100%;
  min-height   : 44px;
}
[data-design="a"] .nl-field__input:focus {
  border-bottom-width : 2px;
  border-bottom-color : var(--nl-brand);
}
[data-design="a"] .nl-field__input--area {
  resize     : vertical;
  min-height : 88px;
}

/* ══════════════════════════════════════════════════════
   E1 — HEADER
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-header {
  position   : sticky;
  top        : 0;
  z-index    : 50;
  background : var(--nl-linen);
}
[data-design="a"] .nl-header__bar {
  display         : flex;
  align-items     : center;
  justify-content : space-between;
  padding         : var(--nl-stroke) clamp(var(--nl-stroke), 4vw, var(--nl-canvas));
  min-height      : 68px;
}
[data-design="a"] .nl-header__logo {
  text-decoration: none;
  color          : var(--nl-ink);
}
[data-design="a"] .nl-header__mark {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : 26px;
  letter-spacing       : -0.005em;
  line-height          : 1;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-header__menu {
  appearance    : none;
  background    : transparent;
  border        : 1px solid var(--nl-rule);
  border-radius : var(--nl-radius-btn);
  width         : 44px;
  height        : 44px;
  display       : grid;
  place-content : center;
  gap           : 5px;
  cursor        : pointer;
  padding       : 0 10px;
}
[data-design="a"] .nl-header__menu-bar {
  display    : block;
  width      : 22px;
  height     : 1px;
  background : var(--nl-ink);
}
[data-design="a"] .nl-header__menu:hover {
  border-color: var(--nl-ink);
}

/* Hairline + light-rake */
[data-design="a"] .nl-header__rule {
  position   : relative;
  height     : 1px;
  background : var(--nl-rule);
  overflow   : visible;
}
[data-design="a"] .nl-header__rake {
  position   : absolute;
  left       : -10%;
  right      : -10%;
  top        : -8px;
  height     : 16px;
  background : linear-gradient(90deg, transparent 0%, var(--nl-light-warm) 30%, var(--nl-light-cool) 70%, transparent 100%);
  opacity    : 0.32;
  filter     : blur(8px);
  animation  : nl-header-rake var(--nl-dur-light-b) var(--nl-ease-light) infinite;
}
@keyframes nl-header-rake {
  0%, 100% { transform: translateX(-12%); opacity: 0.20; }
  50%      { transform: translateX(12%);  opacity: 0.40; }
}

/* Curtain (drawer) */
[data-design="a"] .nl-curtain {
  position   : fixed;
  inset      : 0;
  z-index    : 60;
  background : rgba(28,24,19,0.36);
}
[data-design="a"] .nl-curtain[hidden] {
  display: none;
}
[data-design="a"] .nl-curtain__panel {
  position        : absolute;
  left            : 0;
  right           : 0;
  top             : 0;
  background      : var(--nl-linen);
  border-bottom   : 1px solid var(--nl-brand);
  padding         : var(--nl-coat) clamp(var(--nl-stroke), 4vw, var(--nl-canvas)) var(--nl-canvas);
  display         : flex;
  flex-direction  : column;
  gap             : var(--nl-canvas);
  transform       : translateY(-100%);
  transition      : transform 760ms var(--nl-ease-light);
}
[data-design="a"] .nl-curtain.is-open .nl-curtain__panel {
  transform: translateY(0);
}
[data-design="a"] .nl-curtain__close {
  appearance  : none;
  background  : transparent;
  border      : 0;
  font-family : var(--nl-font-mono);
  font-size   : 28px;
  color       : var(--nl-ink);
  cursor      : pointer;
  align-self  : flex-end;
  width       : 44px;
  height      : 44px;
  display     : flex;
  align-items : center;
  justify-content: center;
}
[data-design="a"] .nl-curtain__nav {
  display        : flex;
  flex-direction : column;
  gap            : var(--nl-grain);
}
[data-design="a"] .nl-curtain__nav a {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-size            : 32px;
  font-weight          : 500;
  color                : var(--nl-ink);
  text-decoration      : none;
  padding              : 12px 0;
  border-bottom        : 1px solid var(--nl-rule);
  letter-spacing       : -0.005em;
  font-feature-settings: "ss01";
  display              : block;
  min-height           : 44px;
}
[data-design="a"] .nl-curtain__nav a:hover { color: var(--nl-brand); }
[data-design="a"] .nl-curtain__foot {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-coat);
  margin-top    : auto;
}
[data-design="a"] .nl-curtain__phone {
  font-family    : var(--nl-font-mono);
  font-size      : 20px;
  letter-spacing : 0.04em;
  color          : var(--nl-ink);
  text-decoration: none;
  min-height     : 44px;
  display        : flex;
  align-items    : center;
}
[data-design="a"] .nl-curtain__phone:hover { color: var(--nl-brand); }

@media (max-width: 380px) {
  [data-design="a"] .nl-header__mark { font-size: 22px; }
}

/* ══════════════════════════════════════════════════════
   HERO — E3 backdrop + text + E2 CTA
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-hero {
  position       : relative;
  min-height     : min(80vh, 760px);
  background     : var(--nl-linen);
  overflow       : hidden;
  border-bottom  : 1px solid var(--nl-rule);
  display        : flex;
  flex-direction : column;
  justify-content: center;
}

/* ONE animated layer — slow ambient atmosphere-drift + wet-edge advance */
[data-design="a"] .nl-hero__backdrop {
  position : absolute;
  inset    : 0;
  z-index  : 0;
  pointer-events: none;
  overflow : hidden;
}
[data-design="a"] .nl-hero__wash {
  position   : absolute;
  inset      : 0;
  background : linear-gradient(
    135deg,
    var(--nl-light-warm) 0%,
    var(--nl-linen)      35%,
    var(--nl-light-cool) 65%,
    var(--nl-linen-warm) 100%
  );
  background-size: 300% 300%;
  opacity    : 0.55;
  animation  : nl-hero-atmosphere var(--nl-dur-light) ease-in-out infinite,
               nl-hero-atmosphere-b var(--nl-dur-light-b) ease-in-out infinite;
}
/* Wet-edge: a soft warm band that advances across the hero surface */
[data-design="a"] .nl-hero__wet-edge {
  position   : absolute;
  top        : 0;
  bottom     : 0;
  left       : -40%;
  width      : 30%;
  background : linear-gradient(90deg, transparent 0%, var(--nl-light-warm) 50%, transparent 100%);
  opacity    : 0.28;
  filter     : blur(40px);
  animation  : nl-hero-wet-edge 17s var(--nl-ease-light) infinite;
}
@keyframes nl-hero-atmosphere {
  0%   { background-position: 0%   50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0%   50%; }
}
@keyframes nl-hero-atmosphere-b {
  0%, 100% { opacity: 0.45; }
  50%      { opacity: 0.62; }
}
@keyframes nl-hero-wet-edge {
  0%   { transform: translateX(0);     opacity: 0;    }
  8%   {                               opacity: 0.28; }
  80%  { transform: translateX(460%);  opacity: 0.28; }
  100% { transform: translateX(460%);  opacity: 0;    }
}

/* Hero body layout */
[data-design="a"] .nl-hero__body {
  position       : relative;
  z-index        : 1;
  max-width      : 1280px;
  margin         : 0 auto;
  width          : 100%;
  padding        : var(--nl-room) clamp(var(--nl-stroke), 5vw, var(--nl-canvas));
  display        : grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap            : var(--nl-canvas);
  align-items    : center;
}
[data-design="a"] .nl-hero__content {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-coat);
  align-items   : flex-start;
}
[data-design="a"] .nl-hero__pl {
  margin-bottom: var(--nl-grain);
}
[data-design="a"] .nl-hero__title {
  font-family          : var(--nl-font-display);
  font-style           : normal;
  font-weight          : 500;
  font-size            : var(--nl-type-spread);
  line-height          : 1.04;
  letter-spacing       : -0.02em;
  color                : var(--nl-ink);
  margin               : 0;
  max-width            : 18ch;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-hero__title em {
  font-style: italic;
  color     : var(--nl-ink-soft);
}
[data-design="a"] .nl-hero__sub {
  font-family : var(--nl-font-body);
  font-size   : var(--nl-type-body-lg);
  color       : var(--nl-ink-soft);
  margin      : 0;
  max-width   : 48ch;
  line-height : 1.5;
}
[data-design="a"] .nl-hero__proof {
  font-family    : var(--nl-font-mono);
  font-size      : var(--nl-type-stamp);
  letter-spacing : 0.05em;
  text-transform : uppercase;
  color          : var(--nl-text-mute);
  margin         : 0;
}

/* Hero photo column */
[data-design="a"] .nl-hero__photo-col {
  display    : flex;
  align-items: center;
  justify-content: flex-end;
}
[data-design="a"] .nl-hero__photo-frame {
  aspect-ratio : 4 / 5;
  overflow     : hidden;
  border       : 1px solid var(--nl-rule);
  width        : 100%;
  max-width    : 420px;
  position     : relative;
}
[data-design="a"] .nl-hero__photo {
  width     : 100%;
  height    : 100%;
  object-fit: cover;
  display   : block;
}

@media (max-width: 860px) {
  [data-design="a"] .nl-hero__body {
    grid-template-columns: 1fr;
  }
  [data-design="a"] .nl-hero__photo-col {
    justify-content: flex-start;
  }
  [data-design="a"] .nl-hero__photo-frame {
    aspect-ratio: 16 / 9;
    max-width   : 100%;
  }
}

/* ══════════════════════════════════════════════════════
   E6 — POINTER (sash of light)
   Immediately before #funnel — no elements between
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-pointer {
  display         : flex;
  flex-direction  : column;
  align-items     : center;
  gap             : 12px;
  width           : 100%;
  padding         : var(--nl-canvas) 0;
  background      : var(--nl-linen);
  border-bottom   : 1px solid var(--nl-rule);
  /* Pointer is NOT a link — visual wayfinding only */
  pointer-events  : none;
  user-select     : none;
  opacity         : 1;
}
[data-design="a"] .nl-pointer__field {
  position   : relative;
  width      : 56px;
  height     : 220px;
}
[data-design="a"] .nl-pointer__sash {
  position   : absolute;
  left       : 50%;
  top        : -40px;
  width      : 14px;
  height     : 80px;
  transform  : translateX(-50%);
  background : linear-gradient(180deg, transparent 0%, var(--nl-light-warm) 30%, var(--nl-light-cool) 70%, transparent 100%);
  filter     : blur(8px);
  opacity    : 0.85;
  animation  : nl-pointer-sash var(--nl-dur-pointer) var(--nl-ease-light) infinite;
}
[data-design="a"] .nl-pointer__bloom {
  position      : absolute;
  left          : 50%;
  bottom        : 0;
  width         : 56px;
  height        : 56px;
  border-radius : 999px;
  transform     : translate(-50%, 50%) scale(0.4);
  background    : radial-gradient(closest-side, var(--nl-chip-02) 0%, transparent 70%);
  opacity       : 0;
  mix-blend-mode: multiply;
  animation     : nl-pointer-bloom var(--nl-dur-pointer) var(--nl-ease-bloom) infinite;
}
[data-design="a"] .nl-pointer__label {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : 16px;
  color                : var(--nl-text-soft);
  font-feature-settings: "ss01";
  letter-spacing       : -0.005em;
}

@keyframes nl-pointer-sash {
  0%   { transform: translateX(-50%) translateY(0);     opacity: 0;    }
  10%  {                                                 opacity: 0.85; }
  85%  { transform: translateX(-50%) translateY(240px); opacity: 0.85; }
  100% { transform: translateX(-50%) translateY(240px); opacity: 0;    }
}
@keyframes nl-pointer-bloom {
  0%, 70% { opacity: 0;   transform: translate(-50%, 50%) scale(0.4); }
  85%     { opacity: 0.6; transform: translate(-50%, 50%) scale(1);   }
  100%    { opacity: 0;   transform: translate(-50%, 50%) scale(2);   }
}

/* ══════════════════════════════════════════════════════
   E5 — FUNNEL
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-funnel {
  background   : var(--nl-linen-warm);
  padding      : var(--nl-room) clamp(var(--nl-stroke), 5vw, var(--nl-canvas));
  border-bottom: 1px solid var(--nl-rule);
}
[data-design="a"] .nl-funnel__inner {
  max-width: 720px;
  margin   : 0 auto;
  display  : flex;
  flex-direction: column;
  gap      : var(--nl-canvas);
}
[data-design="a"] .nl-funnel__head {
  display: flex;
  flex-direction: column;
  gap: var(--nl-stroke);
}
[data-design="a"] .nl-funnel__title {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : var(--nl-type-display);
  line-height          : 1.06;
  letter-spacing       : -0.015em;
  color                : var(--nl-text);
  margin               : 0;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-funnel__lede {
  color      : var(--nl-text-soft);
  margin     : 0;
  max-width  : 52ch;
  line-height: 1.6;
}

/* Step fieldset */
[data-design="a"] .nl-funnel__step {
  border    : 0;
  padding   : 0;
  margin    : 0;
  display   : none;
  flex-direction: column;
  gap       : var(--nl-coat);
  animation : nl-funnel-step-in var(--nl-dur-settle) var(--nl-ease-settle) both;
}
[data-design="a"] .nl-funnel__step.is-current {
  display: flex;
}
@keyframes nl-funnel-step-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0);    }
}
[data-design="a"] .nl-funnel__legend {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : var(--nl-type-headline);
  color                : var(--nl-text);
  padding              : 0;
  line-height          : 1.2;
  font-feature-settings: "ss01";
}

/* Chips */
[data-design="a"] .nl-funnel__chips {
  display  : flex;
  flex-wrap: wrap;
  gap      : var(--nl-stroke);
}
[data-design="a"] .nl-funnel__chip {
  appearance    : none;
  background    : var(--nl-linen);
  border        : 1px solid var(--nl-rule);
  border-radius : var(--nl-radius-btn);
  padding       : 14px 22px;
  min-height    : 52px;
  font-family   : var(--nl-font-body);
  font-size     : 15px;
  color         : var(--nl-ink);
  cursor        : pointer;
  transition    : border-color var(--nl-dur-touch) var(--nl-ease-settle),
                  background   var(--nl-dur-touch) var(--nl-ease-settle),
                  box-shadow   var(--nl-dur-settle) var(--nl-ease-bloom);
}
[data-design="a"] .nl-funnel__chip:hover {
  border-color: var(--nl-rule-strong);
}
[data-design="a"] .nl-funnel__chip:focus-visible {
  outline       : 2px solid var(--nl-brand);
  outline-offset: 2px;
}
[data-design="a"] .nl-funnel__chip.is-picked {
  background  : var(--nl-brand);
  border-color: var(--nl-brand);
  color       : var(--nl-linen);
  box-shadow  : var(--nl-elev-bloom);
}

/* Contact step */
[data-design="a"] .nl-funnel__fields {
  display: flex;
  flex-direction: column;
  gap: var(--nl-canvas);
}

/* Trust block */
[data-design="a"] .nl-funnel__trust {
  border-top : 1px solid var(--nl-rule);
  padding-top: var(--nl-coat);
  display    : flex;
  flex-direction: column;
  gap        : var(--nl-stroke);
}
[data-design="a"] .nl-funnel__trust-note {
  font-family : var(--nl-font-mono);
  font-size   : 12px;
  letter-spacing: 0.04em;
  color       : var(--nl-text-mute);
  margin      : 0;
  text-transform: uppercase;
}
[data-design="a"] .nl-funnel__alt-contact {
  color  : var(--nl-text-soft);
  margin : 0;
  font-size: var(--nl-type-body);
}
[data-design="a"] .nl-funnel__phone {
  color          : var(--nl-brand);
  font-weight    : 500;
  text-decoration: none;
}
[data-design="a"] .nl-funnel__phone:hover {
  text-decoration: underline;
}

/* Confirmation */
[data-design="a"] .nl-funnel__confirm {
  background : var(--nl-linen);
  border     : 1px solid var(--nl-rule);
  padding    : var(--nl-coat);
  border-radius: var(--nl-radius-btn);
}
[data-design="a"] .nl-funnel__confirm[hidden] {
  display: none;
}
[data-design="a"] .nl-funnel__confirm-msg {
  font-family : var(--nl-font-display);
  font-style  : italic;
  font-size   : var(--nl-type-body-lg);
  color       : var(--nl-text-soft);
  margin      : 0;
  font-feature-settings: "ss01";
}

/* Progress indicator */
[data-design="a"] .nl-funnel__progress {
  display    : flex;
  gap        : var(--nl-grain);
  align-items: center;
}
[data-design="a"] .nl-funnel__dot {
  width         : 6px;
  height        : 6px;
  border-radius : 999px;
  background    : var(--nl-rule);
  transition    : background var(--nl-dur-touch) var(--nl-ease-settle);
}
[data-design="a"] .nl-funnel__dot.is-active {
  background: var(--nl-brand);
}

/* ══════════════════════════════════════════════════════
   SERVICES
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-services {
  padding      : var(--nl-room) clamp(var(--nl-stroke), 5vw, var(--nl-canvas));
  background   : var(--nl-linen);
  border-bottom: 1px solid var(--nl-rule);
}
[data-design="a"] .nl-services__inner {
  max-width: 1280px;
  margin   : 0 auto;
}
[data-design="a"] .nl-services__head {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-stroke);
  margin-bottom : var(--nl-canvas);
}
[data-design="a"] .nl-services__title {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : var(--nl-type-display);
  line-height          : 1.06;
  letter-spacing       : -0.015em;
  color                : var(--nl-text);
  margin               : 0;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-services__list {
  list-style : none;
  padding    : 0;
  margin     : 0;
  display    : flex;
  flex-direction: column;
}
[data-design="a"] .nl-services__item {
  display        : grid;
  grid-template-columns: 1fr 2fr;
  gap            : var(--nl-canvas);
  align-items    : baseline;
  padding        : var(--nl-coat) 0;
  border-bottom  : 1px solid var(--nl-rule);
}
[data-design="a"] .nl-services__item:first-child {
  border-top: 1px solid var(--nl-rule);
}
[data-design="a"] .nl-services__name {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : 20px;
  line-height          : 1.2;
  color                : var(--nl-text);
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-services__note {
  font-family : var(--nl-font-body);
  font-size   : var(--nl-type-body);
  color       : var(--nl-text-soft);
  line-height : 1.6;
}

@media (max-width: 640px) {
  [data-design="a"] .nl-services__item {
    grid-template-columns: 1fr;
    gap: var(--nl-grain);
  }
}

/* ══════════════════════════════════════════════════════
   PROCESS / PREP — E4 Ambient B
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-process {
  padding      : var(--nl-room) clamp(var(--nl-stroke), 5vw, var(--nl-canvas));
  background   : var(--nl-linen-warm);
  border-bottom: 1px solid var(--nl-rule);
}
[data-design="a"] .nl-process__inner {
  max-width: 1280px;
  margin   : 0 auto;
}
[data-design="a"] .nl-process__head {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-stroke);
  margin-bottom : var(--nl-canvas);
}
[data-design="a"] .nl-process__title {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : var(--nl-type-display);
  line-height          : 1.06;
  letter-spacing       : -0.015em;
  color                : var(--nl-text);
  margin               : 0;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-process__lede {
  color     : var(--nl-text-soft);
  max-width : 56ch;
  margin    : 0;
  line-height: 1.6;
}
[data-design="a"] .nl-process__track {
  list-style : none;
  padding    : 0;
  margin     : 0;
  display    : grid;
  grid-template-columns: repeat(auto-fit, minmax(min(200px, 100%), 1fr));
  gap        : var(--nl-canvas) var(--nl-coat);
}
[data-design="a"] .nl-process__phase {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-grain);
  padding-top   : var(--nl-coat);
  border-top    : 2px solid var(--nl-rule);
  opacity       : 0;
  transform     : translateY(16px);
  transition    : opacity var(--nl-dur-cure) var(--nl-ease-light),
                  transform var(--nl-dur-cure) var(--nl-ease-light),
                  border-top-color var(--nl-dur-load) var(--nl-ease-light);
}
[data-design="a"] .nl-process__phase.is-visible {
  opacity  : 1;
  transform: translateY(0);
}
[data-design="a"] .nl-process__phase.is-visible {
  border-top-color: var(--nl-brand);
}
[data-design="a"] .nl-process__num { margin-bottom: var(--nl-grain); }
[data-design="a"] .nl-process__phase-name {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : 20px;
  line-height          : 1.2;
  color                : var(--nl-text);
  margin               : 0;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-process__phase p {
  margin     : 0;
  color      : var(--nl-text-soft);
  font-size  : var(--nl-type-body);
  line-height: 1.6;
}

/* ══════════════════════════════════════════════════════
   ABOUT
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-about {
  padding      : var(--nl-room) clamp(var(--nl-stroke), 5vw, var(--nl-canvas));
  background   : var(--nl-linen);
  border-bottom: 1px solid var(--nl-rule);
}
[data-design="a"] .nl-about__inner {
  max-width    : 1280px;
  margin       : 0 auto;
  display      : grid;
  grid-template-columns: 1.2fr 0.8fr;
  gap          : var(--nl-atelier);
  align-items  : start;
}
[data-design="a"] .nl-about__text-col {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-coat);
}
[data-design="a"] .nl-about__title {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : var(--nl-type-display);
  line-height          : 1.06;
  letter-spacing       : -0.015em;
  color                : var(--nl-text);
  margin               : 0;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-about__pull {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-size            : var(--nl-type-body-lg);
  line-height          : 1.55;
  color                : var(--nl-text-soft);
  margin               : 0;
  max-width            : 52ch;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-about__text-col p {
  color     : var(--nl-text-soft);
  max-width : 60ch;
  margin    : 0;
  line-height: 1.7;
}
[data-design="a"] .nl-about__chips {
  list-style     : none;
  padding        : 0;
  margin         : 0;
  display        : flex;
  flex-wrap      : wrap;
  gap            : var(--nl-grain);
}
[data-design="a"] .nl-about__figure {
  margin: 0;
}

@media (max-width: 860px) {
  [data-design="a"] .nl-about__inner {
    grid-template-columns: 1fr;
    gap: var(--nl-canvas);
  }
}

/* ══════════════════════════════════════════════════════
   E4 AMBIENT B — Recent work (pigment-bloom reveal)
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-recent {
  padding      : var(--nl-room) clamp(var(--nl-stroke), 5vw, var(--nl-canvas));
  background   : var(--nl-linen-warm);
  border-bottom: 1px solid var(--nl-rule);
}
[data-design="a"] .nl-recent__head {
  max-width    : 1280px;
  margin       : 0 auto var(--nl-canvas);
  display      : flex;
  flex-direction: column;
  gap          : var(--nl-stroke);
}
[data-design="a"] .nl-recent__section-title {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : var(--nl-type-display);
  line-height          : 1.06;
  letter-spacing       : -0.015em;
  color                : var(--nl-text);
  margin               : 0;
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-recent__grid {
  list-style  : none;
  padding     : 0;
  margin      : 0 auto var(--nl-canvas);
  max-width   : 1280px;
  display     : grid;
  grid-template-columns: repeat(2, 1fr);
  gap         : var(--nl-canvas) var(--nl-coat);
}
[data-design="a"] .nl-recent__plate {
  display : flex;
  flex-direction: column;
  gap     : var(--nl-stroke);
}
[data-design="a"] .nl-recent__figure {
  position     : relative;
  margin       : 0;
  aspect-ratio : 4 / 5;
  background   : var(--nl-linen);
  overflow     : hidden;
  border       : 1px solid var(--nl-rule);
}
[data-design="a"] .nl-recent__img {
  width      : 100%;
  height     : 100%;
  object-fit : cover;
  display    : block;
  opacity    : 0;
  transform  : scale(1.03);
  transition : opacity var(--nl-dur-cure) var(--nl-ease-light),
               transform var(--nl-dur-cure) var(--nl-ease-light);
}
[data-design="a"] .nl-recent__bloom {
  position       : absolute;
  left           : 50%;
  top            : 50%;
  width          : 10%;
  height         : 10%;
  border-radius  : 999px;
  background     : radial-gradient(closest-side, var(--nl-chip-02) 0%, transparent 70%);
  transform      : translate(-50%, -50%) scale(0.4);
  opacity        : 0;
  mix-blend-mode : multiply;
  transition     : transform var(--nl-dur-bloom) var(--nl-ease-bloom),
                   opacity   var(--nl-dur-bloom) var(--nl-ease-bloom);
  z-index        : 2;
  pointer-events : none;
}
[data-design="a"] .nl-recent__plate.is-bloomed .nl-recent__img    { opacity: 1; transform: scale(1); }
[data-design="a"] .nl-recent__plate.is-bloomed .nl-recent__bloom  { transform: translate(-50%, -50%) scale(12); opacity: 0; }
[data-design="a"] .nl-recent__plate.is-blooming .nl-recent__bloom { opacity: 0.55; transform: translate(-50%, -50%) scale(8); }

[data-design="a"] .nl-recent__meta {
  display    : flex;
  flex-wrap  : wrap;
  gap        : var(--nl-grain);
  align-items: center;
}
[data-design="a"] .nl-recent__cta-row {
  max-width  : 1280px;
  margin     : 0 auto;
  display    : flex;
  justify-content: flex-start;
}

@media (max-width: 540px) {
  [data-design="a"] .nl-recent__grid {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════ */
[data-design="a"] .nl-footer {
  background : var(--nl-linen-warm);
  padding    : var(--nl-room) clamp(var(--nl-stroke), 5vw, var(--nl-canvas));
  border-top : 1px solid var(--nl-rule);
}
[data-design="a"] .nl-footer__inner {
  max-width    : 1280px;
  margin       : 0 auto;
  display      : grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap          : var(--nl-canvas);
  align-items  : start;
}
[data-design="a"] .nl-footer__brand {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-grain);
}
[data-design="a"] .nl-footer__name {
  font-family          : var(--nl-font-display);
  font-style           : italic;
  font-weight          : 500;
  font-size            : 22px;
  color                : var(--nl-text);
  font-feature-settings: "ss01";
}
[data-design="a"] .nl-footer__contact {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-coat);
  align-items   : flex-start;
}
[data-design="a"] .nl-footer__phone {
  font-family    : var(--nl-font-mono);
  font-size      : 18px;
  letter-spacing : 0.04em;
  color          : var(--nl-ink);
  text-decoration: none;
  min-height     : 44px;
  display        : flex;
  align-items    : center;
}
[data-design="a"] .nl-footer__phone:hover { color: var(--nl-brand); }
[data-design="a"] .nl-footer__legal {
  display       : flex;
  flex-direction: column;
  gap           : var(--nl-stroke);
}
[data-design="a"] .nl-footer__note {
  color      : var(--nl-text-mute);
  font-size  : var(--nl-type-caption);
  line-height: 1.6;
  margin     : 0;
  max-width  : 42ch;
}
[data-design="a"] .nl-footer__copy {
  font-family : var(--nl-font-mono);
  font-size   : var(--nl-type-stamp);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color       : var(--nl-text-mute);
  margin      : 0;
}

@media (max-width: 860px) {
  [data-design="a"] .nl-footer__inner {
    grid-template-columns: 1fr;
  }
}

/* ══════════════════════════════════════════════════════
   REDUCED MOTION
   ══════════════════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .nl-header__rake { animation: none; opacity: 0.28; }
  [data-design="a"] .nl-curtain__panel { transition: none; }
  [data-design="a"] .nl-cta { animation: none; background-image: none; }
  [data-design="a"] .nl-hero__wash { animation: none; opacity: 0.45; }
  [data-design="a"] .nl-hero__wet-edge { animation: none; opacity: 0.18; transform: translateX(200%); }
  [data-design="a"] .nl-pointer__sash { animation: none; transform: translateX(-50%) translateY(100px); opacity: 0.8; }
  [data-design="a"] .nl-pointer__bloom { animation: none; opacity: 0.4; transform: translate(-50%, 50%) scale(1); }
  [data-design="a"] .nl-funnel__step { animation: none; }
  [data-design="a"] .nl-process__phase { opacity: 1; transform: none; transition: none; }
  [data-design="a"] .nl-recent__img { opacity: 1; transform: none; transition: none; }
  [data-design="a"] .nl-recent__bloom { opacity: 0; transition: none; }
}

/* ══════════════════════════════════════════════════════
   CHROME ISOLATION — mobile no h-scroll (HARD CONTRACT)
   ══════════════════════════════════════════════════════ */
[data-design="a"].dq-design,
[data-design="a"] .dq-design {
  max-width  : 100%;
  overflow-x : clip;
}
[data-design="a"].dq-design * {
  min-width: 0;
}
[data-design="a"].dq-design img,
[data-design="a"].dq-design svg:not([data-keep-size]) {
  max-width : 100%;
  height    : auto;
}

/* Phase-3.4 hero visibility floor (forge_assemble) */
[data-design="a"] [data-mf-role="hero"] :is(h1,h2,p,.headline,.subtitle,.proof,[class*="headline"],[class*="subtitle"],[class*="proof"]),
[data-design="a"] [data-mf-role="cta"] { opacity: 1 !important; }
