/* Nić — funnel #2 skin (stage N1, 2026-09-24). Paper and ink, one burgundy action, one red thread.
 *
 * Loaded only when the boot script sees ?variant=nic (the <link> waits inert inside
 * <template id="nic-skin">, so classic visitors never download this file). This first part
 * changes colour, type and surfaces only — never fields, routing or saves. It dresses the
 * classic cards the Nić screen (N1b, nic-skin.js, further down) does not draw yet.
 *
 * Every selector starts with html.funnel-nic:not(#n#i#c). The :not() carries three ids of
 * specificity, which beats the classic skin's id-qualified !important rules no matter where the
 * later <style> blocks sit in the page. Inline !important styles set by the runtime are layout
 * only (display, margins, heights) and are left alone on purpose.
 */
html.funnel-nic:not(#n#i#c) {
  --nic-linen: #F4EEE3; --nic-paper: #FBF8F2; --nic-ink: #26221D; --nic-ink2: #3D372F;
  --nic-muted: #5E564B; --nic-faint: #6B6255; --nic-line: #DCCFB8; --nic-edge: #D9CBB2;
  --nic-burgundy: #7B1E2E; --nic-burgundy-d: #5C1522; --nic-thread: #8E2233; --nic-gold: #A8894F;
  --nic-sel: #F7EDE8; --nic-field: #CDBFA6;
  --nic-serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --nic-sans: "Plus Jakarta Sans", "Inter", system-ui, sans-serif;
  color-scheme: light;
  background: var(--nic-linen) !important;
}

/* ── Ground: linen everywhere, no night sky, no stage art ─────────────────────────────── */
html.funnel-nic:not(#n#i#c) body {
  background: var(--nic-linen) !important;
  color: var(--nic-ink) !important;
  font-family: var(--nic-sans) !important;
}
html.funnel-nic:not(#n#i#c) :is(.app, #phone, section.card, section.card > main, section.card > header.top, .edu-main-wrap) {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) :is(body, .app, #phone, section.card, section.card > main)::before,
html.funnel-nic:not(#n#i#c) :is(body, .app, #phone, section.card, section.card > main)::after {
  background-image: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
}

/* ── Text: ink on paper ───────────────────────────────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) section.card :is(p, li, label, small, dt, dd, span, div, strong, b, em, i) {
  color: var(--nic-ink2) !important;
  text-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(h1, h2, h3, .form-q) {
  color: var(--nic-ink) !important;
  font-family: var(--nic-serif) !important;
  font-weight: 600 !important;
  letter-spacing: -0.2px !important;
  text-shadow: none !important;
  background: none !important;
  -webkit-text-fill-color: currentColor !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.help, .q-ask, .edu-card-text, .w1-w-soft, .bridge-micro) {
  color: var(--nic-muted) !important;
}
html.funnel-nic:not(#n#i#c) section.card a:not(.btn):not(.edu-foot-cta) {
  color: var(--nic-burgundy) !important;
}

/* ── The thread: stage label, eyebrow, progress ───────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) section.card :is(.funnel-mobile-label, .q-label) {
  color: var(--nic-burgundy) !important;
  font-family: var(--nic-sans) !important;
  letter-spacing: 1.4px !important;
}
html.funnel-nic:not(#n#i#c) section.card .q-bar {
  background: var(--nic-thread) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.funnel-mobile-stages .seg, .funnel-progress-track) {
  background: var(--nic-line) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.funnel-mobile-stages .seg i, .funnel-progress-fill) {
  background: var(--nic-thread) !important;
  background-image: none !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card .funnel-mobile-stages .seg:not(.done):not(.on) i {
  background: transparent !important;
}

/* ── Answers: paper chips with a thread dot ───────────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) section.card .chip {
  background: var(--nic-paper) !important;
  background-image: none !important;
  border: 1px solid var(--nic-edge) !important;
  color: var(--nic-ink) !important;
  box-shadow: none !important;
  font-family: var(--nic-sans) !important;
  transition: background-color .35s ease, border-color .35s ease !important;
}
html.funnel-nic:not(#n#i#c) section.card .chip :is(span, b, small, i) {
  color: var(--nic-ink) !important;
}
html.funnel-nic:not(#n#i#c) section.card .chip .dot {
  background: transparent !important;
  border: 1.4px solid var(--nic-thread) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card .chip .dot::before,
html.funnel-nic:not(#n#i#c) section.card .chip .dot::after {
  background: var(--nic-thread) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card .chip:is(:hover, :focus-visible) {
  border-color: var(--nic-thread) !important;
}
html.funnel-nic:not(#n#i#c) section.card .chip.picked {
  background: var(--nic-sel) !important;
  border-color: var(--nic-thread) !important;
}
html.funnel-nic:not(#n#i#c) section.card .chip.picked .dot {
  background: var(--nic-thread) !important;
}

/* ── Fields: white, warm edge ─────────────────────────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) section.card :is(input.tin, input[type="text"], input[type="email"], input[type="tel"], input[type="date"], textarea, select) {
  background: #fff !important;
  background-image: none !important;
  border: 1px solid var(--nic-field) !important;
  color: var(--nic-ink) !important;
  -webkit-text-fill-color: var(--nic-ink) !important;
  box-shadow: none !important;
  caret-color: var(--nic-burgundy) !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(input, textarea)::placeholder {
  color: var(--nic-faint) !important;
  -webkit-text-fill-color: var(--nic-faint) !important;
  opacity: 1 !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(input, textarea, select, .chip, .btn, a, button):focus-visible {
  outline: 2px solid var(--nic-burgundy) !important;
  outline-offset: 2px !important;
}
html.funnel-nic:not(#n#i#c) section.card .flab {
  color: var(--nic-ink2) !important;
  font-weight: 600 !important;
}

/* ── One burgundy action per screen ───────────────────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) section.card :is(.btn.primary, .bridge-primary, .edu-foot-cta) {
  background: var(--nic-burgundy) !important;
  background-image: none !important;
  border: 0 !important;
  color: #fff !important;
  box-shadow: none !important;
  font-family: var(--nic-sans) !important;
  font-style: normal !important;
  font-weight: 600 !important;
  opacity: 1 !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.btn.primary, .bridge-primary, .edu-foot-cta) :is(span, i, b, small, svg) {
  color: #fff !important;
  font-family: var(--nic-sans) !important;
  font-style: normal !important;
}
html.funnel-nic:not(#n#i#c) section.card .bridge-primary .s {
  color: rgba(255, 255, 255, 0.78) !important;
  font-size: 12px !important;
}
/* The classic bridge sets its two actions in a large display italic; Nić keeps them plain. */
html.funnel-nic:not(#n#i#c) section.card :is(.bridge-primary, .bridge-secondary) .l {
  font-size: 17px !important;
  line-height: 1.25 !important;
  letter-spacing: 0 !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.btn.primary, .bridge-primary, .edu-foot-cta):hover {
  background: var(--nic-burgundy-d) !important;
}
/* Waiting (answer still missing): the same button, quieter — never a different colour. */
html.funnel-nic:not(#n#i#c) section.card :is(.btn.primary, .bridge-primary).is-wait {
  opacity: 0.55 !important;
}
/* Case Book: a card shown classic inside the book, and the classic dialogs there, take the
   Nić screen's lighter book tone (.nic-book, set by nic-skin.js; screen rules further down). */
html.funnel-nic.nic-book:not(#n#i#c) section.card :is(.btn.primary, .bridge-primary, .edu-foot-cta),
html.funnel-nic.nic-book:not(#n#i#c) .codex-operation-card .edu-card-foot :is(.edu-foot-cta, #codex-delete-confirm) {
  background: #9C4A55 !important;
  font-weight: 500 !important;
}
html.funnel-nic.nic-book:not(#n#i#c) section.card :is(.btn.primary, .bridge-primary, .edu-foot-cta):hover,
html.funnel-nic.nic-book:not(#n#i#c) .codex-operation-card .edu-card-foot :is(.edu-foot-cta, #codex-delete-confirm):hover {
  background: #8A3844 !important;
}
html.funnel-nic:not(#n#i#c) section.card .bridge-secondary {
  background: var(--nic-paper) !important;
  background-image: none !important;
  border: 1px solid var(--nic-field) !important;
  color: var(--nic-ink) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card .bridge-secondary :is(span, .l) {
  color: var(--nic-ink) !important;
  font-family: var(--nic-sans) !important;
  font-style: normal !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.bridge-link, .foot-back, .v1-foot-back, .start-over, .edu-flip-trigger, .skip, .foot-skip, .edu-flip-back-return) {
  color: var(--nic-muted) !important;
  background: none !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.bridge-link, .foot-back, .v1-foot-back, .start-over, .edu-flip-trigger, .skip, .foot-skip) :is(span, svg) {
  color: var(--nic-muted) !important;
}

/* ── Boards: archive paper with a hairline ────────────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) section.card :is(.w1-welcome, .bridge-board, .edu-card-box, .edu-flip-back, .note-box, .notice, .v1-board-note, .result-box) {
  background: var(--nic-paper) !important;
  background-image: none !important;
  border: 1px solid var(--nic-line) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.w1-w-strong, .edu-card-title) {
  color: var(--nic-ink) !important;
}
html.funnel-nic:not(#n#i#c) section.card .edu-icon-wrap {
  color: var(--nic-thread) !important;
  background: none !important;
}
html.funnel-nic:not(#n#i#c) section.card .edu-icon-wrap :is(svg, svg *) {
  color: var(--nic-thread) !important;
  stroke: currentColor !important;
}

/* ── Top controls and the desktop rail ────────────────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) #codex-top-controls .codex-top-btn {
  color: var(--nic-muted) !important;
  background: transparent !important;
  border-color: var(--nic-edge) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) #codex-top-controls .codex-top-btn :is(svg, svg *) {
  color: var(--nic-muted) !important;
}
html.funnel-nic:not(#n#i#c) #codex-top-controls .codex-top-btn:hover {
  color: var(--nic-ink) !important;
  border-color: var(--nic-thread) !important;
}
html.funnel-nic:not(#n#i#c) aside.rail {
  background: transparent !important;
  background-image: none !important;
  border-color: #E4D9C6 !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) aside.rail :is(span, div, b, i, small, p, a, button, li) {
  color: var(--nic-muted) !important;
  text-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) aside.rail :is(.on, .active, .is-active, [aria-current="step"]) :is(span, b) {
  color: var(--nic-ink) !important;
}

/* ── Consent line and cookie bar in the same paper ────────────────────────────────────── */
html.funnel-nic:not(#n#i#c) #pcp-consent-banner-v106 {
  background: var(--nic-paper) !important;
  border-top: 1px solid var(--nic-line) !important;
  box-shadow: 0 -6px 18px rgba(38, 34, 29, 0.06) !important;
  color: var(--nic-ink2) !important;
}
html.funnel-nic:not(#n#i#c) #pcp-consent-banner-v106 :is(p, span) {
  color: var(--nic-ink2) !important;
}
html.funnel-nic:not(#n#i#c) #pcp-consent-banner-v106 a {
  color: var(--nic-burgundy) !important;
}
html.funnel-nic:not(#n#i#c) #pcp-consent-banner-v106 .pcp-consent-decline {
  background: transparent !important;
  border: 1px solid var(--nic-field) !important;
  color: var(--nic-ink) !important;
}
html.funnel-nic:not(#n#i#c) #pcp-consent-banner-v106 .pcp-consent-accept {
  background: var(--nic-burgundy) !important;
  color: #fff !important;
  border: 0 !important;
}

/* ── Classic dialogs (Save, Start over, Delete, Pause) in the Nić look ───────────────────
   Roman 24.09 ("not like this!"): they open in the top layer over the Nić screen, so they
   must be paper and ink too, not the dark classic card. Same dialogs, same buttons. */
html.funnel-nic:not(#n#i#c) .codex-operation-dialog,
html.funnel-nic:not(#n#i#c) dialog.codex-freeze-overlay {
  background: rgba(38, 34, 29, .42) !important;
  backdrop-filter: blur(6px) !important;
  -webkit-backdrop-filter: blur(6px) !important;
  align-items: center !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-dialog::backdrop { background: transparent !important; }
html.funnel-nic:not(#n#i#c) .codex-operation-dialog .codex-operation-card,
html.funnel-nic:not(#n#i#c) .codex-freeze-overlay .codex-freeze-card {
  max-width: 560px !important;
  height: auto !important;
  max-height: calc(100dvh - 48px) !important;
  justify-content: flex-start !important;
  padding: 44px 44px 36px !important;
  background: #FFFDF8 !important;
  color: #26221D !important;
  border: 1px solid #DCCFB8 !important;
  border-radius: 6px !important;
  box-shadow: 0 1px 2px rgba(38, 34, 29, .1), 0 34px 70px -34px rgba(38, 34, 29, .6) !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-content::before,
html.funnel-nic:not(#n#i#c) .codex-freeze-card .edu-card-content::before {
  content: "";
  display: block;
  width: 34px;
  height: 34px;
  margin: 0 auto 18px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-50 -50 100 100'%3E%3Cg fill='%237B1E2E'%3E%3Cpath d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3Cpath transform='rotate(45)' d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3Cpath transform='rotate(90)' d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3Cpath transform='rotate(135)' d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3Cpath transform='rotate(180)' d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3Cpath transform='rotate(225)' d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3Cpath transform='rotate(270)' d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3Cpath transform='rotate(315)' d='M0-8C7-16 7-30 0-40C-7-30-7-16 0-8Z'/%3E%3C/g%3E%3Ccircle r='5.5' fill='%23A8894F'/%3E%3C/svg%3E") center / contain no-repeat;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card :is(.edu-card-title, .codex-freeze-title) {
  font: 600 32px/1.15 "Cormorant Garamond", Georgia, "Times New Roman", serif !important;
  letter-spacing: -.2px !important;
  color: #26221D !important;
  margin: 0 0 14px !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card :is(.edu-card-text, .codex-freeze-desc),
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-content :is(p, li, span, label) {
  font: 400 16px/1.65 "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
  color: #3D372F !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-content :is(input, textarea, select) {
  background: #fff !important;
  color: #26221D !important;
  border: 1px solid #D9CBB2 !important;
  border-radius: 12px !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card :is(.codex-save-ref-box, .codex-save-ref-code) {
  background: #F4EEE3 !important;
  color: #26221D !important;
  border-color: #D9CBB2 !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-foot :is(button, a) {
  min-height: 52px !important;
  background: #FBF8F2 !important;
  color: #7B1E2E !important;
  border: 1px solid #8E2233 !important;
  border-radius: 14px !important;
  font: 600 15px/1.3 "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-foot :is(button, a):hover { background: #F6E9E6 !important; }
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-foot :is(.edu-foot-cta, #codex-delete-confirm) {
  background: #7B1E2E !important;
  color: #fff !important;
  border-color: transparent !important;
}
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-foot :is(.edu-foot-cta, #codex-delete-confirm):hover { background: #5C1522 !important; }
html.funnel-nic:not(#n#i#c) .codex-operation-card .edu-card-foot :is(button, a):focus-visible { outline: 2px solid #8E2233 !important; outline-offset: 3px !important; }

/* ── Motion: slow and calm; nothing moves for reduced-motion or Save-Data ─────────────── */
html.funnel-nic:not(#n#i#c) section.card.on > main {
  animation: nic-main-fade .6s cubic-bezier(.22, .61, .36, 1) both;
}
/* Opacity only: a transform on <main> would become the containing block of any fixed child.
   Its own name: the screen's nic-rise (with a transform) is defined later in this file and
   would replace a keyframes rule of the same name. */
@keyframes nic-main-fade {
  from { opacity: 0; }
  to { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  html.funnel-nic:not(#n#i#c) section.card.on > main { animation: none !important; }
  html.funnel-nic:not(#n#i#c) section.card .chip { transition: none !important; }
}

/* ── Desktop rail: the thread in the margin, knots for stages ─────────────────────────── */
html.funnel-nic:not(#n#i#c) aside.rail .rail-progress-track,
html.funnel-nic:not(#n#i#c) aside.rail .rail-step::after {
  background: var(--nic-line) !important;
  background-image: none !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) aside.rail .rail-progress-fill {
  background: var(--nic-thread) !important;
  background-image: none !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) aside.rail .rail-dot {
  background: var(--nic-linen) !important;
  background-image: none !important;
  border: 1.4px solid #BFAE8F !important;
  color: var(--nic-muted) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) aside.rail .rail-step:is(.on, .done) .rail-dot {
  background: var(--nic-thread) !important;
  border-color: var(--nic-thread) !important;
  color: #fff !important;
}
html.funnel-nic:not(#n#i#c) aside.rail .rail-step.on .rail-step-label span {
  color: var(--nic-ink) !important;
  font-weight: 600 !important;
}

/* ── Secondary actions: paper with a warm edge, never a second colour ─────────────────── */
html.funnel-nic:not(#n#i#c) section.card :is(.btn.secondary, .btn.ghost, .btn.outline) {
  background: var(--nic-paper) !important;
  background-image: none !important;
  border: 1px solid var(--nic-field) !important;
  color: var(--nic-ink) !important;
  box-shadow: none !important;
}
html.funnel-nic:not(#n#i#c) section.card :is(.btn.secondary, .btn.ghost, .btn.outline) :is(span, i, b) {
  color: var(--nic-ink) !important;
  font-family: var(--nic-sans) !important;
  font-style: normal !important;
}

/* ── Cover: wordmark in ink, the eight stages as paper tiles ──────────────────────────── */
html.funnel-nic:not(#n#i#c) section#intro .codex-homepage-wordmark :is(text, tspan) {
  fill: var(--nic-ink) !important;
}
html.funnel-nic:not(#n#i#c) section#intro .codex-homepage-wordmark tspan:first-child {
  fill: var(--nic-burgundy) !important;
}
html.funnel-nic:not(#n#i#c) section#intro .intro-process li {
  background: var(--nic-paper) !important;
  background-image: none !important;
  border: 1px solid var(--nic-line) !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}
html.funnel-nic:not(#n#i#c) section#intro .intro-process li :is(a, span, b, small, div, em) {
  color: var(--nic-ink) !important;
}
html.funnel-nic:not(#n#i#c) section#intro .intro-process li::after {
  color: var(--nic-gold) !important;
}

/* ═════════════════════════════════════════════════════════════════════════════════════════
 * N1b — the Nić screen (nic-skin.js). The script draws the active card in the prototype's
 * layout inside the #nic shadow root and forwards every tap to the classic card underneath.
 * This same file is linked inside that shadow root, so the rules below come in two scopes:
 * document rules (html.funnel-nic …) and screen rules (:host, .nic-*), which never meet.
 *
 * Fonts: Cormorant Garamond and Plus Jakarta Sans, SIL Open Font License 1.1 (see
 * nic/fonts-LICENSE.txt). Self-hosted on purpose: no request to Google (GDPR).
 * ═════════════════════════════════════════════════════════════════════════════════════════ */
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500 600; font-display: swap;
  src: url("nic/cormorant-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500 600; font-display: swap;
  src: url("nic/cormorant-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 500; font-display: swap;
  src: url("nic/cormorant-italic-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: italic; font-weight: 500; font-display: swap;
  src: url("nic/cormorant-italic-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("nic/jakarta-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Plus Jakarta Sans"; font-style: normal; font-weight: 400 600; font-display: swap;
  src: url("nic/jakarta-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

/* ── Document scope: the screen covers the classic page; it never hides it ─────────────── */
html.funnel-nic #nic { display: none !important; }
html.funnel-nic.nic-ready:not(.nic-pass) #nic {
  display: block !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147482000 !important; /* under the consent banner (2147483000) and every <dialog> */
  overflow-x: hidden !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
  margin: 0 !important;
  padding: 0 !important;
  width: auto !important;
  height: auto !important;
  max-width: none !important;
  transform: none !important;
  background: #F4EEE3 !important;
}
html.funnel-nic.nic-ready:not(.nic-pass) :is(#codex-top-controls, #codex-stage-toggle, #funnelLangToggle, .have-file) {
  visibility: hidden !important;
}
html.funnel-nic.nic-ready:not(.nic-pass),
html.funnel-nic.nic-ready:not(.nic-pass) body { overflow: hidden !important; }
/* Start-up veil: the classic page waits up to 2.5 s for the Nić screen, then shows anyway.
   Opacity only, so the engine and its screen tracker still see a visible card. */
html.funnel-nic:not(.nic-ready) body > .app { animation: nic-veil 0s linear 2.5s both; }
@keyframes nic-veil { from { opacity: 0; } to { opacity: 1; } }

/* ── Screen scope (inside #nic): the prototype, ported ──────────────────────────────────── */
:host {
  all: initial;
  display: block;
  --linen: #F4EEE3; --paper: #FBF8F2; --ink: #26221D; --ink2: #3D372F; --muted: #5E564B; --faint: #6B6255;
  --line: #DCCFB8; --edge: #D9CBB2; --burgundy: #7B1E2E; --burgundy-d: #5C1522; --thread: #8E2233; --gold: #A8894F;
  --sel: #F7EDE8; --field: #CDBFA6; --ease: cubic-bezier(.22, .61, .36, 1);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.4;
  -webkit-font-smoothing: antialiased;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}
.nic-app, .nic-app *, .nic-app *::before, .nic-app *::after { box-sizing: border-box; }
.nic-app { min-height: 100dvh; background: var(--linen); display: grid; grid-template-columns: minmax(0, 1fr); }
/* :where() keeps this reset at zero specificity, so every .nic-* rule below wins over it. */
:where(.nic-app) :where(button, input, select, textarea) { font: inherit; color: inherit; margin: 0; }
:where(.nic-app) :focus-visible { outline: 2px solid var(--burgundy); outline-offset: 2px; }
.nic-rail, .nic-hero { display: none; }
.nic-area { position: relative; width: 100%; max-width: 520px; margin: 0 auto; padding: 12px 24px calc(96px + env(safe-area-inset-bottom)); min-height: 100dvh; display: flex; flex-direction: column; }
.nic-top { position: relative; display: flex; align-items: center; gap: 8px; min-height: 48px; }
.nic-brand { flex: 1; min-width: 0; font: 600 12px/1.25 var(--sans); letter-spacing: 1.6px; text-transform: uppercase; color: var(--muted); }
.nic-icon { width: 44px; height: 44px; margin-inline-start: -12px; border: 0; background: none; color: var(--ink); display: flex; align-items: center; justify-content: center; cursor: pointer; border-radius: 12px; padding: 0; flex-shrink: 0; }
.nic-icon.nic-back[hidden] { display: flex; visibility: hidden; }
:host([dir="rtl"]) .nic-back svg { transform: scaleX(-1); }
.nic-more { margin-inline-start: 0; margin-inline-end: -12px; }
.nic-more[hidden], .nic-listen[hidden] { display: none; }
/* AG round 5 (P3): the chosen tool's dialog is still downloading (codex-accessibility-v3.js). */
.nic-more.is-loading { cursor: progress; opacity: .5; }
@media (prefers-reduced-motion: no-preference) { .nic-more.is-loading { animation: nic-busy-pulse .9s ease-in-out infinite alternate; } }
@keyframes nic-busy-pulse { from { opacity: .9; } to { opacity: .35; } }
.nic-listen { height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--field); background: var(--paper); color: var(--ink); font: 500 13px var(--sans); display: flex; align-items: center; gap: 8px; cursor: pointer; flex-shrink: 0; }
.nic-listen.on { border-color: var(--thread); color: var(--burgundy); }
.nic-listen.pending { opacity: .72; }
.nic-listen-play[hidden], .nic-listen-stop[hidden] { display: none; }
.nic-narration { position: absolute; z-index: 4; top: calc(100% + 4px); inset-inline: 0; margin: 0; padding: 8px 12px; border-inline-start: 2px solid var(--thread); background: var(--paper); border-radius: 8px; font: 500 13px/1.45 var(--sans); color: var(--ink2); text-align: start; pointer-events: none; box-shadow: 0 8px 20px rgba(38, 34, 29, .08); }
.nic-narration[hidden] { display: none; }
.nic-lang-row { display: flex; align-items: center; gap: 10px; margin-top: 10px; font-size: 12.5px; color: var(--faint); }
.nic-lang { height: 36px; border-radius: 999px; border: 1px solid var(--field); background: var(--paper); color: var(--ink); font: 500 13px var(--sans); padding: 0 10px; cursor: pointer; }
.nic-menu { position: absolute; top: 60px; inset-inline-end: 16px; z-index: 5; min-width: 230px; padding: 6px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 12px 32px rgba(38, 34, 29, .14); display: flex; flex-direction: column; }
.nic-menu[hidden] { display: none; }
.nic-menu button { min-height: 44px; text-align: start; padding: 0 12px; border: 0; border-radius: 10px; background: none; font: 500 14.5px var(--sans); color: var(--ink); cursor: pointer; }
.nic-menu button:hover { background: var(--sel); }
.nic-thread { height: 18px; margin: 2px 0 8px; }
.nic-thread svg { width: 100%; height: 18px; display: block; }
:host([dir="rtl"]) .nic-thread svg { transform: scaleX(-1); }
.nic-tb-base { stroke: var(--line); stroke-width: 1; }
.nic-tb-fill { stroke: var(--thread); stroke-width: 1.6; stroke-linecap: round; stroke-dasharray: 392; stroke-dashoffset: 392; transition: stroke-dashoffset .9s var(--ease); }

.nic-card { display: flex; flex-direction: column; flex: 1; }
.nic-enter { animation: nic-rise .6s var(--ease) both; }
@keyframes nic-rise { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.nic-plate { margin: 6px 0 0; border-radius: 6px; overflow: hidden; border: 1px solid #D9C9A8; height: min(38vh, 300px); background: #E9E0CF; }
.nic-plate img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nic-drop { width: 100%; height: 72px; margin-top: -4px; overflow: visible; display: block; }
.nic-draw { fill: none; stroke: var(--thread); stroke-width: 1.4; stroke-linecap: round; stroke-dasharray: 700; stroke-dashoffset: 700; animation: nic-draw 2.6s var(--ease) .3s forwards; }
@keyframes nic-draw { to { stroke-dashoffset: 0; } }
.nic-breath { fill: var(--thread); animation: nic-breathe 10s ease-in-out infinite; }
@keyframes nic-breathe { 0%, 100% { opacity: .45; } 40% { opacity: 1; } }
.nic-pl { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin: 4px 0 0; }
.nic-pl-word { font: italic 500 22px var(--serif); color: var(--burgundy); }
.nic-pl-tr { font-size: 13px; color: var(--muted); }
.nic-h1 { margin: 6px 0 0; font: 600 38px/1.05 var(--serif); letter-spacing: -.3px; color: var(--ink); }
.nic-q { margin: 18px 0 0; font: 600 31px/1.12 var(--serif); letter-spacing: -.2px; color: var(--ink); }
.nic-h2 { margin: 22px 0 0; font: 600 23px/1.2 var(--serif); color: var(--ink); }
.nic-h1:focus, .nic-q:focus, .nic-kicker:focus { outline: none; }
.nic-lead { margin: 12px 0 0; font-size: 16px; line-height: 1.55; color: var(--ink2); }
.nic-help { margin: 8px 0 0; font-size: 14.5px; line-height: 1.5; color: #4A433A; }
.nic-fine { margin: 6px 0 0; font-size: 11.5px; line-height: 1.5; color: var(--faint); }
.nic-error { margin: 12px 0 0; padding: 10px 12px; border-radius: 10px; background: #F6E3E1; color: #7A1A22; font-size: 14px; line-height: 1.45; }
.nic-lead a, .nic-help a, .nic-fine a, .nic-error a { color: var(--burgundy); }
.nic-inline { border: 0; background: none; padding: 0; color: var(--burgundy); text-decoration: underline; cursor: pointer; }
.nic-kicker { margin: 10px 0 0; font: 600 11px/1.35 var(--sans); letter-spacing: 1.6px; text-transform: uppercase; color: var(--muted); display: flex; flex-direction: column; gap: 2px; }
.nic-kicker i { font: italic 500 15px var(--serif); letter-spacing: 0; text-transform: none; color: var(--burgundy); }
.nic-ask { margin: 20px 0 0; font: 600 22px/1.25 var(--serif); color: var(--ink); }
.nic-flab { margin: 16px 0 0; font: 600 13px/1.35 var(--sans); color: var(--ink2); }
/* Audit 26.09 D-02: the estimate (#v3-result) is a price block — the amount large, the breakdown as
   label / value rows, the conditions as fine print — and a label in the middle of a card heads its group. */
.nic-quote { margin-top: 18px; padding: 18px 20px 16px; border-radius: 14px; background: #FFFDF8; border: 1px solid var(--line); box-shadow: 0 1px 2px rgba(38, 34, 29, .06), 0 16px 30px -24px rgba(38, 34, 29, .45); }
.nic-quote-kicker { margin: 0; font: 600 11px/1.45 var(--sans); letter-spacing: 1.4px; text-transform: uppercase; color: var(--muted); }
.nic-quote-amt { margin: 6px 0 0; font: 600 46px/1.05 var(--serif); letter-spacing: -.4px; color: var(--ink); font-variant-numeric: lining-nums tabular-nums; overflow-wrap: anywhere; }
.nic-quote-meta { margin: 6px 0 0; font: 500 13.5px/1.45 var(--sans); color: var(--ink2); }
.nic-quote-text { margin: 10px 0 0; font: 400 14px/1.55 var(--sans); color: #4A433A; }
.nic-quote-rows { margin: 14px 0 0; padding: 0; border-top: 1px solid var(--line); }
.nic-quote-row { display: flex; align-items: baseline; gap: 12px; padding: 8px 0; border-bottom: 1px dashed var(--line); }
.nic-quote-row dt { flex: 1 1 auto; min-width: 0; margin: 0; font: 400 14px/1.4 var(--sans); color: var(--ink2); }
.nic-quote-row dd { flex: none; margin: 0; font: 600 17px/1.3 var(--serif); color: var(--ink); text-align: end; font-variant-numeric: lining-nums tabular-nums; }
.nic-quote-row.total { border-bottom: 0; border-top: 1.6px solid var(--thread); margin-top: -1px; padding-top: 10px; }
.nic-quote-row.total dt { font-weight: 600; color: var(--ink); }
.nic-quote-row.total dd { font-size: 21px; color: var(--burgundy); }
.nic-quote-fine { margin: 8px 0 0; font: 400 12px/1.5 var(--sans); color: var(--faint); }
.nic-quote-rows + .nic-quote-text, .nic-quote-rows + .nic-quote-fine { margin-top: 12px; }
.nic-section { margin: 26px 0 0; padding-top: 14px; border-top: 1px solid var(--line); font: 600 11px/1.35 var(--sans); letter-spacing: 1.6px; text-transform: uppercase; color: var(--burgundy); }
.nic-section + .nic-chips { margin-top: 12px; }
.nic-quote ~ .nic-section + .nic-chips.two { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.nic-quote ~ .nic-section + .nic-chips .nic-chip { min-height: 48px; justify-content: center; padding-inline: 8px; }

.nic-actions { margin-top: auto; padding-top: 22px; display: flex; flex-direction: column; gap: 6px; }
.nic-btn { min-height: 54px; padding: 8px 22px; border-radius: 14px; background: var(--burgundy); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; font: 600 16px/1.2 var(--sans); border: 1px solid transparent; cursor: pointer; text-align: center; transition: background-color .3s var(--ease), transform .3s var(--ease), opacity .3s var(--ease); }
.nic-btn:hover { background: var(--burgundy-d); }
.nic-btn:active { transform: scale(.99); }
.nic-btn.is-wait { opacity: .55; }
/* An auto card (one single-choice question) moves on with the tap on a choice, so its
   Continue is not shown; it stays in the page, hidden, as the button that move presses.
   Its own rule, because .nic-btn sets display:flex and would otherwise beat [hidden]. */
.nic-btn[hidden] { display: none; }
.nic-btn-row { flex-direction: row; gap: 10px; }
:host([dir="rtl"]) .nic-arrow { transform: scaleX(-1); }
.nic-btn.gold { background: #B8913F; color: #1E1A14; }
.nic-btn.gold:hover { background: #A57F31; }
.nic-btn-2 { background: var(--paper); color: var(--burgundy); border-color: var(--thread); }
.nic-btn-2:hover { background: var(--sel); }
.nic-btn-s { font: 500 12px/1.3 var(--sans); opacity: .85; }
/* Case Book (Roman 28.09 "trochę jaśniejsze"): inside the book (nic-skin.js marks the host
   .nic-book) the same buttons, same shape and size, in a lighter tone next to the book's own
   quiet buttons. White on #9C4A55 5.96:1, ink on #D4BC87 9.35:1 (AA). The stand-alone funnel keeps its tone. */
:host(.nic-book) .nic-btn { background: #9C4A55; font-weight: 500; }
:host(.nic-book) .nic-btn:hover { background: #8A3844; }
:host(.nic-book) .nic-btn.gold { background: #D4BC87; color: #1E1A14; }
:host(.nic-book) .nic-btn.gold:hover { background: #CDB27A; }
:host(.nic-book) .nic-btn-2 { background: var(--paper); color: var(--burgundy); border-color: rgba(123, 30, 46, .5); }
:host(.nic-book) .nic-btn-2:hover { background: var(--sel); border-color: var(--thread); }
.nic-link { min-height: 44px; display: flex; align-items: center; justify-content: center; padding: 4px 8px; border: 0; background: none; font: 500 14.5px/1.3 var(--sans); color: var(--muted); cursor: pointer; text-align: center; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.nic-link:hover { color: var(--burgundy); }
/* Skip, as in the funnel (Roman 26.09): the thin arrow first, then the word, just before
   Continue, on the page itself (no box). Alone at the end of the row when Continue is hidden. */
.nic-go { display: flex; align-items: center; gap: 18px; }
.nic-go > .nic-btn { flex: 1 1 auto; }
.nic-go.alone { justify-content: flex-end; }
.nic-skip { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; gap: 8px; padding: 4px 2px; border: 0; background: none; color: var(--muted); font: 500 15px/1 var(--sans); letter-spacing: .02em; cursor: pointer; transition: color .2s var(--ease), transform .2s var(--ease); }
.nic-skip:hover { color: var(--burgundy); transform: translateX(2px); }
.nic-skip:focus-visible { outline: 2px solid var(--burgundy); outline-offset: 3px; border-radius: 6px; }
.nic-skip-arrow { display: block; width: 34px; height: 12px; flex: none; }
:host([dir="rtl"]) .nic-skip-arrow { transform: scaleX(-1); }
:host([dir="rtl"]) .nic-skip:hover { transform: translateX(-2px); }
@media (max-width: 379px) {
  .nic-go:not(.alone) { flex-direction: column-reverse; align-items: stretch; gap: 4px; }
  .nic-go:not(.alone) .nic-skip { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .nic-skip, .nic-skip:hover { transition: none; transform: none; }
}
.nic-side { margin-top: 10px; display: flex; flex-direction: column; align-items: flex-start; }
.nic-side .nic-link { justify-content: flex-start; padding-inline: 0; text-align: start; }
.nic-side .nic-link[aria-pressed="true"] { color: var(--burgundy); text-decoration: underline; }

.nic-chips { margin-top: 18px; display: flex; flex-direction: column; gap: 10px; }
.nic-chips.two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
/* Exactly two choices (Yes / No and the like): two full-width options, one under the other,
   on the phone and on the desktop spread alike, so they read as two answers. Lists of three
   or more keep the layout above. Logical box only, so Hebrew mirrors on its own. */
.nic-chips.pair { display: flex; flex-direction: column; align-items: stretch; }
.nic-chips.pair .nic-chip { width: 100%; min-height: 58px; }
.nic-chip { min-height: 54px; padding: 10px 14px; border-radius: 12px; border: 1px solid var(--edge); background: var(--paper); color: var(--ink); font: 500 15px/1.3 var(--sans); text-align: start; display: flex; align-items: center; gap: 10px; cursor: pointer; transition: background-color .35s ease, border-color .35s ease; }
.nic-chip::before { content: ""; width: 10px; height: 10px; flex-shrink: 0; border-radius: 999px; border: 1.4px solid var(--thread); transition: background-color .35s ease; }
.nic-chips.multi .nic-chip::before { border-radius: 3px; }
.nic-chip-c { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.nic-chip-t { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.nic-chip.rich { align-items: flex-start; padding-block: 14px; }
.nic-chip.rich::before { margin-top: 5px; }
.nic-chip.rich .nic-chip-t { font-weight: 600; }
.nic-chip-s { font: 400 13.5px/1.45 var(--sans); color: #4A433A; }
.nic-chip-s + .nic-chip-s { color: var(--burgundy); font-weight: 500; }
.nic-badge { padding: 2px 8px; border-radius: 999px; background: var(--thread); color: #fff; font: 600 9.5px/1.4 var(--sans); letter-spacing: 1.2px; }
/* A widget the screen cannot redraw (Turnstile, a canvas) is laid over this slot. */
.nic-slot { margin-top: 14px; width: 100%; max-width: 420px; min-height: 40px; }
.nic-slot.wide { max-width: none; }
.nic-act { justify-content: flex-start; padding-inline: 0; min-height: 36px; }
.nic-people { margin-top: 16px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.nic-person { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 14px 8px; border-radius: 12px; background: var(--paper); border: 1px solid var(--line); font: 500 12px/1.3 var(--sans); color: var(--muted); text-align: center; }
.nic-person-i { width: 34px; height: 34px; fill: none; stroke: var(--thread); stroke-width: 1.6; }
/* Numbered steps (classic .rule): the number beside its heading, the text under the heading
   (Roman 28.09, point 6: no bare "1" line above it). */
.nic-step { display: grid; grid-template-columns: 22px minmax(0, 1fr); column-gap: 10px; align-items: baseline; margin-top: 14px; }
.nic-step-n { font: 600 18px/1 var(--serif); color: var(--burgundy); text-align: center; font-variant-numeric: lining-nums; }
.nic-step-t { margin: 0; font-size: 14.5px; line-height: 1.5; color: #4A433A; }
.nic-step-t strong { font-weight: 600; color: var(--ink); }
/* #v2-file: the reference to keep, directly under Continue — label, number, Copy (point 6). */
.nic-ref { width: 100%; margin-top: 8px; padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; background: var(--paper); display: flex; flex-direction: column; gap: 4px; }
.nic-ref-l { font: 600 11px/1.35 var(--sans); letter-spacing: 1.4px; text-transform: uppercase; color: var(--muted); }
.nic-ref-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 6px 12px; }
.nic-ref-num { min-width: 0; font: 600 21px/1.25 var(--serif); letter-spacing: .4px; color: var(--ink); overflow-wrap: anywhere; font-variant-numeric: lining-nums tabular-nums; user-select: all; }
.nic-ref-copy { flex: none; min-height: 44px; padding: 0 16px; border: 1px solid var(--thread); border-radius: 999px; background: none; color: var(--burgundy); font: 500 14px/1 var(--sans); cursor: pointer; }
.nic-ref-copy:hover, .nic-ref-copy.is-copied { background: var(--sel); }

/* "More info": the back of an info card, read as a leaf tipped into the book, with a ribbon
   bookmark, a drop cap and a small rosette at the foot. */
.nic-leaf { position: relative; margin-top: 18px; padding: 30px 24px 22px; background: #FFFDF8; border: 1px solid var(--line); border-radius: 4px;
  box-shadow: 0 1px 2px rgba(38, 34, 29, .08), 0 22px 40px -28px rgba(38, 34, 29, .45); }
.nic-leaf::before { content: ""; position: absolute; top: -5px; inset-inline-end: 24px; width: 16px; height: 44px;
  background: linear-gradient(90deg, var(--burgundy-d), var(--thread) 50%, var(--burgundy-d)); clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 78%, 0 100%); }
.nic-leaf-badge { margin: 0; padding-inline-end: 36px; display: flex; align-items: center; gap: 12px; font: 600 11px/1.45 var(--sans); letter-spacing: 1.8px; text-transform: uppercase; color: var(--burgundy); }
.nic-leaf-badge::before { content: ""; flex: none; width: 26px; height: 1px; background: var(--thread); }
.nic-q.nic-leaf-title { margin: 14px 0 0; font-size: 29px; line-height: 1.14; }
.nic-leaf-text { margin: 16px 0 0; font: 400 16px/1.75 var(--sans); color: var(--ink2); text-align: start; hyphens: auto; }
.nic-leaf-text.first::first-letter { float: left; margin: 7px 10px 0 0; font: 600 58px/.8 var(--serif); color: var(--burgundy); }
:host([dir="rtl"]) .nic-leaf-text.first::first-letter { float: none; margin: 0; font: inherit; color: inherit; }
.nic-leaf-orn { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 22px; }
.nic-leaf-orn i { flex: 1; max-width: 96px; height: 1px; background: linear-gradient(90deg, transparent, var(--edge)); }
.nic-leaf-orn i:last-child { background: linear-gradient(90deg, var(--edge), transparent); }
.nic-leaf-rose { width: 22px; height: 22px; flex: none; }
.nic-actions.nic-leaf-acts { margin-top: 24px; }
.nic-link.nic-leaf-ret { gap: 8px; text-decoration: none; }
.nic-leaf-ret span { text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.nic-leaf-ret-i { width: 18px; height: 18px; flex: none; }
:host([dir="rtl"]) .nic-leaf-ret-i { transform: scaleX(-1); }
.nic-chip[aria-checked="true"] { border-color: var(--thread); background: var(--sel); }
.nic-chip[aria-checked="true"]::before { background: var(--thread); }

.nic-gl { margin-top: 16px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nic-gl span { position: relative; display: flex; flex-direction: column; align-items: center; gap: 10px; font: 11px/1.25 var(--sans); color: var(--muted); text-align: center; }
.nic-gl span::before { content: ""; position: relative; z-index: 1; width: 10px; height: 10px; border-radius: 999px; background: var(--linen); border: 1.4px solid #BFAE8F; transition: background-color .6s var(--ease), border-color .6s var(--ease); }
.nic-gl span:first-child::before { background: var(--ink); border-color: var(--ink); }
.nic-gl span + span::after { content: ""; position: absolute; top: 4px; inset-inline-end: 50%; width: 100%; height: 1.6px; background: var(--line); transition: background-color .6s var(--ease); }
.nic-gl span.on::before { background: var(--thread); border-color: var(--thread); }
.nic-gl span.on::after { background: var(--thread); }

.nic-lineage { margin-top: 14px; padding: 18px 18px 16px; border-radius: 14px; background: var(--paper); border: 1px solid var(--line); display: flex; gap: 16px; }
.nic-lin-svg { width: 34px; height: 232px; flex-shrink: 0; overflow: visible; }
.nic-draw.v { stroke-dasharray: 260; stroke-dashoffset: 260; animation-duration: 2.2s; }
.nic-k-you { fill: var(--ink); }
.nic-k-open { fill: var(--paper); stroke: var(--thread); stroke-width: 1.6; }
.nic-k-pl { fill: var(--thread); }
.nic-pop { transform-box: fill-box; transform-origin: center; opacity: 0; animation: nic-pop .6s var(--ease) forwards; }
.nic-pop.d1 { animation-delay: 1.1s; }
.nic-pop.d2 { animation-delay: 1.9s; }
@keyframes nic-pop { from { opacity: 0; transform: scale(.6); } to { opacity: 1; transform: none; } }
.nic-lin-rows { flex: 1; min-width: 0; display: flex; flex-direction: column; justify-content: space-between; min-height: 232px; }
.nic-lin-rows small { display: block; font-size: 12px; line-height: 1.35; color: var(--muted); }
.nic-lin-rows b { display: block; font: 600 22px/1.15 var(--serif); color: var(--ink); overflow-wrap: anywhere; }

.nic-field { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.nic-field > span { font-size: 13px; font-weight: 600; color: var(--ink2); }
.nic-field input, .nic-field textarea, .nic-field select { width: 100%; min-height: 50px; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--field); background: #fff; font: 16px/1.4 var(--sans); color: var(--ink); }
.nic-field textarea { resize: vertical; min-height: 76px; }
.nic-field [aria-invalid="true"] { border-color: #A3303B; }
.nic-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.nic-col { min-width: 0; display: flex; flex-direction: column; }
.nic-col .nic-flab { margin-top: 14px; }
.nic-check { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; font-size: 14px; line-height: 1.45; color: var(--ink2); cursor: pointer; }
.nic-check-text { margin: 0; }
.nic-check-text a { color: var(--burgundy); }
.nic-check input { width: 20px; height: 20px; accent-color: var(--burgundy); flex-shrink: 0; margin: 1px 0 0; }

/* Desktop only: the thread in the margin, Polish stage names, the paper-cut rosette, slow light. */
@media (min-width: 1024px) and (hover: hover) {
  /* The open book: the rail is the table of contents; the text page and the picture page
     meet at the spine. Logical properties mirror the whole book in Hebrew. */
  .nic-app { grid-template-columns: 240px minmax(0, 600px) minmax(0, 1fr); }
  .nic-rail { display: flex; flex-direction: column; gap: 26px; padding-block: 48px; padding-inline: 44px 0; border-inline-end: 1px solid #E4D9C6; position: sticky; top: 0; height: 100dvh; align-self: start; }
  .nic-stages { margin: 0; padding: 0; padding-inline-start: 22px; list-style: none; position: relative; }
  .nic-stages::before { content: ""; position: absolute; inset-inline-start: 4px; top: 6px; bottom: 6px; border-inline-start: 1.4px solid var(--line); }
  .nic-stages li { position: relative; height: 64px; display: flex; flex-direction: column; }
  .nic-stages li::before { content: ""; position: absolute; inset-inline-start: -23px; top: 3px; width: 9px; height: 9px; border-radius: 999px; background: var(--linen); border: 1.4px solid #BFAE8F; }
  .nic-stages b { font: 600 11px/1.3 var(--sans); letter-spacing: 1.4px; color: var(--muted); }
  .nic-stages i { font: italic 500 15px var(--serif); color: var(--faint); }
  .nic-stages li.done::before, .nic-stages li.now::before { background: var(--thread); border-color: var(--thread); }
  .nic-stages li.now b { color: var(--ink); }
  .nic-stages li.now i { color: var(--burgundy); }
  .nic-area { max-width: none; margin-block: 24px; margin-inline: 24px 0; padding: 40px 56px 110px; min-height: calc(100dvh - 48px); background: var(--paper); border-start-start-radius: 8px; border-end-start-radius: 8px; box-shadow: inset -44px 0 42px -40px rgba(61, 47, 36, .32), 0 22px 44px -32px rgba(38, 34, 29, .5); }
  :host([dir="rtl"]) .nic-area { box-shadow: inset 44px 0 42px -40px rgba(61, 47, 36, .32), 0 22px 44px -32px rgba(38, 34, 29, .5); }
  .nic-phone-only { display: none; }
  .nic-h1 { font-size: 60px; }
  .nic-q { font-size: 40px; }
  .nic-leaf { padding: 40px 44px 30px; }
  .nic-leaf::before { inset-inline-end: 40px; }
  .nic-q.nic-leaf-title { font-size: 36px; }
  .nic-leaf-text { font-size: 17px; }
  .nic-lead { font-size: 18px; max-width: 440px; }
  .nic-card { max-width: 560px; justify-content: flex-start; justify-content: safe center; }
  .nic-actions { margin-top: 32px; flex-direction: row; flex-wrap: wrap; align-items: center; gap: 18px; }
  .nic-actions .nic-btn { padding: 8px 30px; }
  .nic-actions .nic-fine, .nic-actions .nic-lang-row { width: 100%; text-align: start; }
  .nic-hero { display: block; position: sticky; top: 24px; height: calc(100dvh - 48px); margin-block: 24px; margin-inline: 0 24px; background: var(--paper); border-start-end-radius: 8px; border-end-end-radius: 8px;
    /* the spine on the left, the edges of the pages still to read on the right */
    box-shadow: inset 44px 0 42px -40px rgba(61, 47, 36, .32), 2px 1px 0 -1px #E4D8C4, 4px 2px 0 -1.5px #F6EFE2, 6px 3px 0 -2px #E4D8C4, 0 22px 44px -32px rgba(38, 34, 29, .5); }
  :host([dir="rtl"]) .nic-hero { box-shadow: inset -44px 0 42px -40px rgba(61, 47, 36, .32), -2px 1px 0 -1px #E4D8C4, -4px 2px 0 -1.5px #F6EFE2, -6px 3px 0 -2px #E4D8C4, 0 22px 44px -32px rgba(38, 34, 29, .5); }
  .nic-hero-img { position: absolute; inset: 0; border-radius: inherit; background: #E9E0CF url("nic/hero-desktop.jpg") center / cover no-repeat; transition: opacity .8s var(--ease); }
  .nic-light { position: absolute; inset: 0; border-radius: inherit; background: #FFF6E0; opacity: 0; animation: nic-light 24s ease-in-out infinite; pointer-events: none; }
  @keyframes nic-light { 50% { opacity: .18; } }
  /* After the cover: this chapter's print, tipped in with photo corners. */
  .nic-print { position: absolute; inset: 56px 56px 60px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; opacity: 0; transition: opacity .8s var(--ease); }
  .nic-print-img { position: relative; width: 100%; flex: 0 1 auto; aspect-ratio: 4 / 3.3; max-height: 72%; background: #D8CBB5 center / cover no-repeat; border: 11px solid #FFFDF8; box-shadow: 0 1px 2px rgba(38, 34, 29, .22), 0 18px 34px -20px rgba(38, 34, 29, .55); transform: rotate(.6deg); }
  .nic-print-img::before { content: ""; position: absolute; inset: -15px; pointer-events: none;
    background: linear-gradient(135deg, #4A4038 0 50%, transparent 50%) top left / 22px 22px no-repeat, linear-gradient(225deg, #4A4038 0 50%, transparent 50%) top right / 22px 22px no-repeat, linear-gradient(45deg, #4A4038 0 50%, transparent 50%) bottom left / 22px 22px no-repeat, linear-gradient(315deg, #4A4038 0 50%, transparent 50%) bottom right / 22px 22px no-repeat; opacity: .82; }
  .nic-print-cap { display: flex; flex-direction: column; align-items: center; gap: 4px; text-align: center; }
  .nic-print-cap i { font: italic 500 19px var(--serif); color: var(--burgundy); }
  .nic-print-cap span { font: 600 10.5px/1.3 var(--sans); letter-spacing: 1.6px; color: var(--faint); }
  .nic-app[data-screen="card"] .nic-hero-img { opacity: 0; }
  .nic-app[data-screen="card"] .nic-light { opacity: 0; animation: none; }
  .nic-app[data-screen="card"] .nic-print { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .nic-app *, .nic-app *::before, .nic-app *::after { animation: none !important; transition: none !important; }
  .nic-draw { stroke-dashoffset: 0; }
  .nic-pop { opacity: 1; }
}

/* ── Projector fit (Roman 28.09: "on a small projector the longest question has to be scrolled").
   In the Case Book the questions are the left page of the spread: a frame of about 530×680 on a
   1280×720 screen and 565×725 on 1366×768, the width of a phone layout but much shorter. On such a
   short, not-narrow screen every card, eight answers and its Continue included, stays on one screen:
   less air above and between, a slightly smaller question, lower chips. Nothing else moves.
   Never a phone (portrait: under 480 px wide; landscape: under 540 px tall) and never 1440×900 and
   up (the frame is taller than 780 px there); the classic funnel does not load this file at all.
   The bottom keeps room for the consent bar while it is shown (0 in the book, which hides it). */
@media (min-width: 480px) and (max-width: 1023.98px) and (min-height: 540px) and (max-height: 780px) {
  .nic-area { padding-top: 6px; padding-bottom: calc(24px + var(--pcp-consent-banner-space, 0px) + env(safe-area-inset-bottom)); }
  .nic-thread { margin: 0 0 4px; }
  .nic-kicker { margin-top: 4px; }
  .nic-q { margin-top: 10px; font-size: 27px; line-height: 1.1; }
  .nic-h2 { margin-top: 14px; }
  .nic-lead { margin-top: 8px; line-height: 1.5; }
  .nic-help { margin-top: 6px; line-height: 1.45; }
  .nic-ask { margin-top: 14px; }
  .nic-gl { margin-top: 10px; }
  .nic-gl span { gap: 7px; }
  .nic-chips { margin-top: 12px; gap: 6px; }
  .nic-chip { min-height: 44px; padding-block: 7px; }
  .nic-chips.pair .nic-chip { min-height: 50px; }
  .nic-chip.rich { padding-block: 10px; }
  .nic-lineage { margin-top: 10px; padding: 12px 16px 10px; }
  .nic-lin-svg { height: 160px; }
  .nic-lin-rows { min-height: 160px; }
  .nic-lin-rows b { font-size: 20px; }
  .nic-field { margin-top: 8px; }
  .nic-field input, .nic-field select { min-height: 44px; padding-block: 9px; }
  .nic-actions { padding-top: 14px; }
  .nic-btn { min-height: 48px; }
}
/* Shorter still (the same projector with the browser's own bars on screen, a frame of 540–640 px):
   a list of six answers or more takes two columns, and the result card's family line is shorter. */
@media (min-width: 480px) and (max-width: 1023.98px) and (min-height: 540px) and (max-height: 640px) {
  .nic-top { min-height: 44px; }
  .nic-q { margin-top: 8px; font-size: 25px; }
  .nic-lead { font-size: 15px; line-height: 1.45; }
  .nic-help { font-size: 14px; line-height: 1.4; }
  .nic-chips:not(.two):not(.pair):not(:has(> .nic-chip.rich)):has(> .nic-chip:nth-child(6)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nic-lineage { margin-top: 8px; padding-block: 10px 8px; }
  .nic-lin-svg { height: 108px; }
  .nic-lin-rows { min-height: 108px; }
  .nic-lin-rows small { font-size: 11.5px; }
  .nic-lin-rows b { font-size: 17px; }
  .nic-actions { padding-top: 10px; }
  .nic-btn { min-height: 46px; }
}
/* A long list of plain answers (ten or more: the thirteen countries of "where do you live", whose
   German names are a little long for the funnel's own two-column rule) takes two columns on any
   screen of this width that is not a phone, so it also fits the book's page at 1440×900. */
@media (min-width: 480px) and (max-width: 1023.98px) and (min-height: 540px) {
  .nic-chips:not(.two):not(.pair):not(:has(> .nic-chip.rich)):has(> .nic-chip:nth-child(10)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ── N1c: chapters. A step into the next stage turns a book page (nic-skin.js turnPage) ── */
/* Document scope: during the turn the Nić layer is shown even over a classic stage. */
html.funnel-nic.nic-ready.nic-pass.nic-turning #nic {
  display: block !important;
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147482000 !important;
  overflow: hidden !important;
  background: transparent !important;
}
html.funnel-nic.nic-turning :is(#codex-top-controls, #codex-stage-toggle, #funnelLangToggle, .have-file) { visibility: hidden !important; }
/* Screen scope */
:host(.nic-il-only) .nic-app { display: none; }
.nic-interlude { position: fixed; inset: 0; z-index: 50; display: flex; align-items: center; justify-content: center; background: var(--linen); perspective: 2200px; cursor: pointer; animation: nic-il-in .22s ease both; -webkit-tap-highlight-color: transparent; }
.nic-interlude.turning { animation: nic-il-out .42s ease .72s both; }
@keyframes nic-il-in { from { opacity: 0; } }
@keyframes nic-il-out { to { opacity: 0; } }
.nic-ch-page { position: relative; width: 100%; height: 100%; transform-style: preserve-3d; transform-origin: left center; will-change: transform; }
:host([dir="rtl"]) .nic-ch-page { transform-origin: right center; }
.nic-interlude.turning .nic-ch-page { animation: nic-turn 1s cubic-bezier(.5, .06, .3, 1) both; }
:host([dir="rtl"]) .nic-interlude.turning .nic-ch-page { animation-name: nic-turn-rtl; }
@keyframes nic-turn { to { transform: rotateY(-178deg); } }
@keyframes nic-turn-rtl { to { transform: rotateY(178deg); } }
.nic-ch-front, .nic-ch-back { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
.nic-ch-front { display: flex; flex-direction: column; justify-content: center; padding: 48px 28px calc(56px + env(safe-area-inset-bottom)); background: var(--paper); box-shadow: inset 22px 0 30px -26px rgba(61, 47, 36, .38); }
:host([dir="rtl"]) .nic-ch-front { box-shadow: inset -22px 0 30px -26px rgba(61, 47, 36, .38); }
/* The page darkens a little as it lifts, like paper turning away from the light. */
.nic-ch-front::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(38, 34, 29, 0) 35%, rgba(38, 34, 29, .2)); opacity: 0; }
.nic-interlude.turning .nic-ch-front::after { animation: nic-shade 1s ease both; }
@keyframes nic-shade { 55% { opacity: 1; } to { opacity: .5; } }
.nic-ch-back { transform: rotateY(180deg); background: #EFE6D6 repeating-linear-gradient(180deg, transparent 0 27px, rgba(142, 34, 51, .05) 27px 28px); }
.nic-ch-plate { position: relative; align-self: center; width: 100%; max-width: 420px; background: #FFFDF8; padding: 10px; box-shadow: 0 1px 2px rgba(38, 34, 29, .2), 0 14px 28px -18px rgba(38, 34, 29, .5); transform: rotate(-.6deg); }
.nic-ch-plate img { display: block; width: 100%; height: min(40vh, 330px); object-fit: cover; background: #D8CBB5; }
.nic-ch-plate::before { content: ""; position: absolute; inset: -5px; pointer-events: none;
  background: linear-gradient(135deg, #4A4038 0 50%, transparent 50%) top left / 20px 20px no-repeat, linear-gradient(225deg, #4A4038 0 50%, transparent 50%) top right / 20px 20px no-repeat, linear-gradient(45deg, #4A4038 0 50%, transparent 50%) bottom left / 20px 20px no-repeat, linear-gradient(315deg, #4A4038 0 50%, transparent 50%) bottom right / 20px 20px no-repeat; opacity: .82; }
.nic-ch-num { margin: 30px 0 0; text-align: center; font: 600 11px/1.3 var(--sans); letter-spacing: 1.6px; text-transform: uppercase; color: var(--muted); }
.nic-ch-num i { font: italic 500 17px var(--serif); letter-spacing: 0; text-transform: none; color: var(--burgundy); }
.nic-ch-title { margin: 10px 0 0; text-align: center; font: 600 44px/1.05 var(--serif); letter-spacing: -.3px; color: var(--ink); }
.nic-ch-title::after { content: ""; display: block; width: 56px; height: 1.6px; margin: 16px auto 0; border-radius: 2px; background: var(--thread); }
.nic-ch-tr { margin: 12px 0 0; text-align: center; font: 600 11.5px/1.3 var(--sans); letter-spacing: 1.8px; color: var(--faint); }
.nic-ch-spread { display: flex; width: min(1120px, calc(100vw - 96px)); height: min(780px, calc(100dvh - 72px)); }
.nic-ch-left { position: relative; flex: 1; display: flex; align-items: center; justify-content: center; background: #F7F1E6; border-start-start-radius: 8px; border-end-start-radius: 8px; box-shadow: inset -44px 0 42px -40px rgba(61, 47, 36, .32), 0 22px 44px -32px rgba(38, 34, 29, .5); }
:host([dir="rtl"]) .nic-ch-left { box-shadow: inset 44px 0 42px -40px rgba(61, 47, 36, .32), 0 22px 44px -32px rgba(38, 34, 29, .5); }
.nic-ch-mark { width: 72px; height: 72px; opacity: .55; }
.nic-ch-spread .nic-ch-page { flex: 1; width: auto; height: 100%; }
.nic-ch-spread .nic-ch-front { border-start-end-radius: 8px; border-end-end-radius: 8px; box-shadow: inset 44px 0 42px -40px rgba(61, 47, 36, .32), 2px 1px 0 -1px #E4D8C4, 4px 2px 0 -1.5px #F6EFE2, 0 22px 44px -32px rgba(38, 34, 29, .5); }
:host([dir="rtl"]) .nic-ch-spread .nic-ch-front { box-shadow: inset -44px 0 42px -40px rgba(61, 47, 36, .32), -2px 1px 0 -1px #E4D8C4, -4px 2px 0 -1.5px #F6EFE2, 0 22px 44px -32px rgba(38, 34, 29, .5); }
.nic-ch-spread .nic-ch-plate img { height: min(44vh, 400px); }
.nic-ch-spread .nic-ch-title { font-size: 56px; }
@media (prefers-reduced-motion: reduce) {
  .nic-interlude, .nic-interlude.turning { animation: none; }
  .nic-interlude.turning { opacity: 0; transition: opacity .3s ease; }
  .nic-interlude.turning .nic-ch-page, .nic-interlude.turning .nic-ch-front::after { animation: none; }
}

/* W2 batch F 28.09 (double tap): for the first 350 ms after the funnel moved to a page by itself,
   its choices take no pointer events (nic-skin.js sets and clears data-tap-hold), so the second
   tap of a double tap is not an answer on the new page. */
.nic-card[data-tap-hold] [data-act="chip"] { pointer-events: none; }
