/* Networthy — the styles theme.json can't express.
   Everything colour and type related comes from theme.json presets; this file holds
   the structural devices of direction 04: ink rules, halftone fields, sticker cards,
   the pill nav, the open-seat grid and the "what broke" block.
   Palette rules enforced here — never set text in --teal or --coral on a light ground:
   #14B8A6 is 2.33:1 and #FF5A5F is 2.86:1 on paper. Use --teal-deep / --coral-text. */

:root{
  --nw-paper:      var(--wp--preset--color--paper);
  --nw-paper-2:    var(--wp--preset--color--paper-2);
  --nw-ink:        var(--wp--preset--color--ink);
  --nw-ink-2:      var(--wp--preset--color--ink-2);
  --nw-teal:       var(--wp--preset--color--teal);
  --nw-teal-deep:  var(--wp--preset--color--teal-deep);
  --nw-coral:      var(--wp--preset--color--coral);
  --nw-coral-text: var(--wp--preset--color--coral-text);
  --nw-sun:        var(--wp--preset--color--sunshine);
  --nw-warm:       var(--wp--preset--color--warm-grey);
  --nw-rule:       var(--wp--preset--color--rule);
  --nw-mono:       var(--wp--preset--font-family--mono);
  --nw-display:    var(--wp--preset--font-family--display);
  --nw-wordmark:   var(--wp--preset--font-family--wordmark);
}

/* ---- structural rule: sections are divided by a 2px ink rule, not by cards ---- */
.wp-block-group.is-style-nw-ink,
.wp-block-group.is-style-nw-tint,
.nw-section{ border-bottom:2px solid var(--nw-ink); }
.wp-block-group.is-style-nw-ink{ background:var(--nw-ink); color:var(--nw-paper); }
.wp-block-group.is-style-nw-ink :where(p){ color:#BDB7AC; }
.wp-block-group.is-style-nw-ink :where(h1,h2,h3){ color:var(--nw-paper); }
.wp-block-group.is-style-nw-tint{ background:var(--nw-paper-2); }

/* ---- halftone field: hero only, never behind body copy ---- */
.wp-block-group.is-style-nw-halftone{ position:relative; overflow:hidden; }
.wp-block-group.is-style-nw-halftone::before{
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:radial-gradient(circle, var(--nw-teal) 1.4px, transparent 1.6px);
  background-size:18px 18px; opacity:.2;
}
.wp-block-group.is-style-nw-halftone > *{ position:relative; z-index:2; }

/* ---- eyebrow: mono, tracked, with a coral dash ---- */
p.is-style-nw-eyebrow{
  display:inline-flex; align-items:center; gap:10px; margin:0;
  font-family:var(--nw-mono); font-size:.6875rem; font-weight:500;
  letter-spacing:.22em; text-transform:uppercase; color:var(--nw-teal-deep);
}
p.is-style-nw-eyebrow::before{ content:""; width:28px; height:2px; background:var(--nw-coral); flex:none; }
.is-style-nw-ink p.is-style-nw-eyebrow{ color:var(--nw-sun); }
p.is-style-nw-meta{
  font-family:var(--nw-mono); font-size:.6875rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--nw-warm); margin:0;
}

/* ---- the bar: in / out lists ---- */
ul.is-style-nw-check, ul.is-style-nw-cross{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:13px; }
ul.is-style-nw-check li, ul.is-style-nw-cross li{ padding-left:28px; position:relative; line-height:1.45; }
ul.is-style-nw-check li::before{ content:"✓"; position:absolute; left:0; font-weight:700; color:var(--nw-teal-deep); }
ul.is-style-nw-cross li::before{ content:"✕"; position:absolute; left:0; font-weight:700; color:var(--nw-coral); }

/* ---- sticker card: the ONLY place a card is spent ---- */
.wp-block-group.is-style-nw-sticker{
  background:#fff; border:2px solid var(--nw-ink); box-shadow:6px 6px 0 var(--nw-teal);
  padding:20px; display:flex; flex-direction:column; gap:11px; min-width:0;
}
.nw-wall > .wp-block-post:nth-child(3n+2) .is-style-nw-sticker{ box-shadow:6px 6px 0 var(--nw-coral); }
.nw-wall > .wp-block-post:nth-child(3n)   .is-style-nw-sticker{ box-shadow:6px 6px 0 var(--nw-sun); }
.nw-kill{
  font-family:var(--nw-mono); font-size:.6875rem; letter-spacing:.04em; color:var(--nw-coral-text);
  border-top:1.5px dashed var(--nw-rule); padding-top:10px; margin-top:auto;
}

/* ---- what broke: the most emphasised block on a build page, by design ---- */
.wp-block-group.is-style-nw-broke{
  background:var(--nw-ink); color:var(--nw-paper);
  border-left:6px solid var(--nw-coral); padding:clamp(18px,2.6vw,26px);
}
.wp-block-group.is-style-nw-broke :where(h2,h3){ color:var(--nw-sun); }
.wp-block-group.is-style-nw-broke :where(p){ color:#C9C4BA; max-width:60ch; }

/* ---- header / footer ---- */
.nw-header{ border-bottom:2px solid var(--nw-ink); background:var(--nw-paper); }
.nw-logo a, .nw-logo{
  font-family:var(--nw-wordmark); font-size:clamp(1rem,2.2vw,1.3rem);
  letter-spacing:-.01em; line-height:1; text-decoration:none; color:var(--nw-ink); white-space:nowrap;
}
.nw-logo .nw-worthy{ color:var(--nw-coral); } /* logotype — WCAG 1.4.3 exempts it */
.nw-nav a{
  font-size:.75rem; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  text-decoration:none; color:var(--nw-ink);
}
.nw-nav .current-menu-item a{ border-bottom:3px solid var(--nw-coral); padding-bottom:2px; }

/* ---- chips ---- */
.nw-chips{ display:flex; flex-wrap:wrap; gap:7px; }
.nw-chips a, .nw-chip{
  font-family:var(--nw-mono); font-size:.6875rem; letter-spacing:.04em;
  padding:6px 13px; border-radius:999px; border:1.5px solid var(--nw-teal);
  color:var(--nw-teal-deep); background:#fff; text-decoration:none;
}

/* ---- roster: filled seats and open ones ---- */
.nw-seats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:clamp(14px,2vw,22px); }
.nw-plate{
  aspect-ratio:1/1.1; border:2px solid var(--nw-ink); position:relative; overflow:hidden;
  background:var(--nw-teal); display:grid; place-items:center;
}
.nw-plate::after{
  content:""; position:absolute; inset:0; mix-blend-mode:multiply; opacity:.6;
  background-image:radial-gradient(circle, var(--nw-coral) 2px, transparent 2.2px); background-size:8px 8px;
}
.nw-plate img{ width:100%; height:100%; object-fit:cover; filter:grayscale(1) contrast(1.15); }
.nw-open-seat{
  border:2px dashed var(--nw-rule); aspect-ratio:1/1.1; display:grid; place-items:center;
  text-align:center; padding:12px; font-family:var(--nw-mono); font-size:.625rem;
  letter-spacing:.14em; text-transform:uppercase; color:var(--nw-warm); line-height:1.8;
}
.nw-open-seat b{ display:block; font-family:var(--nw-wordmark); font-size:1.25rem; color:var(--nw-rule); }
.nw-founding{
  display:inline-block; font-family:var(--nw-mono); font-size:.5938rem; letter-spacing:.12em;
  text-transform:uppercase; background:var(--nw-sun); color:var(--nw-ink); padding:3px 7px;
}

/* ---- build record panel ---- */
.nw-specs{ border:2px solid var(--nw-ink); background:#fff; }
.nw-specs .nw-specs-h{
  background:var(--nw-ink); color:var(--nw-paper); font-family:var(--nw-mono);
  font-size:.6563rem; letter-spacing:.18em; text-transform:uppercase; padding:9px 14px;
}
.nw-specs .nw-row{ display:grid; grid-template-columns:96px minmax(0,1fr); gap:12px; padding:11px 14px; border-top:1px solid var(--nw-rule); align-items:baseline; }
.nw-specs .nw-k{ font-family:var(--nw-mono); font-size:.625rem; letter-spacing:.1em; text-transform:uppercase; color:var(--nw-warm); }
.nw-specs .nw-v{ font-size:.875rem; line-height:1.45; }
.nw-specs .nw-v.nw-big{ font-family:var(--nw-wordmark); font-size:1.1875rem; letter-spacing:-.01em; font-variant-numeric:tabular-nums; }

/* ---- Memphis confetti: hero only, gone on small screens ---- */
.nw-conf{ position:absolute; pointer-events:none; }
.nw-conf-square{ width:74px; height:74px; border:4px solid var(--nw-sun); transform:rotate(17deg); }
.nw-conf-tri{ width:0; height:0; border-left:26px solid transparent; border-right:26px solid transparent; border-bottom:46px solid var(--nw-coral); transform:rotate(-16deg); }
.nw-conf-dot{ width:40px; height:40px; border-radius:50%; background:var(--nw-teal); }
@media(max-width:820px){ .nw-conf{ display:none; } }

/* ---- accessibility ---- */
:where(a,button,input,summary):focus-visible{ outline:3px solid var(--nw-coral-text); outline-offset:2px; }
@media(prefers-reduced-motion:reduce){ *,*::before,*::after{ animation-duration:.01ms!important; transition-duration:.01ms!important; } }

/* ---- forms: Apply and Demo Day ---- */
.nw-form{ display:flex; flex-direction:column; gap:22px; max-width:640px; }
.nw-field{ display:flex; flex-direction:column; gap:6px; margin:0; }
.nw-field label{ font-family:var(--nw-display); font-size:clamp(1.05rem,1rem + .4vw,1.3rem); line-height:1.2; color:var(--nw-ink); }
.nw-help{ font-size:.875rem; color:var(--nw-warm); line-height:1.5; }
.nw-field input, .nw-field textarea{
  font:inherit; font-size:1rem; color:var(--nw-ink); background:#fff;
  border:2px solid var(--nw-ink); border-radius:0; padding:13px 15px; width:100%; box-sizing:border-box;
}
.nw-field textarea{ min-height:110px; resize:vertical; }
.nw-field input:focus-visible, .nw-field textarea:focus-visible{ outline:3px solid var(--nw-teal); outline-offset:0; }
.nw-submit{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; margin:0; }
.nw-submit .nw-help{ font-family:var(--nw-mono); font-size:.72rem; }
.nw-hp{ position:absolute!important; left:-9999px!important; width:1px; height:1px; overflow:hidden; }
.nw-form-error{
  margin:0; padding:12px 15px; background:#fff; border:2px solid var(--nw-coral-text);
  border-left-width:6px; color:var(--nw-coral-text); font-weight:600;
}
.nw-form-done{ border:2px solid var(--nw-ink); border-left:6px solid var(--nw-teal); background:#fff; padding:22px 24px; max-width:640px; }
.nw-form-done h3{ margin:0 0 8px; }
.nw-form-done p{ margin:0; color:var(--nw-ink-2); }

/* ---- apply price card ---- */
.nw-price .nw-amt{ font-family:var(--nw-wordmark); font-size:clamp(1.9rem,1.4rem + 2vw,2.75rem); line-height:1; letter-spacing:-.02em; color:var(--nw-sun)!important; margin:0; }
.nw-price .nw-amt span{ font-size:1.1rem; }
.nw-price ul{ padding-left:18px; color:#CFC9BE; line-height:1.8; }
.nw-price .is-style-nw-meta{ color:#8C857A; }

/* ---- member's builds ---- */
.nw-runs{ border-top:2px solid var(--nw-ink); }
.nw-run{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:14px; padding:15px 0; border-bottom:1px solid var(--nw-rule); text-decoration:none; color:inherit; align-items:baseline; }
.nw-run-t{ display:block; font-family:var(--nw-display); font-size:1.15rem; line-height:1.2; }
.nw-run-d{ display:block; font-size:.875rem; color:var(--nw-ink-2); margin-top:3px; }
.nw-run-n{ font-family:var(--nw-mono); font-size:.72rem; color:var(--nw-coral-text); white-space:nowrap; }
.nw-run:hover .nw-run-t{ text-decoration:underline; }

/* ---- ink sections: headings and lists legible on the dark ground ---- */
.wp-block-group.is-style-nw-ink :where(li){ color:#CFC9BE; }
.wp-block-group.is-style-nw-ink a:where(:not(.wp-element-button)){ color:var(--nw-sun); }
