/* No Regain — Life After GLP-1. One stylesheet for the site and the app.
   Premium (owner, 31 Oct 2026: "too plain and blindingly white ... a premium
   app for a wealthy population ... a life companion app experience"): warm
   sand instead of white, raised cream tiles that answer the touch, deep
   forest for action, bronze for detail, a display serif for the big words
   and a clean sans for everything else, and photography throughout. Always
   light. The accent keeps its old name, --gold; --serif is the UI sans for
   numbers and labels, --display the headline serif. Phone first. */
@font-face { font-family: 'Fraunces'; src: url(/noregain/fonts/fraunces.woff2) format('woff2'); font-weight: 100 900; font-display: swap; }
@font-face { font-family: 'Inter'; src: url(/noregain/fonts/inter.woff2) format('woff2'); font-weight: 100 900; font-display: swap; }
:root {
  --sand: #eee7dc; --sand-2: #e4dacb; --cream: #f8f3eb; --forest: #1f3d33; --forest-2: #2b5143; --sage: #9cb3a3; --sage-soft: #dbe4d9;
  --bronze: #a87439; --bronze-2: #c9965e; --bronze-soft: #ecdcc4; --terra: #b8603f;
  --navy: #1f3d33; --navy-2: #2b5143; --stone: #e4dacb; --ivory: #f8f3eb; --paper: #eee7dc; --card: #f8f3eb;
  --ink: #1f2722; --muted: #5c645d; --line: rgba(31, 39, 34, .11); --hair: rgba(31, 39, 34, .16);
  --gold: #8a5a26; --gold-2: #c9965e; --tint: #e3eadf; --on-navy: #e7c58f; --clay: #b8603f; --amber: #a8701f; --leaf: #3d7a5c;
  --sun: #e7c58f; --mint: #dbe4d9; --butter: #ecdcc4; --lilac: #e2dde6; --peach: #efd9cb; --sky: #dde6ea;
  --brand: #1f3d33; --brand-ink: #f8f3eb;
  --radius: 22px;
  --shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 2px 6px rgba(31, 39, 34, .06), 0 22px 44px -24px rgba(31, 39, 34, .38);
  --display: 'Fraunces', 'Iowan Old Style', Georgia, serif;
  --serif: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif; --sans: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  color-scheme: light;
}
* { box-sizing: border-box; }
html, body { margin: 0; background: var(--paper); color: var(--ink); }
body { font: 16px/1.55 var(--sans); -webkit-font-smoothing: antialiased; -webkit-text-size-adjust: 100%; }
h1, h2, .nr-serif { font-family: var(--display); font-weight: 420; letter-spacing: -.02em; font-variation-settings: 'opsz' 144; }
h3 { font-family: var(--sans); font-weight: 680; letter-spacing: -.015em; }
h1 { font-size: 2rem; line-height: 1.12; margin: .3em 0 .35em; }
h2 { font-size: 1.32rem; line-height: 1.2; margin: 0 0 .55em; }
h3 { font-size: 1.08rem; margin: 1.1em 0 .4em; }
a { color: var(--gold); }
img { max-width: 100%; }
.nr-kicker { font: 600 .7rem/1 var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--gold); margin: 0 0 .7em; }
.nr-small { color: var(--muted); font-size: .86rem; }
.nr-wrap { max-width: 680px; margin: 0 auto; padding: 18px; }
.nr-brand { display: inline-flex; align-items: center; gap: 10px; color: inherit; text-decoration: none; }
.nr-brand b { font: 780 1.15rem var(--serif); letter-spacing: .01em; }
.nr-brand small { display: block; font: 600 .58rem var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--gold); }
.nr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; border-radius: 999px; background: var(--brand); color: var(--brand-ink); font: 600 .95rem var(--sans); letter-spacing: .02em; padding: 13px 24px; text-decoration: none; cursor: pointer; min-height: 46px; transition: transform .15s ease, box-shadow .2s ease; }
.nr-btn:hover { box-shadow: 0 8px 22px -10px rgba(15, 29, 51, .5); }
.nr-btn:active { transform: translateY(1px); }
.nr-btn.gold { background: var(--gold); color: #fff; }
.nr-btn.ghost { background: transparent; color: inherit; box-shadow: inset 0 0 0 1px var(--hair); }
.nr-btn:disabled { opacity: .5; cursor: default; }
.nr-link { background: none; border: 0; color: var(--gold); font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; padding: 4px 0; }
.nr-card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); padding: 22px; margin: 16px 0; border: 1px solid var(--line); }
.nr-card.hair { box-shadow: none; border-color: var(--hair); background: transparent; }
.nr-msg { padding: 11px 15px; border-radius: 12px; background: var(--tint); }
.nr-msg.err { background: rgba(176, 86, 61, .13); color: var(--clay); }
.nr-loading { text-align: center; padding: 40vh 0; color: var(--muted); font-family: var(--serif); }
.nr-rise { animation: rise .45s ease both; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .nr-rise, .nr-breath { animation: none !important; } }

/* Forms */
.nr-form { display: grid; gap: 15px; }
.nr-form label { display: grid; gap: 6px; font-weight: 550; font-size: .95rem; }
.nr-form input:not([type=checkbox]):not([type=radio]), .nr-form select, .nr-form textarea, .nr-select {
  font: inherit; padding: 12px 14px; border-radius: 12px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); width: 100%; min-height: 46px; }
.nr-form input:focus, .nr-form select:focus, .nr-form textarea:focus, .nr-select:focus { outline: 2px solid var(--gold); outline-offset: 1px; }
.nr-codein { font: 780 1.7rem var(--serif) !important; letter-spacing: .35em; text-align: center; }
.nr-check { display: flex !important; align-items: flex-start; gap: 11px; font-weight: 450 !important; }
.nr-check input { width: 22px; height: 22px; flex: none; margin-top: 1px; accent-color: var(--brand); }
fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
legend { font-weight: 550; margin-bottom: 7px; padding: 0; font-size: .95rem; }
legend small { font-weight: 400; color: var(--muted); }
.nr-seg { display: flex; gap: 18px; flex-wrap: wrap; }
.nr-seg label { display: flex !important; align-items: center; gap: 7px; font-weight: 450; }
.nr-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nr-chips legend { width: 100%; }
.nr-chips label { display: block !important; font-weight: 450 !important; }
.nr-chips input, .nr-scale input { position: absolute; opacity: 0; pointer-events: none; }
.nr-chips span { display: inline-block; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); font-size: .9rem; cursor: pointer; transition: all .15s; }
.nr-chips input:checked + span { background: var(--brand); color: var(--brand-ink); border-color: var(--brand); }
.nr-chips input:focus-visible + span, .nr-scale input:focus-visible + span { outline: 2px solid var(--gold); }
.nr-scale > div { display: grid; grid-template-columns: repeat(11, 1fr); gap: 4px; }
.nr-scale.five > div { grid-template-columns: repeat(5, 1fr); }
.nr-scale.six > div { grid-template-columns: repeat(6, 1fr); }
.nr-scale.four > div { grid-template-columns: repeat(4, 1fr); }
.nr-scale label { display: block !important; font-weight: 450 !important; }
.nr-scale span { display: grid; place-items: center; min-height: 40px; border-radius: 10px; border: 1px solid var(--line); background: var(--card); font-size: .86rem; cursor: pointer; text-align: center; padding: 2px; line-height: 1.15; }
.nr-mood span { font-size: 1.45rem; min-height: 48px; }
.nr-scale input:checked + span { background: var(--brand); color: var(--brand-ink); border-color: var(--brand); }
.nr-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.nr-step { display: flex !important; align-items: center; justify-content: space-between; gap: 10px; font-weight: 450 !important; }
.nr-stepctl { display: inline-flex; align-items: center; gap: 6px; flex: none; }
.nr-stepctl button { width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: 1.2rem; cursor: pointer; }
.nr-stepctl input { width: 66px !important; text-align: center; }
.nr-inline { grid-template-columns: 1fr auto; align-items: end; }
.nr-cardbox { min-height: 96px; padding: 6px 0; color: var(--muted); }
.nr-alt { margin: 20px 0; color: var(--muted); }
.nr-auth { padding-top: 48px; }

/* The house (public pages) */
.nr-site { background: var(--paper); }
.nr-top { display: flex; align-items: center; justify-content: space-between; padding: 18px 22px; max-width: 1120px; margin: 0 auto; gap: 12px; }
.nr-hero-wrap { background: radial-gradient(900px 420px at 88% -12%, rgba(13, 124, 116, .10), transparent 62%), linear-gradient(180deg, var(--stone), var(--paper)); color: var(--ink); border-bottom: 1px solid var(--line); }
.nr-hero-wrap .nr-top { color: var(--ink); }
.nr-top nav { display: flex; align-items: center; gap: 14px; font-size: .92rem; }
.nr-top nav a { color: inherit; text-decoration: none; }
.nr-hero { max-width: 1120px; margin: 0 auto; padding: 56px 22px 84px; }
.nr-hero h1 { font-size: clamp(2.6rem, 8vw, 5rem); font-weight: 820; max-width: 13ch; line-height: 1.02; margin: 0 0 .35em; }
.nr-hero h1 em { font-style: italic; color: var(--gold); }
.nr-lede { font-size: 1.14rem; max-width: 56ch; opacity: .86; }
.nr-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 16px; margin-top: 26px; }
.nr-price b { font: 780 2rem var(--serif); }
.nr-price .nr-select { width: auto; min-height: 38px; padding: 6px 10px; background: var(--card); color: inherit; border-color: var(--line); }
.nr-site main { max-width: 1120px; margin: 0 auto; padding: 0 22px 40px; }
.nr-site section.nr-sec { margin: 72px 0; }
.nr-sec > h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 800; max-width: 22ch; }
.nr-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 16px; }
.nr-grid .nr-card { margin: 0; }
.nr-num { font: 780 2.6rem var(--serif); color: var(--gold); line-height: 1; }
.nr-quote-big { font: 620 clamp(1.4rem, 3.4vw, 2rem)/1.35 var(--serif); max-width: 40ch; }
.nr-menu-teaser { background: var(--navy); color: #fff; border: 0; }
.nr-menu-teaser li { margin: 8px 0; }
.nr-foot { text-align: center; padding: 30px 22px 50px; color: var(--muted); font-size: .86rem; border-top: 1px solid var(--line); }
.nr-doc { max-width: 760px; margin: 0 auto; padding: 0 22px 48px; }
.nr-doc li { margin: 12px 0; }
.nr-code { font: 780 1.2em var(--serif); letter-spacing: .1em; color: var(--gold); }

/* The app */
.nr-app { background: var(--paper); padding-bottom: calc(84px + env(safe-area-inset-bottom)); }
.nr-apptop { position: sticky; top: 0; z-index: 4; display: flex; justify-content: space-between; align-items: center; padding: 12px 18px; padding-top: calc(12px + env(safe-area-inset-top)); background: color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter: blur(14px); border-bottom: 1px solid var(--line); }
.nr-streak { font: 500 .9rem var(--sans); border: 1px solid var(--hair); border-radius: 999px; padding: 5px 13px; }
.nr-tabs { position: fixed; left: 0; right: 0; bottom: 0; z-index: 5; display: grid; grid-template-columns: repeat(5, 1fr); background: var(--card); border-top: 1px solid var(--line); padding-bottom: env(safe-area-inset-bottom); }
.nr-tabs button { background: none; border: 0; color: var(--muted); font: 500 .7rem var(--sans); letter-spacing: .06em; text-transform: uppercase; display: grid; justify-items: center; gap: 4px; padding: 10px 0 12px; cursor: pointer; min-height: 60px; }
.nr-tabs button[aria-current] { color: var(--ink); }
.nr-tabs button[aria-current] svg { stroke: var(--gold); }
.nr-sosfab { position: fixed; right: 16px; bottom: calc(76px + env(safe-area-inset-bottom)); z-index: 6; border: 0; border-radius: 999px; padding: 12px 18px; font: 600 .82rem var(--sans); letter-spacing: .08em; text-transform: uppercase; background: var(--gold); color: #fff; box-shadow: 0 10px 26px -10px rgba(15, 29, 51, .55); cursor: pointer; }
.nr-main { padding-bottom: 72px; }
.nr-hello h1 { font-size: 2.1rem; margin: .1em 0 0; }
.nr-dayline { display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap; color: var(--muted); }
.nr-dayline b { font: 780 2.2rem var(--serif); color: var(--gold); }
.nr-phase { border-left: 2px solid var(--gold); padding: 4px 0 4px 14px; margin: 14px 0; }
.nr-quote { font: 620 1.32rem/1.42 var(--serif); }
.nr-dark { background: var(--navy); color: #fff; border: 0; }
.nr-dark .nr-kicker { color: var(--on-navy); }
.nr-actions ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.nr-actions input:checked + span { text-decoration: line-through; text-decoration-color: var(--gold); color: var(--muted); }
.nr-support { display: grid; grid-template-columns: 78px 1fr; gap: 16px; align-items: center; }
.nr-ring { width: 78px; height: 78px; }
.nr-ring circle { fill: none; stroke-width: 6; }
.nr-ring .bg { stroke: var(--line); } .nr-ring .fg { stroke: var(--leaf); stroke-linecap: round; transform: rotate(-90deg); transform-origin: 50% 50%; }
.nr-l-watch .fg { stroke: var(--amber); } .nr-l-struggling .fg, .nr-l-high .fg, .nr-l-urgent .fg { stroke: var(--clay); }
.nr-ring text { font: 780 20px var(--serif); fill: var(--ink); }
.nr-parts { margin: 8px 0 0; padding-left: 1.1em; color: var(--muted); font-size: .9rem; }
.nr-zone { border-left: 3px solid var(--line); }
.nr-z-green { border-left-color: var(--leaf); } .nr-z-yellow { border-left-color: var(--amber); } .nr-z-red { border-left-color: var(--clay); }
.nr-zkey { font: 780 1.35rem var(--serif); margin: 0; }
.nr-z-green .nr-zkey { color: var(--leaf); } .nr-z-yellow .nr-zkey { color: var(--amber); } .nr-z-red .nr-zkey { color: var(--clay); }
.nr-research { background: transparent; box-shadow: none; border-color: var(--hair); }
.nr-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin: 12px 0; }
.nr-filters select { font: inherit; padding: 9px 12px; border-radius: 999px; border: 1px solid var(--line); background: var(--card); color: var(--ink); min-height: 40px; }
.nr-cuihead { width: 100%; display: flex; justify-content: space-between; align-items: center; background: none; border: 0; color: var(--ink); font: 780 1.2rem var(--serif); padding: 0; cursor: pointer; text-align: left; min-height: 34px; }
.nr-cuisine.mine { border-color: var(--hair); }
.nr-items, .nr-swaps { padding-left: 1.1em; }
.nr-items li, .nr-swaps li { margin: 11px 0; }
.nr-tag { display: inline-block; font: 600 .62rem var(--sans); letter-spacing: .12em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; border: 1px solid var(--hair); color: var(--gold); margin-left: 4px; vertical-align: 2px; }
.nr-menu ol { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.nr-menu li { display: grid; gap: 2px; border-top: 1px solid rgba(255, 255, 255, .14); padding-top: 12px; }
.nr-menu .nr-course { font: 600 .64rem var(--sans); letter-spacing: .2em; text-transform: uppercase; color: var(--on-navy); }
.nr-menu .nr-dish { font: 780 1.1rem/1.3 var(--serif); }
.nr-menu .nr-why { font-size: .86rem; opacity: .75; }
.nr-chef { font: 620 1rem var(--serif); opacity: .9; margin-top: 16px; }
.nr-videos { list-style: none; padding: 0; display: grid; gap: 12px; }
.nr-video { display: grid; gap: 5px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 16px 18px; text-decoration: none; color: var(--ink); transition: border-color .2s; }
.nr-video:hover { border-color: var(--hair); }
.nr-video b { font: 780 1.08rem var(--serif); }
.nr-vk { justify-self: start; font: 600 .62rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.nr-chart { width: 100%; height: auto; display: block; }
.nr-c-dot { fill: var(--muted); opacity: .45; }
.nr-c-line { fill: none; stroke: var(--gold); stroke-width: 2.4; stroke-linejoin: round; }
.nr-c-trig { stroke: var(--clay); stroke-dasharray: 5 4; stroke-width: 1.2; }
.nr-c-lab { font-size: 10px; fill: var(--muted); font-family: var(--sans); }
.nr-myth summary { cursor: pointer; font: 780 1.08rem var(--serif); padding: 10px 0; list-style: none; }
.nr-myth summary::before { content: '+ '; color: var(--gold); }
.nr-myth[open] summary::before { content: '− '; }
.nr-myth { border-top: 1px solid var(--line); }
.nr-review { border-top: 1px solid var(--line); padding-top: 12px; margin-top: 12px; }
.nr-factor { border-left: 2px solid var(--gold); }
.nr-does { color: var(--gold); font-weight: 550; }
.nr-sheet { position: fixed; inset: 0; z-index: 10; background: rgba(11, 19, 34, .55); display: grid; align-items: end; justify-items: center; }
.nr-sheet > div { width: 100%; max-width: 560px; max-height: 92vh; overflow: auto; background: var(--paper); border-radius: 26px 26px 0 0; padding: 26px 22px calc(26px + env(safe-area-inset-bottom)); animation: rise .3s ease both; }
@media (min-width: 700px) { .nr-sheet { align-items: center; } .nr-sheet > div { border-radius: 26px; } }
.nr-breath { width: 180px; height: 180px; margin: 18px auto; border-radius: 50%; background: radial-gradient(circle, rgba(13, 124, 116, .38), rgba(13, 124, 116, .06) 70%); animation: breath 10s ease-in-out infinite; display: grid; place-items: center; font: 780 2.2rem var(--serif); }
@keyframes breath { 0% { transform: scale(.72); } 40% { transform: scale(1); } 100% { transform: scale(.72); } }
.nr-stat { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; }
.nr-stat div { border: 1px solid var(--hair); border-radius: 14px; padding: 14px; }
.nr-stat b { display: block; font: 780 1.7rem var(--serif); color: var(--gold); }
.nr-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.nr-table td, .nr-table th { border-bottom: 1px solid var(--line); padding: 8px 6px; text-align: left; vertical-align: top; }
.nr-report h1 { font-size: 1.8rem; }

/* Phone pass (owner, 27 Oct 2026: "optimized for phone and desktop alike"):
   44px tap targets, no text under 12px, no blank date boxes on iOS. */
.nr-link { min-height: 44px; padding: 10px 4px; }
.nr-cuihead { min-height: 44px; }
.nr-check, .nr-seg label { min-height: 44px; align-items: center; }
.nr-support summary, details > summary.nr-small { padding: 10px 0; }
/* The finished-lesson list reuses .nr-support for its summary styling, not the ring grid above. */
details.nr-support { display: block; }
.nr-form input[type=date] { min-height: 46px; -webkit-appearance: none; appearance: none; }
@media (max-width: 480px) {
  .nr-scale:not(.five):not(.four):not(.six) > div { grid-template-columns: repeat(6, 1fr); row-gap: 6px; }
  .nr-scale span { min-height: 44px; }
  .nr-tag, .nr-vk, .nr-menu .nr-course { font-size: .75rem; }
  .nr-kicker, .nr-tabs button { font-size: .78rem; }
}

/* ── The course (owner, 27 Oct 2026) ─────────────────────────────────── */
.nr-lesson h2 { margin-bottom: 8px; }
.nr-lesson p { line-height: 1.6; }
.nr-quiz { border: 0; padding: 0; margin: 14px 0; }
.nr-quiz legend { font-weight: 600; margin-bottom: 8px; }
.nr-quiz .nr-check { min-height: 44px; padding: 8px 0; align-items: flex-start; }
.nr-try { background: var(--navy); color: #fff; border-radius: 14px; padding: 12px 16px; margin: 12px 0 6px; }
.nr-try span { font-size: .72rem; letter-spacing: .16em; text-transform: uppercase; color: var(--on-navy); }
.nr-try p { margin: 4px 0 0; }
.nr-keep .nr-opt { display: block; width: 100%; text-align: left; margin: 8px 0 0; white-space: normal; min-height: 44px; }
.nr-tracks { display: grid; gap: 10px; margin: 10px 0; }
.nr-track { border: 1px solid var(--line); border-radius: 14px; padding: 12px; display: grid; gap: 6px; }
.nr-track.on { border-color: var(--gold-2); }
.nr-track small { opacity: .75; }
.nr-bar { display: block; height: 6px; border-radius: 6px; background: var(--line); overflow: hidden; }
.nr-bar s { display: block; height: 100%; background: var(--gold-2); text-decoration: none; }

/* ── Clinical luxury: the employer pages, plans and the portal (30 Oct 2026) ── */
.nr-top nav .nr-navlink { font-weight: 550; }
.nr-hero .nr-lede { opacity: 1; color: var(--muted); }
.nr-hero h1 { font-weight: 820; letter-spacing: -.04em; }
.nr-sec > h2 { font-weight: 800; letter-spacing: -.035em; }
.nr-figs { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; margin: 26px 0 0; }
.nr-fig { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow); }
.nr-fig b { display: block; font: 780 2.6rem/1 var(--serif); color: var(--ink); letter-spacing: -.02em; margin-bottom: 10px; }
.nr-fig b em { font-style: normal; color: var(--gold); }
.nr-fig p { margin: 0; color: var(--muted); font-size: .92rem; }
.nr-fig cite { display: block; margin-top: 10px; font: 500 .74rem var(--sans); font-style: normal; color: var(--muted); letter-spacing: .02em; }
.nr-plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 18px; align-items: stretch; margin-top: 26px; }
.nr-plan { position: relative; display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 24px; box-shadow: var(--shadow); }
.nr-plan.featured { border: 1.5px solid var(--gold); }
.nr-plan .nr-flag { position: absolute; top: -12px; left: 24px; background: var(--gold); color: #fff; font: 600 .66rem var(--sans); letter-spacing: .16em; text-transform: uppercase; border-radius: 999px; padding: 5px 11px; }
.nr-plan h3 { font: 780 1.4rem var(--serif); margin: 0 0 6px; }
.nr-plan .nr-amt { font: 780 2.6rem/1.05 var(--serif); letter-spacing: -.02em; margin: 14px 0 2px; }
.nr-plan .nr-amt small { font: 500 .82rem var(--sans); color: var(--muted); letter-spacing: 0; margin-left: 4px; }
.nr-plan ul { list-style: none; padding: 0; margin: 18px 0 22px; display: grid; gap: 10px; flex: 1; }
.nr-plan li { padding-left: 24px; position: relative; font-size: .95rem; }
.nr-plan li::before { content: ''; position: absolute; left: 2px; top: .45em; width: 11px; height: 6px; border-left: 2px solid var(--gold); border-bottom: 2px solid var(--gold); transform: rotate(-45deg); }
.nr-plan .nr-btn { width: 100%; }
.nr-band { background: var(--navy); color: #fff; border-radius: calc(var(--radius) + 4px); padding: 34px 28px; }
.nr-band .nr-kicker { color: var(--on-navy); }
.nr-band h2 { color: #fff; }
.nr-band p, .nr-band li { color: rgba(255, 255, 255, .82); }
.nr-steps { counter-reset: s; list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.nr-steps li { counter-increment: s; border-top: 2px solid var(--gold); padding-top: 14px; }
.nr-steps li::before { content: '0' counter(s); display: block; font: 780 1.6rem var(--serif); color: var(--gold); margin-bottom: 6px; }
.nr-split { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 28px; align-items: start; }
.nr-form .nr-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.nr-form textarea { min-height: 110px; resize: vertical; }
.nr-forbiz { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; }
.nr-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px; margin: 14px 0; }
.nr-kpis div { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; }
.nr-kpis b { display: block; font: 780 1.9rem/1.1 var(--serif); color: var(--ink); }
.nr-kpis span { font-size: .8rem; color: var(--muted); }
.nr-pill { display: inline-block; font: 600 .66rem var(--sans); letter-spacing: .12em; text-transform: uppercase; padding: 3px 9px; border-radius: 999px; background: var(--tint); color: var(--gold); }
.nr-copy { font: 500 .9rem ui-monospace, SFMono-Regular, Menlo, monospace; background: var(--stone); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; word-break: break-all; }
@media (min-width: 900px) { .nr-site section.nr-sec { margin: 96px 0; } .nr-hero { padding: 72px 22px 96px; } }
/* Phones: the brand stays on one line; the employers link moves to the band lower on the page. */
.nr-brand > span { white-space: nowrap; }
@media (max-width: 520px) { .nr-top nav .nr-navlink { display: none; } .nr-top { padding: 14px 16px; } }

/* ── Why the weight comes back: the deck (owner, 31 Oct 2026) ──────────
   Without script every slide shows, one under another. With it (site.js
   adds .is-deck) one slide at a time, stacked in one grid cell, so the
   stage keeps the height of the tallest and the arrows never move. */
/* The author display rules below would beat [hidden]: these stay hidden until site.js shows them. */
.nr-deck-chips[hidden], .nr-deck-nav[hidden], .nr-slide[hidden] { display: none; }
.nr-deck-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px 28px; }
.nr-deck-head h2 { font-size: clamp(1.8rem, 4vw, 2.6rem); font-weight: 800; letter-spacing: -.035em; max-width: 18ch; margin-bottom: .3em; }
.nr-deck-hint { max-width: 46ch; margin: 0; }
.nr-deck-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nr-deck-chips button { font: 550 .86rem var(--sans); border: 1px solid var(--line); background: var(--card); color: var(--ink); border-radius: 999px; padding: 9px 16px; min-height: 44px; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.nr-deck-chips button:hover { border-color: var(--ink); }
.nr-deck-chips button[aria-pressed=true] { background: var(--navy); color: #fff; border-color: var(--navy); }
.nr-deck-stage { touch-action: pan-y; }
.nr-deck-track { list-style: none; margin: 26px 0 0; padding: 0; display: grid; gap: 16px; }
.nr-slide { display: grid; grid-template-columns: 1fr; align-content: start; background: var(--card); border: 1px solid var(--line); border-radius: calc(var(--radius) + 6px); overflow: hidden; box-shadow: var(--shadow); }
.nr-slide-art { position: relative; overflow: hidden; background: radial-gradient(420px 260px at 110% -10%, rgba(43, 179, 166, .35), transparent 60%), var(--navy); color: #fff; padding: 20px 22px; display: flex; align-items: center; gap: 14px; }
.nr-slide-art svg { color: var(--on-navy); flex: none; }
.nr-slide-num { font: 780 3rem/1 var(--serif); color: #fff; letter-spacing: -.03em; }
.nr-slide-group { margin-left: auto; font: 600 .72rem var(--sans); letter-spacing: .2em; text-transform: uppercase; color: rgba(255, 255, 255, .78); }
.nr-slide-text { padding: 24px 22px 26px; }
.nr-slide-text h3 { font: 780 clamp(1.6rem, 4.4vw, 2.5rem)/1.1 var(--serif); letter-spacing: -.02em; margin: 0 0 14px; }
.nr-slide-why { font-size: 1.1rem; line-height: 1.6; max-width: 56ch; margin: 0; }
.nr-slide-does { margin: 20px 0; padding: 14px 16px; background: var(--tint); border-radius: 12px; border-left: 3px solid var(--gold); max-width: 60ch; }
.nr-slide-does span { font: 600 .72rem var(--sans); letter-spacing: .16em; text-transform: uppercase; color: var(--gold); }
.nr-slide-does p { margin: 6px 0 0; }
.nr-me { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 10px 20px; border-radius: 999px; border: 1.5px solid var(--gold); background: transparent; color: var(--gold); font: 600 .95rem var(--sans); cursor: pointer; transition: background .2s, color .2s, transform .15s; }
.nr-me::before { content: '+'; font-size: 1.1em; line-height: 1; }
.nr-me[aria-pressed=true] { background: var(--gold); color: #fff; }
.nr-me[aria-pressed=true]::before { content: '✓'; }
.nr-me:active { transform: scale(.97); }
.nr-slide.is-me .nr-slide-art::after { content: '✓'; position: absolute; top: 14px; right: 16px; width: 26px; height: 26px; border-radius: 50%; background: var(--gold); color: #fff; display: grid; place-items: center; font: 600 .8rem var(--sans); }
.nr-slide.is-me .nr-slide-group { margin-right: 34px; }
.nr-slide-end { grid-template-columns: 1fr !important; background: linear-gradient(160deg, var(--card), var(--stone)); }
.nr-slide-end .nr-slide-text h3 { max-width: 20ch; }
.nr-pattern { list-style: none; padding: 0; margin: 18px 0; display: flex; flex-wrap: wrap; gap: 8px; }
.nr-pattern li { background: var(--navy); color: #fff; border-radius: 999px; padding: 9px 16px; font-weight: 550; font-size: .95rem; }
.nr-pattern li.nr-pattern-none { background: none; color: var(--muted); padding: 0; font-weight: 400; font-size: 1rem; }
.nr-deck-nav { display: flex; align-items: center; gap: 14px; margin-top: 18px; }
.nr-deck-arrow { width: 52px; height: 52px; flex: none; border-radius: 50%; border: 1px solid var(--line); background: var(--card); color: var(--ink); font-size: 1.25rem; cursor: pointer; transition: background .2s, color .2s, opacity .2s; }
.nr-deck-arrow:not(:disabled):hover { background: var(--navy); color: #fff; border-color: var(--navy); }
.nr-deck-arrow:disabled { opacity: .3; cursor: default; }
.nr-deck-bar { flex: 1; height: 4px; background: var(--line); border-radius: 4px; overflow: hidden; }
.nr-deck-bar span { display: block; height: 100%; width: 0; background: var(--gold); transition: width .45s cubic-bezier(.2, .7, .2, 1); }
.nr-deck-count { font: 500 .92rem var(--sans); color: var(--muted); min-width: 4.2em; text-align: center; font-variant-numeric: tabular-nums; }
/* The strip: cards side by side, the next one peeking in; the track slides
   (deck.js sets its transform) and follows a drag. Cards in one row stretch
   to the tallest, so the arrows never jump. */
/* clip, not hidden: a hidden box can still be scrolled, and focusing a
   button in a peeking card would shift the strip and jump the page. */
.is-deck .nr-deck-stage { overflow: hidden; overflow: clip; margin: 0 -4px; padding: 4px 4px 10px; }
.is-deck .nr-deck-track { display: flex; gap: 16px; align-items: stretch; transition: transform .55s cubic-bezier(.2, .75, .15, 1); will-change: transform; }
.is-deck.is-dragging .nr-deck-track { cursor: grabbing; }
.is-deck .nr-deck-stage { cursor: grab; }
.is-deck .nr-slide { flex: 0 0 88%; min-width: 0; transition: opacity .45s ease, transform .55s cubic-bezier(.2, .75, .15, 1); }
.is-deck .nr-slide:not(.is-on) { opacity: .42; transform: scale(.955); }
.is-deck .nr-slide.is-out { display: none; }
.is-deck .nr-slide.is-on .nr-slide-num { animation: nr-num .7s .1s cubic-bezier(.2, .7, .2, 1) both; }
.is-deck .nr-slide.is-on .nr-slide-text > * { animation: nr-rise .55s .08s cubic-bezier(.2, .7, .2, 1) both; }
.is-deck .nr-slide.is-on .nr-slide-text > :nth-child(2) { animation-delay: .14s; }
.is-deck .nr-slide.is-on .nr-slide-text > :nth-child(3) { animation-delay: .2s; }
.is-deck .nr-slide.is-on .nr-slide-text > :nth-child(4) { animation-delay: .26s; }
.is-deck.is-dragging .nr-slide { user-select: none; -webkit-user-select: none; }
@keyframes nr-num { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes nr-rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
/* Two columns once the DECK is wide enough (the site), not the window: in the
   app the deck sits in a 680px column and stays stacked. */
.nr-deck { container-type: inline-size; }
.nr-deck-app .nr-deck-head h1 { margin-bottom: .3em; }
@container (min-width: 720px) {
  .nr-slide { grid-template-columns: 300px minmax(0, 1fr); }
  .nr-slide-art { flex-direction: column; align-items: flex-start; justify-content: space-between; padding: 34px 32px; }
  .nr-slide-num { font-size: 6.5rem; }
  .nr-slide-group { margin-left: 0; }
  .nr-slide.is-me .nr-slide-group { margin-right: 0; }
  .nr-slide-text { padding: 44px 48px; }
}
@container (min-width: 720px) { .is-deck .nr-slide { flex-basis: 84%; } }
@media (prefers-reduced-motion: reduce) {
  .is-deck .nr-slide, .is-deck .nr-slide *, .is-deck .nr-deck-track { animation: none !important; transition: none !important; }
  .nr-deck-bar span { transition: none; }
}

/* ── Sections that slide into view as you reach them (site.js adds
   .nr-reveal, then .in; without script, or with reduced motion, nothing
   is ever hidden) ── */
.nr-reveal { opacity: 0; transform: translateY(28px); transition: opacity .7s ease, transform .8s cubic-bezier(.2, .75, .15, 1); }
.nr-reveal.in { opacity: 1; transform: none; }
/* Sideways only where there is room for it: on a phone everything rises. */
@media (min-width: 900px) {
  .nr-reveal.from-left { transform: translateX(-36px); }
  .nr-reveal.from-right { transform: translateX(36px); }
  .nr-reveal.from-left.in, .nr-reveal.from-right.in { transform: none; }
}


/* ── Premium (owner, 31 Oct 2026) ─────────────────────────────────────── */
body { background: var(--sand); }
.nr-site { background: radial-gradient(1200px 600px at 100% 0%, #f3ece2, transparent 60%), var(--sand); }
.nr-kicker { color: var(--gold); letter-spacing: .2em; }
.nr-lede { color: var(--muted); opacity: 1; }
.nr-sec > h2, .nr-deck-head h2, .nr-split2 h2, .nr-split h2 { font-family: var(--display); font-weight: 400; letter-spacing: -.01em; word-spacing: .04em; font-size: clamp(2rem, 4.6vw, 3.3rem); line-height: 1.04; }
.nr-sec > h2 em, .nr-display em { font-style: italic; color: var(--gold); }
/* Buttons: forest for action, bronze for the one that matters most. */
.nr-btn { background: var(--forest); color: var(--cream); font-weight: 600; letter-spacing: .01em; padding: 15px 28px; min-height: 52px; box-shadow: 0 1px 0 rgba(255, 255, 255, .12) inset, 0 12px 26px -14px rgba(31, 61, 51, .8); }
.nr-btn:hover { background: var(--forest-2); }
.nr-btn.gold { background: linear-gradient(135deg, #d8a86c, #a87439 55%, #8a5a26); color: #fffaf2; box-shadow: 0 1px 0 rgba(255, 255, 255, .35) inset, 0 14px 30px -14px rgba(138, 90, 38, .9); }
.nr-btn.gold:hover { filter: brightness(1.05); }
.nr-btn.ghost { background: transparent; color: inherit; box-shadow: inset 0 0 0 1.5px var(--hair); }
.nr-btn.glass { background: rgba(248, 243, 235, .14); color: #fff; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
/* Raised cream tiles everywhere. */
.nr-card { background: linear-gradient(180deg, #fbf8f2, #f4eee4); border: 1px solid rgba(255, 255, 255, .75); box-shadow: var(--shadow); }
.nr-card.hair { background: rgba(248, 243, 235, .5); border: 1px solid var(--hair); box-shadow: none; }
.nr-msg { background: var(--tint); }
.nr-num { color: var(--gold); font-weight: 300; font-family: var(--display); }
.nr-tag { color: var(--gold); border-color: rgba(138, 90, 38, .3); background: var(--bronze-soft); }
.nr-chips input:checked + span, .nr-scale input:checked + span, .nr-deck-chips button[aria-pressed=true] { background: var(--forest); border-color: var(--forest); color: var(--cream); }
.nr-chips span, .nr-scale span, .nr-deck-chips button, .nr-filters select { background: var(--cream); }
.nr-dark, .nr-menu-teaser { background: linear-gradient(160deg, #24453a, #1a3229); color: var(--cream); border: 0; }
.nr-dark .nr-kicker, .nr-menu .nr-course { color: var(--on-navy); }
.nr-menu li { border-top-color: rgba(231, 197, 143, .22); }
.nr-try { background: var(--forest); color: var(--cream); }
.nr-try span { color: var(--on-navy); }
.nr-quote, .nr-quote-big, .nr-chef { font-family: var(--display); font-weight: 380; font-style: italic; letter-spacing: -.01em; }
.nr-zkey { font-family: var(--display); font-weight: 500; }
.nr-hello h1 { font-size: 2.3rem; }
.nr-dayline b { font-family: var(--display); font-weight: 400; color: var(--gold); }
.nr-apptop { background: color-mix(in srgb, var(--sand) 82%, transparent); }
.nr-tabs { background: rgba(248, 243, 235, .92); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); }
.nr-sosfab { background: linear-gradient(135deg, #d8a86c, #a87439 55%, #8a5a26); color: #fffaf2; }
.nr-hero-wrap { background: radial-gradient(800px 420px at 90% 0%, rgba(201, 150, 94, .22), transparent 62%), radial-gradient(600px 400px at 0% 100%, rgba(156, 179, 163, .28), transparent 60%), var(--sand); color: var(--ink); border-bottom: 0; }
.nr-hero h1 { font-family: var(--display); font-weight: 400; letter-spacing: -.03em; }
.nr-hero h1 em { font-style: italic; color: var(--gold); }
.nr-band { background: linear-gradient(140deg, #24453a, #1a3229); color: var(--cream); }
.nr-band .nr-kicker { color: var(--on-navy); }
.nr-band h2 { color: #fff; }
.nr-band p, .nr-band li { color: rgba(248, 243, 235, .84); }
.nr-fig { background: linear-gradient(180deg, #fbf8f2, #f4eee4); border: 1px solid rgba(255, 255, 255, .75); box-shadow: var(--shadow); }
.nr-fig b { font-family: var(--display); font-weight: 380; color: var(--ink); }
.nr-fig b em { font-style: normal; color: var(--gold); }
.nr-plan { background: linear-gradient(180deg, #fbf8f2, #f4eee4); border: 1px solid rgba(255, 255, 255, .75); }
.nr-plan.featured { border: 1.5px solid var(--bronze-2); background: linear-gradient(180deg, #fbf3e6, #f4eee4); }
.nr-plan .nr-amt { font-family: var(--display); font-weight: 380; }
.nr-plan h3 { font: 450 1.7rem/1.1 var(--display); letter-spacing: -.01em; }
.nr-plan .nr-amt small { display: block; margin: 6px 0 0; }
.nr-flag { background: var(--bronze); }
.nr-steps li { border-top: 2px solid var(--bronze-2); }
.nr-steps li::before { font-family: var(--display); color: var(--gold); font-weight: 300; }
.nr-kpis div { background: linear-gradient(180deg, #fbf8f2, #f4eee4); box-shadow: var(--shadow); border: 1px solid rgba(255, 255, 255, .75); }
.nr-kpis b { font-family: var(--display); font-weight: 400; }
.nr-copy { background: var(--sand-2); }
.nr-pill { background: var(--bronze-soft); color: var(--gold); }
/* The deck: every group has its own photograph behind the number. */
.nr-slide { background: linear-gradient(180deg, #fbf8f2, #f4eee4); border: 1px solid rgba(255, 255, 255, .75); }
.nr-slide-art { color: #fff; background: linear-gradient(180deg, rgba(20, 34, 28, .25), rgba(20, 34, 28, .75)), url(/noregain/img/hero-strength.webp) center/cover; }
.nr-slide[data-group=habit] .nr-slide-art { background-image: linear-gradient(180deg, rgba(20, 34, 28, .25), rgba(20, 34, 28, .75)), url(/noregain/img/tile-checkin.webp); }
.nr-slide[data-group=mind] .nr-slide-art { background-image: linear-gradient(180deg, rgba(20, 34, 28, .2), rgba(20, 34, 28, .75)), url(/noregain/img/tile-calm.webp); }
.nr-slide[data-group=life] .nr-slide-art { background-image: linear-gradient(180deg, rgba(20, 34, 28, .2), rgba(20, 34, 28, .75)), url(/noregain/img/food-spread.webp); }
.nr-slide-art svg { color: var(--on-navy); opacity: 1; }
.nr-slide-num { color: #fff; font-family: var(--display); font-weight: 300; letter-spacing: -.04em; }
.nr-slide-group { color: rgba(255, 255, 255, .85); }
.nr-slide-text h3 { font-family: var(--display); font-weight: 420; letter-spacing: -.02em; }
.nr-slide-does { background: var(--sand); border-left-color: var(--bronze-2); }
.nr-slide-does span { color: var(--gold); }
.nr-slide-end { background: linear-gradient(160deg, #f6eadb, #f4eee4 60%); }
.nr-pattern li { background: var(--forest); color: var(--cream); }
.nr-me { border-color: var(--bronze); color: var(--gold); }
.nr-me[aria-pressed=true] { background: var(--bronze); color: #fff; }
.nr-deck-bar span { background: var(--bronze); }
.nr-deck-arrow { background: var(--cream); box-shadow: var(--shadow); border-color: rgba(255, 255, 255, .7); }

/* ── Touch: tiles that tilt toward the finger and press under it ─────── */
.nr-lift { transform: perspective(1000px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)) translateY(var(--ty, 0)) scale(var(--sc, 1)); transition: transform .35s cubic-bezier(.2, .75, .15, 1), box-shadow .35s; will-change: transform; position: relative; }
.nr-lift.is-hover { --ty: -4px; box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 4px 10px rgba(31, 39, 34, .08), 0 34px 60px -28px rgba(31, 39, 34, .5); }
.nr-lift.is-press { --sc: .975; transition-duration: .12s; }
.nr-lift::after { content: ''; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; background: radial-gradient(420px circle at var(--gx, 50%) var(--gy, 0%), rgba(255, 255, 255, .28), transparent 45%); opacity: 0; transition: opacity .35s; }
.nr-lift.is-hover::after { opacity: 1; }

/* ── The cinema: the opening, one reason at a time, with lower thirds ── */
.nr-cinema { position: relative; height: min(100svh, 940px); min-height: 640px; overflow: hidden; background: #17241e; color: #fff; isolation: isolate; }
.nr-cin-top { position: absolute; inset: 0 0 auto; z-index: 6; background: linear-gradient(180deg, rgba(14, 22, 18, .55), transparent); }
.nr-cin-top .nr-top { color: #fff; }
.nr-cin-top .nr-brand small { color: var(--on-navy); }
.nr-cin-top .nr-btn.ghost { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45); color: #fff; }
.nr-cin-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.2s ease; z-index: 1; }
.nr-cin-slide.is-on { opacity: 1; z-index: 2; }
.nr-cin-slide img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform: scale(1.14); }
.nr-cin-slide.is-on img { animation: nr-kb 9.5s cubic-bezier(.25, .6, .3, 1) forwards; }
.nr-cin-slide:nth-child(even).is-on img { animation-name: nr-kb2; }
@keyframes nr-kb { from { transform: scale(1.14) translate(1.5%, 1%); } to { transform: scale(1.02) translate(0, 0); } }
@keyframes nr-kb2 { from { transform: scale(1.02) translate(-1%, 0); } to { transform: scale(1.14) translate(1.5%, -1%); } }
.nr-cin-slide::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(14, 22, 18, .38) 0%, transparent 26%, transparent 40%, rgba(14, 22, 18, .55) 66%, rgba(14, 22, 18, .9) 100%); }
.nr-lower { position: absolute; left: 0; right: 0; bottom: 118px; z-index: 3; max-width: 1120px; margin: 0 auto; padding: 0 22px; }
.nr-lower-in { position: relative; max-width: 720px; padding: 22px 26px 22px 24px; border-left: 3px solid var(--bronze-2); background: linear-gradient(90deg, rgba(16, 26, 21, .72), rgba(16, 26, 21, .38) 75%, rgba(16, 26, 21, 0)); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-radius: 0 18px 18px 0; }
.nr-lower-k { display: flex; gap: 12px; align-items: center; font: 600 .72rem var(--sans); letter-spacing: .22em; text-transform: uppercase; color: var(--on-navy); margin: 0 0 10px; }
.nr-lower-k span { opacity: .7; letter-spacing: .1em; }
.nr-lower h2 { font: 400 clamp(1.9rem, 5.2vw, 3.5rem)/1.04 var(--display); letter-spacing: -.025em; margin: 0 0 12px; color: #fff; text-wrap: balance; }
.nr-lower h2 em { font-style: italic; color: var(--on-navy); }
.nr-lower p { margin: 0; font-size: clamp(1rem, 1.7vw, 1.14rem); line-height: 1.55; color: rgba(255, 255, 255, .86); max-width: 58ch; }
.nr-lower cite { display: inline-block; margin-top: 12px; font: 500 .74rem var(--sans); font-style: normal; color: rgba(255, 255, 255, .7); border: 1px solid rgba(255, 255, 255, .25); border-radius: 999px; padding: 4px 11px; }
.nr-cin-slide.is-on .nr-lower-in > * { animation: nr-lt .9s cubic-bezier(.2, .75, .15, 1) both; }
.nr-cin-slide.is-on .nr-lower-in > :nth-child(2) { animation-delay: .12s; }
.nr-cin-slide.is-on .nr-lower-in > :nth-child(3) { animation-delay: .24s; }
.nr-cin-slide.is-on .nr-lower-in > :nth-child(4) { animation-delay: .36s; }
.nr-cin-slide.is-on .nr-lower-in { animation: nr-lt-bar .8s cubic-bezier(.2, .75, .15, 1) both; }
@keyframes nr-lt { from { opacity: 0; transform: translateY(18px); clip-path: inset(0 0 100% 0); } to { opacity: 1; transform: none; clip-path: inset(0 0 0 0); } }
@keyframes nr-lt-bar { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
.nr-cin-ui { position: absolute; left: 0; right: 0; bottom: 34px; z-index: 5; max-width: 1120px; margin: 0 auto; padding: 0 22px; display: flex; align-items: center; gap: 14px; }
.nr-cin-segs { flex: 1; display: flex; gap: 6px; }
.nr-cin-segs button { flex: 1; height: 26px; padding: 11px 0; background: none; border: 0; cursor: pointer; }
.nr-cin-segs button i { display: block; height: 3px; border-radius: 3px; background: rgba(255, 255, 255, .28); overflow: hidden; }
.nr-cin-segs button i b { display: block; height: 100%; width: 0; background: #fff; }
.nr-cin-segs button.done i b { width: 100%; }
.nr-cin-segs button.on i b { animation: nr-seg var(--dur, 7s) linear forwards; }
.nr-cinema.is-paused .nr-cin-segs button.on i b { animation-play-state: paused; }
@keyframes nr-seg { from { width: 0; } to { width: 100%; } }
.nr-cin-btn { width: 46px; height: 46px; flex: none; border-radius: 50%; border: 0; color: #fff; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .35); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); cursor: pointer; font-size: 1.05rem; display: grid; place-items: center; }
.nr-cin-btn:hover { background: rgba(255, 255, 255, .26); }
.nr-cin-count { font: 500 .85rem var(--sans); color: rgba(255, 255, 255, .8); font-variant-numeric: tabular-nums; min-width: 3.4em; text-align: center; }
/* The membership card rises out of the cinema. */
.nr-member { position: relative; z-index: 8; max-width: 1120px; margin: -64px auto 0; padding: 0 22px; }
.nr-member-in { display: grid; gap: 22px 40px; grid-template-columns: 1fr; align-items: center; padding: 30px 28px; border-radius: 28px; }
.nr-member h1 { font: 400 clamp(2.2rem, 6vw, 3.8rem)/1 var(--display); letter-spacing: -.03em; margin: 0 0 10px; }
.nr-member h1 em { font-style: italic; color: var(--gold); }
.nr-member .nr-lede { margin: 0; font-size: 1.05rem; }
.nr-member .nr-price { margin-top: 0; }
.nr-member .nr-price b { font: 400 2.6rem var(--display); }
.nr-member-cta { display: grid; gap: 12px; justify-items: start; }
@media (min-width: 900px) { .nr-member-in { grid-template-columns: 1.25fr 1fr; padding: 40px 44px; } .nr-member { margin-top: -96px; } }

/* ── Wherever your care comes from: a slow ribbon ───────────────────── */
.nr-care { overflow: hidden; padding: 6px 0; mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.nr-care-track { display: flex; gap: 12px; width: max-content; animation: nr-ribbon 46s linear infinite; }
.nr-care:hover .nr-care-track { animation-play-state: paused; }
.nr-care span { white-space: nowrap; padding: 12px 20px; border-radius: 999px; background: linear-gradient(180deg, #fbf8f2, #f1eadf); box-shadow: var(--shadow); font-weight: 550; font-size: .95rem; }
.nr-care span b { color: var(--gold); font-weight: 650; }
@keyframes nr-ribbon { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ── Image tiles ────────────────────────────────────────────────────── */
.nr-tiles { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.nr-tile { position: relative; overflow: hidden; border-radius: var(--radius); aspect-ratio: 4 / 5; color: #fff; background: #2a3a32; box-shadow: var(--shadow); display: flex; flex-direction: column; justify-content: flex-end; padding: 22px; text-decoration: none; }
.nr-tile > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.2, .75, .15, 1); }
.nr-tile.is-hover > img { transform: scale(1.06); }
.nr-tile::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 35%, rgba(16, 26, 21, .82)); z-index: 1; }
.nr-tile > *:not(img) { position: relative; z-index: 2; }
.nr-tile .nr-num { color: var(--on-navy); font-size: 2.6rem; margin: 0 0 auto; }
.nr-tile h3 { font: 420 1.5rem/1.15 var(--display); margin: 0 0 6px; color: #fff; }
.nr-tile p { margin: 0; color: rgba(255, 255, 255, .85); font-size: .95rem; }
.nr-tile.wide { aspect-ratio: 16 / 10; }
.nr-mosaic { display: grid; gap: 14px; grid-template-columns: 1fr 1fr; }
.nr-mosaic .nr-tile { aspect-ratio: 1; padding: 16px; }
.nr-mosaic .nr-tile:first-child { grid-row: span 2; aspect-ratio: auto; }
.nr-cuis { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; padding: 0; list-style: none; }
.nr-cuis li { padding: 8px 14px; border-radius: 999px; background: var(--cream); box-shadow: var(--shadow); font-size: .9rem; font-weight: 550; }
.nr-split2 { display: grid; gap: 34px; align-items: center; grid-template-columns: 1fr; }
@media (min-width: 900px) { .nr-split2 { grid-template-columns: 1fr 1fr; } .nr-split2.flip > :first-child { order: 2; } }

/* ── Research, drawn ────────────────────────────────────────────────── */
.nr-research { padding: 30px 26px; border-radius: 28px; }
.nr-rtabs { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 18px; }
.nr-rtabs button { border: 0; border-radius: 999px; padding: 10px 18px; min-height: 44px; font: 600 .9rem var(--sans); background: var(--sand); color: var(--ink); cursor: pointer; }
.nr-rtabs button[aria-selected=true] { background: var(--forest); color: var(--cream); }
.nr-rchart { display: none; }
.nr-rchart.on { display: block; }
.nr-rchart h3 { font: 420 clamp(1.3rem, 2.6vw, 1.8rem)/1.2 var(--display); margin: 0 0 6px; }
.nr-rchart svg { width: 100%; height: auto; display: block; overflow: visible; }
.nr-ax { stroke: rgba(31, 39, 34, .14); stroke-width: 1; }
.nr-ax-l { fill: var(--muted); font: 500 12px var(--sans); }
.nr-ln { fill: none; stroke-width: 3.2; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 1400; stroke-dashoffset: 1400; transition: stroke-dashoffset 2.4s cubic-bezier(.3, .6, .2, 1); }
.nr-rchart.drawn .nr-ln { stroke-dashoffset: 0; }
.nr-ln.on { stroke: var(--forest); } .nr-ln.off { stroke: var(--terra); transition-delay: .8s; } .nr-ln.keep { stroke: var(--sage); stroke-dasharray: 8 7; stroke-dashoffset: 0; opacity: 0; transition: opacity 1s 1.6s; }
.nr-rchart.drawn .nr-ln.keep { opacity: 1; }
.nr-area { fill: rgba(184, 96, 63, .12); opacity: 0; transition: opacity 1.2s 2.2s; }
.nr-rchart.drawn .nr-area { opacity: 1; }
.nr-note { font: 600 13px var(--sans); fill: var(--ink); opacity: 0; transition: opacity .8s 2.6s; }
.nr-note.t { fill: var(--terra); } .nr-note.f { fill: var(--forest); } .nr-note.s { fill: #5f7e6c; }
.nr-rchart.drawn .nr-note { opacity: 1; }
.nr-dash { stroke: rgba(31, 39, 34, .35); stroke-dasharray: 4 5; }
.nr-bar { transform-origin: bottom; transform: scaleY(0); transform-box: fill-box; transition: transform 1.6s cubic-bezier(.2, .75, .15, 1); }
.nr-bar.b2 { transition-delay: .3s; }
.nr-rchart.drawn .nr-bar { transform: scaleY(1); }
.nr-rsrc { font-size: .8rem; color: var(--muted); margin: 10px 0 0; }

/* ── The simulator ──────────────────────────────────────────────────── */
.nr-sim { padding: 28px 26px; border-radius: 28px; display: grid; gap: 22px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .nr-sim { grid-template-columns: 320px 1fr; padding: 36px; } }
.nr-sim label { display: grid; gap: 8px; font-weight: 600; }
.nr-sim input[type=range] { width: 100%; accent-color: var(--bronze); height: 32px; }
.nr-sim-v { font: 400 2.8rem/1 var(--display); color: var(--ink); }
.nr-sim-out { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 14px; }
.nr-sim-out div { padding: 14px; border-radius: 16px; background: var(--sand); }
.nr-sim-out b { display: block; font: 400 2rem/1.1 var(--display); }
.nr-sim-out .own b { color: var(--terra); } .nr-sim-out .with b { color: var(--forest); }
.nr-sim-out span { font-size: .82rem; color: var(--muted); }
.nr-sim svg { width: 100%; height: auto; display: block; }
.nr-sim .own-ln { fill: none; stroke: var(--terra); stroke-width: 3.2; stroke-linecap: round; }
.nr-sim .with-ln { fill: none; stroke: var(--forest); stroke-width: 3.2; stroke-linecap: round; }
.nr-sim .with-ln.guess { stroke-dasharray: 6 7; opacity: .7; }
.nr-sim .own-area { fill: rgba(184, 96, 63, .1); }
.nr-sim path { transition: d .6s cubic-bezier(.2, .75, .15, 1); }
.nr-fine { font-size: .8rem; color: var(--muted); }

/* ── The arithmetic ─────────────────────────────────────────────────── */
.nr-invest { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); }
.nr-invest .nr-card { margin: 0; padding: 26px; }
.nr-invest b { display: block; font: 400 clamp(2.4rem, 5vw, 3.4rem)/1 var(--display); letter-spacing: -.03em; margin-bottom: 10px; }
.nr-invest .hi b { color: var(--terra); } .nr-invest .lo b { color: var(--forest); }

/* ── Videos: nothing from YouTube loads until play is pressed ──────── */
.nr-vids { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.nr-vid { position: relative; overflow: hidden; border-radius: var(--radius); aspect-ratio: 16 / 11; background: linear-gradient(140deg, #24453a, #1a3229); color: #fff; border: 0; padding: 0; text-align: left; cursor: pointer; box-shadow: var(--shadow); font: inherit; }
.nr-vid img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .82; }
.nr-vid::before { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 26, 21, .1), rgba(16, 26, 21, .85)); z-index: 1; }
.nr-vid .nr-play { position: absolute; top: 18px; right: 18px; z-index: 2; width: 56px; height: 56px; border-radius: 50%; background: rgba(248, 243, 235, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .55); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: grid; place-items: center; transition: transform .3s; }
.nr-vid .nr-play::after { content: ''; border-left: 18px solid #fff; border-top: 11px solid transparent; border-bottom: 11px solid transparent; margin-left: 5px; }
.nr-vid.is-hover .nr-play { transform: scale(1.08); }
.nr-vid .nr-vcap { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 2; }
.nr-vid .nr-vcap small { display: block; font: 600 .68rem var(--sans); letter-spacing: .18em; text-transform: uppercase; color: var(--on-navy); margin-bottom: 4px; }
.nr-vid .nr-vcap b { font: 420 1.15rem/1.25 var(--display); }
.nr-vid iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 3; }
@media (min-width: 700px) { .nr-vid { aspect-ratio: 4 / 5; } }

/* ── Food-noise SOS, tried on the page ─────────────────────────────── */
.nr-try-sos { display: grid; justify-items: center; gap: 14px; padding: 30px; border-radius: 28px; text-align: center; }
.nr-orb { width: 170px; height: 170px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #f3dcb6, #c9965e 55%, #8a5a26); box-shadow: 0 30px 60px -24px rgba(138, 90, 38, .7), inset 0 2px 0 rgba(255, 255, 255, .5); display: grid; place-items: center; color: #fffaf2; font: 400 1.15rem var(--display); transform: scale(.78); }
.nr-orb.go { animation: nr-orb 8s ease-in-out infinite; }
@keyframes nr-orb { 0%, 100% { transform: scale(.78); } 50% { transform: scale(1.06); } }

/* ── The physician and the wisdom bands ─────────────────────────────── */
.nr-photo { position: relative; border-radius: 28px; overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--shadow); }
.nr-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nr-wisdom { position: relative; overflow: hidden; border-radius: 30px; padding: clamp(34px, 6vw, 70px); color: #fff; background: #1a3229; }
.nr-wisdom > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .38; }
.nr-wisdom > *:not(img) { position: relative; }
.nr-wisdom .nr-quote-big { color: #fff; font-size: clamp(1.6rem, 3.6vw, 2.6rem); max-width: 26ch; }
.nr-wisdom .nr-kicker { color: var(--on-navy); }
.nr-wisdom p { color: rgba(255, 255, 255, .85); max-width: 52ch; }
/* The membership card overlaps the bottom of the cinema, so the captions
   and controls sit above that overlap (found in the browser pass). */
@media (min-width: 900px) { .nr-lower { bottom: 196px; } .nr-cin-ui { bottom: 128px; } }
.nr-brand b { font-family: var(--display); font-weight: 500; letter-spacing: -.01em; font-size: 1.25rem; }
@media (max-width: 640px) {
  .nr-lower-k span { display: none; }
  .nr-cinema { min-height: 700px; }
  .nr-lower { bottom: 124px; padding: 0 14px; }
  .nr-lower-in { padding: 16px 16px 16px 16px; border-radius: 0 14px 14px 0; }
  .nr-cin-ui { bottom: 58px; padding: 0 14px; gap: 10px; }
  .nr-cin-btn { width: 42px; height: 42px; }
  .nr-member { margin-top: -40px; padding: 0 14px; }
  .nr-member-in { padding: 24px 20px; }
  .nr-research, .nr-sim { padding: 22px 16px; }
  .nr-mosaic .nr-tile:first-child { grid-row: auto; aspect-ratio: 1; }
}
/* ── The employers page: privacy over a photograph, the calculator ─── */
.nr-wisdom h2, .nr-wisdom h3 { color: #fff; }
.nr-wisdom li { color: rgba(255, 255, 255, .86); margin: 8px 0; }
.nr-privacy .nr-split { gap: 30px; margin-top: 10px; }
.nr-roi .nr-rtabs { margin-top: 18px; }
.nr-roi label { margin-bottom: 12px; }
.nr-roi-out { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.nr-roi-out .nr-card { margin: 0; padding: 18px; }
.nr-roi-out .nr-card.wide { grid-column: 1 / -1; }
.nr-roi-out span { display: block; font: 600 .74rem var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--gold); }
.nr-roi-out b { display: block; font: 400 clamp(2rem, 4.4vw, 2.9rem)/1.1 var(--display); letter-spacing: -.02em; margin: 8px 0 6px; }
.nr-roi-out .wide b { color: var(--terra); }
.nr-roi-out small { color: var(--muted); font-size: .85rem; }
.nr-split .nr-photo { margin-top: 22px; }
@media (max-width: 640px) { .nr-roi-out { grid-template-columns: 1fr; } }
/* ── The app, as a companion: photographs at the top of the day ────── */
.nr-banner { position: relative; overflow: hidden; border-radius: 26px; padding: 26px 22px 22px; margin: 4px 0 18px; color: #fff; background: linear-gradient(180deg, rgba(16, 26, 21, .25), rgba(16, 26, 21, .8)), var(--pic, none) center/cover, #24453a; box-shadow: var(--shadow); min-height: 180px; display: flex; flex-direction: column; justify-content: flex-end; }
.nr-banner .nr-kicker { color: var(--on-navy); }
.nr-banner h1 { color: #fff; margin: .1em 0 .2em; }
.nr-banner .nr-dayline { color: rgba(255, 255, 255, .8); }
.nr-banner .nr-dayline b { color: var(--on-navy); }
.nr-banner .nr-phase { border-left-color: var(--on-navy); color: rgba(255, 255, 255, .9); margin-bottom: 0; }
.nr-video { box-shadow: var(--shadow); background: linear-gradient(180deg, #fbf8f2, #f4eee4); border: 1px solid rgba(255, 255, 255, .75); }
.nr-vthumb { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 12px; background: var(--sand-2); margin-bottom: 4px; }
@media (prefers-reduced-motion: reduce) {
  .nr-cin-slide img, .nr-cin-slide.is-on img, .nr-care-track, .nr-orb.go, .nr-cin-slide.is-on .nr-lower-in, .nr-cin-slide.is-on .nr-lower-in > * { animation: none !important; transform: none; }
  .nr-ln, .nr-bar, .nr-note, .nr-area { transition: none !important; }
  .nr-lift { transition: none; transform: none !important; }
}

/* A card waiting to slide in from the side must never widen the page. */
.nr-site { overflow-x: clip; }
@media print { .nr-reveal { opacity: 1 !important; transform: none !important; } }
