/* GENERATED by tools/design/gen_components.mjs from design/components/<Name>/<Name>.css -- do not edit by hand.
   Layers (declared first in header.php): reset, base, layout, components, patterns, pages, skins, utilities.
   Every rule uses the --ui-* / --space-* / --radius-* / --shadow-* tokens, so every theme restyles it. */

/* _base/a11y.css */
@layer base{
/* Engine Flagship EN20a (E237): the accessibility pack, set on <html> by lib/nv_web_theme.php from the account's preferences
   (Cockpit > Account > Preferences: Text size, Colours).
   data-palette="cvd"  the state colours from the Okabe-Ito set (blue for good, yellow for caution, vermillion for danger), so
                       green / red never carry the meaning alone; every look has its own three values (--ui-cvd-*)
   data-text="large|larger"  the whole page 112.5 % / 125 % (zoom: most of the kit is sized in px, so a root font size alone
                       would leave it unchanged); the field canvas of the browser client is not on these pages */
[data-palette="cvd"] { --ui-ok: var(--ui-cvd-ok); --ui-warn: var(--ui-cvd-warn); --ui-danger: var(--ui-cvd-danger); }
[data-text="large"] body { zoom: 1.125; }
[data-text="larger"] body { zoom: 1.25; }
}

/* _base/account2.css */
@layer pages{
/* Account and character pages, Island bento (owner-picked Option A of the 'NirvanaRO Account Pages' canvas, 2026-10-19): the island switch between
   My account, Top up, My orders, History and Support, the BentoHero's side rows, centred section headings, character tiles with the class logo and
   colour, white card panels. Markup: account/, character/, guild/, history/, topup/ _daybreak_*.php inside div.d-acc (lib/nv_daybreak_bento.php). */
.nvk-daybreak .d-acc { display: flex; flex-direction: column; gap: var(--space-5); }
.nvk-daybreak .d-acc-switch { display: flex; justify-content: center; }
.nvk-daybreak .d-acc-sec { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: var(--space-5) 0 0; text-align: center; }
.nvk-daybreak .d-acc-sec__t { margin: 0; padding: 0; border: 0; font: 700 30px/36px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-acc-sec__s { margin: 0; font: 400 15px/22px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-acc .nvk-panel { padding: var(--space-5); border: 0; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak a.d-acc-row { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 14px 6px 6px; border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg); font: 600 15px/20px var(--body); text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring), background .2s; }
.nvk-daybreak a.d-acc-row:hover { transform: translateX(3px); background: var(--ui-brand-tint); }
.nvk-daybreak a.d-acc-row:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-acc-row__g { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font-size: 16px; }
.nvk-daybreak .d-acc-row__l { flex: 1 1 auto; min-width: 0; }
.nvk-daybreak .d-acc-row__m { max-width: 14ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 600 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-acc-row__c { color: var(--ui-fg-3); font-size: 20px; }
.nvk-daybreak .d-acc-char { border: 0; border-radius: 30px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-acc-char__logo { flex: none; width: 48px; height: 48px; }
.nvk-daybreak .d-acc-char .d-h3.nvk-cls a, .nvk-daybreak .d-acc-char .d-h3.nvk-cls a:visited { color: inherit; text-decoration: none; }
@media (prefers-reduced-motion: reduce) { .nvk-daybreak a.d-acc-row { transition: none; } }
@media (max-width: 760px) { .nvk-daybreak .d-acc-sec__t { font-size: 24px; line-height: 30px; } }

/* ---- the character sheet: sprite, tabs, stat meters ---- */
.nvk-daybreak .d-acc-sprite { display: flex; align-items: flex-end; justify-content: center; width: 200px; height: 220px; border-radius: 30px; background: radial-gradient(60% 40% at 50% 92%, color-mix(in srgb, var(--ui-island-fg) 14%, transparent), transparent), color-mix(in srgb, var(--ui-island-fg) 5%, transparent); border: 1px dashed var(--ui-island-line); }
.nvk-daybreak .d-acc-sprite__img { max-width: 80%; max-height: 90%; image-rendering: pixelated; }
.nvk-daybreak .d-acc-sprite__logo { width: 120px; height: 120px; margin-bottom: 40px; }
.nvk-daybreak .d-acc-sprite .nvk-anim { margin-bottom: 14px; transform: scale(1.6); transform-origin: bottom center; }
.nvk-daybreak .d-acc-tabset { display: flex; flex-direction: column; gap: var(--space-4); margin-top: var(--space-3); }
.nvk-daybreak .d-acc-tabbar { display: none; align-self: center; gap: 4px; max-width: 100%; padding: 6px; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: var(--shadow-island); overflow-x: auto; scrollbar-width: none; }
.nvk-daybreak .d-acc-tabset.is-live .d-acc-tabbar { display: inline-flex; }
.nvk-daybreak .d-acc-tab { flex: none; min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ui-island-fg-2); font: 600 15px/1 var(--body); white-space: nowrap; cursor: pointer; }
.nvk-daybreak .d-acc-tab[aria-selected="true"] { background: var(--ui-island-fg); color: var(--ui-island); }
.nvk-daybreak .d-acc-tab:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak .d-acc-pane { display: flex; flex-direction: column; gap: var(--space-4); outline: none; }
.nvk-daybreak .d-acc-pane[hidden] { display: none; }
.nvk-daybreak .d-acc-meters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3) var(--space-5); }
@media (max-width: 760px) { .nvk-daybreak .d-acc-meters { grid-template-columns: minmax(0, 1fr); } .nvk-daybreak .d-acc-sprite { width: 160px; height: 180px; } .nvk-daybreak .d-acc-tabbar { align-self: stretch; } }
.nvk-daybreak .d-acc .nvk-capsules:has(> :nth-child(5)) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 760px) { .nvk-daybreak .d-acc .nvk-capsules:has(> :nth-child(5)) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ---- a guild: the emblem and the member rows (filter and search: the Bazaar's data-nv-orders hook) ---- */
.nvk-daybreak .d-acc-emblem { display: inline-flex; padding: 10px; border-radius: 28px; background: var(--ui-island-2); box-shadow: 0 0 0 2px color-mix(in srgb, var(--ui-island-gold) 50%, transparent); }
.nvk-daybreak .d-acc-emblem img { width: 96px; height: 96px; border-radius: 20px; image-rendering: pixelated; }
.nvk-daybreak .d-acc-memrows { gap: 10px; max-width: 980px; width: 100%; margin: var(--space-4) auto 0; }
.nvk-daybreak .d-acc-mem { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 14px; padding: 8px 16px 8px 8px; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-acc-mem[hidden] { display: none; }
.nvk-daybreak .d-acc-mem__logo { width: 40px; height: 40px; }
.nvk-daybreak .d-acc-mem__who { display: flex; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-acc-mem__who b { font: 700 16px/20px var(--disp); }
.nvk-daybreak .d-acc-mem__who b a { color: inherit; text-decoration: none; }
.nvk-daybreak .d-acc-mem__who span, .nvk-daybreak .d-acc-mem__meta { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
@media (max-width: 760px) { .nvk-daybreak .d-acc-mem { grid-template-columns: auto minmax(0, 1fr) auto; } .nvk-daybreak .d-acc-mem__meta { grid-column: 2 / -1; } }
}

/* _base/ascent.css */
@layer pages{
/* Island ascent (owner-picked Option B of the 'NirvanaRO Commerce and Property' canvas, 2026-10-19): Tote, Tycoon, Stronghold and Estate. The white head
   card with the kit AscentTrack, the kit NextStep strip, the boards beside the kit IslandRail. Markup: lib/nv_daybreak_ascent.php. Tokens only. */
.nvk-daybreak .d-asc__pg { max-width: 1120px; gap: 22px; }
.nvk-daybreak .d-asc-hd { display: flex; flex-direction: column; gap: 22px; padding: 28px; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; min-width: 0; }
.nvk-daybreak .d-asc-hd__top { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px 24px; flex-wrap: wrap; }
.nvk-daybreak .d-asc-hd__t { display: flex; flex-direction: column; gap: 8px; flex: 1 1 420px; min-width: 0; }
.nvk-daybreak .d-asc-hd__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-link); }
.nvk-daybreak .d-asc-hd__h { margin: 0; padding: 0; border: 0; font: 700 40px/46px var(--disp); color: var(--ui-fg); text-wrap: balance; overflow-wrap: anywhere; }
.nvk-daybreak .d-asc-hd__s { margin: 0; max-width: 720px; font: 400 16px/24px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-asc-hd__a { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.nvk-daybreak .d-asc-lay { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.nvk-daybreak .d-asc-main { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.nvk-daybreak .d-asc-side { position: sticky; top: 96px; min-width: 0; }
.nvk-daybreak .d-asc-card { display: flex; flex-direction: column; gap: 16px; padding: 24px; border-radius: 28px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; min-width: 0; scroll-margin-top: 96px; }
.nvk-daybreak .d-asc-card__hd { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.nvk-daybreak .d-asc-card__t { display: flex; flex-direction: column; gap: 4px; flex: 1 1 260px; min-width: 0; }
.nvk-daybreak .d-asc-card__h { margin: 0; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-asc-card__s { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-asc-duo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: start; }
.nvk-daybreak .d-asc-duo .nvk-climb__row, .nvk-daybreak .d-asc-duo .nvk-climb__row--nobar { grid-template-columns: 44px minmax(0, 1fr) auto; }
.nvk-daybreak .d-asc-g3 { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; }
.nvk-daybreak .d-asc-meters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 22px; }
/* Tote: the five questions */
.nvk-daybreak .d-asc-form { display: flex; flex-direction: column; gap: 18px; }
.nvk-daybreak .d-asc-form__go { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.nvk-daybreak .d-asc-qs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.nvk-daybreak .d-asc-q { display: flex; flex-direction: column; gap: 10px; min-width: 0; margin: 0; padding: 16px; border: 1px solid var(--ui-line); border-radius: 24px; background: var(--ui-surface-2); }
.nvk-daybreak .d-asc-q__lg { float: left; display: flex; flex-direction: column; gap: 2px; width: 100%; margin: 0; padding: 0; border: 0; font: inherit; letter-spacing: normal; text-transform: none; color: var(--ui-fg); }
.nvk-daybreak .d-asc-q__n { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daybreak .d-asc-q__t { font: 700 16px/22px var(--disp); letter-spacing: normal; text-transform: none; color: var(--ui-fg); }
.nvk-daybreak .d-asc-opts { display: flex; flex-direction: column; gap: 6px; }
.nvk-daybreak .d-asc-opt { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 14px; border: 1px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); font: 600 14px/18px var(--body); cursor: pointer; box-sizing: border-box; }
.nvk-daybreak .d-asc-opt:hover { border-color: var(--ui-brand); }
.nvk-daybreak .d-asc-opt:has(input:checked) { border-color: var(--ui-brand); background: var(--ui-brand-tint); }
.nvk-daybreak .d-asc-opt input { width: 18px; height: 18px; margin: 0; accent-color: var(--ui-brand); flex: none; }
.nvk-daybreak .d-asc-opt:focus-within { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-asc-gm { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.nvk-daybreak .d-asc-gm select { min-height: 44px; }
.nvk-daybreak .d-asc-how { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-asc-how li { display: flex; gap: 12px; align-items: flex-start; padding: 16px; border-radius: 24px; background: var(--ui-surface-2); min-width: 0; }
.nvk-daybreak .d-asc-how__n { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 15px/1 var(--disp); }
.nvk-daybreak .d-asc-how p { display: flex; flex-direction: column; gap: 4px; margin: 0; min-width: 0; }
.nvk-daybreak .d-asc-how b { font: 700 15px/20px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-asc-how p span { font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
/* Tycoon: notable trades */
.nvk-daybreak .d-asc-trades { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-asc-trade { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 8px 12px; border-radius: 20px; background: var(--ui-surface-2); }
.nvk-daybreak .d-asc-trade__t { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.nvk-daybreak .d-asc-trade__t b { font: 700 16px/22px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-asc-trade__t span { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-asc-trade__p { font: 700 15px/20px var(--disp); color: var(--ui-fg); white-space: nowrap; }
/* Estate: decor */
.nvk-daybreak .d-asc-decos { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-asc-deco { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; min-height: 64px; padding: 8px 12px; border-radius: 20px; background: var(--ui-brand-tint); }
.nvk-daybreak .d-asc-deco--off { background: var(--ui-surface-2); }
.nvk-daybreak .d-asc-deco__ic { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--ui-brand); color: var(--ui-brand-fg); }
.nvk-daybreak .d-asc-deco--off .d-asc-deco__ic { background: var(--ui-sunken); color: var(--ui-fg-2); }
.nvk-daybreak .d-asc-deco__t { display: flex; flex-direction: column; gap: 2px; flex: 1 1 140px; min-width: 0; }
.nvk-daybreak .d-asc-deco__t b { font: 700 16px/22px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-asc-deco__t span { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
@media (max-width: 1080px) {
  .nvk-daybreak .d-asc-lay { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-asc-side { position: static; }
}
@media (max-width: 860px) {
  .nvk-daybreak .d-asc-duo, .nvk-daybreak .d-asc-qs, .nvk-daybreak .d-asc-how, .nvk-daybreak .d-asc-meters { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 760px) {
  .nvk-daybreak .d-asc__pg { gap: 16px; }
  .nvk-daybreak .d-asc-hd { padding: 20px; border-radius: 28px; gap: 18px; }
  .nvk-daybreak .d-asc-hd__h { font-size: 32px; line-height: 38px; }
  .nvk-daybreak .d-asc-hd__t { flex-basis: 100%; }
  .nvk-daybreak .d-asc-card { padding: 18px; border-radius: 24px; }
  .nvk-daybreak .d-asc-duo .nvk-climb__row, .nvk-daybreak .d-asc-duo .nvk-climb__row--nobar { grid-template-columns: 44px minmax(0, 1fr); }
}
/* a ClimbList row that is a link reads as a row, not underlined text (beats daybreak-a8's li a underline, 0,3,1) */
.nvk-daybreak .nvk-climb .nvk-climb__it > a.nvk-climb__row { text-decoration: none; }
.nvk-daybreak .nvk-climb .nvk-climb__it > a.nvk-climb__row:hover .nvk-climb__t { text-decoration: underline; }
/* the Tote one question at a time (nv-ui.js data-nv-steps; owner 2026-10-19). Without script none of this applies: all five show. */
.nvk-daybreak .d-asc-qs.is-stepped { grid-template-columns: minmax(0, 1fr); }
.nvk-daybreak .d-asc-qs.is-stepped > :not(.is-on) { display: none; }
.nvk-daybreak .d-asc-qs.is-stepped > .is-on { animation: d-asc-step var(--t-spring-fast) var(--ease-spring); }
@keyframes d-asc-step { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
.nvk-daybreak .d-asc-form.is-stepping:not(.is-last) .d-asc-form__go { display: none; }
.nvk-daybreak .d-asc-stepnav { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.nvk-daybreak .d-asc-stepnav[hidden] { display: none; }
.nvk-daybreak .d-asc-stepdots { display: flex; gap: 6px; flex-wrap: wrap; }
.nvk-daybreak .d-asc-stepnav__n { flex: 1 1 auto; margin: 0; font: 600 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-asc-stepbtn, .nvk-daybreak .d-asc-stepdot { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 18px; border: 1px solid var(--ui-line); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); font: 700 15px/1 var(--body); cursor: pointer; transition: transform var(--t-spring-fast) var(--ease-spring), background var(--t-spring-fast) var(--ease-spring); }
.nvk-daybreak .d-asc-stepdot { padding: 0; }
.nvk-daybreak .d-asc-stepbtn--next { background: var(--ui-island); color: var(--ui-island-fg); border-color: var(--ui-island); }
.nvk-daybreak .d-asc-stepdot.is-done { background: var(--ui-sunken); }
.nvk-daybreak .d-asc-stepdot.is-on { background: var(--ui-island); color: var(--ui-island-fg); border-color: var(--ui-island); }
.nvk-daybreak .d-asc-stepbtn:disabled, .nvk-daybreak .d-asc-stepdot:disabled { opacity: .45; cursor: default; }
.nvk-daybreak .d-asc-stepbtn:not(:disabled):active, .nvk-daybreak .d-asc-stepdot:not(:disabled):active { transform: scale(.95); }
.nvk-daybreak .d-asc-stepbtn:focus-visible, .nvk-daybreak .d-asc-stepdot:focus-visible, .nvk-daybreak .d-asc-q__n:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }

}

/* _base/automation.css */
@layer pages{
/* Automation circle, Island mirror (owner-picked Option B of the 'NirvanaRO Automation Circle' canvas, 2026-10-20): the Automation
   overview (licence matrix, Away Report), Escort (squad, Bond & memories) and Blessing (buff ring, auto-stop timer). The dock, the mirror
   and the split are kit components (DutyDock, Mirror, MirrorSplit); this file draws what goes inside them. Markup: control/_companion_today.php,
   _companion_escort.php, _companion_blessing.php, lib/nv_duty_licence.php (nvc_duty_licence_island_html) and lib/nv_auto_island.php. Tokens only. */

/* ---- cards on the left ---- */
.nvk-daybreak .d-auto-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; margin: 0; padding: 20px; border-radius: 26px; background: var(--ui-surface); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--ui-line); color: var(--ui-fg); box-sizing: border-box; }
.nvk-daybreak .d-auto-lic__in { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nvk-daybreak .d-auto-ch { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.nvk-daybreak .d-auto-ct { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nvk-daybreak .d-auto-h2 { margin: 0; padding: 0; border: 0; font: 700 22px/28px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); }
.nvk-daybreak .d-auto-h3 { margin: 0; padding: 0; border: 0; font: 700 16px/22px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); }
.nvk-daybreak .d-auto-sm { margin: 0; font: 400 14px/21px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-auto-sm code { padding: 1px 6px; border-radius: 6px; background: var(--ui-sunken); color: var(--ui-fg); font-size: 13px; }
.nvk-daybreak .d-auto-count { flex: none; display: inline-flex; align-items: center; gap: 6px; height: 32px; padding: 0 12px; border-radius: var(--radius-pill); background: var(--ui-sunken); font: 600 13px/1 var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-auto-count b { font: 700 16px/1 var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-auto-count.is-off b { color: var(--ui-danger); }
.nvk-daybreak .d-auto-alert, .nvk-daybreak .d-auto-ok { margin: 0; padding: 10px 14px; border-radius: 14px; font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-auto-alert { background: color-mix(in srgb, var(--ui-warn) 16%, var(--ui-surface)); }
.nvk-daybreak .d-auto-ok { background: color-mix(in srgb, var(--ui-ok) 14%, var(--ui-surface)); }
.nvk-daybreak .d-auto-row { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .d-auto-seal { min-width: 0; }

/* ---- the licence matrix ---- */
.nvk-daybreak .d-auto-tw { overflow-x: auto; margin: 0 -4px; padding: 0 4px; }
.nvk-daybreak .d-auto-mx { width: 100%; border-collapse: separate; border-spacing: 0; font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-auto-mx th, .nvk-daybreak .d-auto-mx td { padding: 10px 8px; border: 0; border-bottom: 1px solid var(--ui-line); background: transparent; text-align: left; vertical-align: top; }
.nvk-daybreak .d-auto-mx thead th { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daybreak .d-auto-mx tbody tr:last-child th, .nvk-daybreak .d-auto-mx tbody tr:last-child td { border-bottom: 0; }
.nvk-daybreak .d-auto-mx tbody th { width: 170px; }
.nvk-daybreak .d-auto-mx__n, .nvk-daybreak .d-auto-mx__s { letter-spacing: 0; text-transform: none; }
.nvk-daybreak .d-auto-mx__n { display: block; font: 700 15px/20px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-auto-mx__s { display: block; font: 500 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-auto-mx tr.is-off .d-auto-mx__s { font-weight: 700; color: color-mix(in srgb, var(--ui-danger) 75%, var(--ui-fg)); }
.nvk-daybreak .d-auto-mx__all th, .nvk-daybreak .d-auto-mx__all td { background: var(--ui-surface-2); }
.nvk-daybreak .d-auto-mx__all th { border-radius: 16px 0 0 16px; }
.nvk-daybreak .d-auto-mx__all td:last-child { border-radius: 0 16px 16px 0; }
.nvk-daybreak .d-auto-mx__na { font: 500 12px/36px var(--body); color: var(--ui-fg-3); }
.nvk-daybreak .d-auto-mx__btns { display: flex; flex-direction: column; gap: 6px; }
.nvk-daybreak .d-auto-buy { margin: 0; }
.nvk-daybreak .d-auto-buy__b { width: 100%; min-height: 40px; justify-content: center; gap: 4px; white-space: nowrap; font: 600 13px/1 var(--body); }
.nvk-daybreak .d-auto-buy__b b { font-weight: 700; }
.nvk-daybreak .d-auto-buy__b s { font-weight: 500; opacity: .75; }
.nvk-daybreak .d-auto-buy__b--glory { border: 0; background: var(--ui-island); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-buy__b--glory:hover { background: var(--ui-island-2); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-buy__b--crystal { border: 1px solid var(--ui-line); background: var(--ui-surface-2); color: var(--ui-fg); }
.nvk-daybreak .d-auto-buy__b--crystal:hover { background: var(--ui-brand-tint); color: var(--ui-fg); }
.nvk-daybreak .d-auto-save { display: block; margin: 6px 0 0; font: 700 12px/16px var(--body); color: color-mix(in srgb, var(--ui-ok) 70%, var(--ui-fg)); }
.nvk-daybreak .d-auto-ask { margin: 0 0 8px; font: 700 17px/24px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-auto-ask-s { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
@media (max-width: 760px) { .nvk-daybreak .d-auto-card { padding: 16px; } .nvk-daybreak .d-auto-ch { flex-wrap: wrap; } }
/* The matrix needs ~700px; in a narrower column (the mirror beside it, or a phone) each duty becomes its own card of lengths. */
.nvk-daybreak .d-auto-lic__in { container: autolic / inline-size; }
@container autolic (max-width: 700px) {
  .nvk-daybreak .d-auto-tw { overflow: visible; margin: 0; padding: 0; }
  .nvk-daybreak .d-auto-mx thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .nvk-daybreak .d-auto-mx, .nvk-daybreak .d-auto-mx tbody, .nvk-daybreak .d-auto-mx tr { display: block; width: 100%; }
  .nvk-daybreak .d-auto-mx tr { margin: 0 0 12px; padding: 12px; border-radius: 20px; background: var(--ui-surface-2); box-sizing: border-box; }
  .nvk-daybreak .d-auto-mx tbody th { display: block; width: auto; padding: 0 0 8px; border: 0; background: transparent; }
  .nvk-daybreak .d-auto-mx td { display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: center; gap: 8px; padding: 6px 0; border: 0; border-top: 1px solid var(--ui-line); background: transparent; }
  .nvk-daybreak .d-auto-mx td::before { content: attr(data-label); font: 700 12px/16px var(--body); color: var(--ui-fg-2); }
  .nvk-daybreak .d-auto-mx__all th, .nvk-daybreak .d-auto-mx__all td { border-radius: 0; background: transparent; }
  .nvk-daybreak .d-auto-mx__btns { flex-direction: row; }
  .nvk-daybreak .d-auto-buy { flex: 1 1 0; min-width: 0; }
  .nvk-daybreak .d-auto-buy__b { min-height: 44px; padding: 0 8px; }
  .nvk-daybreak .d-auto-save { grid-column: 2; margin: 0; }
}

/* ---- inside the mirror ---- */
.nvk-daybreak .nvk-mirror .d-auto-lab { margin: 0; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-daybreak .nvk-mirror .d-auto-glass { border: 0; background: color-mix(in srgb, var(--ui-island-fg) 14%, transparent); color: var(--ui-island-fg); min-height: 44px; }
.nvk-daybreak .nvk-mirror .d-auto-glass:hover { background: color-mix(in srgb, var(--ui-island-fg) 22%, transparent); color: var(--ui-island-fg); }
.nvk-daybreak .nvk-mirror a.d-auto-glass { align-self: flex-start; text-decoration: none; }
/* overview: what goes quiet */
.nvk-daybreak .d-auto-qr { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-auto-qr li { display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 12px; border-radius: 22px; background: var(--ui-island-2); }
.nvk-daybreak .d-auto-qr__d { flex: none; width: 12px; height: 12px; margin-top: 4px; border-radius: var(--radius-pill); background: var(--ui-island-live); }
.nvk-daybreak .d-auto-qr li.is-off .d-auto-qr__d { background: var(--ui-island-boss); }
.nvk-daybreak .d-auto-qr b { display: block; font: 700 15px/20px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-qr__x { display: block; font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-qr__a { display: block; margin-top: 4px; font: 700 11px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-island-gold); }
/* escort: the squad */
.nvk-daybreak .d-auto-sq { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px 6px; justify-items: center; text-align: center; padding: 6px 0; }
.nvk-daybreak .d-auto-sq__p { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; max-width: 100%; font: 600 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-sq__p b { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font: 700 13px/16px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-sq__p small { font: 500 11px/14px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-sq__c { display: flex; align-items: center; justify-content: center; width: 60px; height: 60px; border: 3px solid var(--ui-island-blue); border-radius: var(--radius-pill); background: var(--ui-island-2); box-sizing: border-box; font: 700 14px/1 var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-sq__p.is-out .d-auto-sq__c { border-color: var(--ui-island-live); }
.nvk-daybreak .d-auto-sq__p.is-me .d-auto-sq__c { width: 72px; height: 72px; border-color: var(--ui-island-gold); }
.nvk-daybreak .d-auto-sq__p.is-empty .d-auto-sq__c { border-style: dashed; border-color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-sq__p.is-locked .d-auto-sq__c, .nvk-daybreak .d-auto-sq__p.is-off .d-auto-sq__c { border-style: dashed; border-color: var(--ui-island-line); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-live { display: flex; align-items: center; gap: 8px; }
.nvk-daybreak .d-auto-dot { flex: none; width: 10px; height: 10px; border-radius: var(--radius-pill); background: var(--ui-island-live); }
/* blessing: the buff ring */
.nvk-daybreak .d-auto-ring { display: grid; grid-template-columns: repeat(3, 76px); grid-template-rows: repeat(3, 76px); gap: 4px; justify-content: center; align-items: center; justify-items: center; grid-template-areas: "p1 p2 p3" "p8 c p4" "p7 p6 p5"; }
.nvk-daybreak .d-auto-ring__s { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; width: 72px; height: 72px; padding: 6px; border: 3px solid var(--ui-island-blue); border-radius: var(--radius-pill); background: var(--ui-island-2); box-sizing: border-box; text-align: center; overflow: hidden; }
.nvk-daybreak .d-auto-ring__s b { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 100%; font: 700 10px/12px var(--body); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-auto-ring__s small { font: 500 9px/11px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-ring__s.is-when { border-style: dashed; }
.nvk-daybreak .d-auto-ring__s.is-free { border-style: dashed; border-color: var(--ui-island-line); }
.nvk-daybreak .d-auto-ring__s.is-more b { font: 700 16px/18px var(--disp); }
.nvk-daybreak .d-auto-ring__p1 { grid-area: p1; } .nvk-daybreak .d-auto-ring__p2 { grid-area: p2; } .nvk-daybreak .d-auto-ring__p3 { grid-area: p3; } .nvk-daybreak .d-auto-ring__p4 { grid-area: p4; }
.nvk-daybreak .d-auto-ring__p5 { grid-area: p5; } .nvk-daybreak .d-auto-ring__p6 { grid-area: p6; } .nvk-daybreak .d-auto-ring__p7 { grid-area: p7; } .nvk-daybreak .d-auto-ring__p8 { grid-area: p8; }
.nvk-daybreak .d-auto-ring__ctr { grid-area: c; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-auto-ring__ctr b { font: 700 18px/20px var(--disp); color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-auto-ring__ctr small { font: 600 10px/12px var(--body); color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-auto-leg { display: flex; flex-wrap: wrap; gap: 6px 12px; margin: 0; font: 600 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-leg i { display: inline-block; width: 12px; height: 12px; margin-right: 6px; border: 3px solid var(--ui-island-blue); border-radius: var(--radius-pill); box-sizing: border-box; vertical-align: -2px; }
.nvk-daybreak .d-auto-leg i.is-when { border-style: dashed; }
.nvk-daybreak .d-auto-sug { display: flex; flex-direction: column; gap: 6px; padding: 12px; border-radius: 20px; background: var(--ui-island-2); }
.nvk-daybreak .nvk-mirror .d-auto-sug__h { margin: 0; font: 700 14px/20px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-sug__l { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-auto-sug__l li { margin: 0; padding: 3px 10px; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: inset 0 0 0 1px var(--ui-island-line); font: 600 12px/18px var(--body); color: var(--ui-island-fg); }
.nvk-daybreak .nvk-mirror .d-auto-note { margin: 0; font: 600 12px/17px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-timer { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; }
.nvk-daybreak .d-auto-timer__n { font: 700 16px/20px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-timer__l { flex: 1 0 100%; font: 600 13px/18px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-timer__i { width: 96px; min-height: 44px; border: 1px solid var(--ui-island-line); background: var(--ui-island-2); color: var(--ui-island-fg); }
/* escort: Bond & memories */
.nvk-daybreak .d-auto-bond__r { display: flex; flex-direction: column; gap: 10px; padding: 14px; border-radius: 20px; background: var(--ui-surface-2); }
.nvk-daybreak .d-auto-bond__top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .d-auto-bond__lv { display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 12px/1 var(--body); }
.nvk-daybreak .d-auto-bond__m { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; margin: 0; }
.nvk-daybreak .d-auto-bond__m div { padding: 10px 12px; border-radius: 16px; background: var(--ui-surface); box-shadow: inset 0 0 0 1px var(--ui-line); }
.nvk-daybreak .d-auto-bond__m dt { margin: 0; font: 700 11px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daybreak .d-auto-bond__m dd { margin: 2px 0 0; font: 700 18px/24px var(--disp); color: var(--ui-fg); }
/* the existing station interiors inside the split: one column, the wizards as white island cards */
.nvk-daybreak .nvk-msplit__main > .nv-cp-deck { display: flex; flex-direction: column; gap: 18px; margin: 0; }
.nvk-daybreak .nvk-msplit__main .nv-cw-builder .nv-cwb-split { grid-template-columns: minmax(0, 1fr); }
.nvk-daybreak .nvk-msplit__main .nv-cw-builder, .nvk-daybreak .nvk-msplit__main .nv-bl-builder { border-radius: 26px; }
.nvk-daybreak .nvk-mirror .d-auto-up { display: inline-flex; align-items: center; align-self: flex-start; min-height: 44px; font: 700 14px/20px var(--body); color: var(--ui-island-blue); }
/* phone: every control in the station interiors at least 44px */
@media (max-width: 760px) {
  .nvk-daybreak .nvk-msplit__main .nv-wz-next, .nvk-daybreak .nvk-msplit__main .nv-wz-back, .nvk-daybreak .nvk-msplit__main .nv-cwb-nav { min-height: 44px; }
  .nvk-daybreak .nvk-msplit__main .nv-cp-mask-tools { display: flex; flex-wrap: wrap; gap: 4px; }
  .nvk-daybreak .nvk-msplit__main .nv-cp-mask-tools a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 0 8px; box-sizing: border-box; }
}
/* escort: the plinth under the squad, where the companion being set up stands (owner 2026-10-20). nv-ui.js data-nv-plinth moves the
   wizard's own live stage (#nv-cwb-stage: layered sprite, Turn around, name and chips) here on a wide screen and back into the wizard
   below 1101px, where the mirror stacks under the controls. Without script the wizard is inert and the plinth says so. */
.nvk-daybreak .d-auto-plinth { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 14px 12px; border: 2px dashed var(--ui-island-line); border-radius: 22px; }
.nvk-daybreak .nvk-mirror .d-auto-plinth__no { text-align: center; }
.nvk-daybreak .d-auto-plinth.is-on { border-style: solid; background: radial-gradient(120% 70% at 50% 10%, color-mix(in srgb, var(--ui-island-blue) 14%, transparent), transparent 65%); }
.nvk-daybreak .d-auto-plinth.is-on .d-auto-plinth__no { display: none; }
.nvk-daybreak .d-auto-plinth .nv-cwb-stage { display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; }
.nvk-daybreak .d-auto-plinth .nv-cwb-plinth { position: relative; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.nvk-daybreak .d-auto-plinth .nv-cwb-sprite, .nvk-daybreak .d-auto-plinth .nv-cwb-sprite img { width: 180px; height: 218px; }
.nvk-daybreak .d-auto-plinth .nv-cwb-sprite.is-empty::before { content: none; }
.nvk-daybreak .d-auto-plinth .nv-cwb-sprite.is-empty::after { content: "Pick a class to see them"; opacity: 1; font: 600 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-plinth .nv-cwb-plate { align-items: center; text-align: center; }
.nvk-daybreak .d-auto-plinth .nv-cwb-plate strong { font: 700 15px/20px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-plinth .nv-cwb-plate .nv-cwb-cap { font: 500 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-plinth .nv-cwb-chips { justify-content: center; }
.nvk-daybreak .d-auto-plinth .nv-cwb-chip { opacity: 1; animation: none; padding: 2px 10px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); font: 600 12px/18px var(--body); }
.nvk-daybreak .d-auto-plinth .nv-cwb-chip.is-on { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
@media (max-width: 1100px) { .nvk-daybreak .d-auto-plinth { display: none; } }

/* ---- Combat Brain (C3): the rule ladder in the mirror, the Insights card, the map bindings in the mirror's foot ---- */
.nvk-daybreak .d-auto-lad { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.nvk-daybreak .d-auto-lad__r { display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; align-items: center; padding: 8px 10px; border-radius: 18px; background: var(--ui-island-2); }
.nvk-daybreak .d-auto-lad__k { width: 30px; height: 30px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 10%, var(--ui-island)); color: var(--ui-island-gold); display: flex; align-items: center; justify-content: center; font: 700 12px/1 var(--disp); }
.nvk-daybreak .d-auto-lad__t { display: flex; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-auto-lad__t b { font: 700 14px/18px var(--disp); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-auto-lad__s { font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-lad__bar { display: block; height: 6px; margin-top: 6px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 12%, var(--ui-island)); overflow: hidden; }
.nvk-daybreak .d-auto-lad__bar i { display: block; width: var(--w, 0%); height: 100%; background: var(--ui-island-blue); }
.nvk-daybreak .d-auto-lad__r.is-cold b, .nvk-daybreak .d-auto-lad__r.is-off b { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-lad__r.is-off .d-auto-lad__k { color: var(--ui-island-fg-2); }
.nvk-daybreak .nvk-mirror code { padding: 1px 6px; border-radius: 6px; background: var(--ui-island-2); color: var(--ui-island-fg); font-size: 12px; }
.nvk-daybreak .d-auto-binds { display: flex; flex-direction: column; gap: 8px; }
.nvk-daybreak .d-auto-binds > strong { display: none; }
.nvk-daybreak .d-auto-binds form { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin: 0; }
.nvk-daybreak .d-auto-binds form span, .nvk-daybreak .d-auto-binds p { margin: 0; font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-binds .nvk-btn { --_fg: var(--ui-island-fg); min-height: 44px; border: 0; background: color-mix(in srgb, var(--ui-island-fg) 14%, transparent); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-binds .nvk-btn:hover { background: color-mix(in srgb, var(--ui-island-fg) 22%, transparent); }
.nvk-daybreak .d-auto-ins__n { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 10px; margin: 0; }
.nvk-daybreak .d-auto-ins__n div { padding: 12px 14px; border-radius: 18px; background: var(--ui-surface-2); box-shadow: inset 0 0 0 1px var(--ui-line); }
.nvk-daybreak .d-auto-ins__n dt { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-auto-ins__n dd { margin: 2px 0 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-auto-ins__top { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; counter-reset: ins; }
.nvk-daybreak .d-auto-ins__top li { display: flex; flex-direction: column; gap: 6px; }
.nvk-daybreak .d-auto-ins__l { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.nvk-daybreak .d-auto-ins__l b { font: 700 15px/20px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-auto-ins__l span { font: 600 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-auto-ins__bar { display: block; height: 8px; border-radius: var(--radius-pill); background: var(--ui-sunken); overflow: hidden; }
.nvk-daybreak .d-auto-ins__bar i { display: block; width: var(--w, 0%); height: 100%; border-radius: var(--radius-pill); background: var(--ui-brand); }

/* ---- Standing Order (C3): the order chain in the mirror, the live controls in its foot ---- */
.nvk-daybreak .d-auto-chain { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; position: relative; }
.nvk-daybreak .d-auto-chain::before { content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; width: 4px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 14%, var(--ui-island)); }
.nvk-daybreak .d-auto-chain__s { position: relative; display: flex; gap: 12px; padding: 8px 0; }
.nvk-daybreak .d-auto-chain__n { position: relative; z-index: 1; flex: none; width: 38px; height: 38px; border-radius: var(--radius-pill); background: var(--ui-island-2); box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--ui-island-fg) 22%, var(--ui-island)); display: flex; align-items: center; justify-content: center; font: 700 13px/1 var(--disp); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-auto-chain__s.is-done .d-auto-chain__n { background: var(--ui-island-blue); box-shadow: none; color: var(--ui-island); }
.nvk-daybreak .d-auto-chain__s.is-on .d-auto-chain__n { background: var(--ui-island-gold); box-shadow: none; color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-auto-chain__t { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-top: 2px; }
.nvk-daybreak .d-auto-chain__t b { font: 700 14px/18px var(--disp); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-auto-chain__t span { font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); overflow-wrap: anywhere; }
.nvk-daybreak .d-auto-chain__g { color: var(--ui-island-gold); }
.nvk-daybreak .nvk-mirror .nv-sol-foot { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; padding: 0; border: 0; background: none; }
.nvk-daybreak .nvk-mirror .nv-sol-foot form { margin: 0; }
.nvk-daybreak .nvk-mirror .nv-sol-foot button { min-height: 44px; }
.nvk-daybreak .nvk-mirror .nv-sol-ack { flex-basis: 100%; font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .nvk-mirror .nv-sol-foot .nvk-btn--soft { --_fg: var(--ui-island-fg); border: 0; background: color-mix(in srgb, var(--ui-island-fg) 14%, transparent); color: var(--ui-island-fg); }
.nvk-daybreak .nvk-mirror .nv-sol-foot .nvk-btn--soft:hover { background: color-mix(in srgb, var(--ui-island-fg) 22%, transparent); color: var(--ui-island-fg); }
.nvk-daybreak .d-auto-chain:has(> li:only-child)::before { display: none; }

/* ---- Combat Brain (C3, owner 2026-10-20): the rule editor as rows that open to edit (canvas B-Brain). Each row is a <details> around
   the same fieldset and field names; its summary is the rule as a sentence (server first, then the step machine's own reading). ---- */
.nvk-daybreak .d-brain-rows { display: flex; flex-direction: column; gap: 10px; margin: 12px 0 0; }
.nvk-daybreak .d-brain-rows > .nvx-cd1d679a { display: flex; flex-direction: column; gap: 8px; }
.nvk-daybreak .d-brain-rr { border-radius: 18px; background: var(--ui-surface); box-shadow: inset 0 0 0 1px var(--ui-line); }
.nvk-daybreak .d-brain-rr[open] { box-shadow: inset 0 0 0 2px var(--ui-brand); }
.nvk-daybreak .d-brain-rr__s { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 16px 6px 8px; cursor: pointer; list-style: none; border-radius: 18px; color: var(--ui-fg); font: 600 14px/20px var(--body); }
.nvk-daybreak .d-brain-rr__s::-webkit-details-marker { display: none; }
.nvk-daybreak .d-brain-rr__s:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-brain-rr__k { flex: none; width: 34px; height: 34px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); display: inline-flex; align-items: center; justify-content: center; font: 700 13px/1 var(--disp); }
.nvk-daybreak .d-brain-rr__say { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.nvk-daybreak .d-brain-rr__e { flex: none; font: 600 12px/1 var(--body); color: var(--ui-link); }
.nvk-daybreak .d-brain-rr.is-empty .d-brain-rr__k { background: var(--ui-sunken); color: var(--ui-fg-2); }
.nvk-daybreak .d-brain-rr.is-empty .d-brain-rr__say, .nvk-daybreak .d-brain-rr.is-off .d-brain-rr__say { color: var(--ui-fg-2); font-weight: 500; }
.nvk-daybreak .d-brain-rr__b { display: flex; flex-direction: column; gap: 10px; padding: 0 14px 14px; }
.nvk-daybreak .d-brain-rr__ctl { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .d-brain-rr__ctl:empty { display: none; }
.nvk-daybreak .d-brain-rr__b > fieldset { margin: 0; border: 0; padding: 0; }
.nvk-daybreak .d-brain-rr__b > fieldset > legend { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-brain-rr__b select, .nvk-daybreak .d-brain-rr__b input[type="number"] { min-height: 44px; }
@media (prefers-reduced-motion: no-preference) { .nvk-daybreak .d-brain-rr[open] .d-brain-rr__b { animation: d-brain-rr-in .22s var(--ease-spring) both; } }
@keyframes d-brain-rr-in { from { opacity: 0; transform: translateY(-4px); } }

/* Standing Order mirror (C3, owner 2026-10-20): what they are doing now, the Echo and Today ride in the mirror (canvas B-Standing); the
   chain redraws from the builder while an order is being written (new rungs ease in, not under reduced motion). */
.nvk-daybreak .d-auto-sonow { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .nvk-mirror .nv-sol-borrow { margin: 0; padding: 0; border: 0; background: none; color: var(--ui-island-fg-2); font: 400 13px/19px var(--body); }
.nvk-daybreak .nvk-mirror .nv-sol-lbl { margin: 0 0 4px; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); opacity: 1; }
.nvk-daybreak .nvk-mirror .nv-sol-rule { display: none; }
.nvk-daybreak .nvk-mirror .nv-sol-lanes { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.nvk-daybreak .nvk-mirror .nv-sol-lane b { color: var(--ui-island-fg); }
.nvk-daybreak .nvk-mirror .nv-sol-lane em, .nvk-daybreak .nvk-mirror .nv-sol-counts { color: var(--ui-island-fg-2); opacity: 1; font: 400 13px/19px var(--body); }
.nvk-daybreak .nvk-mirror.is-writing .nvk-mirror__e { color: var(--ui-island-gold); }
@media (prefers-reduced-motion: no-preference) { .nvk-daybreak .d-auto-chain__s.is-new { animation: d-auto-chain-in .32s var(--ease-spring) both; } }
@keyframes d-auto-chain-in { from { opacity: 0; transform: translateX(-6px); } }

/* the Standing Order's "running now" step (control/standing.php): the legacy .nv-cp-good green is 1.7:1 on Daybreak and forced with !important */
.nvk-daybreak .d-auto-now { color: var(--ui-ok); font-weight: 600; }

/* Audit fixes D5 (owner 2026-10-22): before a class is picked the plinth held a 180 x 218 empty sprite box (a large dark blank under the
   squad). Empty, the stage is one line, "Pick a class to see them", at body size; the full stand comes back when the sprite has art. */
.nvk-daybreak .d-auto-plinth .nv-cwb-sprite.is-empty { width: 100%; height: auto; min-height: 0; display: block; }
.nvk-daybreak .d-auto-plinth .nv-cwb-sprite.is-empty::after { position: static; display: block; padding: 8px 0 2px; font: 600 14px/20px var(--body); text-align: center; }
.nvk-daybreak .d-auto-plinth .nv-cwb-plinth:has(.nv-cwb-sprite.is-empty)::after { content: none; }
.nvk-daybreak .d-auto-plinth .nv-cwb-plate .nv-cwb-cap { font: 500 14px/20px var(--body); }
.nvk-daybreak .d-auto-plinth .nv-cwb-chip { font: 600 14px/20px var(--body); }
/* D5 also: the two folds above a station's wizard, "How to use this" and "New here? Start with this", were 12-12.5px with letter-spacing;
   they are body size like the wizard under them (every Cockpit station shares them). */
.nvk-daybreak .nv-cockpit :is(.nv-cp-guide, .nv-obs-faq) > summary { font-size: 14px; line-height: 20px; letter-spacing: 0; }

/* One left menu follow-ups (owner 2026-10-22): text the wider page column brought into view, at 4.5:1 or more in every look.
   The tier plaque's name (Free, Nirvana+, Ultra) is solid text: its gradient started at white and faded into the light page. The owner's
   black-gold plaque keeps its gold name and gets the island's light text for everything on it (its seals read dark on dark). */
.nvk-daybreak .nv-cp-tierbanner:not(.nv-cp-tier-owner) .nv-tb2-name { background: none; -webkit-background-clip: border-box; background-clip: border-box; color: var(--ui-fg); -webkit-text-fill-color: currentColor; }
.nvk-daybreak .nv-cp-tier-owner { --ui-fg: var(--ui-island-fg); --ui-fg-2: var(--ui-island-fg-2); --ui-fg-3: var(--ui-island-fg-2); --ui-link: var(--ui-island-blue); color: var(--ui-island-fg); }
.nvk-daybreak .nv-cp-tier-owner .nv-tb2-sub, .nvk-daybreak .nv-cp-tier-owner .nv-fwseal-txt { color: var(--ui-island-fg-2); }
.nvk-daybreak .nv-cp-tier-owner .nv-fwseal-txt b { color: var(--ui-island-fg); }
/* Blessing's (and every tab's) seals: a seal the tier does not open reads quieter by its colour, not by opacity (it fell to 2:1) */
.nvk-daybreak .nv-fwseal-off { opacity: 1; border-style: dashed; }
.nvk-daybreak .nv-fwseal-off .nv-fwseal-ico { opacity: .5; }
.nvk-daybreak .nv-fwseal-txt i { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nv-fwseal-off .nv-fwseal-txt b, .nvk-daybreak .nv-fwseal-off .nv-fwseal-txt i { color: var(--ui-fg-3); }
}

/* _base/base.css */
@layer base{
/* Kit base: box model, focus ring, visually-hidden helper. Only touches elements that carry an nvk- class. */
[class^="nvk-"], [class*=" nvk-"], [class^="nvk-"] *, [class*=" nvk-"] * { box-sizing: border-box; }
.nvk-sr { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
:where([class^="nvk-"], [class*=" nvk-"]):focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }

/* Hardening against sitewide element rules: kit headings, paragraphs and tables set their own box so the page's h1-h6 / p / table / caption
   styles cannot add borders, margins or fonts. (Legacy !important rules are scoped away from nvk- in nirvana.css instead.) */
:where([class^="nvk-"], [class*=" nvk-"]) { line-height: 1.5; }
h1[class*="nvk-"], h2[class*="nvk-"], h3[class*="nvk-"], h4[class*="nvk-"] { border: 0; padding: 0; background: none; text-shadow: none; text-transform: none; letter-spacing: 0; }
p[class*="nvk-"] { margin: 0; }
table[class*="nvk-"] { margin: 0; font-family: inherit; }
caption[class*="nvk-"] { font-family: inherit; }
}

/* _base/bazaar-island.css */
@layer pages{
/* Bazaar, Island market (owner-picked Option A of the 'NirvanaRO Bazaar' canvas, 2026-10-19): a centred heading per section, the black section
   switch with gold badges, the black search capsule, number capsules, island section headings, auction and shelf tiles, the dark buy island on an item,
   the dial hero of an auction, capsule rows for orders and wishes. Markup: themes/nirvana/marketplace/_daybreak_*.php (ids and data-* the shell
   script and nvBuy read are unchanged). */

/* ---- the shell: heading, switch, chips ---- */
.nvk-daybreak .d-mpi-head { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: var(--space-4) 0 var(--space-5); text-align: center; }
.nvk-daybreak .d-mpi-head[hidden] { display: none; }
.nvk-daybreak .d-mpi-head__e, .nvk-daybreak .d-mpi-sec__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--ui-link); }
.nvk-daybreak .d-mpi-head__t { margin: 0; padding: 0; border: 0; font: 700 44px/50px var(--disp); color: var(--ui-fg); text-wrap: balance; }
.nvk-daybreak .d-mpi-head__s { margin: 0; max-width: 62ch; font: 400 16px/24px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak nav.d-mpi-rail { display: flex; flex-wrap: nowrap; gap: 4px; width: max-content; max-width: 100%; margin: 0 auto; padding: 6px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: var(--shadow-island); overflow-x: auto; scrollbar-width: none; }
.nvk-daybreak nav.d-mpi-rail .nvk-tab { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ui-island-fg-2); font: 600 14px/1 var(--body); white-space: nowrap; text-decoration: none; }
.nvk-daybreak nav.d-mpi-rail .nvk-tab:hover { color: var(--ui-island-fg); }
.nvk-daybreak nav.d-mpi-rail .nvk-tab.active { background: var(--ui-island-fg); color: var(--ui-island); }
.nvk-daybreak nav.d-mpi-rail .nvk-tab:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak nav.d-mpi-rail .nvk-chip { min-width: 22px; height: 22px; padding: 0 6px; justify-content: center; background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-mpi-chips { justify-content: center; margin: var(--space-3) 0 var(--space-5); }

/* ---- section headings ---- */
.nvk-daybreak .d-mpi-sec { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0 0 var(--space-4); text-align: center; }
.nvk-daybreak .d-mpi-sec__t { display: inline-flex; align-items: center; gap: 10px; margin: 0; padding: 0; border: 0; font: 700 30px/36px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-mpi-sec__s { margin: 0; max-width: 64ch; font: 400 15px/22px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-mpi-block { margin-top: var(--space-6); }
.nvk-daybreak .d-mpi-cap, .nvk-daybreak .d-mpi-note { margin: var(--space-3) auto 0; max-width: 80ch; font: 400 13px/18px var(--body); color: var(--ui-fg-2); text-align: center; }
.nvk-daybreak .d-mpi-rhythm { justify-content: center; }

/* ---- the search capsule ---- */
.nvk-daybreak form.d-mpi-search { position: relative; display: flex; flex-direction: row; align-items: center; gap: 10px; width: min(100%, 760px); margin: 0 auto; padding: 8px 8px 8px 20px; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: var(--shadow-island); box-sizing: border-box; }
.nvk-daybreak .d-mpi-search__lab { display: inline-flex; color: var(--ui-island-fg-2); font-size: 20px; }
.nvk-daybreak .d-mpi-search input.d-mpi-search__in { -webkit-appearance: none; appearance: none; padding: 0; box-shadow: none; flex: 1 1 auto; min-width: 0; min-height: 44px; border: 0; background: transparent; color: var(--ui-island-fg); font: 400 16px/24px var(--body); outline: none; }
.nvk-daybreak .d-mpi-search__in::placeholder { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-search:focus-within { box-shadow: var(--shadow-island), 0 0 0 3px var(--ui-island-gold); }
.nvk-daybreak .nvk-mpbtn { flex: none; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 15px/1 var(--body); cursor: pointer; transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-daybreak .nvk-mpbtn:hover { transform: translateY(-2px); }
.nvk-daybreak .nvk-mpbtn:active { transform: scale(.96); }
.nvk-daybreak .nvk-mpbtn:focus-visible { outline: 3px solid var(--ui-island-fg); outline-offset: 2px; }
.nvk-daybreak .d-mpi-search .nv-pz-omnidrop { position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 30; }

/* ---- capsules, tiles, filter chips ---- */
.nvk-daybreak .d-mpi-caps { margin-top: var(--space-5); }
.nvk-daybreak .d-mpi-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-4); }
.nvk-daybreak .d-mpi-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 var(--space-4); }
.nvk-daybreak .d-mpi-fchip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1.5px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); font: 600 14px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-mpi-fchip b { min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--ui-sunken); font: 700 12px/22px var(--body); text-align: center; box-sizing: border-box; }
.nvk-daybreak .d-mpi-fchip[aria-pressed="true"] { border-color: var(--ui-island); background: var(--ui-island); color: var(--ui-island-fg); }
.nvk-daybreak .d-mpi-fchip[aria-pressed="true"] b { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-mpi-fchip:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }

/* ---- keepers ---- */
.nvk-daybreak .d-mpi-keeper { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.nvk-daybreak .d-mpi-keeper__logo { flex: none; width: 40px; height: 40px; }
.nvk-daybreak .d-mpi .d-mp-stall .nvk-card, .nvk-daybreak .d-mpi .d-g3 > .nvk-card { border-radius: 28px; }

@media (max-width: 1100px) { .nvk-daybreak .d-mpi-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) {
  .nvk-daybreak .d-mpi-head__t { font-size: 32px; line-height: 38px; }
  .nvk-daybreak .d-mpi-sec__t { font-size: 24px; line-height: 30px; }
  .nvk-daybreak nav.d-mpi-rail { width: auto; justify-content: flex-start; }
  .nvk-daybreak .d-mpi-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
  .nvk-daybreak form.d-mpi-search { position: relative; display: flex; padding-left: 14px; }
  .nvk-daybreak .nvk-mpbtn { padding: 0 16px; }
}

/* ---- the item page: hero with the dark buy island ---- */
.nvk-daybreak .d-mpi-itemhero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 380px); gap: var(--space-5); align-items: stretch; padding: var(--space-5); border-radius: 40px; background: var(--ui-surface); box-shadow: var(--shadow-lg); }
.nvk-daybreak .d-mpi-itemhero.is-nobuy { grid-template-columns: minmax(0, 1fr); }
.nvk-daybreak .d-mpi-itemhero .d-bz-hero { align-self: center; }
.nvk-daybreak .d-mpi-itemhero .d-bz-hero .nvk-item { width: 160px; height: 160px; border-radius: 28px; }
.nvk-daybreak .d-mpi-itemhero .d-bz-hero .nvk-item__img { width: 72px; height: 72px; image-rendering: pixelated; }
.nvk-daybreak .d-mpi-buy { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 12px; padding: var(--space-5); border-radius: 32px; background: radial-gradient(120% 140% at 12% 0, var(--ui-island-2) 0, var(--ui-island) 62%); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-daybreak .d-mpi-buy__stars { position: absolute; inset: 0; pointer-events: none; opacity: .5; background: radial-gradient(1.5px 1.5px at 80% 18%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 22% 80%, var(--ui-island-fg), transparent), radial-gradient(2px 2px at 92% 70%, var(--ui-island-fg), transparent); }
.nvk-daybreak .d-mpi-buy > :not(.nvk-sr):not(.d-mpi-buy__stars) { position: relative; }
.nvk-daybreak .d-mpi-buy__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-cur { display: inline-flex; align-self: flex-start; gap: 4px; padding: 5px; border-radius: var(--radius-pill); background: var(--ui-island-2); }
.nvk-daybreak .d-mpi-cur label { display: inline-flex; align-items: center; min-height: 40px; padding: 0 18px; border-radius: var(--radius-pill); color: var(--ui-island-fg-2); font: 700 14px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-mpi-cur-g:checked ~ .d-mpi-cur .d-mpi-cur__g, .nvk-daybreak .d-mpi-cur-c:checked ~ .d-mpi-cur .d-mpi-cur__c { background: var(--ui-island-fg); color: var(--ui-island); }
.nvk-daybreak .d-mpi-cur-g:focus-visible ~ .d-mpi-cur .d-mpi-cur__g, .nvk-daybreak .d-mpi-cur-c:focus-visible ~ .d-mpi-cur .d-mpi-cur__c { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak .d-mpi-cur-g:checked ~ .d-mpi-buy__body [data-cur-show="crystal"], .nvk-daybreak .d-mpi-cur-c:checked ~ .d-mpi-buy__body [data-cur-show="glory"] { display: none; }
.nvk-daybreak .d-mpi-buy__body { display: flex; flex-direction: column; gap: 12px; }
.nvk-daybreak .d-mpi-buy__price { margin: 0; font: 700 44px/1 var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-mpi-buy__price span { font: 600 18px/1 var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-buy__price s { font-size: 22px; color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-buy__who, .nvk-daybreak .d-mpi-buy__note { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-buy__who b { color: var(--ui-island-fg); }
.nvk-daybreak .d-mpi-buy__form { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-mpi-buy__go { width: 100%; justify-content: center; min-height: 52px; }
.nvk-daybreak .d-mpi-itemhero + .nvk-capsules { margin-top: var(--space-2); }
.nvk-daybreak .d-mpi .nvk-panel, .nvk-daybreak .d-mpi-itemcols .nvk-panel { padding: var(--space-5); border: 0; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-mpi-itemcols .d-bz-chrow { padding: 10px 12px 10px 18px; border-radius: 28px; background: var(--ui-surface-2); }
@media (max-width: 1000px) { .nvk-daybreak .d-mpi-itemhero { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) { .nvk-daybreak .d-mpi-itemhero { padding: var(--space-4); border-radius: 30px; } .nvk-daybreak .d-mpi-buy__price { font-size: 36px; } }

/* ---- an auction: the dial hero and the bid stepper ---- */
.nvk-daybreak .d-mpi-center { justify-content: center; }
.nvk-daybreak .d-mpi-dial { position: relative; overflow: hidden; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--space-6); align-items: center; padding: var(--space-6); border-radius: 40px; background: radial-gradient(120% 140% at 12% 0, var(--ui-island-2) 0, var(--ui-island) 62%); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-daybreak .d-mpi-dial__stars { position: absolute; inset: 0; pointer-events: none; opacity: .5; background: radial-gradient(1.5px 1.5px at 62% 14%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 88% 78%, var(--ui-island-fg), transparent), radial-gradient(2px 2px at 30% 88%, var(--ui-island-fg), transparent); }
.nvk-daybreak .d-mpi-dial > :not(.d-mpi-dial__stars) { position: relative; }
.nvk-daybreak .d-mpi-dial__ring { position: relative; width: 210px; height: 210px; }
.nvk-daybreak .d-mpi-dial__ring svg { width: 100%; height: 100%; }
.nvk-daybreak .d-mpi-dial__track { fill: none; stroke: var(--ui-island-line); stroke-width: 12; }
.nvk-daybreak .d-mpi-dial__arc { fill: none; stroke: var(--ui-island-gold); stroke-width: 12; stroke-linecap: round; }
.nvk-daybreak .d-mpi-dial__txt { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; }
.nvk-daybreak .d-mpi-dial__txt small { font: 700 11px/14px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-dial__txt b { font: 700 36px/40px var(--disp); }
.nvk-daybreak .d-mpi-dial__e { display: flex; align-items: center; gap: 8px; margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-brand-hi); }
.nvk-daybreak .d-mpi-dial__t { margin: 6px 0 0; padding: 0; border: 0; font: 700 44px/50px var(--disp); color: var(--ui-island-fg); -webkit-text-fill-color: currentColor; }
.nvk-daybreak .d-mpi-dial__s { margin: 4px 0 0; font: 400 16px/24px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-dial__stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; margin-top: var(--space-4); }
.nvk-daybreak .d-mpi-dial__stats > div { display: flex; flex-direction: column; gap: 4px; padding: 14px 16px; border-radius: 24px; background: color-mix(in srgb, var(--ui-island-fg) 7%, transparent); }
.nvk-daybreak .d-mpi-dial__stats small { font: 700 11px/14px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-daybreak .d-mpi-dial__stats b { font: 700 24px/28px var(--disp); }
.nvk-daybreak .d-mpi-dial__stats b.is-gold { color: var(--ui-island-gold); }
.nvk-daybreak .d-mpi-bid { display: flex; flex-direction: column; gap: 12px; }
.nvk-daybreak .d-mpi-bid__lab { font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daybreak .d-mpi-bid__step { display: flex; align-items: center; gap: 8px; padding: 6px; border-radius: var(--radius-pill); background: var(--ui-surface-2); border: 1px solid var(--ui-line); }
.nvk-daybreak .d-mpi-bid__step input.d-mpi-bid__in { flex: 1 1 auto; min-width: 0; min-height: 44px; border: 0; background: transparent; box-shadow: none; text-align: center; font: 700 22px/1 var(--disp); color: var(--ui-fg); -moz-appearance: textfield; }
.nvk-daybreak .d-mpi-bid__pm { flex: none; width: 52px; height: 52px; border: 1px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); font: 700 22px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-mpi-bid__quick { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .d-mpi-bid__q { min-height: 44px; padding: 0 18px; border: 0; border-radius: var(--radius-pill); background: var(--ui-brand-tint); color: var(--ui-link); font: 700 14px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-mpi-bid__pm:focus-visible, .nvk-daybreak .d-mpi-bid__q:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
@media (max-width: 860px) { .nvk-daybreak .d-mpi-dial { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: var(--space-5); border-radius: 32px; } .nvk-daybreak .d-mpi-dial__e { justify-content: center; } .nvk-daybreak .d-mpi-dial__t { font-size: 32px; line-height: 38px; } .nvk-daybreak .d-mpi-dial__ring { width: 170px; height: 170px; } }

/* ---- every section: panels are white rounded cards ---- */
.nvk-daybreak #nv-pz-panel .nvk-panel { padding: var(--space-5); border: 0; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }

/* ---- My orders and the alerts: capsule rows, filter pills, search ---- */
.nvk-daybreak .d-mpi-otools { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px; margin-top: var(--space-5); }
.nvk-daybreak .d-mpi-pills { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 5px; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: var(--shadow-island); }
.nvk-daybreak .d-mpi-fpill { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ui-island-fg-2); font: 600 14px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-mpi-fpill b { min-width: 22px; height: 22px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 12px/22px var(--body); text-align: center; box-sizing: border-box; }
.nvk-daybreak .d-mpi-fpill[aria-pressed="true"] { background: var(--ui-island-fg); color: var(--ui-island); }
.nvk-daybreak .d-mpi-fpill:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak .d-mpi-otools input.d-mpi-oq { width: min(100%, 280px); min-height: 48px; padding: 0 20px; border: 1.5px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); box-shadow: none; font: 400 15px/1 var(--body); }
.nvk-daybreak .d-mpi-rows { gap: 10px; }
.nvk-daybreak .d-mpi-narrow { max-width: 860px; margin: 0 auto; }
.nvk-daybreak .d-mp-ord.d-mpi-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 10px 18px 10px 10px; border: 1.5px solid transparent; border-radius: 34px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-mp-ord.d-mpi-row.is-bad { border-color: color-mix(in srgb, var(--ui-danger) 45%, transparent); }
.nvk-daybreak .d-mp-ord.d-mpi-row[hidden] { display: none; }
.nvk-daybreak .d-mpi-row .nv-gb-ledgerstatus { align-items: flex-end; }
.nvk-daybreak .d-mpi-info { display: flex; align-items: center; gap: 14px; max-width: 760px; margin: var(--space-4) auto 0; padding: 12px 22px 12px 12px; border-radius: 34px; background: var(--ui-surface); box-shadow: var(--shadow-sm); font: 400 13px/19px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-mpi-info > span:first-child { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-pill); background: var(--ui-surface-2); font-size: 18px; }

/* ---- the Wishing Wall ---- */
.nvk-daybreak .d-mpi-share { display: flex; align-items: center; gap: 12px; max-width: 760px; margin: 0 auto; padding: 8px 22px; border-radius: var(--radius-pill); background: var(--ui-surface); box-shadow: var(--shadow-sm); overflow-x: auto; }
.nvk-daybreak .d-mpi-share__l { font: 700 11px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daybreak .d-mpi-share code { white-space: nowrap; font-size: 13px; }
.nvk-daybreak .d-mpi-standing { display: flex; align-items: center; gap: 18px; padding: 18px 24px 18px 18px; border-radius: 34px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-daybreak .d-mpi-standing__i { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font-size: 22px; }
.nvk-daybreak .d-mpi-standing .nvk-callout { padding: 0; border: 0; background: transparent; color: var(--ui-island-fg); box-shadow: none; }
.nvk-daybreak .d-mpi-standing .nvk-callout * { color: var(--ui-island-fg); }
.nvk-daybreak .d-mpi-standing .nvk-callout__icon { display: none; }
.nvk-daybreak .d-mpi-wall > .nvk-card { border: 0; border-radius: 30px; box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-mpi-wall .nvk-item--lg { width: 100%; height: auto; aspect-ratio: 1; border-radius: 22px; }
.nvk-daybreak .d-mpi-wall .nvk-item--lg .nvk-item__img { width: 40%; height: auto; image-rendering: pixelated; }
.nvk-daybreak #nv-pz-panel .nvk-panel .d-mpi-search { width: 100%; }
@media (max-width: 760px) { .nvk-daybreak .d-mp-ord.d-mpi-row { grid-template-columns: auto minmax(0, 1fr); border-radius: 28px; } .nvk-daybreak .d-mpi-row .nv-gb-ledgerstatus { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; align-items: center; } }

/* ---- the buy confirm sheet ---- */
.nvk-daybreak .d-mpi-confirm { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: var(--space-3) 0; text-align: center; }
.nvk-daybreak .d-mpi-confirm__name { font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-mpi-confirm__price { font: 700 30px/36px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-mpi-confirm__who { font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-mpi-confirm__who:empty, .nvk-daybreak .d-mpi-confirm__price:empty { display: none; }
}

/* _base/c1-tail.css */
@layer components{
/* WEB-UI-PLAN register C1/C3 (long tail): fixed looks that used to be style="" attributes in lib/* and the cockpit views,
   as classes on --ui-* tokens. Per-render values travel as step classes (nv_steps.php) or data-nv-* (nv-ui.js). */

/* lib/nv_metrics.php: sparkline + the Overview tiles */
.c1-spark-empty { font-size: 11.5px; opacity: .55; letter-spacing: .3px; }
.c1-spark-svg { display: block; width: 100%; height: var(--spark-h, 34px); overflow: visible; }
.c1-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 12px; }
.c1-tile { border: 1px solid var(--ui-line); background: color-mix(in srgb, var(--ui-fg) 3%, transparent); padding: 13px 15px; }
.c1-tile-label { font-size: 10.5px; letter-spacing: 1.4px; text-transform: uppercase; }
.c1-tile-num { font-size: 25px; font-weight: 600; font-variant-numeric: tabular-nums; }
.c1-tile-foot { font-size: 10.5px; margin-top: 6px; font-variant-numeric: tabular-nums; }
.c1-tile-hint { font-variant-numeric: normal; }
.c1-tint.is-ok { color: var(--ui-ok); }
.c1-tint.is-bad { color: var(--ui-danger); }
.c1-tint.is-muted { color: var(--ui-fg-3); }
.c1-tint.is-ink { color: var(--ui-fg); }

/* lib/nv_cockpit.php: the Fieldwork adventure map keeps its map's aspect ratio (--ar) and a height cap (--mh) */
.nv-fw-advmap { aspect-ratio: var(--ar, auto); max-height: var(--mh, none); }

/* first paint of a node a script later shows/hides (nv-ui.js applies it as an inline style and drops the attribute) */
[data-nv-display="none"] { display: none; }
[data-nv-visibility="hidden"] { visibility: hidden; }
/* dimmed (inert-looking) numeric box in the Fieldwork loadout form */
.nv-fw-dim { opacity: .4; }
/* Blessing: self/party scope tag (the party colour was a hex literal) */
.c1-scope { margin: 0; font-size: 10px; color: var(--muted2, var(--ui-fg-3)); }
.c1-scope.is-party { color: var(--ui-link); }   /* 2026-10-22: brand-hi was 2.4:1 on the light page; the link colour is 4.5:1 or more in every look */
/* Tycoon: tier badge and medal figure (the colour is data-nv-color) */
.c1-ty-badge { font-size: 13px; font-weight: 700; }
.c1-ty-big { font-size: 26px; }
/* Sign-in / register: the membership plan cards */
.c1-plan { flex: 1 1 140px; min-width: 140px; border: 1px solid var(--line, var(--ui-line)); padding: 12px 14px; }
.c1-plan.is-crowned { border-color: color-mix(in srgb, var(--ui-brand-hi) 40%, transparent); }
.c1-plan.is-recommended { border-color: color-mix(in srgb, var(--ui-cta) 40%, transparent); }
.c1-plan-price { font-family: var(--disp, inherit); font-size: 18px; color: var(--gold-hi, var(--ui-cta)); margin: 4px 0; }
.c1-plan-price.is-crowned { color: var(--ui-brand-hi); }
/* Armory: the read-only share link */
.c1-share-url { flex: 1; min-width: 200px; font-family: monospace; font-size: 12.5px; }

/* Legacy (default theme) views and Shadow Palace / Season hub leftovers: fixed looks that were style attributes.
   Colours that came from the database stay data-nv-color / data-nv-bc / data-nv-bg. */
.c1-bl3 { border-left: 3px solid var(--ui-line); }   /* colour from data-nv-bc */


/* Mission Control command palette accent (was a one-rule style block in nvmc/index.php) */
#nvMcPal { --cp-a: var(--gold-bright); --cp-a-hi: var(--gold-hi); --cp-a-rgb: var(--gold-bright-rgb); }

/* Staff panel: socket dots (mc_socket) */
.c1-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; background: transparent; border: 1px solid var(--muted2, var(--ui-fg-3)); opacity: .4; }
.c1-dot.is-lit { background: var(--ok, var(--ui-ok)); border: 0; opacity: .85; }

/* My World arrangement: a hidden card */
.nv-arr-hide { display: none; }
}

/* _base/c4-themes.css */
@layer components{
/* Register C4: the two small themes that are not the Nirvana theme, the first-run installer (web/themes/installer) and the
   Bootstrap-layout theme (web/themes/bootstrap), plus the helpers shared by the formerly stock Flux views that now live in
   web/themes/nirvana. Tokens only (--ui-*, --space-*, --radius-*), no hex, no !important (one exception, the TinyMCE ring below). */

/* ---- installer: a centred card on the Daybreak surface ---- */
.nvk-installer { margin: 0; min-height: 100vh; background: var(--ui-bg); color: var(--ui-fg); font-family: var(--body); }
.nvk-installer__page { max-width: 760px; margin: 0 auto; padding: var(--space-6) var(--space-4) var(--space-7); display: flex; flex-direction: column; gap: var(--space-5); }
.nvk-installer__brand { display: flex; align-items: center; gap: var(--space-3); }
.nvk-installer__logo { display: block; height: 56px; width: auto; max-width: 100%; }
.nvk-installer__card { background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-4); }
.nvk-installer__card > * { margin: 0; }
.nvk-installer__foot { color: var(--ui-fg-3); font-size: 13px; line-height: 1.5; margin: 0; }
.nvk-missing-view { margin: 0; }

/* ---- Bootstrap-layout theme: a fixed top bar and a centred content column, built on kit tokens ---- */
.nvk-bs { margin: 0; min-height: 100vh; display: flex; flex-direction: column; background: var(--ui-bg); color: var(--ui-fg); font-family: var(--body); }
.nvk-bs__bar { position: sticky; top: 0; z-index: 20; background: var(--ui-brand-deep); color: var(--ui-brand-fg); box-shadow: var(--shadow-md); }
.nvk-bs__barin { max-width: 1180px; margin: 0 auto; padding: 0 var(--space-4); min-height: 56px; display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap; }
.nvk-bs__brand { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--ui-brand-fg); text-decoration: none; font-family: var(--disp); font-weight: 700; font-size: 17px; letter-spacing: .01em; padding: var(--space-2) 0; }
.nvk-bs__brand img { height: 28px; width: auto; display: block; }
.nvk-bs__toggle { display: none; margin-left: auto; min-height: 44px; min-width: 44px; padding: 0 var(--space-3); border: 1px solid var(--ui-brand-fg); border-radius: var(--radius-sm); background: transparent; color: var(--ui-brand-fg); font: inherit; cursor: pointer; }
.nvk-bs__menu { display: flex; align-items: center; gap: var(--space-1); list-style: none; margin: 0; padding: 0; flex-wrap: wrap; }
.nvk-bs__drop { position: relative; }
.nvk-bs__droplabel { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-3); color: var(--ui-brand-fg); border-radius: var(--radius-sm); cursor: pointer; font-weight: 600; font-size: 14px; list-style: none; }
.nvk-bs__droplabel::-webkit-details-marker { display: none; }
.nvk-bs__drop[open] > .nvk-bs__droplabel, .nvk-bs__droplabel:hover { background: var(--ui-brand); }
.nvk-bs__list { position: absolute; left: 0; top: 100%; min-width: 200px; margin: 0; padding: var(--space-2); list-style: none; background: var(--ui-surface); color: var(--ui-fg); border: 1px solid var(--ui-line); border-radius: var(--radius-md); box-shadow: var(--shadow-lg); z-index: 30; }
.nvk-bs__list a { display: block; padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); color: var(--ui-fg); text-decoration: none; font-size: 14px; }
.nvk-bs__list a:hover, .nvk-bs__list a:focus-visible { background: var(--ui-sunken); color: var(--ui-link); }
.nvk-bs__main { flex: 1 0 auto; width: 100%; max-width: 1180px; margin: 0 auto; padding: var(--space-5) var(--space-4); box-sizing: border-box; display: flex; flex-direction: column; gap: var(--space-4); }
.nvk-bs__main > * { min-width: 0; }
.nvk-bs__foot { background: var(--ui-surface-2); border-top: 1px solid var(--ui-line); color: var(--ui-fg-3); }
.nvk-bs__footin { max-width: 1180px; margin: 0 auto; padding: var(--space-4); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3) var(--space-5); font-size: 13px; line-height: 1.5; }
.nvk-bs__footin p { margin: 0; }
.nvk-bs__pick { display: inline-flex; align-items: center; gap: var(--space-2); }
.nvk-bs__hidden { display: none; }
@media (max-width: 760px) {
  .nvk-bs__toggle { display: inline-flex; align-items: center; justify-content: center; }
  .nvk-bs__menu { display: none; width: 100%; flex-direction: column; align-items: stretch; padding-bottom: var(--space-3); }
  .nvk-bs__menu.is-open { display: flex; }
  .nvk-bs__list { position: static; box-shadow: none; margin-bottom: var(--space-2); }
}

/* ---- sub menu and page menu rows (themes/nirvana/main/submenu.php, pagemenu.php) ---- */
.nvk-menu-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin: 0 0 var(--space-4); padding: 0; }
.nvk-menu-row__label { color: var(--ui-fg-3); font-size: 13px; line-height: 1.4; }

/* ---- helpers for the converted stock views (web/lib/nv_lk.php) ---- */
.nvk-stack { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.nvk-stack > * { min-width: 0; margin-top: 0; margin-bottom: 0; }
.nvk-form { display: flex; flex-direction: column; gap: var(--space-3); max-width: 640px; margin: 0; }
.nvk-form--wide { max-width: none; }
/* The CMS page editor (pages/add, pages/edit) is a TinyMCE iframe. Its focus ring: the page script marks the iframe while its document
   holds the focus (data-nv-focus; Chrome matches no :focus or :focus-within for it), and the ring is drawn just inside the editing area.
   That area is TinyMCE's white page in every look, so the ring takes the deep brand colour (4.5:1 or more on white in all four looks);
   --ui-focus is tuned for the look's own surface and is pale gold under Anime.
   The one !important in this file: TinyMCE's skin is an unlayered sheet whose reset (.tox :not(svg):not(rect) { outline: 0 }) beats
   every cascade layer, so a layered rule can only win it with !important. */
.tox .tox-edit-area__iframe[data-nv-focus] { outline: 2px solid var(--ui-brand-deep) !important; outline-offset: -2px !important; }
.nvk-form--row { flex-direction: row; flex-wrap: wrap; align-items: flex-end; max-width: none; }
.nvk-form--row > .nvk-field { flex: 1 1 180px; min-width: 0; }
.nvk-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.nvk-form__line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }
.nvk-kv { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-2) var(--space-5); margin: 0; }
.nvk-kv__row { display: flex; flex-direction: column; gap: 2px; padding: var(--space-2) 0; border-bottom: 1px solid var(--ui-line); min-width: 0; }
.nvk-kv__row dt { color: var(--ui-fg-3); font-size: 12px; line-height: 1.4; margin: 0; letter-spacing: .02em; }
.nvk-kv__row dd { margin: 0; color: var(--ui-fg); line-height: 1.5; overflow-wrap: anywhere; }
.nvk-prose { margin: 0; color: var(--ui-fg-2); line-height: 1.6; max-width: 70ch; }
.nvk-prose strong { color: var(--ui-fg); }
.nvk-muted { color: var(--ui-fg-3); }
.nvk-num { text-align: right; font-variant-numeric: tabular-nums; }
.nvk-bad { color: var(--ui-danger); }
.nvk-good { color: var(--ui-ok); }
.nvk-count { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ui-fg); }
.nvk-datefield { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.nvk-emblem, .nvk-icon-img { display: inline-block; vertical-align: middle; width: 24px; height: 24px; object-fit: contain; }
.nvk-shot { width: 100px; height: 100px; object-fit: cover; border-radius: var(--radius-sm); border: 1px solid var(--ui-line); }
.nvk-list { margin: 0; padding-left: var(--space-4); }
.nvk-fieldset { border: 1px solid var(--ui-line); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.nvk-fieldset legend { color: var(--ui-fg-2); font-size: 13px; padding: 0 var(--space-2); }
.nvk-pagejump { display: inline-flex; align-items: center; gap: var(--space-2); color: var(--ui-fg-2); font-size: 13px; }
.pages { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-2); margin: var(--space-4) 0; }
.jump-to-page { display: flex; justify-content: center; margin: 0 0 var(--space-4); }
.nvk-prose--cms { max-width: none; }
.nvk-prose--cms img { max-width: 100%; height: auto; }
.nvk-prose--cms table { max-width: 100%; display: block; overflow-x: auto; }
.nvk-grid { display: grid; gap: var(--space-3); min-width: 0; }
.nvk-grid--stats { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.nvk-grid--cards { grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); }
.nvk-grid > * { min-width: 0; }
.nvk-subhead { font-family: var(--disp); font-size: 1.05rem; line-height: 1.3; margin: var(--space-4) 0 var(--space-2); color: var(--ui-fg); letter-spacing: 0; text-transform: none; }
.nvk-portrait { width: 150px; text-align: center; vertical-align: middle; }
.nvk-portrait img { max-width: 100%; height: auto; }
.nvk-table--plain { box-shadow: none; border: 0; }
.nvk-table tr.is-on > td, .nvk-table tr.is-top > td { font-weight: 600; }
.nvk-doc h2, .nvk-doc h3 { margin: var(--space-4) 0 var(--space-2); }
.nvk-doc ul { padding-left: var(--space-4); }
.nvk-warn { color: var(--ui-warn); }
.nvk-info { color: var(--ui-link); }
.nvk-strong { font-weight: 600; }
.nvk-inline { display: inline; margin: 0; }
.nv-mgr-card--link { text-decoration: none; }
.nv-mgr-card.is-active { border-color: var(--ui-brand); }
.nv-mgr-card--tight { padding: 10px 12px; margin-bottom: 8px; }
.nv-mgr-card.is-conflict { border-color: var(--ui-danger); }
.nv-mgr-slot-h { margin: 0 0 8px; padding-bottom: 6px; border-bottom: 1px solid var(--ui-line); font-family: var(--disp); }
.nv-mgr-doc-sum { font-size: 12.5px; }
.nv-mgr-doc-sum.has-report { margin-bottom: 10px; }
@media (min-width: 761px) { .nv-mgr-tabs { flex-wrap: wrap; } }
.nvk-table--tight th, .nvk-table--tight td { white-space: nowrap; padding: 6px 10px; }
@media (max-width: 600px) { .nvk-portrait { display: none; } }
.nvk-doc p, .nvk-doc li, .nvk-doc td, .nvk-doc th { font-size: 14px; line-height: 1.55; }
.nvk-doc h2, .nvk-doc h3 { font-size: 1.15rem; }
.nvk-form__line > .nvk-field { flex: 1 1 220px; min-width: 0; }
.nvk-callout__body a, .nvk-prose a, .nvk-doc a { text-decoration: underline; text-underline-offset: 2px; }
.nvk-link-u { text-decoration: underline; text-underline-offset: 2px; }
}

/* _base/character.css */
@layer pages{
/* Cockpit Character IV, the Paper doll (owner pick B of the 'NirvanaRO Cockpit Character' canvas, 2026-10-21). Markup: control/character.php
   (Sheet), power.php (Power), haki.php, devilfruit.php, trophies.php (lib/nv_daybreak_doll.php nv_dd_*), every look (the Cockpit frame wraps the
   Anime look in .nvk-daybreak). Kit DollSlot and DollCore draw the slots and the number in the middle; this file lays the doll out (left
   column, middle, right column), the real-look figure, the stats strip, My Build beside Life in Midgard, and the Haki / Devil Fruit dolls on the
   Skypiea sky. Container queries: the dolls follow the station's own width, since the site menu and the Cockpit rail both stay in view.
   Muted text is --ui-fg-2 (--ui-sky-fg-2 on the sky, --ui-island-fg-2 on islands), never opacity. */
.nvk-daybreak .d-doll-page { display: flex; flex-direction: column; gap: 24px; min-width: 0; container: d-doll / inline-size; }
.nvk-daybreak .d-doll-panel { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: 20px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-doll-panel > .nvk-empty { margin: 0; }
.nvk-daybreak .d-doll-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 16px; min-width: 0; }
.nvk-daybreak .d-doll-head__m { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 240px; }
.nvk-daybreak .d-doll-head__r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.nvk-daybreak .d-doll-eye { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-h2 { margin: 0; border: 0; padding: 0; font: 700 22px/28px var(--disp); letter-spacing: 0; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-doll-tag { margin: 0; border: 0; padding: 0; font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-line { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-line--warn { color: var(--ui-fg); font-weight: 600; }
.nvk-daybreak .d-doll-note { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-link { color: var(--ui-link); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.nvk-daybreak .d-doll-link:hover { color: var(--ui-fg); }
.nvk-daybreak .d-doll-line code { font: 600 13px/18px monospace; padding: 1px 6px; border-radius: var(--radius-sm); background: var(--ui-sunken); color: var(--ui-fg); }

/* ---- GearScore beside the head ---- */
.nvk-daybreak .d-doll-score { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; }
.nvk-daybreak .d-doll-score__k { font: 600 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-score__v { font: 700 40px/1 var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; }

/* ---- the doll: left column, middle, right column ---- */
.nvk-daybreak .d-doll { display: grid; grid-template-columns: minmax(0, 1fr) minmax(200px, 270px) minmax(0, 1fr); grid-template-areas: "l m r"; gap: 16px; align-items: center; min-width: 0; }
.nvk-daybreak .d-doll__l { grid-area: l; min-width: 0; }
.nvk-daybreak .d-doll__m { grid-area: m; display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; }
.nvk-daybreak .d-doll__r { grid-area: r; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.nvk-daybreak .d-doll__l { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-doll-col { display: flex; flex-direction: column; gap: 10px; min-width: 0; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-doll-col > li { display: block; min-width: 0; margin: 0; padding: 0; }
.nvk-daybreak .d-doll-icon { display: block; max-width: 36px; max-height: 36px; width: auto; height: auto; margin: 0; border: 0; }
.nvk-daybreak .d-doll--power .nvk-dslot__ic, .nvk-daybreak .d-doll--power .nvk-dslot__ini { font-size: 12px; }
.nvk-daybreak .d-doll--power .nvk-dslot__ic { width: 52px; }

/* ---- the real-look figure ---- */
.nvk-daybreak .d-doll-fig { display: flex; flex-direction: column; align-items: center; gap: 10px; width: 100%; min-width: 0; margin: 0; }
.nvk-daybreak .d-doll-fig__stage { position: relative; display: grid; place-items: center; width: 100%; aspect-ratio: 3 / 4; overflow: hidden; border-radius: var(--radius-lg); background: var(--ui-sunken); }
.nvk-daybreak .d-doll-fig__img { display: block; max-width: 92%; max-height: 92%; width: auto; height: auto; margin: 0; border: 0; object-fit: contain; }
.nvk-daybreak .d-doll-fig__img--full, .nvk-daybreak .d-doll-fig__img--stage { position: absolute; inset: 6%; width: 88%; height: 88%; max-width: none; max-height: none; object-fit: contain; image-rendering: pixelated; }
.nvk-daybreak .d-doll-fig__img--class { max-width: 80%; max-height: 80%; }
.nvk-daybreak .d-doll-fig__none { display: grid; place-items: center; width: 96px; height: 96px; border-radius: 50%; background: var(--ui-island); color: var(--ui-island-gold); font: 700 32px/1 var(--disp); }
.nvk-daybreak .d-doll-fig__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; }
.nvk-daybreak .d-doll-fig__cap { margin: 0; max-width: 30ch; font: 400 12px/16px var(--body); text-align: center; color: var(--ui-fg-2); }

/* ---- the stats strip ---- */
.nvk-daybreak .d-doll-stats { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 16px; border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-daybreak .d-doll-stats__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; }
.nvk-daybreak .d-doll-stats__hp { display: flex; flex-wrap: wrap; gap: 4px 16px; margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-stats__hp b { color: var(--ui-fg); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-doll-stats__l { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-doll-stats__l--12 { grid-template-columns: repeat(12, minmax(0, 1fr)); }
.nvk-daybreak .d-doll-stat { display: flex; flex-direction: column; align-items: center; gap: 0; min-width: 0; margin: 0; padding: 6px 2px; border-radius: var(--radius-sm); background: var(--ui-surface); }
.nvk-daybreak .d-doll-stat--trait { box-shadow: inset 0 -2px 0 var(--ui-brand); }
.nvk-daybreak .d-doll-stat__k { font: 600 12px/16px var(--body); color: var(--ui-fg-2); text-decoration: none; border: 0; cursor: help; }
.nvk-daybreak .d-doll-stat__v { font: 700 17px/22px var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; }

/* ---- My Build beside Life in Midgard ---- */
.nvk-daybreak .d-doll-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 24px; align-items: start; min-width: 0; }
.nvk-daybreak .d-doll-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-doll-chips > li { margin: 0; padding: 0; }
.nvk-daybreak .d-doll-meters { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px 16px; }
.nvk-daybreak .d-doll-life { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-doll-life > li { display: flex; flex-direction: column; gap: 2px; margin: 0; padding: 12px; border-radius: var(--radius-md); background: var(--ui-surface-2); }
.nvk-daybreak .d-doll-life b { font: 700 15px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-doll-life span { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-door { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 16px; border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface-2); color: var(--ui-fg); text-decoration: none; }
.nvk-daybreak .d-doll-door:hover { border-color: var(--ui-brand); }
.nvk-daybreak .d-doll-door:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-doll-door__m { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-doll-door__m b { font: 700 15px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-doll-door__m small { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-door__rk { margin-left: 6px; padding: 1px 8px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 12px/18px var(--disp); white-space: nowrap; }
.nvk-daybreak .d-doll-door__go { font: 700 22px/1 var(--disp); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-kv { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 16px; margin: 0; }
.nvk-daybreak .d-doll-kv > div { display: contents; }
.nvk-daybreak .d-doll-kv dt { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-doll-kv dd { margin: 0; font: 700 14px/20px var(--body); color: var(--ui-fg); text-align: right; font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-doll-kv--row { grid-template-columns: repeat(4, minmax(0, auto) minmax(0, auto)); justify-content: start; gap: 6px 10px; }
.nvk-daybreak .d-doll-kv--row dd { text-align: left; margin-right: 14px; }

/* ---- the sky dolls (Haki, Devil Fruit): the site's Skypiea look ---- */
.nvk-daybreak .d-doll-lanes { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 0; list-style: none; min-width: 0; }
.nvk-daybreak .d-doll-lane { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--ui-sky-2); border-radius: var(--radius-md); background: var(--ui-cloud); color: var(--ui-sky-fg); }
.nvk-daybreak .d-doll-lane__tag { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .06em; text-transform: uppercase; color: var(--ui-sky-fg-2); }
.nvk-daybreak .d-doll-lane__row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 8px; margin: 0; }
.nvk-daybreak .d-doll-lane__row b { font: 700 18px/24px var(--disp); color: var(--ui-sky-fg); }
.nvk-daybreak .d-doll-lane__row span, .nvk-daybreak .d-doll-lane__fx { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-sky-fg-2); }
.nvk-daybreak .d-doll-bar { display: block; height: 8px; margin: 0; overflow: hidden; border-radius: var(--radius-pill); background: var(--ui-sky-2); }
.nvk-daybreak .d-doll-bar > i { display: block; width: var(--w, 0%); height: 100%; border-radius: inherit; background: var(--ui-hk-arm); }
.nvk-daybreak .d-doll-lane--obs .d-doll-bar > i { background: var(--ui-hk-obs); }
.nvk-daybreak .d-doll-lane--hao .d-doll-bar > i { background: var(--ui-hk-hao); }
.nvk-daybreak .d-doll-card { display: flex; flex-direction: column; gap: 6px; width: 100%; box-sizing: border-box; min-width: 0; margin: 0; padding: 14px; border: 1px solid var(--ui-sky-2); border-radius: var(--radius-md); background: var(--ui-cloud); color: var(--ui-sky-fg); }
/* Anime (2026-10-25): chips on the light card read the sky ink; the sk-* tokens exist only in Anime (see SkyPanel.css). */
.d-doll-card { --sk-chip-bg: var(--sk-hero-chip-bg); --sk-chip-bd: var(--sk-hero-chip-bd); --sk-chip-fg: var(--sk-onsky-fg); --sk-chip-cta-bg: var(--sk-hero-chip-bg); --sk-chip-cta-bd: var(--sk-hero-chip-bd); --sk-chip-cta-fg: var(--sk-onsky-fg); }
.nvk-daybreak .d-doll-card__row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 8px; margin: 0; }
.nvk-daybreak .d-doll-card__row b { font: 700 15px/20px var(--body); color: var(--ui-sky-fg); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-doll-card__s { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-sky-fg-2); }
.nvk-daybreak .d-doll-panel .d-doll-card { border-color: var(--ui-line); background: var(--ui-surface-2); color: var(--ui-fg); }
.nvk-daybreak .d-doll-panel .d-doll-card__row b { color: var(--ui-fg); }
.nvk-daybreak .d-doll-panel .d-doll-card__s { color: var(--ui-fg-2); }
.nvk-daybreak .d-doll--haki .nvk-aura { margin: 0 auto; }
.nvk-daybreak .d-doll--haki .d-gl-legend { justify-content: center; }
.nvk-daybreak .d-doll--fruit { grid-template-columns: minmax(0, 1fr) minmax(150px, 190px) minmax(0, 1fr); }
.nvk-daybreak .d-doll--fruit .nvk-cloudladder, .nvk-daybreak .d-doll--fruit .nvk-cladder { margin: 0; }
.nvk-daybreak .d-doll-sky { display: flex; flex-direction: column; gap: 16px; min-width: 0; container: d-doll / inline-size; }
.nvk-daybreak .nvk-skyp--hero:has(.d-doll-sky) .nvk-skyp__in { grid-template-columns: minmax(0, 1fr); }
.nvk-daybreak .d-doll-sky .d-doll-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }

/* ---- the shelf (Trophies) and the Power doll ---- */
.nvk-daybreak .d-doll--shelf, .nvk-daybreak .d-doll--power { grid-template-columns: minmax(0, 1fr) minmax(150px, 200px) minmax(0, 1fr); }

/* ---- narrower stations: the middle first, then the two columns side by side; a phone: one column (B-Phone order) ---- */
@container d-doll (max-width: 700px) {
  .nvk-daybreak .d-doll-split { grid-template-columns: minmax(0, 1fr); }
}
@container d-doll (max-width: 760px) {
  .nvk-daybreak .d-doll, .nvk-daybreak .d-doll--fruit, .nvk-daybreak .d-doll--shelf, .nvk-daybreak .d-doll--power { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-areas: "m m" "l r"; }
  .nvk-daybreak .d-doll--sheet .d-doll__m { width: min(100%, 300px); justify-self: center; }
  .nvk-daybreak .d-doll { align-items: start; }
  .nvk-daybreak .d-doll-stats__l--12 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
}
@container d-doll (max-width: 520px) {
  .nvk-daybreak .d-doll, .nvk-daybreak .d-doll--fruit, .nvk-daybreak .d-doll--shelf, .nvk-daybreak .d-doll--power { grid-template-columns: minmax(0, 1fr); grid-template-areas: "m" "l" "r"; }
  .nvk-daybreak .d-doll-panel { padding: 16px; }
  .nvk-daybreak .d-doll-col--r .nvk-dslot--r { flex-direction: row; text-align: left; }
  .nvk-daybreak .d-doll-col--r .nvk-dslot--r .nvk-dslot__badge { left: auto; right: -6px; }
  .nvk-daybreak .d-doll--sheet .d-doll__m { width: 100%; }
  .nvk-daybreak .d-doll-fig__stage { aspect-ratio: 4 / 3; }
  .nvk-daybreak .d-doll-meters { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-doll-score__v { font-size: 34px; }
  .nvk-daybreak .d-doll-stats { padding: 12px; }
  .nvk-daybreak .d-doll-stats__l, .nvk-daybreak .d-doll-stats__l--12 { gap: 4px; }
  .nvk-daybreak .d-doll-stat__v { font-size: 15px; }
}

/* The live Orchard under the Devil Fruit doll: a Fruit Rival's name in the danger colour of the look (the legacy pink fails contrast on Daybreak),
   as on the public Grand Line pages (grandline.css .d-gl-host). */
.nvk-daybreak .nv-orc-page .nv-orc-rvname { color: var(--ui-danger); }

/* One left menu follow-ups (owner 2026-10-22): Haki's dimmed words read quieter by their colour, not by opacity (they fell under 4.5:1):
   "Across this account" and a vacant throne's name. */
.nvk-daybreak .nvhk-alts-l { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nvhk-throne-h.is-vacant { opacity: 1; color: var(--ui-fg-2); }

/* the Legend Card on the Sheet (Flagship Ratings L1): its own space above the paper doll */
.d-doll-legend { margin: 16px 0; }

/* ---- The Anvil, look B 'Anvil core' (owner pick of canvas 'NirvanaRO Anvil Window', 2026-11-06): the piece at the centre of the doll,
   its five lines around it, the four approaches as cards under it ---- */
.nvk-daybreak .d-anvil-chips { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; min-width: 0; }
.nvk-daybreak .d-doll--anvil .nvk-dcore__v { font-size: 40px; }
.nvk-daybreak .d-anvil-dials { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; margin: 16px 0; padding: 0; list-style: none; min-width: 0; }
.nvk-daybreak .d-anvil-dials > li { display: block; min-width: 0; margin: 0; padding: 0; }
.nvk-daybreak .d-anvil-dial__succ { margin: 0; font-family: var(--font-disp); color: var(--ui-fg); }
.nvk-daybreak .d-anvil-dial__succ b { font-size: 28px; }
.nvk-daybreak .d-anvil-dial__fail { margin: 0 0 8px; color: var(--ui-fg-2); font-weight: 700; }
}

/* _base/classes.css */
@layer components{
/* GENERATED by tools/design/classes/classes.py -- the class (job line) colours. color: var(--cls) on light, var(--cls-d) on dark. */
.nvk-cls--novice { --cls: #475569; --cls-d: #cbd5e1; }
.nvk-cls--supernovice { --cls: #854d0e; --cls-d: #fde047; }
.nvk-cls--knight { --cls: #1d4ed8; --cls-d: #93c5fd; }
.nvk-cls--crusader { --cls: #c2410c; --cls-d: #fdba74; }
.nvk-cls--wizard { --cls: #4338ca; --cls-d: #a5b4fc; }
.nvk-cls--sage { --cls: #0f766e; --cls-d: #5eead4; }
.nvk-cls--hunter { --cls: #15803d; --cls-d: #86efac; }
.nvk-cls--bard { --cls: #be185d; --cls-d: #f9a8d4; }
.nvk-cls--priest { --cls: #0369a1; --cls-d: #7dd3fc; }
.nvk-cls--monk { --cls: #b91c1c; --cls-d: #fca5a5; }
.nvk-cls--blacksmith { --cls: #57534e; --cls-d: #d6d3d1; }
.nvk-cls--alchemist { --cls: #4d7c0f; --cls-d: #bef264; }
.nvk-cls--assassin { --cls: #7e22ce; --cls-d: #d8b4fe; }
.nvk-cls--rogue { --cls: #a21caf; --cls-d: #f0abfc; }
.nvk-cls--stargladiator { --cls: #b45309; --cls-d: #fcd34d; }
.nvk-cls--soullinker { --cls: #6d28d9; --cls-d: #c4b5fd; }
.nvk-cls--gunslinger { --cls: #0e7490; --cls-d: #67e8f9; }
.nvk-cls--ninja { --cls: #be123c; --cls-d: #fda4af; }
.nvk-cls--summoner { --cls: #047857; --cls-d: #6ee7b7; }
.nvk-cls--druid { --cls: #92400e; --cls-d: #fdba74; }
.nvk-cls { color: var(--cls, inherit); }
html[data-theme="daybreak-dark"] .nvk-cls, .nvk-on-dark .nvk-cls { color: var(--cls-d, inherit); }
/* audit fixes B (2026-10-21): the gold #1 podium card keeps the class hue, darkened toward the gold card's ink, so the name reads at 4.5:1 or more
   in every look (the light --cls-d of the night looks sat on gold at 1.1:1). The Anime look is dark glass, so it takes the light class colours too,
   except on its light sky panels and fruit isles. */
html .nvk-podium__card--p1 .nvk-cls { color: color-mix(in srgb, var(--cls, var(--ui-island-gold-fg)) 60%, var(--ui-island-gold-fg)); }
html[data-theme="anime"] .nvk-cls { color: var(--cls-d, inherit); }
html[data-theme="anime"] :is(.nvk-skyp, .nvk-isle) .nvk-cls { color: var(--cls, inherit); }
html[data-theme="anime"] .nvk-podium__card--p1 .nvk-cls { color: color-mix(in srgb, var(--cls, var(--ui-island-gold-fg)) 60%, var(--ui-island-gold-fg)); }
}

/* _base/cp-blessing.css */
@layer components{
/* Cockpit Companion Blessing builder (nv-bl-builder / nv-blb-), moved out of _companion_blessing.php and tokenised (register A3). */
.nv-cockpit /* ---- THE BLESSING BUILDER. Scoped under .nv-bl-builder so it cannot leak into
       the legacy editor below,
.nv-cockpit which shares this page. Mirrors the Route
       Builder's visual language deliberately -- same rail,
.nv-cockpit same foot,
.nv-cockpit same card
       shape -- because the two are the same gesture in two places. ----

   THE RESET IS NOT OPTIONAL,
.nv-cockpit AND IT IS SCOPED ON PURPOSE (2026-09-11).

   nirvana.css:311 paints EVERY bare <button> as the gold call-to-action,
.nv-cockpit with
   !important on font-family,
.nv-cockpit weight,
.nv-cockpit letter-spacing,
.nv-cockpit text-transform,
.nv-cockpit size,
.nv-cockpit colour,
.nv-cockpit border,
.nv-cockpit radius,
.nv-cockpit padding,
.nv-cockpit background and transition -- plus a
   clip-path that shears the corners into a parallelogram. A quiet control that
   styles itself the ordinary way loses silently: no error,
.nv-cockpit no warning,
.nv-cockpit it just
   renders as a gold slab. Every tile in this builder did,
.nv-cockpit until this block.

   Scoped to the four classes that need it rather than a blanket
   `.nv-bl-builder button { ... }
.nv-cockpit ` -- that is the debt Fieldwork carries,
.nv-cockpit where a
   (0,
.nv-cockpit 1,
.nv-cockpit 1) reset over every button means every later rule in the file needs its
   own !important to beat it. Escort's wizard already learned this and said so
   in its own header; this follows Escort,
.nv-cockpit not Fieldwork.

   .nv-btn / .nv-btn-cta on the save button is deliberately NOT reset: its gold
   is the same gold,
.nv-cockpit and it IS the page's primary action. ---- */
.nv-bl-builder .nv-blb-card,
.nv-cockpit .nv-bl-builder .nv-blb-buff,
.nv-cockpit .nv-bl-builder .nv-wz-back,
.nv-cockpit .nv-bl-builder .nv-wz-next { font-family:var(--body,inherit)!important;font-weight:400!important;letter-spacing:normal!important; text-transform:none!important;font-size:12.5px!important;color:var(--ui-fg)!important; background:color-mix(in srgb,var(--ui-fg) 3%,transparent)!important;background-image:none!important; border:1px solid var(--ui-line)!important;border-radius:9px!important; padding:10px 12px!important;box-shadow:none!important;clip-path:none!important; transition:border-color .18s,background .18s,transform .18s!important;cursor:pointer }

.nv-cockpit .nv-bl-builder .nv-blb-card:hover,
.nv-cockpit .nv-bl-builder .nv-blb-buff:hover { transform:translateY(-1px) }

.nv-cockpit .nv-bl-builder .nv-wz-back:hover,
.nv-cockpit .nv-bl-builder .nv-wz-next:hover { border-color:var(--ui-brand)!important;transform:none }


/* ---- step 1: the cards ---- */
.nv-cockpit .nv-blb-ladder { display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;margin:2px 0 14px; padding:9px 12px;border:1px solid var(--ui-line);border-radius:9px; background:linear-gradient(90deg,color-mix(in srgb,var(--ui-brand) 7%,transparent),transparent 70%);font-size:11.5px }

.nv-cockpit .nv-blb-ladder-tier { font-family:var(--disp,inherit);letter-spacing:.08em;text-transform:uppercase; font-size:10.5px;padding:2px 9px;border-radius:999px;border:1px solid currentColor }

.nv-cockpit .nv-blb-t0 { color:var(--ui-fg-3) }
.nv-cockpit .nv-blb-t1 { color:var(--ui-brand) }
.nv-cockpit .nv-blb-t2 { color:var(--ui-cta) }

.nv-cockpit .nv-blb-ladder-bit { color:var(--ui-fg-3) }

.nv-cockpit .nv-blb-ladder-bit b { color:var(--ui-fg);font-weight:600;margin-right:2px }

.nv-cockpit .nv-blb-ladder-up { margin-left:auto;font-size:11px;color:var(--ui-brand);white-space:nowrap }

.nv-cockpit .nv-blb-cards { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:9px }

.nv-cockpit .nv-bl-builder .nv-blb-card { display:flex;align-items:flex-start;gap:11px;text-align:left }

.nv-cockpit .nv-bl-builder .nv-blb-card.is-on { border-color:var(--ui-brand)!important; background:color-mix(in srgb,var(--ui-brand) 12%,transparent)!important }

.nv-cockpit .nv-bl-builder .nv-blb-card.is-live { border-left:2px solid var(--ui-brand)!important }

.nv-cockpit .nv-bl-builder .nv-blb-card.is-blank { opacity:.78 }

.nv-cockpit .nv-blb-card-sigil { flex:0 0 38px;width:38px;height:38px;display:flex;align-items:center;justify-content:center; border-radius:8px;background:color-mix(in srgb,var(--ui-fg) 22%,transparent);font-size:17px;line-height:1 }

.nv-cockpit .nv-blb-card-body { display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto }

.nv-cockpit .nv-blb-card-top { display:flex;align-items:baseline;gap:7px;flex-wrap:wrap }

.nv-cockpit .nv-blb-card-name { font-size:13px;font-weight:600;overflow-wrap:anywhere }

.nv-cockpit .nv-blb-card-live { display:inline-flex;align-items:center;gap:4px;font-size:10px;text-transform:uppercase; letter-spacing:.07em;color:var(--ui-ok) }

.nv-cockpit .nv-blb-dot { width:6px;height:6px;border-radius:50%;background:var(--ui-ok); box-shadow:0 0 0 0 color-mix(in srgb,var(--ui-ok) 60%,transparent);animation:nvblbPulse 2.2s ease-out infinite }

@keyframes nvblbPulse {70%{box-shadow:0 0 0 6px color-mix(in srgb,var(--ui-ok) 0%,transparent)}100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--ui-ok) 0%,transparent)}}

.nv-cockpit .nv-blb-card-sub { font-size:10.5px;color:var(--ui-fg-3) }

.nv-cockpit .nv-blb-card-says { font-size:11px;line-height:1.45;color:var(--ui-fg-2);margin-top:2px }

.nv-cockpit .nv-blb-card-empty { font-style:italic }

/* The strip. Fixed boxes, object-fit letterboxing -- sprites here run from tiny
   to 200px square and a raw <img> row would look like a broken table. Same
   contract .nv-fwb-art keeps in the Route Builder. */
.nv-cockpit .nv-blb-strip { display:flex;flex-wrap:wrap;align-items:center;gap:3px;margin-top:4px }

.nv-cockpit .nv-blb-strip-i { width:22px;height:22px;border-radius:5px;background:color-mix(in srgb,var(--ui-fg) 24%,transparent); display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none }

.nv-cockpit .nv-blb-strip-img,
.nv-cockpit .nv-blb-strip-i img { max-width:100%;max-height:100%;object-fit:contain;image-rendering:pixelated }

.nv-cockpit .nv-blb-strip-more { font-size:10px;color:var(--ui-fg-2);padding-left:2px }

.nv-cockpit .nv-blb-chips { display:flex;flex-wrap:wrap;gap:4px;margin-top:5px }

.nv-cockpit .nv-blb-chip { font-size:10px;padding:1px 7px;border-radius:999px;color:var(--ui-fg-3); border:1px solid var(--ui-line) }

.nv-cockpit .nv-blb-chip b { color:var(--ui-fg);font-weight:600;margin-right:3px }

.nv-cockpit .nv-blb-chip.is-good { color:var(--ui-cta);border-color:color-mix(in srgb,var(--ui-cta) 35%,transparent) }

.nv-cockpit .nv-blb-chip.is-mute { opacity:.6 }

.nv-cockpit .nv-blb-chip.is-over { color:var(--ui-danger);border-color:color-mix(in srgb,var(--ui-danger) 40%,transparent) }

.nv-cockpit .nv-blb-chip.is-over b { color:inherit }

@media (prefers-reduced-motion:reduce) {

  .nv-cockpit .nv-bl-builder * { animation:none!important;transition:none!important }

  .nv-cockpit .nv-bl-builder .nv-blb-card:hover,
.nv-cockpit .nv-bl-builder .nv-blb-buff:hover { transform:none }

}


/* THE WIZARD CHROME IS NOT HERE ANY MORE (2026-09-13). head/title/who/sub,
   the rail, the steps, lbl/cap/hint, the tiles and the foot all live in
   lib/nv_wizard.php and are shared with Fieldwork, the Combat Brain and the
   Standing Order. Only what is genuinely Blessing's is below. Edit the shared
   look there, not here -- putting a copy back is the drift the extraction
   exists to prevent. */
.nv-cockpit .nv-bl-builder { border:1px solid var(--ui-line);border-radius:10px;padding:14px;margin:0 0 14px; background:linear-gradient(180deg,color-mix(in srgb,var(--ui-fg) 2%,transparent),transparent) }

.nv-cockpit /* margin-left:auto is load-bearing: the count used to be pushed right by
   .nv-blb-title { flex:1 1 220px }
.nv-cockpit ,
.nv-cockpit which was part of the chrome that moved to
   lib/nv_wizard.php. The shared .nv-wz-title does not flex-fill (its head is a
   baseline row,
.nv-cockpit not a stretch row),
.nv-cockpit so the chip has to claim the gap itself.
   Caught by a screenshot -- it renders perfectly happily in the wrong place. */
.nv-blb-count { font-variant-numeric:tabular-nums;font-size:12px;color:var(--ui-fg-3); border:1px solid var(--ui-line);border-radius:999px;padding:2px 10px;white-space:nowrap; margin-left:auto }

.nv-cockpit .nv-blb-count.is-over { color:var(--ui-danger);border-color:var(--ui-danger) }

.nv-cockpit .nv-wz-cap.is-over { color:var(--ui-danger) }

.nv-cockpit .nv-blb-group { margin:10px 0 }

.nv-cockpit .nv-blb-glabel { font-size:11px;text-transform:uppercase;letter-spacing:.6px;margin:0 0 5px }

.nv-cockpit .nv-blb-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px }

.nv-cockpit .nv-blb-buff { display:flex;align-items:center;gap:7px;text-align:left;padding:6px 8px;cursor:pointer; background:color-mix(in srgb,var(--ui-fg) 2%,transparent);border:1px solid var(--ui-line);border-radius:7px;color:var(--ui-fg) }

.nv-cockpit .nv-blb-buff.is-on { border-color:var(--ui-brand);background:color-mix(in srgb,var(--ui-brand) 10%,transparent) }

.nv-cockpit .nv-blb-buff.is-gmoff { opacity:.38;cursor:not-allowed;text-decoration:line-through }

.nv-cockpit .nv-blb-buff-art { flex:none;width:22px;height:22px }

.nv-cockpit .nv-blb-buff-name { display:block;font-size:12px;font-weight:600;line-height:1.2 }

.nv-cockpit .nv-blb-buff-sub { display:block;font-size:10.5px;color:var(--ui-fg-3);line-height:1.25 }

.nv-cockpit .nv-blb-lvrow,
.nv-cockpit .nv-blb-whenrow { display:flex;align-items:center;gap:9px;flex-wrap:wrap; padding:5px 0;border-bottom:1px solid color-mix(in srgb,var(--ui-fg) 5%,transparent) }

.nv-cockpit .nv-blb-lvname,
.nv-cockpit .nv-blb-whenname { flex:1 1 150px;min-width:0;font-size:12px }

.nv-cockpit .nv-blb-flat { font-style:normal;font-size:10px;color:var(--ui-fg-3);border:1px solid var(--ui-line); border-radius:3px;padding:0 4px;margin-left:5px }

.nv-cockpit .nv-blb-lvslider { flex:1 1 120px;min-width:90px }

.nv-cockpit .nv-blb-lvval,
.nv-cockpit .nv-blb-lvfixed { font-variant-numeric:tabular-nums;font-size:12px;min-width:40px }

.nv-cockpit .nv-blb-lvcap { font-size:10.5px;color:var(--ui-fg-3);flex:0 0 auto }

.nv-cockpit .nv-blb-trig { background:color-mix(in srgb,var(--ui-fg) 3%,transparent);border:1px solid var(--ui-line);color:var(--ui-fg); font-size:11.5px;padding:2px 4px }

.nv-cockpit .nv-blb-hplab { font-size:11.5px;color:var(--ui-fg-3);display:inline-flex;align-items:center;gap:4px }

.nv-cockpit .nv-blb-hp { width:56px;background:color-mix(in srgb,var(--ui-fg) 3%,transparent);border:1px solid var(--ui-line); color:var(--ui-fg);font-size:11.5px;padding:2px 4px }

/* "Keep this as a build" -- the bridge to Fieldwork's picker. Set apart from the
   review list above it with a rule and a tint, because it is the one control on
   this step that does something EXTRA rather than describing what is already
   decided. */
.nv-cockpit .nv-blb-keep { margin-top:14px;padding:11px 12px;border:1px solid var(--ui-line); border-radius:9px;background:color-mix(in srgb,var(--ui-brand) 5%,transparent) }

.nv-cockpit .nv-blb-keep-lbl { display:block;font-size:12px;font-weight:600;margin-bottom:7px }

.nv-cockpit .nv-blb-keep-lbl .nv-wz-cap { display:block;margin:2px 0 0;font-weight:400 }

.nv-cockpit .nv-blb-keep-row { display:flex;gap:8px;flex-wrap:wrap;align-items:center }

.nv-cockpit .nv-bl-builder .nv-blb-keep-name { flex:1 1 220px;min-width:160px }

.nv-cockpit .nv-bl-builder .nv-blb-keep-slot { flex:0 1 260px }

.nv-cockpit .nv-blb-keep-one { font-size:11px;color:var(--ui-fg-3) }

@media (max-width:560px) {

  .nv-cockpit .nv-bl-builder .nv-blb-keep-name,
.nv-cockpit .nv-bl-builder .nv-blb-keep-slot { flex:1 1 100% }

}

.nv-cockpit .nv-blb-revrow { display:flex;gap:10px;align-items:baseline;font-size:12px;padding:3px 0; border-bottom:1px solid color-mix(in srgb,var(--ui-fg) 5%,transparent) }

.nv-cockpit .nv-blb-revrow span:first-child { flex:1 1 auto }

.nv-cockpit .nv-blb-revlv { font-variant-numeric:tabular-nums;color:var(--ui-brand) }

.nv-cockpit .nv-blb-revwhen { font-size:11px;color:var(--ui-fg-3);flex:0 0 auto }

.nv-cockpit .nv-blb-save[disabled] { opacity:.45;cursor:not-allowed }

/* The save button is the point of the card; at narrow widths it gets its own
   full-width line rather than being squeezed beside Back. Same treatment the
   Route Builder's send button needed. */
@media (max-width:560px) {

  .nv-cockpit .nv-wz-foot > button { flex:1 1 auto;min-height:40px }

  .nv-cockpit .nv-bl-builder .nv-blb-save { flex:1 1 100% !important;width:100% !important }

  .nv-cockpit .nv-blb-lvcap { display:none }

}

/* nvk-bare: quiet controls that opt out of the sitewide gold button rule (it skips any class containing "nvk-"). */
.nv-cockpit .nv-bl-builder .nvk-bare { font: inherit; font-size: 12.5px; color: var(--ui-fg); background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--radius-md); cursor: pointer; text-transform: none; letter-spacing: normal; }
.nv-cockpit .nv-bl-builder .nv-blb-card.nvk-bare { padding: 10px 12px; font-weight: 400; }
.nv-cockpit .nv-bl-builder .nv-blb-buff.nvk-bare { padding: 6px 8px; }
}

/* _base/cp-brain.css */
@layer components{
/* Cockpit Companion Combat Brain builder (nv-rw-builder), moved out of _companion_brain.php and tokenised (register A3). */
/* ============================================================================
   THE BUILD BOX -- Combat Brain's wizard   (2026-09-10)
   ----------------------------------------------------------------------------
   Deliberately the same skeleton as the Fieldwork Route Builder: same head,
   same numbered rail, same one-step-at-a-time body, same footer. Two boxes on
   two pages that do the same KIND of thing should not need to be learned
   twice, which is the whole reason this page was rebuilt.

   THE RESET BELOW IS LOAD-BEARING, and it is copied from Fieldwork with its
   reasoning intact. nirvana.css paints every bare <button>, .button and
   .toggler as a gold CTA with !important on font, colour, background, border,
   radius, padding and clip-path -- so a quiet tile written the ordinary way
   renders as a gold slab. These are real buttons (they change state, they are
   not navigation), so the skin is neutralised here.

   SPECIFICITY, DELIBERATELY: the reset is (0,1,1) and every rule that repaints
   through it is written `.nv-rw-builder .nv-rwb-x` at (0,2,0), so it wins. A
   `:not(.nv-btn)` here would read better and be WRONG -- it lifts the reset to
   (0,2,1) and silently beats every one of those rules. The save button gets
   its CTA look back explicitly at the foot of this block instead.
   ========================================================================== */
.nv-cockpit .nv-rw-builder button { font-family: inherit !important; font-weight: 400 !important; letter-spacing: normal !important; text-transform: none !important; font-size: inherit !important; color: inherit !important; background: transparent !important; background-image: none !important; box-shadow: none !important; clip-path: none !important; border: 0 !important; border-radius: 0 !important; padding: 0 !important; }


/* While the box is fetching another build, dim it rather than leave it looking
   frozen. Short and subtle on purpose: the swap is usually faster than the
   transition, so on a quick connection this never visibly fires -- it exists
   for the slow one, where silence would read as a dead tile. */
.nv-cockpit .nv-rw-builder.is-swapping { opacity: .55; pointer-events: none; transition: opacity .12s ease; }

.nv-cockpit .nv-rw-builder { position: relative; margin: 14px 0 0; padding: 18px 18px 14px; border: 1px solid var(--nv-cta-bd, var(--ui-brand)); border-radius: 16px; background: radial-gradient(120% 90% at 8% 0%, color-mix(in srgb,var(--ui-brand) 10%,transparent), transparent 60%), linear-gradient(180deg, color-mix(in srgb,var(--ui-fg) 2%,transparent), color-mix(in srgb,var(--ui-fg) 0%,transparent)); }


/* The chip names the build being edited, the way Fieldwork's names the stop. */
.nv-cockpit .nv-rwb-tag { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 4px 11px; border: 1px solid var(--nv-bd, var(--ui-fg)); border-radius: 999px; font-size: .76rem; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.nv-cockpit .nv-rwb-tag.is-live { border-color: var(--nv-cta-bd, var(--ui-brand)); background: color-mix(in srgb,var(--ui-brand) 10%,transparent); }


.nv-cockpit .nv-rwb-live { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin: 11px 0 0; font-size: .84rem; }

.nv-cockpit .nv-rwb-livesub { opacity: .62; font-size: .8rem; }

/* An inline link in a hint is one line tall -- 18px, well under the 44px floor
   -- and there is no hover on a phone to make up for it. inline-block plus
   padding gives it a body without moving the text. */
.nv-cockpit .nv-rwb-more { display: inline-block; padding: 12px 4px; }


/* One generic selectable-card grid, same shape Fieldwork uses for its tiles. */
.nv-cockpit .nv-rw-builder .nv-wz-tile { display: block; width: 100%; text-align: left; padding: 11px 13px !important; border: 1px solid var(--nv-bd, var(--ui-fg)) !important; border-radius: 12px !important; cursor: pointer; transition: border-color .18s, background .18s; }

.nv-cockpit .nv-rw-builder .nv-wz-tile:hover { border-color: var(--nv-cta-bd, var(--ui-brand)) !important; }

.nv-cockpit .nv-rw-builder .nv-wz-tile.is-on { border-color: var(--nv-cta-bd, var(--ui-brand)) !important; background: color-mix(in srgb,var(--ui-brand) 10%,transparent) !important; }

.nv-cockpit .nv-rwb-badge { display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px; font-size: .66rem; text-transform: uppercase; letter-spacing: .06em; color: var(--nv-cta-bd, var(--ui-brand)); border: 1px solid var(--nv-cta-bd, var(--ui-brand)); }


/* A rule, as a sentence, with its controls on the right. */
.nv-cockpit .nv-rwb-quick { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 0 0 11px; }

.nv-cockpit .nv-rwb-qlbl { font-size: .72rem; text-transform: uppercase; letter-spacing: .09em; opacity: .5; }

.nv-cockpit .nv-rwb-rules { display: flex; flex-direction: column; gap: 7px; margin: 4px 0 0; }

.nv-cockpit .nv-rwb-rule { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; padding: 8px 11px; border: 1px solid var(--nv-bd, var(--ui-fg)); border-radius: 10px; }

.nv-cockpit .nv-rwb-rule.is-off { opacity: .5; }

.nv-cockpit .nv-rwb-ico { width: 24px; height: 24px; flex: none; object-fit: contain; image-rendering: pixelated; border-radius: 4px; }

/* No art on disk: a tinted initial, the same idea as nv_skill_art_fallback. */
.nv-cockpit .nv-rwb-ico-fb { display: inline-flex; align-items: center; justify-content: center; font-size: .72rem; font-weight: 700; color: var(--nv-cta-bd, var(--ui-brand)); border: 1px solid var(--nv-bd, var(--ui-fg)); background: color-mix(in srgb,var(--ui-brand) 10%,transparent); }

/* SCOPED, and it has to be. This restyled the SHARED .nv-wz-say for every
   wizard on any page that includes this partial -- the Automation page renders
   several -- so the Brain's line-height silently became everyone's. The
   scoping pattern this file already uses everywhere else (.nv-rw-builder X,
   specificity (0,2,0)) is the fix; it was simply missed on this one line. */
.nv-cockpit .nv-rw-builder .nv-wz-say { flex: 1 1 190px; min-width: 0; font-size: .84rem; line-height: 1.5; }

.nv-cockpit .nv-rwb-fired { font-size: .7rem; opacity: .55; white-space: nowrap; }

.nv-cockpit .nv-rw-builder .nv-rwb-mini:disabled { opacity: .3; cursor: not-allowed; }

.nv-cockpit .nv-rwb-num { margin-left: auto; display: inline-flex; gap: 4px; }

.nv-cockpit .nv-rw-builder .nv-rwb-mini { padding: 7px 10px !important; min-height: 44px; border: 1px solid var(--nv-bd, var(--ui-fg)) !important; border-radius: 8px !important; font-size: .78rem !important; cursor: pointer; }

.nv-cockpit .nv-rw-builder .nv-rwb-mini:hover { border-color: var(--nv-cta-bd, var(--ui-brand)) !important; }


/* The exact-numbers fold, same convention as Fieldwork's "Fine tune". */
.nv-cockpit .nv-rwb-tune { margin: 15px 0 0; border-top: 1px solid var(--nv-bd, var(--ui-fg)); padding-top: 12px; }

.nv-cockpit .nv-rwb-tune > summary { cursor: pointer; font-size: .78rem; text-transform: uppercase; letter-spacing: .09em; opacity: .7; padding: 9px 0; list-style: none; min-height: 44px; display: flex; align-items: center; }

.nv-cockpit .nv-rwb-tune > summary::-webkit-details-marker { display: none; }

.nv-cockpit .nv-rwb-tune > summary::before { content: "\25b8 "; display: inline-block; margin-right: 6px; transition: transform .2s; }

.nv-cockpit .nv-rwb-tune[open] > summary::before { transform: rotate(90deg); }


.nv-cockpit .nv-rwb-field { display: flex; flex-direction: column; gap: 4px; font-size: .76rem; }

.nv-cockpit .nv-rwb-field input,
.nv-cockpit .nv-rwb-field select { min-height: 44px; padding: 6px 9px; background: color-mix(in srgb,var(--ui-fg) 28%,transparent); border: 1px solid var(--nv-bd, var(--ui-fg)); border-radius: 7px; color: inherit; font-size: .82rem; max-width: 100%; }


.nv-cockpit .nv-rw-builder .nv-wz-back,
.nv-cockpit .nv-rw-builder .nv-wz-next { padding: 11px 19px !important; min-height: 44px; border: 1px solid var(--nv-bd, var(--ui-fg)) !important; border-radius: 999px !important; cursor: pointer; font-size: .86rem !important; }

.nv-cockpit .nv-rw-builder .nv-wz-next { border-color: var(--nv-cta-bd, var(--ui-brand)) !important; }

.nv-cockpit .nv-rw-builder .nv-wz-next:disabled { opacity: .38; cursor: not-allowed; }

.nv-cockpit .nv-rw-builder .nv-wz-back:hover,
.nv-cockpit .nv-rw-builder .nv-wz-next:hover:not(:disabled) { background: color-mix(in srgb,var(--ui-brand) 10%,transparent) !important; }

/* Put back what the reset above took off this one button: it is the box's call
   to action and should wear the site's CTA, same as every other one. */
.nv-cockpit .nv-rw-builder .nv-rwb-save { flex: none; font-family: var(--disp) !important; font-weight: 700 !important; letter-spacing: .06em !important; text-transform: uppercase !important; font-size: .84rem !important; min-height: 44px; padding: 12px 22px !important; color: var(--ui-fg) !important; cursor: pointer; background: linear-gradient(180deg, var(--ui-brand), var(--ui-brand)) !important; border-radius: 999px !important; }


@media (max-width: 420px) {

  .nv-cockpit .nv-rw-builder { padding: 13px 13px 12px; }

  .nv-cockpit .nv-rwb-tag { margin-left: 0; width: 100%; }

  /* .nv-wz-rail and .nv-wz-tiles were re-declared here, unscoped. The shared
     sheet already does both at 640px -- a wider breakpoint, so it is in force
     by the time this one opens -- and the only difference was a rail font of
     .68rem against everyone else's .7rem. That is drift, not a decision: the
     whole point of lib/nv_wizard.php is that the rail looks the same on all
     four pages. Removed; the shared values now apply here too. */
  .nv-cockpit .nv-rwb-num { margin-left: 0; width: 100%; }

  .nv-cockpit .nv-rw-builder .nv-rwb-save { width: 100%; order: 9; }

}

}

/* _base/cp-cp1.css */
@layer components{
/* Cockpit group cp1 (Standing Order): kit pieces inside the Cockpit wrapper. Tokens only. */
.nv-cockpit .nvk-callout, .nv-cockpit .nvk-empty { margin: var(--space-3) 0; }
.nv-cockpit .nv-so-hfilters .nvk-btn, .nv-cockpit .nv-so-hpager .nvk-btn { min-height: 44px; }
.nv-cockpit .nv-sec-row .nvk-btn, .nv-cockpit .nv-cp-sec-row .nvk-btn { margin-right: var(--space-1); }
.nv-cockpit .nv-cp-card-head .nvk-chip { margin-left: var(--space-2); vertical-align: middle; }
.nv-cockpit .nv-cp2-logline .nvk-chip { margin-left: var(--space-2); }
.nv-cockpit .nvk-btn .nvk-btn__label { color: var(--_fg); }
.nv-cockpit .nvk-btn--danger, .nv-cockpit .nvk-btn--danger:hover { color: var(--ui-bg); }
.nv-cockpit .nvk-btn--danger .nvk-btn__label, .nv-cockpit .nvk-btn--danger:hover .nvk-btn__label { color: var(--ui-bg) !important; }
}

/* _base/cp-cp2-legacy.css */
@layer legacy{
/* Fieldwork: the !important half of the old page-local <style>. The sitewide gold button skin in nirvana.css is !important inside the legacy layer, and for !important an EARLIER layer wins, so the rules that undo it must stay in legacy (the kit layers cannot beat it). Scoped under .nv-cockpit, so specificity decides, not order. */
.nv-cockpit .nv-cp-card.nv-fw-buildcard {
  overflow:visible!important
}
.nv-cockpit .nv-fw-builder button:where(:not([class*="nvk-"])) {
  font-family: inherit !important; font-weight: 400 !important;
  letter-spacing: normal !important; text-transform: none !important;
  font-size: inherit !important; color: inherit !important;
  background: transparent !important; background-image: none !important;
  box-shadow: none !important; clip-path: none !important;
  border: 0 !important; border-radius: 0 !important; padding: 0 !important;
}
.nv-cockpit .nv-fw-builder .nv-fwb-route-x {
  cursor: pointer; opacity: .5; font-size: .9rem !important; line-height: 1;
}
.nv-cockpit .nv-fw-orders {
  border: 0 !important; padding: 0 !important; margin: 0 !important;
  background: none !important; border-radius: 0 !important;
}
.nv-cockpit .nv-fw-builder .nv-fwb-res {
  display: flex; align-items: center; gap: 10px; width: 100%;
  padding: 8px !important; border: 1px solid transparent !important;
  border-radius: 10px !important; cursor: pointer; text-align: left;
  transition: border-color .18s, background .18s, transform .18s;
}
.nv-cockpit .nv-fw-builder .nv-fwb-res:hover {
  background: color-mix(in srgb, var(--ui-fg) 6%, transparent) !important;
  border-color: var(--ui-cta) !important; transform: translateY(-1px);
}
.nv-cockpit .nv-fw-builder .nv-fwb-here {
  margin: 12px 0 0; padding: 9px 14px !important; border-radius: 999px !important;
  cursor: pointer; border: 1px solid var(--ui-line) !important;
  font-size: .88rem !important; transition: border-color .18s, background .18s;
}
.nv-cockpit .nv-fw-builder .nv-fwb-here:hover {
  border-color: var(--ui-cta) !important; background: color-mix(in srgb, var(--ui-cta) 10%, transparent) !important;
}
.nv-cockpit .nv-fw-builder .nv-fwb-repeat {
  border-color: var(--ui-cta) !important;
  background: color-mix(in srgb, var(--ui-cta) 10%, transparent) !important; margin-right: 8px;
}
.nv-cockpit .nv-fw-builder .nv-fwb-repeat:hover {
  background: color-mix(in srgb, var(--ui-cta) 18%, transparent) !important;
}
.nv-cockpit .nv-fw-builder .nv-fwb-chip-btn {
  display: flex; align-items: center; gap: 9px;
  padding: 7px 11px !important; cursor: pointer; text-align: left;
}
.nv-cockpit .nv-fw-builder .nv-fwb-dial {
  display: flex; flex-direction: column; gap: 5px; padding: 12px !important;
  border-radius: 13px !important; border: 1px solid var(--ui-line) !important;
  cursor: pointer; background: color-mix(in srgb, var(--ui-fg) 2%, transparent) !important; text-align: left;
  transition: border-color .2s, background .2s;
}
.nv-cockpit .nv-fw-builder .nv-fwb-dial.is-on {
  border-color: var(--ui-cta) !important; background: color-mix(in srgb, var(--ui-cta) 13%, transparent) !important;
}
@media (max-width: 420px) {
.nv-cockpit .nv-fw-settingsbox .nv-btn,
.nv-cockpit .nv-fw-settingsbox .nv-cp2-btn2,
.nv-cockpit .nv-fw-settingsbox button {
  min-height: 44px !important; min-width: 44px; display: inline-flex !important;
  align-items: center; justify-content: center;
  padding-left: 14px !important; padding-right: 14px !important;
}
.nv-cockpit .nv-fw2-log .nv-cp2-btn2 {
  min-height: 44px !important; padding-left: 16px !important; padding-right: 16px !important;
}
}
.nv-cockpit .nv-fwb-braincell .nv-wz-tile {
  width: 100%; padding-right: 40px !important;
}
@media (max-width: 420px) {
.nv-cockpit .nv-fwb-braincell .nv-wz-tile {
  padding-right: 50px !important;
}
}
.nv-cockpit .nv-fw-builder .nv-fwb-send:not([class*="nvk-"]) {
  flex: none;
  /* Put back what the reset above took off this one button: it is the page's
  call to action and should wear the site's CTA, same as every other one. */
  font-family: var(--disp) !important; font-weight: 700 !important;
  letter-spacing: 1.2px !important; text-transform: uppercase !important;
  font-size: 12.5px !important; color: var(--ui-cta-fg) !important;
  padding: 11px 22px !important;
  background: linear-gradient(135deg, var(--gold-hi), var(--gold), var(--gold-deep)) !important;
  box-shadow: 0 5px 20px rgba(var(--gold-bright-rgb), .24) !important;
  clip-path: polygon(8px 0, 100% 0, calc(100% - 8px) 100%, 0 100%) !important;
}
@media (max-width: 420px) {
.nv-cockpit .nv-fw-builder .nv-fwb-hour span {
  padding: 11px 18px !important;
}
.nv-cockpit .nv-fw-builder .nv-fwb-send:not([class*="nvk-"]) {
  flex: 1 1 100% !important; width: 100% !important;
}
}
}

/* _base/cp-cp2.css */
@layer components{
/* Player Cockpit > Automation > Fieldwork (register A3, 2026-10-15): the page-local <style> block of _companion_fieldwork.php, moved here with tokens in place of literals. Scoped under .nv-cockpit. The rules that need !important to out-rank the sitewide button skin live in cp-cp2-legacy.css. */
/* Companion / Fieldwork -- P1 de-crowd (2026-08-12). Scoped to .nv-fw-*
   only, exactly like _companion_escort.php's own scoped block -- cannot
   affect any other control/* page. */
/* P3 rework: the page is one readable column, not a 4-track card grid.
   The old .nv-fw-panel divs were single children of .nv-cp-grid
   (repeat(auto-fill,minmax(240px,1fr))), so on a 1280px desktop the ENTIRE
   page rendered inside one ~258px track with three empty columns beside it
   -- measured, not guessed. A journey reads top-to-bottom, so it gets a
   real column with a comfortable measure. */
/* FULL WIDTH, like the tier banner directly above it (2026-09-09).
   The 900px cap is left over from the linear-journey rework, when this column
   was one of several things on the page and a narrow measure kept it readable.
   The page is now the tier seal, this box and History -- so the cap did nothing
   but indent the box 75px inside a 1049px cockpit and make it look like a panel
   inside a panel. Below 900px it never applied anyway, which is why the phone
   looked right while the desktop did not. */
.nv-cockpit .nv-fw-journey {
  margin:0 auto;display:flex;flex-direction:column;gap:14px
}
.nv-cockpit .nv-fw-journey .nv-cp-card {
  margin:0
}
/* Hero: one per state, visually the loudest thing on the page. Tints are
   per-state so "live" and "rewards waiting" are distinguishable at a glance
   without reading a word. */
.nv-cockpit .nv-fw-hero {
  border-radius:12px;padding:16px 18px;border:1px solid var(--line);background:color-mix(in srgb, var(--ui-fg) 2%, transparent)
}
.nv-cockpit .nv-fw-hero--claim {
  border-color:color-mix(in srgb, var(--ui-cta) 45%, transparent);background:linear-gradient(180deg,color-mix(in srgb, var(--ui-cta) 10%, transparent),color-mix(in srgb, var(--ui-cta) 2%, transparent))
}
.nv-cockpit .nv-fw-hero--live {
  border-color:color-mix(in srgb, var(--ui-ok) 40%, transparent)
}
.nv-cockpit .nv-fw-hero--queued {
  border-color:color-mix(in srgb, var(--ui-brand) 40%, transparent)
}
.nv-cockpit .nv-fw-hero--blocked {
  border-color:color-mix(in srgb, var(--ui-warn) 40%, transparent)
}
.nv-cockpit .nv-fw-claimtotal {
  font-family:var(--display,inherit);font-size:26px;font-weight:700;color:var(--ui-cta);line-height:1.15
}
/* Celebration: a single soft pulse on the claim total. CSS keyframes (never
   SMIL) so the sitewide prefers-reduced-motion kill switch reaches it. */
@keyframes nv-fw-claimpop{0%{transform:scale(.96);opacity:.5}60%{transform:scale(1.03)}100%{transform:scale(1);opacity:1}}
.nv-cockpit .nv-fw-claimtotal {
  animation:nv-fw-claimpop .5s ease-out
}
.nv-cockpit .nv-fw-steps {
  display:flex;flex-direction:column;gap:12px
}
.nv-cockpit .nv-fw-step {
  display:flex;gap:12px;align-items:flex-start
}
.nv-cockpit .nv-fw-stepnum {
  flex:0 0 auto;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:700;background:color-mix(in srgb, var(--ui-brand) 14%, transparent);border:1px solid color-mix(in srgb, var(--ui-brand) 40%, transparent);color:var(--ui-link)
}
.nv-cockpit .nv-fw-stepbody {
  flex:1;min-width:0
}
.nv-cockpit .nv-fw-steplabel {
  font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);margin-bottom:5px
}
/* Chips: label-wrapped radios. The input is visually hidden but still real,
   so keyboard/screen-reader/no-JS all keep working. 44px min target height
   is the site's mobile standard. */
.nv-cockpit .nv-fw-chips {
  display:flex;gap:8px;flex-wrap:wrap
}
.nv-cockpit .nv-fw-chip {
  position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:44px;min-width:56px;
  padding:6px 14px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:13px;user-select:none
}
.nv-cockpit .nv-fw-chip input {
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0
}
.nv-cockpit .nv-fw-chip:has(input:checked) {
  border-color:color-mix(in srgb, var(--ui-brand) 55%, transparent);background:color-mix(in srgb, var(--ui-brand) 12%, transparent);color:var(--ui-link);font-weight:600
}
.nv-cockpit .nv-fw-chip:has(input:focus-visible) {
  outline:2px solid var(--ui-link);outline-offset:2px
}
.nv-cockpit .nv-fw-selchip {
  display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:8px;padding:8px 12px;
  background:color-mix(in srgb, var(--ui-fg) 3%, transparent);min-height:44px;box-sizing:border-box
}
.nv-cockpit .nv-fw-estline {
  font-size:11.5px;color:var(--muted2);margin-top:8px;line-height:1.5
}
/* .nv-fw-subtabs/.nv-fw-cbmode (P3: the drafters' Objective/Place mode
   toggle) are gone -- Workshop merge, 2026-08-18: one form replaced the
   two-tab/two-form drafter, so there's no longer a local mode switch to
   style. */
/* P6 (de-crowd, 2026-08-12): the two most-repeated inline-style patterns on
   this page, hoisted into real classes -- 19 field-label wrappers and 8
   section-eyebrow headers, both previously pasted as full inline style=""
   strings at every call site. Deliberately NOT a 100% inline-style purge
   (the plan's own instruction) -- the ~40 remaining inline styles are
   value-driven (computed widths/colors per render) or singletons, where a
   class would add a layer of indirection for zero real gain. Per-instance
   overrides (a few fields carry their own max-width) stay as a small
   trailing style="" alongside the class, same as any other CSS+override mix
   on this site. */
.nv-cockpit .nv-fw-field {
  display:flex;flex-direction:column;gap:3px;font-size:11px;color:var(--muted2)
}
/* A field and its Off switch travel together. See $numField's own note: the
   switch has to be its own <label> to be tappable, and being its own label made
   it a sibling that wrapped away from the number it belongs to. */
.nv-cockpit .nv-fw-fieldwrap {
  display:inline-flex;align-items:flex-end;gap:6px
}
/* Its own label, so the word beside the box toggles it -- see $numField's note.
   Unconditional, not mobile-only: being tappable is not a screen size. */
.nv-cockpit .nv-ld-offbox {
  display:inline-flex;align-items:center;gap:6px;min-height:44px;
  padding:0 8px 0 2px;font-size:11px;color:var(--muted)
}
.nv-cockpit .nv-fw-sechead {
  font-size:12px;font-weight:600;margin-bottom:6px;color:var(--muted2)
}
/* S3 (2026-08-16): ONE row shape for every kind of target. The picker used to
   carry three -- an <a> with a chevron, an <a> without one, and a <div> whose
   click was buried in a third sub-line -- for a single decision. min-height is
   the mobile-arc 44px tap floor. */
.nv-cockpit .nv-fw-picker {
  display:flex;flex-direction:column;gap:6px;margin-top:4px
}
.nv-cockpit .nv-fw-target-row {
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  min-height:44px;padding:9px 12px;border:1px solid var(--line);border-radius:8px;
  text-decoration:none;color:inherit;cursor:pointer
}
.nv-cockpit .nv-fw-target-row:hover {
  border-color:color-mix(in srgb, var(--ui-brand) 45%, transparent);background:color-mix(in srgb, var(--ui-brand) 5%, transparent)
}
.nv-cockpit .nv-fw-target-row.is-pinned {
  border-style:dashed
}
.nv-cockpit .nv-fw-target-row.is-blocked {
  opacity:.5;cursor:default
}
.nv-cockpit .nv-fw-target-row.is-blocked:hover {
  border-color:var(--line);background:none
}
.nv-cockpit .nv-fw-target-main {
  display:flex;flex-direction:column;gap:2px;min-width:0
}
.nv-cockpit .nv-fw-target-name {
  font-weight:600;font-size:13px
}
.nv-cockpit .nv-fw-target-sub {
  font-size:11px;color:var(--muted)
}
.nv-cockpit .nv-fw-target-mine {
  font-size:10px;font-weight:400;color:var(--muted2);border:1px solid var(--line);border-radius:4px;padding:0 4px;margin-left:4px
}
.nv-cockpit .nv-fw-target-right {
  display:flex;align-items:center;gap:8px;flex:0 0 auto;text-align:right
}
.nv-cockpit .nv-fw-target-badge {
  font-size:10.5px;color:var(--ui-ok);white-space:nowrap
}
.nv-cockpit .nv-fw-target-danger {
  font-size:10.5px;white-space:nowrap
}
.nv-cockpit .nv-fw-target-cta {
  font-size:11px;color:var(--muted);white-space:nowrap
}
/* Two independent hides. Both are pure class toggles -- with JS off neither
   applies, so every row is visible and every row is clickable. */
.nv-cockpit .nv-fw-picker.nv-fw-hideblocked .nv-fw-target-row.is-blocked {
  display:none
}
.nv-cockpit .nv-fw-picker .nv-fw-target-row.nv-fw-nomatch {
  display:none
}
@media (max-width:560px) {
.nv-cockpit .nv-fw-target-row {
  flex-direction:column;align-items:stretch;gap:6px
}
.nv-cockpit .nv-fw-target-right {
  justify-content:space-between;text-align:left
}
}
/* Phase 4 continuation (2026-08-23): S8's card-language rollout gives every
   .nv-cp-card overflow:hidden (it clips a decorative ::before sigil glyph).
   This card holds #nvWsMapResults, a live map-search dropdown
   (position:absolute;top:100%, up to 260px tall) -- inheriting hidden
   overflow would clip results for any search near the card's bottom edge.
   Same fix, same reasoning, same !important requirement as
   .nv-comp-poolcard in _companion_escort.php (that file's own comment has
   the full specificity explanation for why !important, not just a compound
   selector, is required once the S8 rule is scoped through an :is() list
   containing an ID). */
/* ===== THE ERRAND COMPOSER (2026-09-08) =========================
   Replaces the catalogue's facet strip, rail, card board and pager. Sized for
   a phone first: everything below wraps, nothing sets a min-width that would
   push the page sideways at 380px. */
/* Go Again is gone (2026-09-09): the Route Builder opens pre-filled with the
   last run, so a repeat is four taps of Next rather than a second code path.
   Its rules are removed rather than left orphaned -- dead CSS is what makes a
   sheet unreadable, and this one is 1,200 lines long. */
.nv-cockpit .nv-fw3-quota {
  margin: 10px 0 0; font-size: .84rem; opacity: .82;
}
.nv-cockpit .nv-fw3-quota-out {
  opacity: 1;
}
.nv-cockpit .nv-fw3-quota-out a {
  text-decoration: underline;
}
/* The composer, folded away until a player wants somewhere new. Open by
   default only when they have nothing saved -- a first run should land
   straight in it rather than behind a disclosure they must discover. */
.nv-cockpit .nv-fw3-compose {
  margin: 16px 0 0; border: 1px solid var(--ui-line);
  border-radius: 14px; background: color-mix(in srgb, var(--ui-fg) 2%, transparent);
}
.nv-cockpit .nv-fw3-compose-sum {
  padding: 12px 14px; cursor: pointer; font-weight: 600; list-style: none;
}
.nv-cockpit .nv-fw3-compose-sum::-webkit-details-marker {
  display: none;
}
.nv-cockpit .nv-fw3-compose-hint {
  font-weight: 400; opacity: .6; margin-left: 6px; font-size: .86rem;
}
.nv-cockpit .nv-fw3-form {
  padding: 0 14px 14px;
}
.nv-cockpit .nv-fw3-searchwrap {
  position: relative;
}
.nv-cockpit .nv-fw3-search {
  width: 100%; box-sizing: border-box; padding: 11px 13px;
  border-radius: 10px; border: 1px solid var(--ui-line);
  background: color-mix(in srgb, var(--ui-sunken) 75%, transparent); color: inherit; font-size: 1rem;
}
.nv-cockpit .nv-fw3-results {
  position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 4px);
  margin: 0; padding: 4px; list-style: none; max-height: 320px; overflow-y: auto;
  border: 1px solid var(--ui-line); border-radius: 10px;
  background: var(--ui-surface); box-shadow: 0 12px 32px color-mix(in srgb, var(--ui-sunken) 100%, transparent);
}
.nv-cockpit .nv-fw3-res {
  display: flex; align-items: center; gap: 10px; width: 100%; padding: 9px 10px;
  background: none; border: 0; border-radius: 8px; color: inherit; font: inherit;
  cursor: pointer; text-align: left;
}
.nv-cockpit .nv-fw3-res:hover {
  background: color-mix(in srgb, var(--ui-fg) 7%, transparent);
}
.nv-cockpit .nv-fw3-res-ico {
  font-size: 1.05rem;
}
.nv-cockpit .nv-fw3-res-txt {
  display: flex; flex-direction: column; min-width: 0;
}
.nv-cockpit .nv-fw3-res-sub {
  font-size: .78rem; opacity: .68;
}
.nv-cockpit .nv-fw3-here {
  margin: 10px 0 0;
}
.nv-cockpit .nv-fw3-herebtn {
  padding: 8px 12px; border-radius: 999px; cursor: pointer;
  border: 1px dashed var(--ui-line); background: none; color: inherit; font: inherit;
}
.nv-cockpit .nv-fw3-sheet {
  margin-top: 14px;
}
/* The sentence is the interface: the player reads their own errand back before
   committing to it. Deliberately larger than the controls under it. */
.nv-cockpit .nv-fw3-sentence {
  margin: 0 0 12px; font-size: 1.06rem; line-height: 1.5;
}
.nv-cockpit .nv-fw3-lbl {
  margin: 12px 0 6px; font-size: .82rem; text-transform: uppercase;
  letter-spacing: .04em; opacity: .62;
}
.nv-cockpit .nv-fw3-cap {
  text-transform: none; letter-spacing: 0; opacity: .8; margin-left: 6px;
}
.nv-cockpit .nv-fw3-species {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.nv-cockpit .nv-fw3-chip {
  display: flex; align-items: stretch; border-radius: 10px;
  border: 1px solid var(--ui-line); overflow: hidden;
}
.nv-cockpit .nv-fw3-chip-on {
  border-color: var(--ui-cta); background: color-mix(in srgb, var(--ui-cta) 10%, transparent);
}
.nv-cockpit .nv-fw3-chip-btn {
  display: flex; flex-direction: column; gap: 1px; padding: 7px 11px;
  background: none; border: 0; color: inherit; font: inherit; cursor: pointer; text-align: left;
}
.nv-cockpit .nv-fw3-chip-sub {
  font-size: .72rem; opacity: .62;
}
.nv-cockpit .nv-fw3-num {
  width: 68px; padding: 6px 8px; border: 0; border-left: 1px solid var(--ui-line);
  background: color-mix(in srgb, var(--ui-sunken) 84%, transparent); color: inherit; font: inherit; text-align: center;
}
.nv-cockpit .nv-fw3-hours {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.nv-cockpit .nv-fw3-hour {
  position: relative;
}
.nv-cockpit .nv-fw3-hour input {
  position: absolute; opacity: 0; width: 0; height: 0;
}
.nv-cockpit .nv-fw3-hour span {
  display: inline-block; padding: 8px 15px; border-radius: 999px;
  border: 1px solid var(--ui-line); cursor: pointer;
}
.nv-cockpit .nv-fw3-hour input:checked + span {
  border-color: var(--ui-cta);
  background: color-mix(in srgb, var(--ui-cta) 16%, transparent);
}
/* Locked options are SHOWN, not hidden. A tier ladder that hides what it sells
   cannot sell it -- and a player who cannot see the next rung has no reason to
   want it. */
.nv-cockpit .nv-fw3-locked {
  opacity: .45;
}
.nv-cockpit .nv-fw3-locked span,
.nv-cockpit .nv-fw3-locked .nv-fw3-chip-btn {
  cursor: not-allowed;
}
.nv-cockpit .nv-fw3-upsell {
  margin: 8px 0 0; font-size: .8rem; opacity: .72;
}
/* MULTI-LEG ROUTES (2026-09-09) -- committed stops and the add-stop control. */
.nv-cockpit .nv-fw3-stops {
  list-style: none; margin: 0 0 12px; padding: 0; display: flex;
  flex-direction: column; gap: 6px;
}
.nv-cockpit .nv-fw3-stop {
  display: flex; align-items: center; gap: 10px; padding: 8px 11px;
  border: 1px solid var(--ui-line); border-left: 3px solid var(--ui-cta);
  border-radius: 8px; background: color-mix(in srgb, var(--ui-cta) 7%, transparent); font-size: .9rem;
}
.nv-cockpit .nv-fw3-stop-txt {
  flex: 1; min-width: 0; overflow-wrap: anywhere;
}
.nv-cockpit .nv-fw3-stop-x {
  flex: none; border: 0; background: none; color: inherit; opacity: .55;
  cursor: pointer; font-size: 1rem; line-height: 1; padding: 2px 4px;
}
.nv-cockpit .nv-fw3-stop-x:hover {
  opacity: 1;
}
.nv-cockpit .nv-fw3-stopbadge {
  display: inline-block; margin-left: 6px; padding: 1px 7px; border-radius: 999px;
  border: 1px solid var(--ui-cta); background: color-mix(in srgb, var(--ui-cta) 14%, transparent);
  font-size: .72rem; font-weight: 600; vertical-align: middle; white-space: nowrap;
}
/* PER-STOP SETTINGS (2026-09-09) */
.nv-cockpit .nv-fw3-stopcfgs {
  margin: 10px 0 0; display: flex; flex-direction: column; gap: 8px;
}
.nv-cockpit .nv-fw3-stopcfg-head {
  margin: 0 0 4px; font-size: .78rem; text-transform: uppercase;
  letter-spacing: .06em; opacity: .6;
}
.nv-cockpit .nv-fw3-stopcfg {
  border: 1px solid var(--ui-line); border-radius: 9px;
  background: color-mix(in srgb, var(--ui-fg) 2%, transparent);
}
.nv-cockpit .nv-fw3-stopcfg-sum {
  padding: 9px 12px; cursor: pointer; font-size: .88rem;
  list-style: none;
}
.nv-cockpit .nv-fw3-stopcfg-sum::-webkit-details-marker {
  display: none;
}
.nv-cockpit .nv-fw3-stopcfg-hint {
  opacity: .6; font-size: .8rem; margin-left: 6px;
}
.nv-cockpit .nv-fw3-stopcfg-body {
  padding: 0 12px 12px;
}
.nv-cockpit .nv-fw-fieldrow {
  display: flex; flex-wrap: wrap; gap: 10px; margin: 4px 0 10px;
}
/* REHEARSAL (2026-09-09) -- three states, never two: the unknown row is the
   point of the feature, so it gets a colour of its own rather than reading as
   a failure. */
.nv-cockpit .nv-pb-test {
  border: 1px solid var(--ui-line); background: transparent; color: inherit;
  border-radius: 999px; font-size: .72rem; padding: 1px 9px; cursor: pointer; margin-right: 4px;
}
.nv-cockpit .nv-pb-test:hover {
  border-color: var(--ui-cta);
}
.nv-cockpit .nv-pb-rehearsal {
  margin: 6px 0 0; padding: 8px 11px; border-radius: 8px;
  border: 1px solid var(--ui-line); background: color-mix(in srgb, var(--ui-fg) 3%, transparent); font-size: .82rem;
}
.nv-cockpit .nv-pb-rh-verdict {
  margin: 0 0 5px; font-weight: 600;
}
.nv-cockpit .nv-pb-rh-list {
  list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px;
}
.nv-cockpit .nv-pb-rh-pass {
  color: var(--ui-ok);
}
.nv-cockpit .nv-pb-rh-fail {
  opacity: .72;
}
.nv-cockpit .nv-pb-rh-unknown {
  color: var(--ui-warn);
}
.nv-cockpit .nv-fw3-route {
  margin: 12px 0 0;
}
.nv-cockpit .nv-fw3-addstop {
  width: 100%; padding: 9px 12px; border-radius: 9px; cursor: pointer;
  border: 1px dashed var(--ui-cta); background: transparent; color: inherit;
  font-size: .9rem;
}
.nv-cockpit .nv-fw3-addstop:hover {
  background: color-mix(in srgb, var(--ui-cta) 10%, transparent);
}
.nv-cockpit .nv-fw3-budget {
  opacity: .65; font-size: .82rem;
}
.nv-cockpit .nv-fw3-preview {
  margin: 14px 0 0; font-size: .92rem; min-height: 1.2em;
}
.nv-cockpit .nv-fw3-warn {
  color: var(--ui-warn);
}
.nv-cockpit .nv-fw3-send {
  margin-top: 12px; width: 100%;
}
@media (max-width: 420px) {
.nv-cockpit .nv-fw3-chip-btn {
  padding: 7px 9px;
}
.nv-cockpit .nv-fw3-num {
  width: 58px;
}
}
/* ===== THE ROUTE BUILDER (2026-09-09) ===========================
   One card, four steps, pictures instead of fields. It replaces the composer,
   the recipes rail and Go Again all at once, so everything a player needs to
   start a run is inside this one box and nothing else on the idle page
   competes with it.

   Motion: every transition here is a real CSS animation or transition, never
   rAF, so the sitewide reduced-motion kill-switch (nirvana.css) silences all
   of it for free. The step change reuses nvcdxTurn, the page-turn keyframe
   the codex chapters on this same page already animate with -- one vocabulary
   of movement, not two.

   Sized phone-first: the tile grids are auto-fill so they collapse to one
   column at 380px without a media query, and nothing sets a min-width. */
/* THE SITEWIDE BUTTON SKIN HAS TO BE UNDONE HERE, EXPLICITLY.
   nirvana.css:311 styles every bare <button> as a gold CTA slab -- gradient,
   uppercase Cinzel, clip-path, 11px 22px padding -- and it does so with
   !important on each of those properties. Specificity cannot beat that, so a
   quiet tile written the ordinary way renders as a gold button; this page's own
   P1 note (line 245) records the same trap being dodged by using <a> instead.
   These are real buttons -- they change state, they are not navigation -- so
   the skin is neutralised here instead, and every rule below that repaints one
   of these properties says !important for the same reason.

   SPECIFICITY, DELIBERATELY: the reset is (0,1,1) and every rule that repaints
   through it is written `.nv-fw-builder .nv-fwb-x` at (0,2,0), so it wins. A
   `:not(.nv-btn)` here would read better and be WRONG -- it lifts the reset to
   (0,2,1) and silently beats every one of those rules. Send them off gets its
   CTA look back explicitly at the foot of this block instead. */
/* NOT overflow:hidden. It was, and it clipped the search dropdown -- which is
   absolutely positioned inside this card and is TALLER than the card is on step
   one, so five of eight results were cut off at the border and unreachable at
   any width. A rounded corner already clips its own background; overflow was
   buying nothing and cost the step its results. */
.nv-cockpit .nv-fw-builder {
  margin: 16px 0 0; border: 1px solid var(--ui-cta);
  border-radius: 16px; padding: 16px; position: relative;
  background:
  radial-gradient(120% 90% at 8% 0%, color-mix(in srgb, var(--ui-cta) 13%, transparent), transparent 62%),
  linear-gradient(180deg, color-mix(in srgb, var(--ui-fg) 4%, transparent), color-mix(in srgb, var(--ui-fg) 1%, transparent));
}
/* --- head: who is going, and the route as it grows --- */
.nv-cockpit .nv-fwb-route {
  list-style: none; display: flex; flex-wrap: wrap; gap: 6px;
  margin: 0 0 0 auto; padding: 0;
}
.nv-cockpit .nv-fwb-route li {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 9px; border-radius: 999px; font-size: .78rem;
  border: 1px solid var(--ui-line); background: color-mix(in srgb, var(--ui-fg) 4%, transparent);
  animation: nvcdxTurn .35s ease both;
}
.nv-cockpit .nv-fwb-route li.is-now {
  border-color: var(--ui-cta);
  background: color-mix(in srgb, var(--ui-cta) 14%, transparent);
}
.nv-cockpit .nv-fwb-route-x:hover {
  opacity: 1;
}
/* --- rail: which of the four steps we are on --- */
/* --- steps: exactly one in flow at a time --- */
/* THE STEP IS A STACKING CONTEXT, AND THAT IS WHY IT NEEDS A Z-INDEX.
   nvcdxTurn animates `transform`, and `both` keeps its final state forever --
   so an element that has ever played it is permanently a stacking context. The
   search dropdown lives inside step one and asks for z-index 40; that 40 is
   trapped in here, the whole step paints at 0 in DOM order, and the foot, which
   comes after it, drew ITS OWN Next button over the third search result. Only
   with motion enabled -- with prefers-reduced-motion the animation is killed,
   the stacking context never forms and the bug vanishes, which is exactly the
   kind of difference nobody tests for. Ordering the two explicitly is immune to
   both. */
/* A FLEX ROW, NOT A FLOAT. The "edit on ..." link used to be float:right, and a
   float does two things here, both wrong: it overlaps the block that follows it,
   so the link landed on top of the first companion tile; and a grid container
   establishes its own formatting context, which by spec may not overlap a float
   -- so the tile grid SHRANK to half the card to get out of its way. One is
   visible in a screenshot, the other reads as a deliberate design. */
/* The boss-quarry note under the target row. Quiet, not alarming: it states a
   consequence of a choice the player made deliberately. */
.nv-cockpit .nv-fwb-bossnote {
  margin: 8px 0 0; font-size: .8rem; opacity: .82;
  color: var(--ui-cta);
}
/* What "Best in their bag" would pick, named on the card. Quieter than the
   blurb above it -- it is a fact about this character, not a description of
   the choice. */
.nv-cockpit .nv-fwb-supnow {
  display: block; margin-top: 7px; padding-top: 6px;
  border-top: 1px dashed var(--ui-line);
  font-size: .74rem; line-height: 1.45; color: var(--ui-cta); opacity: .9;
}
/* The live card's orders reuse .nv-fw-builder purely for the tile styling and
   the bare-<button> reset -- it must not also draw the builder's own card box
   INSIDE a card that already has one. */
/* --- step 1: the search, answering in pictures --- */
.nv-cockpit .nv-fwb-searchwrap {
  position: relative;
}
.nv-cockpit .nv-fwb-search {
  width: 100%; box-sizing: border-box; padding: 12px 14px;
  border-radius: 12px; border: 1px solid var(--ui-line);
  background: color-mix(in srgb, var(--ui-sunken) 66%, transparent); color: inherit; font: inherit;
}
.nv-cockpit .nv-fwb-search:focus {
  outline: none; border-color: var(--ui-cta);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-cta) 16%, transparent);
}
.nv-cockpit .nv-fwb-results {
  position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 6px);
  list-style: none; margin: 0; padding: 6px; overflow: auto;
  /* Never taller than half the phone in hand: 340px of dropdown on an 844px
  screen leaves the list running under the thumb bar. */
  max-height: min(340px, 52vh);
  border-radius: 12px; border: 1px solid var(--ui-line);
  background: var(--ui-surface); box-shadow: 0 18px 40px color-mix(in srgb, var(--ui-sunken) 100%, transparent);
  display: grid; grid-template-columns: repeat(auto-fill, minmax(148px, 1fr)); gap: 6px;
}
/* `display:grid` above beats the UA's `[hidden]{display:none}`, so the closed
   dropdown rendered as an empty bar under the search box until this said so.
   Any rule here that sets `display` on something the JS hides needs the pair. */
.nv-cockpit .nv-fwb-results[hidden] {
  display: none;
}
.nv-cockpit .nv-fwb-res-txt {
  display: flex; flex-direction: column; min-width: 0;
}
.nv-cockpit .nv-fwb-res-txt strong {
  overflow-wrap: anywhere;
}
.nv-cockpit .nv-fwb-res-sub {
  font-size: .74rem; opacity: .64;
}
/* The repeat button is the same pill as "Right here", one shade louder: it is
   the shortest path on the page for anyone who farms the same thing daily. */
/* Art boxes. Sprites vary from 37x35 to 207x202, so the BOX is fixed and
   object-fit does the letterboxing -- the same contract .nv-cp2-art keeps. */
.nv-cockpit .nv-fwb-art {
  flex: none; width: 46px; height: 46px; border-radius: 9px;
  display: flex; align-items: center; justify-content: center; overflow: hidden;
  background: color-mix(in srgb, var(--ui-fg) 5%, transparent);
}
.nv-cockpit .nv-fwb-art img {
  max-width: 100%; max-height: 100%; object-fit: contain;
}
.nv-cockpit .nv-fwb-art.is-map {
  width: 62px; height: 46px;
}
.nv-cockpit .nv-fwb-art.is-fb {
  font-weight: 700; font-size: 1.05rem;
  background: hsl(var(--fb-h, 210) 44% 26%); color: hsl(var(--fb-h, 210) 70% 86%);
}
/* --- step 2: species chips, now with faces --- */
.nv-cockpit .nv-fwb-mobs {
  display: flex; flex-wrap: wrap; gap: 9px;
}
.nv-cockpit .nv-fwb-chip {
  display: flex; align-items: stretch; border-radius: 12px;
  border: 1px solid var(--ui-line); overflow: hidden;
  transition: border-color .18s, background .18s, transform .18s;
}
.nv-cockpit .nv-fwb-chip:hover {
  transform: translateY(-1px);
}
.nv-cockpit .nv-fwb-chip.is-on {
  border-color: var(--ui-cta); background: color-mix(in srgb, var(--ui-cta) 10%, transparent);
}
.nv-cockpit .nv-fwb-chip.is-locked {
  opacity: .42;
}
.nv-cockpit .nv-fwb-chip.is-locked .nv-fwb-chip-btn {
  cursor: not-allowed;
}
.nv-cockpit .nv-fwb-chip-txt {
  display: flex; flex-direction: column; gap: 1px; min-width: 0;
}
.nv-cockpit .nv-fwb-chip-sub {
  font-size: .72rem; opacity: .62;
}
.nv-cockpit .nv-fwb-num {
  width: 70px; padding: 6px 8px; border: 0;
  border-left: 1px solid var(--ui-line); background: color-mix(in srgb, var(--ui-sunken) 72%, transparent);
  color: inherit; font: inherit; text-align: center;
}
.nv-cockpit .nv-fwb-hours {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.nv-cockpit .nv-fwb-hour {
  position: relative;
}
.nv-cockpit .nv-fwb-hour input {
  position: absolute; opacity: 0; width: 0; height: 0;
}
.nv-cockpit .nv-fwb-hour span {
  display: inline-block; padding: 8px 16px; border-radius: 999px;
  border: 1px solid var(--ui-line); cursor: pointer; font-size: .88rem;
  transition: border-color .18s, background .18s;
}
.nv-cockpit .nv-fwb-hour input:checked + span {
  border-color: var(--ui-cta);
  background: color-mix(in srgb, var(--ui-cta) 16%, transparent);
}
.nv-cockpit .nv-fwb-hour input:focus-visible + span {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-cta) 22%, transparent);
}
.nv-cockpit .nv-fwb-hour.is-locked {
  opacity: .45;
}
.nv-cockpit .nv-fwb-hour.is-locked span {
  cursor: not-allowed;
}
.nv-cockpit .nv-fwb-preview {
  margin: 14px 0 0; font-size: .92rem; min-height: 1.2em;
}
.nv-cockpit .nv-fwb-preview.is-warn {
  color: var(--ui-warn);
}
/* --- steps 3 and 4: tiles --- */
/* --- step 5: the three rows that say who else is involved --- */
.nv-cockpit .nv-fw-builder .nv-fwb-editlink {
  text-transform: none; letter-spacing: 0;
  margin-left: auto; font-size: .78rem; opacity: .8;
  /* The rule is drawn by text-decoration, not border-bottom, because the tap
  padding below has to sit INSIDE the box: a border on a padded box draws at
  the edge of the padding, which put a dotted line across the top of the tile
  underneath. Underline follows the text instead. */
  text-decoration: underline dotted; text-underline-offset: 4px;
  /* 44px of thumb. It measured 21px -- half the floor every other control on
  this card holds to -- and it is the one thing here that leaves the page. */
  padding: 13px 0;
}
.nv-cockpit .nv-fw-builder .nv-fwb-editlink:hover {
  opacity: 1; color: var(--ui-cta);
}
.nv-cockpit .nv-fwb-none {
  margin: 0 0 4px; font-size: .88rem; line-height: 1.5; opacity: .85;
}
.nv-cockpit .nv-fwb-none a {
  text-decoration: underline;
}
.nv-cockpit .nv-fwb-livedot {
  display: inline-block; margin-left: 8px; font-size: .78rem; color: var(--ui-ok);
}
/* The trip, inside a run's report: one line per stop, with its own kill split. */
.nv-cockpit .nv-fw2-rp-legs {
  display: flex; flex-direction: column; gap: 6px; margin: 4px 0 10px;
}
.nv-cockpit .nv-fw2-rp-leg {
  font-size: .86rem; line-height: 1.45;
}
.nv-cockpit .nv-fw2-rp-legsplit {
  margin: 2px 0 0 20px; opacity: .8;
}
.nv-cockpit .nv-fwb-none.nv-fwb-bad {
  color: var(--ui-warn); opacity: 1;
}
/* History: filters, pager, payout breakdown, milestone. */
.nv-cockpit .nv-fw2-hfilters {
  display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin: 10px 0 4px;
}
.nv-cockpit .nv-fw2-hchip {
  display: inline-flex; align-items: center; min-height: 44px;
  padding: 9px 14px; border-radius: 999px; font-size: .82rem;
  border: 1px solid var(--ui-line); color: inherit; text-decoration: none;
}
.nv-cockpit .nv-fw2-hchip:hover {
  border-color: var(--ui-cta);
}
.nv-cockpit .nv-fw2-hchip.is-on {
  border-color: var(--ui-cta); background: color-mix(in srgb, var(--ui-cta) 14%, transparent);
}
.nv-cockpit .nv-fw2-hmap {
  margin-left: auto; max-width: 100%;
}
.nv-cockpit .nv-fw2-hpager {
  display: flex; align-items: center; gap: 10px; margin: 12px 0 2px;
}
.nv-cockpit .nv-fw2-hpageno {
  font-size: .8rem; opacity: .7;
}
.nv-cockpit .nv-fw2-rp-pay {
  display: flex; flex-direction: column; gap: 3px; margin: 4px 0 10px;
}
.nv-cockpit .nv-fw2-rp-payline {
  display: flex; justify-content: space-between; gap: 12px; font-size: .86rem;
}
.nv-cockpit .nv-fw2-rp-payline em {
  font-style: normal; opacity: .6;
}
.nv-cockpit .nv-fw2-rp-paytot {
  border-top: 1px solid var(--ui-line); margin-top: 3px; padding-top: 4px;
}
.nv-cockpit .nv-fw2-rp-milestone {
  font-size: .86rem; margin: 0 0 10px;
}
.nv-cockpit .nv-fw2-rp-msnext {
  opacity: .68;
}
@media (max-width: 420px) {
/* THE SAVED SETUP AND THE PLAYBOOK WRITER ON A PHONE (2026-09-09).
     They spent their lives two disclosures deep, so nobody had ever measured
     them: 21 controls under the 44px floor -- nine "Off" ticks, six buff ticks,
     guide links and buttons, all inherited from when this was a desktop-only
     corner of the page.
     Scoped to .nv-fw-settingsbox, NOT to an id: both now render in two places,
     inside the wizard and on the live card, and the id-scoped version of these
     rules silently stopped applying the moment #fw-setup was dissolved -- every
     control went back under the floor and nothing said so. */
.nv-cockpit .nv-fw-settingsbox input[type=checkbox] {
  width: 26px; height: 26px; flex: none;
}
.nv-cockpit .nv-fw-settingsbox label {
  min-height: 44px;
}
.nv-cockpit .nv-fw-settingsbox .nv-cp-guide a,
.nv-cockpit .nv-fw-settingsbox .nv-cp-sub a {
  display: inline-block; padding: 12px 0;
}
.nv-cockpit .nv-fw2-hmap {
  margin-left: 0; width: 100%; min-height: 44px;
}
/* The Claim button in a history row is 28px tall from the shared -xs modifier.
     Scoped to this list rather than widened globally: -xs is used on other pages
     where the button sits in a dense grid, and a phone still needs a thumb. */
/* A HISTORY ROW'S SENTENCE ALWAYS OWNS ITS LINE (2026-09-09).
     .nv-fw2-logrow is a wrapping flex with the sentence at flex:1 1 220px and
     the footer at flex:0 1 auto, so whether the footer drops below depends on
     how WIDE the footer happens to be. A row with "+155 Glory" or a Claim
     button pushes past 312px and wraps -- correct. A plain free farm with
     nothing but the Report chip fits, so the chip sat beside the date and the
     sentence wrapped underneath it, reading as
       "2026-09-09 00:05 - Free farm web,      > Report"
       "ran 3m 14s, 29 kills."
     Two rows in the same list laid out two different ways, decided by whether
     a run had been paid. On a phone the sentence takes the whole line and the
     footer always follows it. */
.nv-cockpit .nv-fw2-logline,
.nv-cockpit .nv-cp2-logline {
  flex: 1 1 100%;
}
}
/* A CLIPPED LOOT NAME CAN BE TAPPED OPEN (2026-09-09, owner decision).
   The shelf's tiles are 64px wide, so .nv-fw2-loot-name ellipsises anything
   longer than about ten characters -- "Worn-out Prison Uniform" reads as
   "Worn-o...". On a desktop the tile's `title` covers that; on a phone there
   is no hover, so the item was simply unnamed. Tapping now unclamps it.

   Only the tiles whose name ACTUALLY overflows get the affordance: a tile
   that already reads in full ("Jellopy") must not offer a tap that does
   nothing. That measurement can only happen after layout, so the script
   below marks them and this stylesheet only reacts. */
.nv-cockpit .nv-fw2-loot-tile.is-clipped {
  cursor: pointer;
}
.nv-cockpit .nv-fw2-loot-tile.is-clipped .nv-fw2-loot-name {
  text-decoration: underline dotted; text-underline-offset: 2px;
}
.nv-cockpit .nv-fw2-loot-tile.is-named .nv-fw2-loot-name {
  white-space: normal; overflow: visible; text-overflow: clip;
  overflow-wrap: anywhere; text-decoration: none; color: var(--ui-fg);
}
/* The open tile grows a little; a ring keeps it legible as the one you tapped
   rather than looking like a taller neighbour. */
.nv-cockpit .nv-fw2-loot-tile.is-named {
  border-color: var(--ui-cta);
  background: color-mix(in srgb, var(--ui-cta) 8%, transparent);
}
.nv-cockpit .nv-fw2-loot-tile.is-clipped:focus-visible {
  outline: 2px solid var(--ui-cta);
  outline-offset: 2px;
}
/* Fine tune: a closed fold, and a grid that collapses to one column on a phone. */
/* The three card rows. Wider cells than the default tile grid because each card
   carries a sentence, and at 196px those wrap to five lines. */
.nv-cockpit .nv-fwb-picks {
  grid-template-columns: repeat(auto-fill, minmax(228px, 1fr));
}
/* Rows after the first get a little air, so three rows read as three questions
   rather than nine cards. */
.nv-cockpit .nv-fwb-picks + .nv-wz-lbl {
  margin-top: 18px;
}
.nv-cockpit .nv-fwb-tune {
  margin: 16px 0 0; border-top: 1px solid var(--ui-line); padding-top: 12px;
}
.nv-cockpit .nv-fwb-tune > summary {
  cursor: pointer; font-size: .82rem; text-transform: uppercase;
  letter-spacing: .09em; opacity: .7; padding: 8px 0; list-style: none;
}
.nv-cockpit .nv-fwb-tune > summary::-webkit-details-marker {
  display: none;
}
.nv-cockpit .nv-fwb-tune > summary::before {
  content: "\25b8 "; display: inline-block; transition: transform .2s;
}
.nv-cockpit .nv-fwb-tune[open] > summary::before {
  transform: rotate(90deg);
}
/* .nv-fwb-tunegrid / .nv-fwb-tunefield / .nv-fwb-tunecheck were removed
   2026-09-11 with the seven-field numeric grid they styled. Every field in
   it already existed in the loadout editor, which now lives in Advanced --
   it was the same numbers twice. .nv-fwb-tune stays: the LIVE card uses it. */
/* 44px of thumb: this is the one thing here that leaves the card. */
.nv-cockpit .nv-fwb-tune .nv-wz-hint a {
  display: inline-block; padding: 13px 0; text-decoration: underline dotted;
  text-underline-offset: 4px;
}
.nv-cockpit .nv-fwb-none code {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82em;
  padding: 1px 5px; border-radius: 4px; background: color-mix(in srgb, var(--ui-fg) 6%, transparent);
}
/* The brain tile plus its edit pencil share one grid cell (2026-09-10). The
   pencil sits in the corner rather than in the flow so the tile keeps the same
   shape as every other tile in the grid. */
.nv-cockpit .nv-fwb-braincell {
  position: relative; display: block;
}
.nv-cockpit .nv-fw-builder .nv-fwb-brainedit {
  position: absolute; top: 6px; right: 6px;
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 8px; font-size: .9rem;
  text-decoration: none; opacity: .55;
}
.nv-cockpit .nv-fw-builder .nv-fwb-brainedit:hover {
  opacity: 1; background: color-mix(in srgb, var(--ui-cta) 16%, transparent);
}
/* 44px of touch on a phone without a 44px hole in the tile on a desktop. */
@media (max-width: 420px) {
.nv-cockpit .nv-fw-builder .nv-fwb-brainedit {
  width: 44px; height: 44px; top: 2px; right: 2px;
}
}
.nv-cockpit .nv-fw-builder .nv-fwb-escort[disabled] {
  opacity: .4; cursor: not-allowed;
}
/* --- foot --- */
@media (max-width: 420px) {
.nv-cockpit .nv-fw-builder {
  padding: 13px; border-radius: 13px;
}
.nv-cockpit .nv-fwb-route {
  margin-left: 0; width: 100%;
}
.nv-cockpit .nv-wz-rail li {
  font-size: .7rem; gap: 5px;
}
.nv-cockpit .nv-fwb-results {
  grid-template-columns: 1fr;
}
.nv-cockpit .nv-wz-foot > button {
  flex: 1 1 auto;
}
/* A monster chip shrink-wraps its name, so on a 322px column two never fit
     and one leaves a ragged edge -- eleven different widths down the page.
     Full width instead: the list reads as a list. */
.nv-cockpit .nv-fwb-mobs {
  display: block;
}
.nv-cockpit .nv-fwb-chip {
  width: 100%; margin-bottom: 9px;
}
.nv-cockpit .nv-fwb-chip-btn {
  flex: 1 1 auto;
}
/* The hour pills measured 48x41 -- under the 44px tap floor this arc has
     been holding everything else to. The label is the target; the radio inside
     it is opacity:0 and never touched. */
/* Send them off is the point of the whole card, and at 322px it was landing
     half-width and left-aligned on a second row, under two secondary buttons
     that had stretched to fill the first. Its own row, full width. */
}
/* ===== THE PLAYBOOK (2026-09-08) ================================
   A list of sentences, not a settings grid. Everything here is sized so a
   rule reads as one line of English on a phone and wraps rather than
   scrolling sideways. */
.nv-cockpit .nv-pb-cards {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; margin-top: 12px;
}
.nv-cockpit .nv-pb-card {
  border: 1px solid var(--ui-line); border-radius: 12px; padding: 12px; display: flex; flex-direction: column; gap: 6px;
}
.nv-cockpit .nv-pb-card-name {
  font-weight: 700; font-size: 1rem;
}
.nv-cockpit .nv-pb-card-blurb {
  font-size: .82rem; opacity: .74;
}
.nv-cockpit .nv-pb-card-list {
  margin: 2px 0 8px; padding-left: 16px; font-size: .76rem; opacity: .66;
}
.nv-cockpit .nv-pb-card-list li {
  margin: 2px 0;
}
.nv-cockpit .nv-pb-group {
  margin: 14px 0 4px; font-size: .78rem; text-transform: uppercase;
  letter-spacing: .05em; opacity: .55;
}
.nv-cockpit .nv-pb-rule {
  display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 9px 11px; border: 1px solid var(--ui-line); border-radius: 10px;
  margin-bottom: 6px; flex-wrap: wrap;
}
/* A blocked order stays visible and readable -- it is the player's work, and
   greying it with a reason sells the upgrade far better than deleting it. */
.nv-cockpit .nv-pb-blocked {
  opacity: .55; border-style: dashed;
}
.nv-cockpit .nv-pb-say {
  flex: 1 1 260px; line-height: 1.5;
}
.nv-cockpit .nv-pb-meta {
  display: flex; align-items: center; gap: 10px; font-size: .78rem;
}
.nv-cockpit .nv-pb-warn {
  color: var(--ui-warn);
}
.nv-cockpit .nv-pb-del {
  background: none; border: 0; color: inherit; opacity: .45; cursor: pointer;
  font-size: 1.05rem; line-height: 1; padding: 2px 4px;
}
.nv-cockpit .nv-pb-del:hover {
  opacity: 1; color: var(--ui-warn);
}
.nv-cockpit .nv-pb-add {
  margin-top: 12px;
}
.nv-cockpit .nv-pb-addform {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 8px;
}
.nv-cockpit .nv-pb-addform select,
.nv-cockpit .nv-pb-addform input {
  padding: 6px 8px; border-radius: 8px;
  border: 1px solid var(--ui-line); background: color-mix(in srgb, var(--ui-sunken) 75%, transparent); color: inherit; font: inherit;
}
.nv-cockpit .nv-pb-addform option:disabled {
  opacity: .4;
}
.nv-cockpit .nv-u-inline {
  display: inline;
}

/* ===== Tone utilities, fields and live-card pieces (register A3 conversion) ===== */
.nv-cockpit .nv-fw-c-danger { color: var(--ui-danger); }
.nv-cockpit .nv-fw-c-warn { color: var(--ui-warn); }
.nv-cockpit .nv-fw-c-ok { color: var(--ui-ok); }
.nv-cockpit .nv-fw-c-gold { color: var(--ui-cta); }
.nv-cockpit .nv-fw-c-muted { color: var(--muted); }
.nv-cockpit .nv-fw-c-muted2 { color: var(--muted2); }
.nv-cockpit .nv-fw-c-brand { color: var(--ui-brand); }
.nv-cockpit .nv-fw-c-violet { color: var(--ui-brand-hi); }
.nv-cockpit .nv-fw-c-sky { color: var(--ui-link); }
.nv-cockpit .nv-fw-bg-danger { background: var(--ui-danger); }
.nv-cockpit .nv-fw-bg-warn { background: var(--ui-warn); }
.nv-cockpit .nv-fw-bg-ok { background: var(--ui-ok); }
.nv-cockpit .nv-fw-bg-gold { background: var(--ui-cta); }
.nv-cockpit .nv-fw-bg-muted { background: var(--muted); }
.nv-cockpit .nv-fw-bg-muted2 { background: var(--muted2); }
.nv-cockpit .nv-fw-bg-brand { background: var(--ui-brand); }
.nv-cockpit .nv-fw-bg-violet { background: var(--ui-brand-hi); }
.nv-cockpit .nv-fw-bg-sky { background: var(--ui-link); }

/* The loadout editor's compact inputs and selects (was a $fs inline-style string pasted on every field). */
.nv-cockpit .nv-fw-in {
  background: color-mix(in srgb, var(--ui-fg) 4%, transparent); border: 1px solid var(--line); color: var(--text);
  padding: 5px 8px; font-size: 12px; border-radius: 5px;
}
.nv-cockpit .nv-fw-in--w76 { width: 76px; }
.nv-cockpit .nv-fw-in--w90 { width: 90px; }
.nv-cockpit .nv-fw-in--w150 { width: 150px; }
.nv-cockpit .nv-fw-in--w180 { width: 180px; }
.nv-cockpit .nv-fw-in--max { max-width: 100%; }
.nv-cockpit .nv-fw-in--mt { margin-top: 6px; }
.nv-cockpit .nv-fw-itemname { font-size: 10px; color: var(--muted); }

.nv-cockpit .nv-fw-fresh { font-size: 11px; font-weight: 400; text-transform: none; letter-spacing: 0; }
.nv-cockpit .nv-fw-verdict {
  border: 1px solid color-mix(in srgb, currentColor 27%, transparent);
  background: color-mix(in srgb, currentColor 5%, transparent);
  border-radius: var(--radius-md); padding: 7px 12px; margin-bottom: 10px; font-size: 12.5px;
}
.nv-cockpit .nv-fw-fill { width: 100%; height: 100%; }
.nv-cockpit .nv-fw-rtstrip {
  display: flex; flex-wrap: wrap; gap: 16px; align-items: center; font-size: 12px; color: var(--muted);
  border-top: 1px solid var(--line); padding-top: 8px; margin: 8px 0 6px;
}
.nv-cockpit .nv-fw-timeline { margin-bottom: 10px; }
}

/* _base/cp-cp3-legacy.css */
@layer legacy{
/* Cockpit group cp3: the !important half. The wizard chrome (lib/nv_wizard.php), the Combat Brain and Escort builders and the sitewide gold
   button skin all strip every <button> with !important inside the legacy layer, and for !important the earlier layer wins, so the kit
   button look inside the builders has to be restored from this layer too. Tokens only. */
.nv-cockpit .nv-wz .nvk-btn, .nv-cockpit .nv-rw-builder .nvk-btn, .nv-cockpit .nv-cw-builder .nvk-btn, .nv-cockpit .nv-blb-builder .nvk-btn {
	font-family: var(--body) !important; font-weight: 600 !important; font-size: 13px !important;
	padding: 0 var(--space-3) !important; border-radius: var(--radius-md) !important; min-height: 32px;
	border: 1px solid var(--ui-line) !important; background: var(--ui-surface-2) !important; color: var(--ui-fg) !important;
}
.nv-cockpit .nv-wz .nvk-btn:hover, .nv-cockpit .nv-rw-builder .nvk-btn:hover, .nv-cockpit .nv-cw-builder .nvk-btn:hover, .nv-cockpit .nv-blb-builder .nvk-btn:hover {
	border-color: var(--ui-line-strong) !important;
}
.nv-cockpit .nv-wz .nvk-btn--cta, .nv-cockpit .nv-rw-builder .nvk-btn--cta, .nv-cockpit .nv-cw-builder .nvk-btn--cta, .nv-cockpit .nv-blb-builder .nvk-btn--cta {
	background: var(--ui-cta) !important; color: var(--ui-cta-fg) !important; border-color: transparent !important;
}
.nv-cockpit .nv-wz .nvk-btn[hidden], .nv-cockpit .nv-rw-builder .nvk-btn[hidden] { display: none !important; }
}

/* _base/cp-cp3.css */
@layer components{
/* Cockpit group cp3 (Automation tabs, Standing Order builder partials). Tokens only; scoped under the Cockpit wrapper .nv-cockpit. */

.nv-cockpit .nv-cp3-panel { margin: var(--space-4) 0; }
.nv-cockpit .nv-cp3-panel > .nvk-panel__body { display: block; }

/* kit buttons are real <button>s: the hidden attribute must still win over .nvk-btn's display */
.nv-cockpit .nvk-btn[hidden], .nv-cockpit .nvk-chip[hidden], .nv-cockpit .nvk-callout[hidden] { display: none; }

/* inline forms in lists and the wizard foot: buttons sit on the text line */
.nv-cockpit .nv-u-inline .nvk-btn { vertical-align: baseline; }

/* one-line "nothing here" states inside dense builder lists */
.nv-cockpit .nv-cp3-empty { margin: var(--space-2) 0; }
.nv-cockpit .nv-cp3-empty .nvk-empty { padding: var(--space-3) var(--space-4); gap: var(--space-1); }
.nv-cockpit .nv-cp3-empty .nvk-empty .nvk-icon { display: none; }
.nv-cockpit .nv-cp3-empty .nvk-empty__title { font-size: 13px; }

/* Callouts inside a station breathe from what follows */
.nv-cockpit .nv-cp-brain-top .nvk-callout,
.nv-cockpit .nv-cp-companion .nvk-callout { margin: var(--space-3) 0; }

/* chips on blessing start tiles sit in a row under the tile text */
.nv-cockpit .nv-blb-chips { display: flex; flex-wrap: wrap; gap: var(--space-1); margin-top: var(--space-1); }
.nv-cockpit .nv-blb-chips .nvk-chip { font-size: 10px; }
.nv-cockpit .nv-blb-chips .nvk-chip b { margin-right: 3px; }
}

/* _base/cp-cp4.css */
@layer components{
/* Cockpit group cp4 (Nirvana+, Wallet, Customize, Power, Residents, Ghosts & Rivals, Navigator, Planner, Sentry, Cast, Report a problem): layout and
   small parts around the kit components. Scoped under the Cockpit wrapper (.nv-cockpit); tokens only. */
.nv-cockpit [hidden] { display: none !important; }
.nv-cockpit .nv-cp4-stack { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.nv-cockpit .nv-cp4-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-3); min-width: 0; }
.nv-cockpit .nv-cp4-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: var(--space-4); }
.nv-cockpit .nv-cp4-cols > * { min-width: 0; }
.nv-cockpit .nv-cp4-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: var(--space-3) 0; }
.nv-cockpit .nv-cp4-row > .nv-cp4-note { margin: 0; }
.nv-cockpit .nv-cp4-block { margin-top: var(--space-4); padding-top: var(--space-3); border-top: 1px solid var(--ui-line); }
.nv-cockpit .nv-cp4-inline { display: inline-block; margin: 0; }
.nv-cockpit .nv-cp4-dim { color: var(--ui-fg-3); font-size: .8125rem; }
.nv-cockpit .nv-cp4-bad { color: var(--ui-danger, var(--ui-fg)); font-weight: 700; }
.nv-cockpit .nv-cp4-note { margin: var(--space-2) 0 var(--space-3); max-width: 72ch; font-size: .875rem; line-height: 1.55; color: var(--ui-fg-2); }
.nv-cockpit .nv-cp4-note--dim { color: var(--ui-fg-3); font-size: .8125rem; }
.nv-cockpit .nv-cp4-note--ok { color: var(--ui-ok, var(--ui-fg)); }
.nv-cockpit .nv-cp4-note--warn { color: var(--ui-warn, var(--ui-fg)); }
.nv-cockpit .nv-cp4-note--danger { color: var(--ui-danger, var(--ui-fg)); }
.nv-cockpit .nv-cp4-note code, .nv-cockpit .nvk-callout code, .nv-cockpit .nv-cp4-kv code { padding: 1px var(--space-1); border: 1px solid var(--ui-line); border-radius: var(--radius-sm); background: var(--ui-sunken); font-size: .75rem; }
.nv-cockpit .nv-cp4-sub { margin: var(--space-4) 0 var(--space-2); font-size: .8125rem; letter-spacing: .05em; text-transform: uppercase; color: var(--ui-fg-3); }
.nv-cockpit .nv-cp4-big { margin: 0 0 var(--space-2); font-size: 1.25rem; font-weight: 700; color: var(--ui-fg); }
.nv-cockpit .nv-cp4-list { margin: var(--space-2) 0; padding-left: var(--space-5); color: var(--ui-fg-2); font-size: .875rem; line-height: 1.6; }
.nv-cockpit .nv-cp4-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0; }
.nv-cockpit .nv-cp4-kv { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-2) var(--space-4); margin: var(--space-3) 0; }
.nv-cockpit .nv-cp4-kv > div { display: flex; justify-content: space-between; gap: var(--space-3); padding: var(--space-2) 0; border-bottom: 1px solid var(--ui-line); }
.nv-cockpit .nv-cp4-kv dt { color: var(--ui-fg-3); font-size: .8125rem; }
.nv-cockpit .nv-cp4-kv dd { margin: 0; color: var(--ui-fg); text-align: right; }
.nv-cockpit .nv-cp4-person { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); min-width: 0; }
.nv-cockpit .nv-cp4-person--art { flex-direction: row; align-items: flex-start; gap: var(--space-3); }
.nv-cockpit .nv-cp4-person--art > div { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.nv-cockpit .nv-cp4-form { display: flex; flex-direction: column; gap: var(--space-3); margin: var(--space-3) 0; max-width: 640px; }
.nv-cockpit .nv-cp4-formgrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: var(--space-3); }
.nv-cockpit .nv-cp4-check { display: flex; align-items: center; gap: var(--space-2); font-size: .875rem; color: var(--ui-fg-2); }
.nv-cockpit .nv-cp4-grow { flex: 1 1 220px; min-width: 0; width: auto; }
.nv-cockpit .nv-cp4-narrow { flex: 0 1 200px; width: auto; min-width: 0; }
.nv-cockpit .nv-cp4-auto { width: auto; max-width: 100%; }
.nv-cockpit .nv-cp4-newip { color: var(--ui-warn, var(--ui-fg)); }
.nv-cockpit .nvk-table tr.nv-cp4-done td { opacity: .6; }
.nv-cockpit .nvk-table-wrap { margin: var(--space-2) 0 var(--space-3); }
.nv-cockpit .nv-cp4-meterrow { margin: var(--space-2) 0; }
.nv-cockpit .nv-cp4-meterhead { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); margin-bottom: var(--space-1); font-size: .875rem; color: var(--ui-fg); }
.nv-cockpit .nv-cp4-meterrow progress { width: 100%; }
.nv-cockpit .nv-cp4-perk { padding: var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-cockpit .nv-cp4-perk.is-paused { opacity: .65; }
.nv-cockpit .nv-cp4-sub-card { margin: var(--space-3) 0; padding: var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); }
.nv-cockpit .nv-cp4-benefit { display: flex; align-items: flex-start; gap: var(--space-3); padding: var(--space-2) 0; border-top: 1px solid var(--ui-line); }
.nv-cockpit .nv-cp4-benefit.is-locked { opacity: .7; }
.nv-cockpit .nv-cp4-fold { border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); padding: var(--space-3) var(--space-4); }
.nv-cockpit .nv-cp4-fold > summary { cursor: pointer; font-weight: 700; color: var(--ui-fg); margin-bottom: var(--space-2); }
.nv-cockpit .nv-cp4-live .nvk-panel { border-color: var(--ui-warn, var(--ui-line)); }
.nv-cockpit .nv-cp4-plans { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.nv-cockpit .nv-cp4-plan { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-1); flex: 1 1 130px; min-width: 0; text-align: center; }
.nv-cockpit .nv-cp4-plan .nvk-btn { width: 100%; height: auto; padding: var(--space-3); }
.nv-cockpit .nv-cp4-expert { border: 1px solid var(--ui-line); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); background: var(--ui-sunken); }
.nv-cockpit .nv-cp4-expert > summary { cursor: pointer; color: var(--ui-fg-2); font-size: .8125rem; padding: var(--space-1) 0; }
.nv-cockpit .nv-cp4-expert[open] > summary { margin-bottom: var(--space-3); }
.nv-cockpit .nv-cp4-duel { margin: var(--space-2) 0; padding: var(--space-2) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); }
.nv-cockpit .nv-cp4-duel > summary { cursor: pointer; font-size: .8125rem; color: var(--ui-fg); }

/* Navigator */
.nv-cockpit .nv-cp4-navrows { display: flex; flex-direction: column; }
.nv-cockpit .nv-cp4-navitem { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); padding: var(--space-2) 0; border-bottom: 1px solid var(--ui-line); font-size: .875rem; }
.nv-cockpit .nv-cp4-navname { font-weight: 600; color: var(--ui-fg); }
.nv-cockpit .nv-cp4-navblurb { flex-basis: 100%; }
.nv-cockpit .nv-cp4-navcat { margin: var(--space-2) 0; }
.nv-cockpit .nv-cp4-navcat > summary { cursor: pointer; font-weight: 600; color: var(--ui-fg); padding: var(--space-1) 0; }
.nv-cockpit .nv-cp4-navcat > .nv-cp4-navrows { padding-left: var(--space-3); }
.nv-cockpit .nv-cp4-navsearch { display: flex; flex-direction: column; gap: var(--space-2); }
.nv-cockpit .nv-cp4-navsearch .nvk-field__label { font-weight: 600; color: var(--ui-fg); }
.nv-cockpit .nv-cp4-band--1 .nvk-panel { border-top: 3px solid var(--ui-ok, var(--ui-line)); }
.nv-cockpit .nv-cp4-band--2 .nvk-panel { border-top: 3px solid var(--ui-warn, var(--ui-line)); }
.nv-cockpit .nv-cp4-band--3 .nvk-panel { border-top: 3px solid var(--ui-brand, var(--ui-line)); }
.nv-cockpit .nv-cp4-band--4 .nvk-panel, .nv-cockpit .nv-cp4-band--5 .nvk-panel { border-top: 3px solid var(--ui-link, var(--ui-line)); }
.nv-cockpit .nv-cp4-band--9 .nvk-panel { border-top: 3px solid var(--ui-danger, var(--ui-line)); }
.nv-cockpit .nv-cp4-spot .nvk-panel { border-color: var(--ui-warn, var(--ui-line)); }
.nv-cockpit .nv-nav-pinbtn.is-pinned { color: var(--ui-brand, var(--ui-fg)); }

/* Nirvana+ page */
.nv-cockpit .nv-plus-tabs { margin: 0 0 var(--space-4); overflow-x: auto; flex-wrap: nowrap; }
.nv-cockpit .nv-plus-tab { cursor: pointer; white-space: nowrap; border-left: 0; border-right: 0; border-top: 0; font: inherit; }
.nv-cockpit .nvk-tabs--underline .nv-plus-tab.active { background: transparent; color: var(--ui-fg); border-bottom-color: var(--ui-brand); }
.nv-cockpit .nv-plus-tabpanel { display: none; }
.nv-cockpit .nv-plus-tabpanel.active { display: block; }
.nv-cockpit .nv-plus-chip.copied { background: var(--ui-ok, var(--ui-surface)); color: var(--ui-brand-fg, var(--ui-fg)); }
.nv-cockpit .nv-plus-vote-row { margin: 0 0 var(--space-2); }
.nv-cockpit .nv-plus-vote-btn { width: 100%; display: flex; align-items: center; gap: var(--space-3); padding: var(--space-2) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); color: var(--ui-fg); cursor: pointer; text-align: left; font: inherit; }
.nv-cockpit .nv-plus-vote-btn:hover { border-color: var(--ui-brand); }
.nv-cockpit .nv-plus-vote-row.is-mine .nv-plus-vote-btn { border-color: var(--ui-brand); }
.nv-cockpit .nv-plus-vote-label { flex: 1 1 40%; min-width: 0; }
.nv-cockpit .nv-plus-vote-btn progress { flex: 1 1 30%; min-width: 60px; }
.nv-cockpit .nv-plus-vote-pct { flex: none; color: var(--ui-fg-3); font-size: .75rem; }
}

/* _base/cp-cp5.css */
@layer components{
/* Cockpit group cp5 (register A3): PvP, Mythic, Palace, Haki, Everfall, Devil Fruit and the Cockpit home views. Tokens only. */
.nv-cockpit .nvcp-panel > .nvk-panel__body > * + * { margin-top: var(--space-3); }
.nv-cockpit .nvcp5-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--space-3); }
.nv-cockpit .nvcp5-tile--ok .nvk-stat__value { color: var(--ui-ok); }
.nv-cockpit .nvcp5-tile--warn .nvk-stat__value { color: var(--ui-warn); }
.nv-cockpit .nvcp5-tile--danger .nvk-stat__value { color: var(--ui-danger); }
.nv-cockpit .nvcp5-pair { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-4); align-items: start; }
.nv-cockpit .nvcp5-pair > * > * + * { margin-top: var(--space-2); }
.nv-cockpit .nvcp5-kv { margin: 0; display: grid; gap: 0; }
.nv-cockpit .nvcp5-kv > div { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-3); padding: var(--space-2) 0; border-bottom: 1px solid var(--ui-line); }
.nv-cockpit .nvcp5-kv > div:last-child { border-bottom: 0; }
.nv-cockpit .nvcp5-kv dt { margin: 0; color: var(--ui-fg-2); font-size: 13px; }
.nv-cockpit .nvcp5-kv dt small { display: block; color: var(--ui-fg-3); font-size: 12px; }
.nv-cockpit .nvcp5-kv dd { margin: 0; color: var(--ui-fg); font-weight: 600; text-align: right; font-size: 13px; }
.nv-cockpit .nvcp5-h { margin: var(--space-3) 0 var(--space-1); font-size: 15px; color: var(--ui-fg); }
.nv-cockpit .nvcp5-p { margin: 0; color: var(--ui-fg-2); font-size: 13px; line-height: 1.55; max-width: 72ch; }
.nv-cockpit .nvcp5-p + .nvcp5-p { margin-top: var(--space-2); }
.nv-cockpit .nvcp5-lead { margin: 0; color: var(--ui-fg); font-size: 15px; }
.nv-cockpit .nvcp5-muted { color: var(--ui-fg-3); font-size: 12px; }
.nv-cockpit .nvcp5-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.nv-cockpit .nvcp5-chipwrap.is-dim { opacity: .55; }
.nv-cockpit .nvcp5-cap { margin: var(--space-2) 0; }
.nv-cockpit .nvk-table-wrap { overflow-x: auto; }
.nv-cockpit .nvk-table tr.is-me td { background: var(--ui-sunken); font-weight: 600; }
.nv-cockpit .nvcp-panel .nvk-callout, .nv-cockpit .nvcp-panel .nvk-empty { margin: 0; }
.nv-cockpit .nvcp5-block { display: block; margin-top: var(--space-2); }
.nv-cockpit .nvcp5-art { flex: none; width: 88px; }
.nv-cockpit .nvcp5-dun { display: flex; flex-direction: column; gap: var(--space-1); }
.nv-cockpit .nvcp5-rows { display: grid; gap: var(--space-2); font-size: 12px; }
.nv-cockpit .nvcp5-lvl { display: inline-block; min-width: 56px; }
.nv-cockpit details.nvcp5-expert { border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-cockpit details.nvcp5-expert > summary { cursor: pointer; padding: var(--space-3); color: var(--ui-fg-2); font-size: 13px; }
.nv-cockpit .nvcp5-expert-body { padding: 0 var(--space-4) var(--space-4); }
.nv-cockpit .nvcp5-form { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: flex-end; }
.nv-cockpit .nvcp5-form .nvk-field { min-width: 160px; }
.nv-cockpit .nvcp5-form .nvcp5-grow { flex: 1 1 260px; }
.nv-cockpit .nvcp5-inline { display: inline; }
.nv-cockpit .nvcp5-stack { display: grid; gap: var(--space-4); }
.nv-cockpit .nvcp5-list { margin: 0; padding-left: var(--space-5); display: grid; gap: var(--space-1); font-size: 12px; color: var(--ui-fg-2); }
.nv-cockpit .nvcp5-list li.is-dim { opacity: .6; }
.nv-cockpit .nvcp5-head { margin-bottom: var(--space-4); }
.nv-orc-page .nvcp5-head { margin-bottom: var(--space-4); }
.nv-cockpit .nvcp5-facts { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: baseline; }
.nv-cockpit .nvcp5-fact-k { display: block; font-size: 10px; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-fg-3); }
.nv-cockpit .nvcp5-fact-v { font-weight: 600; color: var(--ui-fg); }
.nv-cockpit .nvcp5-fact-v.is-bad { color: var(--ui-danger); }
.nv-cockpit .nvcp5-fact-v.is-est { color: var(--ui-warn); }
.nv-cockpit .nvcp5-barrow { display: flex; align-items: center; gap: var(--space-2); }
.nv-cockpit .nvcp5-bar { flex: 1; height: 6px; border-radius: var(--radius-sm); background: var(--ui-sunken); overflow: hidden; }
.nv-cockpit .nvcp5-bar-fill { height: 100%; background: var(--ui-warn); }
.nv-cockpit .nvcp-panel.nvcp5-feature { border-color: var(--ui-brand); }
.nv-cockpit .nvcp5-lone { margin: var(--space-3) 0; }
.nv-cockpit .nvcp-panel .nvk-meter-row { margin-top: var(--space-2); }
.nv-cockpit .nv-pz-setcard .nvk-meter-row { margin-top: var(--space-2); }
.nv-cockpit .nvcp5-gap { margin-top: var(--space-3); }
}

/* _base/cp-cp6.css */
@layer components{
/* Cockpit frame (group cp6): kit components inside the frame chrome. Scoped under the frame wrapper .nvcp. */
.nvcp .nvcp-scope{padding:0;border:0;background:none;border-radius:0;letter-spacing:0;text-transform:none;font:inherit}
.nvcp .nvcp-scope .nvk-chip{white-space:nowrap}
.nvcp .nvcp-call-go{display:block;margin:var(--space-3) 0 0}
.nvcp .nvcp-call-go .nvk-btn{min-height:44px}
.nvcp .nvcp-call-notnow,.nvcp .nvcp-call-back{display:inline-block;padding:0;min-height:0;text-decoration:none}
.nvcp .nvcp-call-sz{display:inline-block;margin:var(--space-2) 0 0;vertical-align:middle}
.nvcp .nvcp-call-szn .nvk-btn{min-height:32px}
.nvcp .nv-cp-receipt{margin:0 0 var(--space-3);padding:0;border:0}
.nvcp .nv-cp-receipt .nvk-callout p{margin:0}
@media (max-width:760px){
	.nvcp .nvcp-call-go .nvk-btn{width:100%;justify-content:center}
}
}

/* _base/cp-escort.css */
@layer components{
/* Cockpit Companion Escort wizard (nv-cwb-), moved out of _companion_escort.php and tokenised (register A3).
   2026-10-20 (owner: 'fix the faint text'): muted text uses the fg-2 / fg-3 text colours, never opacity, so it keeps 4.5:1 in both looks. */
	/* ── COMPANION WIZARD (nv-cwb-), 2026-09-10 ─────────────────────────────
	   Deliberately NOT a copy of fieldwork's `.nv-fw-builder button (…)`
	   blanket reset. That reset is at specificity (0,1,1) over EVERY button in
	   the builder, which is why every rule in that file then needs !important
	   to beat its own reset -- self-inflicted debt. Here the reset is scoped to
	   the three classes that actually need it, so Summon/Dismiss keep the
	   normal CTA skin without fighting anything.

	   !important is still required per rule: the sitewide bare-<button> gold
	   CTA skin is real and reaches in with its own !important. */
	.nv-cockpit .nv-cw-builder .nv-cwb-tile,
.nv-cockpit .nv-cw-builder .nv-cwb-look,
.nv-cockpit .nv-cw-builder .nv-cwb-mini,
.nv-cockpit .nv-cw-builder .nv-cwb-nav { background:color-mix(in srgb,var(--ui-fg) 3%,transparent)!important;border:1px solid var(--ui-line)!important; color:var(--ui-fg)!important;box-shadow:none!important;text-transform:none!important; letter-spacing:normal!important;font-weight:400!important;border-radius:4px!important;cursor:pointer; }

	.nv-cockpit .nv-cw-builder { border:1px solid var(--ui-line);padding:14px;margin:14px 0; background:linear-gradient(180deg,color-mix(in srgb,var(--ui-fg) 2%,transparent),transparent) }

	/* Progress rail */
	.nv-cockpit .nv-cw-builder .nv-cwb-rail { display:flex;gap:6px;list-style:none;padding:0;margin:0 0 12px;flex-wrap:wrap }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li { display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--ui-fg-3); padding:3px 9px;border:1px solid transparent }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li span { display:inline-flex;align-items:center;justify-content:center; width:18px;height:18px;border:1px solid currentColor;font-size:10px }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-done { color:var(--ui-fg-2) }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-on { color:var(--ui-link); border-color:var(--ui-line);background:color-mix(in srgb,var(--ui-brand) 10%,transparent) }

	/* Steps */
	.nv-cockpit .nv-cw-builder .nv-cwb-step { display:none }

	.nv-cockpit .nv-cw-builder .nv-cwb-step.is-on { display:block }

	.nv-cockpit .nv-cw-builder .nv-cwb-head { display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap }

	.nv-cockpit .nv-cw-builder .nv-cwb-who { font-size:15px;color:var(--ui-brand) }

	.nv-cockpit .nv-cw-builder .nv-cwb-sub { font-size:12px;color:var(--ui-fg-2) }

	.nv-cockpit .nv-cw-builder .nv-cwb-lbl { font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--ui-fg-2); margin:12px 0 6px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap }

	.nv-cockpit .nv-cw-builder .nv-cwb-cap { font-size:10.5px;color:var(--ui-fg-3);text-transform:none;letter-spacing:0 }

	.nv-cockpit .nv-cw-builder .nv-cwb-say { font-size:12px;color:var(--ui-fg-2);margin:6px 0 0 }

	.nv-cockpit .nv-cw-builder .nv-cwb-bad { color:var(--ui-danger) }

	/* Tiles */
	.nv-cockpit .nv-cw-builder .nv-cwb-tiles { display:grid;grid-template-columns:repeat(auto-fill,minmax(184px,1fr));gap:8px }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile { padding:9px 10px;text-align:left;display:flex;flex-direction:column;gap:3px;font:inherit;font-size:14px;line-height:1.35 }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile.is-on { border-color:var(--cp-a,var(--ui-brand))!important; background:color-mix(in srgb,var(--cp-a,var(--ui-brand)) 14%,var(--ui-surface))!important;color:var(--ui-fg)!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile[disabled] { color:var(--ui-fg-3);border-style:dashed;cursor:not-allowed }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile-ico { font-size:17px }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile-name { font-size:12.5px }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile-blurb { font-size:10.5px;color:var(--ui-fg-2);line-height:1.35 }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile-art { width:100%;aspect-ratio:1/1;object-fit:contain;image-rendering:pixelated; background:color-mix(in srgb,var(--ui-fg) 18%,transparent);margin-bottom:3px }

	/* Fields */
	.nv-cockpit .nv-cw-builder .nv-cwb-fields { display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px }

	.nv-cockpit .nv-cw-builder .nv-cwb-field { display:flex;flex-direction:column;gap:3px;font-size:11px }

	.nv-cockpit .nv-cw-builder .nv-cwb-field > span { color:var(--ui-fg-2);text-transform:uppercase;letter-spacing:.5px;font-size:10px }

	.nv-cockpit .nv-cw-builder .nv-cwb-field input[type=text],
.nv-cockpit .nv-cw-builder .nv-cwb-field select { width:100% }

	.nv-cockpit .nv-cw-builder .nv-cwb-check { display:flex;align-items:center;gap:7px;font-size:12px;margin:8px 0 0 }

	.nv-cockpit .nv-cw-builder input[type=range] { width:100%;max-width:340px }

	/* Look picker */
	.nv-cockpit .nv-cw-builder .nv-cwb-lookbar { display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:2px 0 8px }

	.nv-cockpit .nv-cw-builder .nv-cwb-lookbar input[type=search] { flex:1 1 200px;min-width:160px }

	.nv-cockpit .nv-cw-builder .nv-cwb-looks { display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:7px; max-height:330px;overflow-y:auto;padding:2px }

	.nv-cockpit .nv-cw-builder .nv-cwb-look { padding:5px;display:flex;flex-direction:column;gap:3px;align-items:center;text-align:center }

	.nv-cockpit .nv-cw-builder .nv-cwb-look.is-on { border-color:var(--cp-a,var(--ui-brand))!important; background:color-mix(in srgb,var(--cp-a,var(--ui-brand)) 16%,transparent)!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-look img { width:56px;height:56px;object-fit:contain;image-rendering:pixelated }

	.nv-cockpit .nv-cw-builder .nv-cwb-look-name { font-size:9.5px;color:var(--ui-fg-2);line-height:1.2;word-break:break-word }

	.nv-cockpit .nv-cw-builder .nv-cwb-slottabs { display:flex;gap:6px;flex-wrap:wrap;margin-bottom:8px }

	.nv-cockpit .nv-cw-builder .nv-cwb-worn { display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap;margin-top:10px }

	.nv-cockpit .nv-cw-builder .nv-cwb-worn img { width:104px;image-rendering:pixelated;background:color-mix(in srgb,var(--ui-fg) 18%,transparent) }

	/* Foot */
	.nv-cockpit .nv-cw-builder .nv-cwb-foot { display:flex;gap:8px;align-items:center;margin-top:16px; border-top:1px solid var(--ui-line);padding-top:12px }

	.nv-cockpit .nv-cw-builder .nv-cwb-spacer { flex:1 }

	.nv-cockpit .nv-cw-builder .nv-cwb-nav { padding:7px 15px;font-size:12.5px }

	.nv-cockpit .nv-cw-builder .nv-cwb-nav:disabled { opacity:.35;cursor:not-allowed }

	/* THE COMPANION CARDS (step 1). A card is just a WIDER TILE -- it reuses
	   .nv-cwb-tile wholesale, which is why it gets is-on and [disabled] for
	   free and why there is no second selection style to keep in step. The old
	   .nv-cw-start / .nv-cw-slotcard rules are gone with the start box. */
	.nv-cockpit .nv-cw-builder .nv-cwb-slots { grid-template-columns:repeat(auto-fill,minmax(258px,1fr)) }

	.nv-cockpit .nv-cw-builder .nv-cwb-slotwrap { display:flex;flex-direction:column;gap:5px }

	.nv-cockpit .nv-cw-builder .nv-cwb-slot { flex-direction:row;align-items:flex-start;gap:10px;text-align:left }

	/* The job-art FALLBACK (a tinted diamond, nv_job_art_fallback) is sized in
	   PERCENT by nirvana.css -- .nv-cp2-art-fb(width:56%;aspect-ratio:1) -- so
	   inside a flex card it measures itself against the card and comes out
	   enormous. nirvana.css's own note at the char-portrait rule says the fix is
	   to scope a size to the container rather than fight it with specificity;
	   this does that for both the card and the class tile. */
	.nv-cockpit .nv-cw-builder .nv-cwb-slot .nv-cwb-tile-art,
.nv-cockpit .nv-cw-builder .nv-cwb-slot .nv-cp2-art-fb { width:52px;height:52px;flex:0 0 52px;margin:0 }

	.nv-cockpit .nv-cw-builder .nv-cwb-kit .nv-cp2-art-fb { width:64px;height:64px;margin:0 auto 3px }

	.nv-cockpit .nv-cw-builder .nv-cwb-slot .nv-cwb-tile-ico { width:52px;height:52px;flex:0 0 52px;display:flex; align-items:center;justify-content:center;border:1px dashed var(--ui-line);opacity:.55 }

	.nv-cockpit .nv-cw-builder .nv-cwb-slotacts { display:flex;gap:6px;flex-wrap:wrap;padding-left:2px }

	/* The verbs. Small, quiet, and never mistaken for the step's Next: a
	   destructive one (Dismiss) also asks first, in the library. */
	.nv-cockpit .nv-cw-builder .nv-cwb-mini { background:color-mix(in srgb,var(--ui-fg) 3%,transparent)!important; border:1px solid var(--ui-line)!important;color:var(--ui-fg)!important; font-size:10.5px!important;padding:3px 9px!important;border-radius:4px!important;cursor:pointer; text-transform:none!important;letter-spacing:normal!important;font-weight:400!important;box-shadow:none!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-life { display:flex;gap:8px;align-items:center;flex-wrap:wrap }

	.nv-cockpit .nv-cw-builder .nv-cwb-apl ol,
.nv-cockpit #nv-cwb-apl-out ol { margin:6px 0 0;padding-left:22px }

	@media (max-width:640px) {

		.nv-cockpit .nv-cw-builder { padding:10px }

		.nv-cockpit .nv-cw-builder .nv-cwb-rail li { font-size:10.5px;padding:2px 6px }

		.nv-cockpit .nv-cw-builder .nv-cwb-foot { flex-wrap:wrap }

		.nv-cockpit .nv-cw-builder .nv-cwb-nav { flex:1 1 auto;min-height:44px }

		.nv-cockpit .nv-cw-builder .nv-cwb-looks { grid-template-columns:repeat(auto-fill,minmax(78px,1fr)) }

		.nv-cockpit .nv-cw-builder .nv-cwb-slots { grid-template-columns:1fr }

	}


	/* ═══ THE STAGE ═══════════════════════════════════════════════════════
	   The redesign, 2026-09-10. The box was a form: five panels of labels and
	   selects with a grey rail on top. Nothing on it showed the thing being
	   made. Now the companion stands on the left at 2x and every choice
	   reaches it -- pick a hat and it puts the hat on, turn it around and you
	   see the back, name it and the plate takes the name.

	   All of it is CSS: no library (the CSP allows three CDNs and none of them
	   are needed for a dissolve), no sprite sheet, no canvas. The art was
	   already rendered; it had simply never been shown at a size worth
	   looking at. */
	.nv-cockpit .nv-cw-builder .nv-cwb-split { display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start }

	.nv-cockpit .nv-cw-builder .nv-cwb-stage { position:sticky;top:14px;display:flex;flex-direction:column;gap:10px }

	.nv-cockpit .nv-cw-builder .nv-cwb-plinth { position:relative;display:flex;flex-direction:column;align-items:center;gap:8px; padding:16px 12px 12px;border:1px solid var(--ui-line); background:radial-gradient(120% 80% at 50% 12%,color-mix(in srgb,var(--cp-a,var(--ui-brand)) 13%,transparent),transparent 62%), linear-gradient(180deg,color-mix(in srgb,var(--ui-fg) 2%,transparent),transparent) }

	/* The floor: a soft ellipse the sprite stands on, so it reads as ON
	   something rather than floating in a panel. */
	.nv-cockpit .nv-cw-builder .nv-cwb-plinth::after { content:"";position:absolute;left:50%;bottom:44px;translate:-50% 0; width:132px;height:16px;border-radius:50%;pointer-events:none; background:radial-gradient(50% 50% at 50% 50%,color-mix(in srgb,var(--cp-a,var(--ui-brand)) 30%,transparent),transparent 70%) }

	.nv-cockpit .nv-cwb-sprite { position:relative;width:196px;height:238px;display:grid;place-items:end center }

	.nv-cockpit .nv-cwb-sprite img { grid-area:1/1;width:196px;height:238px;object-fit:contain;image-rendering:pixelated; filter:drop-shadow(0 6px 10px color-mix(in srgb,var(--ui-fg) 55%,transparent)) }

	/* Cross-fade: the outgoing frame sits under the incoming one and fades,
	   so changing a hat dissolves instead of flickering. */
	.nv-cockpit .nv-cwb-sprite img.is-fading { opacity:0;transition:opacity .34s ease }

	.nv-cockpit .nv-cwb-sprite img.is-in { animation:nvcwIn .34s ease both }

	@keyframes nvcwIn {from{opacity:0;transform:translateY(5px) scale(.985)}to{opacity:1;transform:none}}

	/* The entrance: the companion steps onto the stage once, on arrival. */
	.nv-cockpit .nv-cw-builder .nv-cwb-plinth { animation:nvcwRise .5s cubic-bezier(.2,.7,.3,1) both }

	@keyframes nvcwRise {from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

	.nv-cockpit .nv-cw-builder .nv-cwb-turn { background:transparent!important;border:1px solid var(--ui-line)!important; color:var(--ui-fg-3)!important;font-size:10.5px!important;padding:3px 10px!important;border-radius:999px!important; cursor:pointer;text-transform:none!important;letter-spacing:normal!important;box-shadow:none!important; transition:color .2s ease,border-color .2s ease }

	.nv-cockpit .nv-cw-builder .nv-cwb-turn:hover { color:var(--ui-brand)!important;border-color:var(--cp-a,var(--ui-brand))!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-turn.is-back { color:var(--ui-brand)!important;border-color:var(--cp-a,var(--ui-brand))!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-turn.is-back span::after { content:" (back)" }

	.nv-cockpit .nv-cwb-plate { display:flex;flex-direction:column;gap:4px;padding:0 2px }

	.nv-cockpit .nv-cwb-plate strong { font-size:15px;color:var(--ui-link);line-height:1.2;word-break:break-word }

	.nv-cockpit .nv-cwb-chips { display:flex;flex-wrap:wrap;gap:5px;margin-top:4px }

	.nv-cockpit .nv-cwb-chip { font-size:10px;padding:2px 8px;border-radius:999px;border:1px solid var(--ui-line); color:var(--ui-fg-3);background:color-mix(in srgb,var(--ui-fg) 2%,transparent);animation:nvcwPop .3s ease both }

	.nv-cockpit .nv-cwb-chip.is-on { color:var(--ui-brand);border-color:var(--cp-a,var(--ui-brand));background:color-mix(in srgb,var(--cp-a,var(--ui-brand)) 14%,transparent) }

	@keyframes nvcwPop {from{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}


	/* ═══ THE PROGRESS TRACK ══════════════════════════════════════════════
	   A bar that fills, with the dots sitting on it -- "how far in am I" as a
	   shape, answered before any label is read. */
	.nv-cockpit .nv-cw-builder .nv-cwb-rail { position:relative;justify-content:space-between;gap:0;padding:0 2px;margin-bottom:16px }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail::before,
.nv-cockpit .nv-cw-builder .nv-cwb-rail::after { content:"";position:absolute; left:12px;right:12px;top:13px;height:2px;border-radius:2px }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail::before { background:color-mix(in srgb,var(--ui-fg) 7%,transparent) }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail::after { right:auto;width:calc((100% - 24px) * var(--cwb-progress,0) / 100); background:linear-gradient(90deg,var(--cp-a,var(--ui-brand)),var(--ui-brand)); transition:width .42s cubic-bezier(.4,0,.2,1) }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li { position:relative;z-index:1;flex-direction:column;gap:5px;border:0;padding:0; background:transparent;text-align:center;flex:1 1 0;min-width:0 }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li span { width:26px;height:26px;border-radius:50%;font-size:11px; background:var(--void2,var(--ui-fg));border:2px solid color-mix(in srgb,var(--ui-fg) 12%,transparent);transition:all .3s ease }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-done span { border-color:var(--cp-a,var(--ui-brand));color:var(--ui-brand) }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-on span { border-color:var(--ui-brand);color:var(--ui-brand); box-shadow:0 0 0 4px color-mix(in srgb,var(--cp-a,var(--ui-brand)) 16%,transparent);transform:scale(1.08) }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-done span::before { content:"✓" }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-done span { font-size:0 }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-done span::before { font-size:12px }


	/* ═══ THE STEP BODY ═══════════════════════════════════════════════════ */
	.nv-cockpit .nv-cw-builder .nv-cwb-step.is-on { animation:nvcwStep .32s cubic-bezier(.2,.7,.3,1) both }

	@keyframes nvcwStep {from{opacity:0;transform:translateX(10px)}to{opacity:1;transform:none}}

	/* A chosen tile gets a single slow sheen -- once, on selection, never on
	   a loop: a permanently animated page is a page you cannot read. */
	.nv-cockpit .nv-cw-builder .nv-cwb-tile { position:relative;overflow:hidden;transition:border-color .2s ease,background .2s ease,transform .12s ease }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile:hover:not([disabled]) { transform:translateY(-1px) }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile.is-on::after { content:"";position:absolute;inset:0;pointer-events:none; background:linear-gradient(115deg,transparent 30%,color-mix(in srgb,var(--ui-fg) 13%,transparent) 48%,transparent 62%); animation:nvcwSheen .7s ease both }

	@keyframes nvcwSheen {from{transform:translateX(-120%)}to{transform:translateX(120%)}}

	.nv-cockpit .nv-cw-builder .nv-cwb-look { transition:transform .12s ease,border-color .2s ease }

	.nv-cockpit .nv-cw-builder .nv-cwb-look:hover { transform:translateY(-2px) }

	/* Save earns a pulse the moment it appears -- it is the one irreversible
	   button in the box. */
	.nv-cockpit .nv-cw-builder .nv-cwb-send { animation:nvcwReady .6s ease both }

	@keyframes nvcwReady {0%{transform:scale(.97);opacity:.6}60%{transform:scale(1.02)}100%{transform:none;opacity:1}}


	@media (max-width:900px) {

		.nv-cockpit .nv-cw-builder .nv-cwb-split { grid-template-columns:1fr;gap:14px }

		.nv-cockpit .nv-cw-builder .nv-cwb-stage { position:static;flex-direction:row;align-items:center;gap:14px }

		.nv-cockpit .nv-cw-builder .nv-cwb-plinth { flex:0 0 150px;padding:10px }

		.nv-cockpit .nv-cwb-sprite,
.nv-cockpit .nv-cwb-sprite img { width:120px;height:146px }

		.nv-cockpit .nv-cw-builder .nv-cwb-plinth::after { bottom:40px;width:84px }

		.nv-cockpit .nv-cw-builder .nv-cwb-rail li:not(.is-on) { font-size:0 }

		.nv-cockpit .nv-cw-builder .nv-cwb-rail li:not(.is-on) span { font-size:11px }

	}

	/* Motion is decoration here, never information: every state the animation
	   expresses is also expressed by colour, border or text. So this switch
	   costs a reduced-motion reader nothing. */
	@media (prefers-reduced-motion:reduce) {

		.nv-cockpit .nv-cw-builder *,
.nv-cockpit .nv-cw-builder *::after,
.nv-cockpit .nv-cw-builder *::before { animation:none!important;transition:none!important }

	}

	/* Waiting state: no headgear chosen and no class art for this kit. A
	   silhouette says "your companion goes here" without pretending to be one. */
	.nv-cockpit .nv-cwb-sprite.is-empty img { display:none }

	.nv-cockpit .nv-cwb-sprite.is-empty::before { content:"🐾";font-size:52px;opacity:.16;align-self:center }

	.nv-cockpit .nv-cwb-sprite.is-empty::after { content:"Pick a class to see them";position:absolute;bottom:6px;left:0;right:0; text-align:center;font-size:10.5px;color:var(--ui-fg-2) }


	/* ═══ DENSITY PASS, 2026-09-10 ════════════════════════════════════════
	   Owner: "too crowded ... make it smaller without compromising the
	   function". Nothing here removes a control -- every rule is size, weight
	   or grouping. Three things were doing the crowding:

	     1. TWENTY class tiles with a paragraph each, in three stacked grids.
	        Now one grid behind role tabs, art + name only, the description
	        printed once under the grid. (Markup change, in the shared lib.)
	     2. NO GROUPING. Everything sat at the same visual weight on one flat
	        panel, so the eye had no edges to rest on. Each control group is now
	        an inset panel with a hairline border -- the "add some border" ask,
	        and the reason the box reads as four things instead of forty.
	     3. EVERYTHING BUILT AT DESKTOP SCALE. The stage, the tiles, the hat
	        grid and the rail dots are all stepped down ~20%; the sprite is
	        still 2x native art, just no longer the size of a portrait.

	   Written as an override block rather than by editing the rules above, so
	   the original scale is one deletion away if it reads too tight in game. */
	.nv-cockpit .nv-cw-builder { padding:12px 14px }

	/* A MEASURE ON THE PROSE, NOT ON THE COLUMN (corrected 2026-09-10).
	   This capped .nv-cwb-body at 860px to stop step 5's paragraphs running to
	   1,400px. It worked, and it also stopped every GRID at 860px -- so on a
	   wide screen the box ended halfway across and the rest of it was empty
	   background. Only running text needs a measure; the companion cards, the
	   class grid and the hat grid should use the width they are given. */
	.nv-cockpit .nv-cw-builder .nv-cwb-say,
.nv-cockpit .nv-cw-builder .nv-cwb-kitsay { max-width:70ch }

	/* MIN-WIDTH GUARDED. This block is emitted AFTER the max-width:900px
	   stacking rule, so an unguarded two-column declaration here wins under
	   900px too -- and the stage sat beside a body that then overflowed the
	   phone. Order beats intent in one stylesheet; say the range out loud. */
	@media (min-width:901px) {
.nv-cockpit .nv-cw-builder .nv-cwb-split { grid-template-columns:232px 1fr;gap:16px }
}

	.nv-cockpit .nv-cw-builder .nv-cwb-head { margin-bottom:10px }

	.nv-cockpit .nv-cw-builder .nv-cwb-who { font-size:13.5px }

	.nv-cockpit .nv-cw-builder .nv-cwb-sub { font-size:11.5px }


	/* THE PANEL. One inset frame per group of controls, so the step reads as
	   a short list of decisions rather than a field of widgets. */
	.nv-cockpit .nv-cw-builder .nv-cwb-slots,
.nv-cockpit .nv-cw-builder .nv-cwb-kits,
.nv-cockpit .nv-cw-builder .nv-cwb-step .nv-cwb-fields,
.nv-cockpit .nv-cw-builder .nv-cwb-checks,
.nv-cockpit .nv-cw-builder .nv-cwb-looks,
.nv-cockpit .nv-cw-builder #nv-cwb-aggr,
.nv-cockpit .nv-cw-builder #nv-cwb-pooltiles { border:1px solid var(--ui-line);border-radius:6px; padding:8px;background:color-mix(in srgb,var(--ui-fg) 1%,transparent) }

	.nv-cockpit .nv-cw-builder .nv-cwb-lbl { margin:14px 0 6px;font-size:10.5px }

	.nv-cockpit .nv-cw-builder .nv-cwb-step > .nv-cwb-lbl:first-child { margin-top:0 }


	/* Tiles, one step down. */
	.nv-cockpit .nv-cw-builder .nv-cwb-tiles { grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px }

	/* .nv-cwb-tile is display:flex, which beats the [hidden] UA rule -- a
	   role-filtered tile would stay on screen. Say it explicitly. */
	.nv-cockpit .nv-cw-builder .nv-cwb-tile[hidden] { display:none!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile { padding:7px 9px;gap:2px }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile-name { font-size:11.5px }

	.nv-cockpit .nv-cw-builder .nv-cwb-tile-blurb { font-size:10px;line-height:1.3; display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden }


	/* CLASS PICKER. Art and a name is enough to choose from twenty; the tile
	   keeps the description in title= and prints it under the grid on pick. */
	.nv-cockpit .nv-cw-builder .nv-cwb-roletabs { display:flex;gap:6px;flex-wrap:wrap;margin:0 0 6px }

	.nv-cockpit .nv-cw-builder .nv-cwb-roletabs button { background:transparent!important; border:1px solid var(--ui-line)!important;color:var(--ui-fg-3)!important; font-size:10.5px!important;padding:3px 11px!important;border-radius:999px!important;cursor:pointer; text-transform:none!important;letter-spacing:normal!important;font-weight:400!important;box-shadow:none!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-roletabs button em { font-style:normal;color:var(--ui-fg-3) }

	.nv-cockpit .nv-cw-builder .nv-cwb-roletabs button.is-on { color:var(--ui-link)!important; border-color:var(--cp-a,var(--ui-brand))!important;background:color-mix(in srgb,var(--cp-a,var(--ui-brand)) 12%,transparent)!important }

	.nv-cockpit .nv-cw-builder .nv-cwb-kits { grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:6px }

	.nv-cockpit .nv-cw-builder .nv-cwb-kit { align-items:center;text-align:center;padding:6px 4px }

	.nv-cockpit .nv-cw-builder .nv-cwb-kit img { width:46px;height:auto;image-rendering:pixelated }

	.nv-cockpit .nv-cw-builder .nv-cwb-kit .nv-cp2-art-fb { width:46px;height:46px;margin:0 auto 2px }

	.nv-cockpit .nv-cw-builder .nv-cwb-kitsay { min-height:15px;font-size:11px;color:var(--ui-fg-2);margin:6px 2px 0 }


	/* Companion cards. */
	.nv-cockpit .nv-cw-builder .nv-cwb-slots { grid-template-columns:repeat(auto-fill,minmax(224px,1fr)) }

	.nv-cockpit .nv-cw-builder .nv-cwb-slot { gap:8px }

	.nv-cockpit .nv-cw-builder .nv-cwb-slot .nv-cwb-tile-art,
.nv-cockpit .nv-cw-builder .nv-cwb-slot .nv-cp2-art-fb,
.nv-cockpit .nv-cw-builder .nv-cwb-slot .nv-cwb-tile-ico { width:42px;height:42px;flex:0 0 42px }

	.nv-cockpit .nv-cw-builder .nv-cwb-mini { font-size:10px!important;padding:2px 8px!important }


	/* Fields and the two switches, which were a stacked pair of sentences. */
	.nv-cockpit .nv-cw-builder .nv-cwb-fields { grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:8px }

	.nv-cockpit .nv-cw-builder .nv-cwb-checks { display:flex;gap:16px;flex-wrap:wrap;margin-top:10px }

	.nv-cockpit .nv-cw-builder .nv-cwb-check { margin:0;font-size:11.5px }


	/* The hat grid: more hats visible in less height, which is the whole job
	   of a picker with 1,500 rows behind it. */
	.nv-cockpit .nv-cw-builder .nv-cwb-looks { grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:5px;max-height:268px }

	.nv-cockpit .nv-cw-builder .nv-cwb-look { padding:4px }

	.nv-cockpit .nv-cw-builder .nv-cwb-look img { width:46px;height:46px }

	.nv-cockpit .nv-cw-builder .nv-cwb-look-name { font-size:9px }


	/* Rail and stage, stepped down together so the proportions hold. */
	.nv-cockpit .nv-cw-builder .nv-cwb-rail { margin-bottom:14px }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li { font-size:10.5px }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li span { width:22px;height:22px }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail::before,
.nv-cockpit .nv-cw-builder .nv-cwb-rail::after { top:11px }

	/* THE CHARACTER, BIGGER (2026-09-10). The sprite sat at 156px inside a
	   232px column, so it was ringed by dead space and read as small on the one
	   thing the page is about. The canvas cannot simply be zoomed into: 9% of
	   headgear paint pixels outside the middle 83% of it (measured across all
	   9,806 hat layers -- wings and tall hats genuinely use the full frame), so
	   cropping to fill would clip them. Growing the frame to the width the
	   column already has costs nothing and clips nothing. */
	.nv-cockpit .nv-cw-builder .nv-cwb-plinth { padding:10px 6px 8px }

	.nv-cockpit .nv-cwb-sprite,
.nv-cockpit .nv-cwb-sprite img { width:200px;height:243px }

	.nv-cockpit .nv-cw-builder .nv-cwb-plinth::after { bottom:44px;width:126px }

	.nv-cockpit .nv-cwb-plate strong { font-size:13.5px }

	.nv-cockpit .nv-cwb-sprite.is-empty::before { font-size:42px }

	.nv-cockpit .nv-cw-builder .nv-cwb-foot { margin-top:14px;padding-top:10px }

	@media (max-width:900px) {

		.nv-cockpit .nv-cw-builder .nv-cwb-plinth { flex:0 0 146px }

		.nv-cockpit .nv-cwb-sprite,
.nv-cockpit .nv-cwb-sprite img { width:126px;height:153px }

		.nv-cockpit .nv-cw-builder .nv-cwb-plinth::after { bottom:36px;width:84px }

	}


	/* The rail's pre-track rule still painted a filled slab behind the current
	   step -- harmless when the rail was a row of chips, wrong now that the dot
	   IS the marker. Clear it, so the track reads as one line. */
	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-on { background:transparent;border-color:transparent }

	.nv-cockpit .nv-cw-builder .nv-cwb-kits { grid-template-columns:repeat(auto-fill,minmax(92px,1fr)) }

	.nv-cockpit .nv-cw-builder .nv-cwb-kit img { width:40px }

	.nv-cockpit .nv-cw-builder .nv-cwb-kit .nv-cp2-art-fb { width:40px;height:40px }


	/* A companion card's blurb carries where it is standing and its health --
	   two lines clipped that off. Cards get a third. */
	.nv-cockpit .nv-cw-builder .nv-cwb-slot .nv-cwb-tile-blurb { -webkit-line-clamp:3 }


	/* ── STAGE LAYERS (2026-09-10) ────────────────────────────────────────
	   Four <img>s in ONE grid cell: class body, then lower/upper/middle
	   headgear in the client's own draw order. Every layer was rendered on the
	   same canvas with the same origin (build_stage_art.py), so they line up
	   with no offsets here -- which is exactly why the art was rebuilt unbaked
	   rather than nudged into place with CSS. */
	.nv-cockpit .nv-cwb-sprite .nv-cwb-lyr { grid-area:1/1 }

	/* The fade must NOT translate. nvcwIn nudges a whole sprite up by 5px on
	   entry, which was right for one baked picture and wrong for a stack: a
	   hat sliding while the head it sits on does not is a broken sprite. */
	.nv-cockpit .nv-cwb-sprite .nv-cwb-lyr.is-in { animation:nvcwLayer .28s ease both }

	@keyframes nvcwLayer {from{opacity:0}to{opacity:1}}


	/* A multi-slot piece says what it takes, on the tile. */
	.nv-cockpit .nv-cw-builder .nv-cwb-look-takes { font-size:8.5px;line-height:1.15; color:var(--ui-brand) }


	/* ── THE SKILL CARD ───────────────────────────────────────────────────
	   position:fixed, placed in viewport coordinates by the JS, so neither the
	   pool's panel nor the look grid's overflow-y:auto can clip it. High
	   z-index for the same reason -- it must sit above the sticky stage. */
	.nv-cockpit .nv-cwb-card { position:fixed;z-index:60;width:250px;max-width:calc(100vw - 16px); padding:9px 11px;border:1px solid var(--cp-a,var(--ui-brand));border-radius:6px; background:var(--void2,var(--ui-fg));box-shadow:0 10px 26px color-mix(in srgb,var(--ui-fg) 60%,transparent); pointer-events:none;animation:nvcwPop .14s ease both }

	.nv-cockpit .nv-cwb-card strong { display:block;font-size:12.5px;color:var(--ui-brand);line-height:1.25 }

	.nv-cockpit .nv-cwb-card-kind { display:block;font-size:10px;color:var(--ui-fg-2);margin-top:1px }

	.nv-cockpit .nv-cwb-card-rows { display:grid;grid-template-columns:auto 1fr;gap:1px 8px;margin-top:7px }

	.nv-cockpit .nv-cwb-card-rows span { display:contents;font-size:10.5px }

	.nv-cockpit .nv-cwb-card-rows em { font-style:normal;color:var(--ui-fg-3);white-space:nowrap }


	/* The same facts, printed on the tile, for every player without a pointer. */
	.nv-cockpit .nv-cw-builder .nv-cwb-sk-glance { font-size:9.5px;color:var(--ui-fg-2) }

	.nv-cockpit .nv-cw-builder .nv-cwb-sk { align-items:flex-start }


	/* The free-cast footer replaces the old red requirement warning, which
	   claimed a cast would fail that in fact always succeeds. */
	.nv-cockpit .nv-cwb-card-free { margin-top:7px;padding-top:6px;font-size:10px;line-height:1.4; border-top:1px solid var(--ui-line);color:var(--ui-fg-2) }

	
	/* Audit fixes D5 (owner 2026-10-22): the wizard's words were 9.5-12.5px and some fg-3, small and pale beside the rest of the Cockpit.
	   Every line of the wizard is body size (14px / 20px) and fg-2 or stronger; the small uppercase eyebrows are plain labels now. The step
	   rail keeps its numbered dots, and below 901px it still shows only the current step's name (the rule above, more specific, stays). */
	.nv-cockpit .nv-cw-builder :is(.nv-cwb-sub, .nv-cwb-say, .nv-cwb-cap, .nv-cwb-tile-name, .nv-cwb-tile-blurb, .nv-cwb-field, .nv-cwb-check, .nv-cwb-nav, .nv-cwb-kitsay, .nv-cwb-look-name, .nv-cwb-card strong, .nv-cwb-card-kind, .nv-cwb-card-rows span, .nv-cwb-card-free, .nv-cwb-plate .nv-cwb-cap) { font-size:14px;line-height:20px }

	.nv-cockpit .nv-cw-builder .nv-cwb-who { font-size:16px;line-height:22px }

	.nv-cockpit .nv-cw-builder :is(.nv-cwb-lbl, .nv-cwb-field > span) { font-size:14px;line-height:20px;font-weight:600;text-transform:none;letter-spacing:0;color:var(--ui-fg-2) }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li { font-size:14px;line-height:18px;color:var(--ui-fg-2) }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li.is-on { color:var(--ui-link);font-weight:700 }

	.nv-cockpit .nv-cw-builder .nv-cwb-rail li span { font-size:12px }

	.nv-cockpit .nv-cw-builder .nv-cwb-cap, .nv-cockpit .nv-cw-builder .nv-cwb-tile[disabled], .nv-cockpit .nv-cw-builder .nv-cwb-roletabs button em, .nv-cockpit .nv-cwb-card-rows em, .nv-cockpit .nv-cwb-chip { color:var(--ui-fg-2) }

	.nv-cockpit .nv-cw-builder .nv-cwb-mini, .nv-cockpit .nv-cw-builder .nv-cwb-turn, .nv-cockpit .nv-cw-builder .nv-cwb-roletabs button { font-size:14px!important;line-height:20px }

	.nv-cockpit .nv-cw-builder .nv-cwb-turn, .nv-cockpit .nv-cw-builder .nv-cwb-roletabs button:not(.is-on) { color:var(--ui-fg-2)!important }

	.nv-cockpit .nv-cwb-chip { font-size:14px;line-height:20px }

	.nv-cockpit .nv-cwb-sprite.is-empty::after { font-size:14px;line-height:20px }
}

/* _base/cp-frame.css */
@layer components{
/* Cockpit frame look on the kit Panel (register A3, 2026-10-15). The old .nv-cp-card is now a kit Panel carrying .nvcp-panel: same
   card chrome (border, surface, padding, hover accent), the opt-in watermark sigil, and the arrange-mode outline. Tokens only. */
.nv-cockpit .nvcp-panel { position: relative; overflow: hidden; min-width: 0; padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); transition: border-color .25s; }
.nv-cockpit .nvcp-panel:hover { border-color: var(--ui-brand); }
.nv-cockpit .nvcp-panel > :not(.nvk-panel__art) { position: relative; }
.nv-cockpit .nvcp-panel .nvk-panel__title { font-size: 17px; line-height: 24px; }
.nv-cockpit .nvk-panel--sigil::before { content: attr(data-sigil); position: absolute; right: -10px; top: -20px; font-size: 80px; line-height: 1; opacity: .07; pointer-events: none; filter: grayscale(1); }
.nv-cockpit .nv-cp-arranging .nvcp-panel { outline: 1px dashed var(--ui-brand); outline-offset: -1px; }
.nv-cockpit .nv-cp-arranging .nvcp-panel[data-cp-hidden="1"] { opacity: .4; }
.nv-cockpit .nvk-stat__value.nv-cp-count { font-variant-numeric: tabular-nums; }
.nv-cockpit .nvcp-stack { margin: 0 0 var(--space-4); }
}

/* _base/cp-haki.css */
@layer components{
/* Cockpit Haki (register A3): the Auto-fire rule rows on kit Fields and the ladder lanes on kit Cards. Tokens only. */
.nv-cockpit .nvhk-rule { display: grid; grid-template-columns: 24px repeat(2, minmax(0, 1fr)); gap: var(--space-2) var(--space-3); align-items: end; padding: var(--space-3) 0; border-bottom: 1px dashed var(--ui-line); }
.nv-cockpit .nvhk-rule-n { grid-row: span 2; align-self: center; color: var(--ui-fg-3); font-size: 13px; }
.nv-cockpit .nvhk-rule .nvk-field__label { font-size: 12px; }
.nv-cockpit .nvhk-lane.nvk-card { margin: 0; }
.nv-cockpit .nvhk-lane .nvk-card__eyebrow { font-family: "Noto Serif JP", "Yu Mincho", serif; }
.nv-cockpit .nvhk-lane-rank .nvk-chip { margin-left: var(--space-1); }
}

/* _base/cp-home.css */
@layer components{
/* Cockpit home (register A3): the Reckoning list and the Preferences form on kit Panel / LinkRow / Field / Toggle. Tokens only. */
.nv-cockpit .nvcp-reckoning-rows { display: grid; gap: var(--space-1); }
.nv-cockpit .nvcp-prefs-form { display: grid; gap: var(--space-4); max-width: 640px; }
.nv-cockpit .nvcp-prefs-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-4); }
.nv-cockpit .nvcp-prefs-set { margin: 0; padding: 0; border: 0; display: grid; gap: var(--space-3); align-content: start; min-width: 0; }
.nv-cockpit .nvcp-prefs-sub { margin: 0 0 var(--space-1); padding: 0; color: var(--ui-fg-3); font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.nv-cockpit .nvcp-prefs-form .nvk-btn { justify-self: start; }
}

/* _base/cp-now.css */
@layer components{
/* Cockpit "Now" top (register A3): the Call plate and the Owed / Running trays as kit Cards. Tokens only; the old hand-drawn
   .nvcp-call / .nvcp-tray rules in cockpit.css, anime.css and mobile.css are gone. */
.nv-cockpit .nvcp-call.nvk-card { --nvcp-k: var(--ui-brand); border-left: 4px solid var(--nvcp-k); }
.nv-cockpit .nvcp-call-loss, .nv-cockpit .nvcp-call-threat { --nvcp-k: var(--ui-danger); }
.nv-cockpit .nvcp-call-owed { --nvcp-k: var(--ui-cta); }
.nv-cockpit .nvcp-call-timed { --nvcp-k: var(--ui-brand); }
.nv-cockpit .nvcp-call-progress { --nvcp-k: var(--ui-ok); }
.nv-cockpit .nvcp-call-explore, .nv-cockpit .nvcp-call-quiet { --nvcp-k: var(--ui-line-strong, var(--ui-line)); }
.nv-cockpit .nvcp-call .nvk-card__title { font-size: 24px; line-height: 1.2; text-wrap: balance; }
.nv-cockpit .nvcp-call .nvk-card__actions { display: flex; align-items: center; gap: var(--space-2); }
.nv-cockpit .nvcp-call-seal { display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--nvcp-k); color: var(--ui-brand-fg); font-size: 16px; }
.nv-cockpit .nvcp-call-w { margin: 0 0 var(--space-3); max-width: 60ch; color: var(--ui-fg); font-size: 15px; line-height: 1.5; }
.nv-cockpit .nvcp-call-f { color: var(--ui-fg-3); }
.nv-cockpit .nvcp-call-q { margin: 0; max-width: 56ch; color: var(--ui-fg-2); font-size: 17px; line-height: 1.5; }
.nv-cockpit .nvcp-call-go { display: block; margin: 0; }
.nv-cockpit .nvcp-call-sz { display: inline-block; margin: 0 0 0 var(--space-3); vertical-align: middle; }
.nv-cockpit .nvcp-call-szn { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); margin: var(--space-3) 0 0; color: var(--ui-fg-3); font-size: 13px; }
.nv-cockpit .nvcp-call-then { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-1) var(--space-3); margin: var(--space-4) 0 0; padding-top: var(--space-3); border-top: 1px solid var(--ui-line); font-size: 14px; }
.nv-cockpit .nvcp-call-then > span { color: var(--ui-fg-3); font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.nv-cockpit .nvcp-call-then a { color: var(--ui-fg); text-decoration: underline; text-underline-offset: 3px; }
.nv-cockpit .nvcp-call-then a:hover { color: var(--ui-brand); }
.nv-cockpit .nvcp-now-side { display: grid; gap: var(--space-3); align-content: start; }
.nv-cockpit .nvcp-tray .nvk-card__title { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ui-fg-2); }
.nv-cockpit .nvcp-tray .nvk-card__actions { display: flex; align-items: center; gap: var(--space-2); }
.nv-cockpit .nvcp-tray-all { margin: 0; }
.nv-cockpit .nvcp-tray ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.nv-cockpit .nvcp-tray li a, .nv-cockpit .nvcp-tray-row { display: grid; grid-template-columns: 1fr auto; column-gap: var(--space-3); align-items: center; min-height: 40px; padding: var(--space-1) var(--space-2); margin: 0 calc(-1 * var(--space-2)); border-radius: var(--radius-sm); color: var(--ui-fg); text-decoration: none; }
.nv-cockpit .nvcp-tray li a:hover { background: var(--ui-sunken); }
.nv-cockpit .nvcp-tray-l { font-size: 14.5px; font-weight: 500; line-height: 1.25; }
.nv-cockpit .nvcp-tray-a { grid-column: 1; color: var(--ui-fg-3); font-size: 12.5px; line-height: 1.25; }
.nv-cockpit .nvcp-tray-v { grid-column: 2; grid-row: 1 / span 2; padding: 6px 9px; border: 1px solid var(--ui-line); border-radius: 999px; color: var(--ui-brand); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.nv-cockpit .nvcp-tray-v.nvcp-live { color: var(--ui-ok); border-color: var(--ui-ok); }
.nv-cockpit .nvcp-tray-e { margin: 0; color: var(--ui-fg-2); font-size: 14px; line-height: 1.45; }
.nv-cockpit .nvcp-tray-e a { color: var(--ui-brand); }
.nv-cockpit .nvcp-tray .is-many li a { grid-template-columns: minmax(0, 1fr) auto; min-height: 34px; padding: 2px var(--space-2); }
.nv-cockpit .nvcp-tray .is-many .nvcp-tray-l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 14px; }
.nv-cockpit .nvcp-tray .is-many .nvcp-tray-a { grid-column: 2; grid-row: 1; white-space: nowrap; color: var(--ui-brand); }
.nv-cockpit .nvcp-tray .is-many .nvcp-tray-v { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nv-cockpit .nvcp-tray-more { margin: 2px 0 0; }
.nv-cockpit .nvcp-tray-more summary { cursor: pointer; list-style: none; padding: var(--space-1) 0; color: var(--ui-fg-3); font-size: 12.5px; text-decoration: underline; text-underline-offset: 3px; }
.nv-cockpit .nvcp-tray-more summary::-webkit-details-marker { display: none; }
.nv-cockpit .nvcp-tray-more[open] summary { display: none; }
@media (max-width: 760px) {
  .nv-cockpit .nvcp-call .nvk-card__title { font-size: 20px; }
  .nv-cockpit .nvcp-call-go .nvk-btn { width: 100%; justify-content: center; min-height: 48px; }
  .nv-cockpit .nvcp-tray li a, .nv-cockpit .nvcp-tray-row { min-height: 44px; }
}
}

/* _base/cp-today.css */
@layer components{
/* Cockpit Companion Today: the duty-licence shop (nv-dl-), moved out of _companion_today.php and tokenised (register A3). */

/* ── DUTY LICENCES (nv-dl-), 2026-09-11 ─────────────────────────────────
   Three cards, three motifs, ON PURPOSE (owner decision). The duties have
   nothing in common but their billing, so they are not drawn as three
   siblings with a swapped icon: the rotation engine gets a firing sigil, the
   field crew a compass and a route, the steward a wax seal on a warrant.
   Each motif is inline SVG tinted through currentColor, so one --dl-a per
   card colours the whole thing.

   Scoped resets are deliberate: the sitewide bare-<button> rule paints every
   quiet button gold with !important, which would turn a price list into a row
   of CTAs. */
.nv-cockpit .nv-dl { border:1px solid var(--ui-line);padding:14px 16px;margin:0 0 16px; background:linear-gradient(180deg,var(--ui-sunken),transparent) }

.nv-cockpit .nv-dl-head { display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap }

.nv-cockpit .nv-dl-title { font-size:16px;margin:0;color:var(--ui-fg);letter-spacing:.3px }

.nv-cockpit .nv-dl-say { font-size:12px;opacity:.75;margin:4px 0 0;max-width:62ch;line-height:1.5 }

.nv-cockpit .nv-dl-count { display:flex;flex-direction:column;align-items:center;padding:6px 14px;border-radius:var(--radius-sm); border:1px solid var(--ui-line);background:var(--ui-sunken);min-width:74px }

.nv-cockpit .nv-dl-count strong { font-size:20px;line-height:1;color:var(--ui-fg) }

.nv-cockpit .nv-dl-count span { font-size:9.5px;opacity:.6;margin-top:2px;white-space:nowrap }

.nv-cockpit .nv-dl-count.is-off strong { color:var(--ui-danger) }

.nv-cockpit .nv-dl-alert { font-size:12.5px;color:var(--ui-danger);margin:10px 0 0 }

.nv-cockpit .nv-dl-ok { font-size:12.5px;color:var(--ui-ok);margin:10px 0 0 }


.nv-cockpit .nv-dl-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:12px;margin-top:14px }

.nv-cockpit .nv-dl-card { position:relative;display:flex;gap:12px;padding:12px;border-radius:8px;overflow:hidden; border:1px solid var(--dl-a,var(--ui-line)); background:radial-gradient(120% 90% at 14% 0%,color-mix(in srgb,var(--dl-a) 13%,transparent),transparent 60%), linear-gradient(180deg,var(--ui-sunken),transparent) }

/* Per-duty accent. One variable each; everything else is shared. */
.nv-cockpit .nv-dl-brain { --dl-a:var(--ui-brand) }

.nv-cockpit .nv-dl-fieldwork { --dl-a:var(--ui-ok) }

.nv-cockpit .nv-dl-steward { --dl-a:var(--ui-warn) }

/* Lapsed is COLD, not merely dim: the colour drains out of the motif, which
   says the same thing as the stamp for anyone who reads shape before text. */
.nv-cockpit .nv-dl-card.is-lapsed { --dl-a:var(--ui-line-strong) }   /* 2026-10-22: no card-wide opacity (its link fell under 4.5:1); the grey art and line say lapsed */

.nv-cockpit .nv-dl-card.is-lapsed .nv-dl-art { filter:grayscale(1) opacity(.5) }


.nv-cockpit .nv-dl-art { flex:0 0 66px;display:flex;align-items:flex-start;justify-content:center;color:var(--dl-a) }

.nv-cockpit .nv-dl-svg { width:66px;height:66px;overflow:visible }

.nv-cockpit .nv-dl-svg .nv-dl-ring { fill:none;stroke:currentColor;stroke-width:1.6;opacity:.5 }

.nv-cockpit .nv-dl-svg .nv-dl-ring-2 { opacity:.3 }

.nv-cockpit .nv-dl-svg .nv-dl-traces line { stroke:currentColor;stroke-width:1.4;opacity:.55 }

.nv-cockpit .nv-dl-svg .nv-dl-node { fill:currentColor;opacity:.85 }

.nv-cockpit .nv-dl-svg .nv-dl-core { fill:currentColor }

.nv-cockpit .nv-dl-svg .nv-dl-needle { fill:currentColor;opacity:.9 }

.nv-cockpit .nv-dl-svg .nv-dl-needle-s { opacity:.4 }

.nv-cockpit .nv-dl-svg .nv-dl-route { fill:none;stroke:currentColor;stroke-width:2;stroke-dasharray:5 4;opacity:.85 }

.nv-cockpit .nv-dl-svg .nv-dl-pin { fill:currentColor;opacity:.55 }

.nv-cockpit .nv-dl-svg .nv-dl-pin-end { opacity:1 }

.nv-cockpit .nv-dl-svg .nv-dl-page { fill:var(--ui-sunken);stroke:currentColor;stroke-width:1.5;opacity:.8 }

.nv-cockpit .nv-dl-svg .nv-dl-rule { stroke:currentColor;stroke-width:1.4;opacity:.4 }

.nv-cockpit .nv-dl-svg .nv-dl-ribbon { fill:none;stroke:currentColor;stroke-width:2.4;opacity:.75 }

.nv-cockpit .nv-dl-svg .nv-dl-wax { fill:currentColor;opacity:.85 }

.nv-cockpit .nv-dl-svg .nv-dl-wax-in { fill:none;stroke:var(--ui-fg-3);stroke-width:1.6 }

/* MOTION ONLY WHILE LIVE, and only the thing the motif is about: the engine
   turns, the route marches, the seal breathes. A lapsed card is still. */
.nv-cockpit .nv-dl-card.is-live .nv-dl-svg-brain .nv-dl-traces { transform-origin:50% 50%;animation:nvdlSpin 24s linear infinite }

.nv-cockpit .nv-dl-card.is-live .nv-dl-svg-brain .nv-dl-core { animation:nvdlPulse 2.6s ease-in-out infinite }

.nv-cockpit .nv-dl-card.is-live .nv-dl-svg-field .nv-dl-route { animation:nvdlMarch 2.2s linear infinite }

.nv-cockpit .nv-dl-card.is-live .nv-dl-svg-seal  .nv-dl-wax { animation:nvdlPulse 3.4s ease-in-out infinite }

@keyframes nvdlSpin {to{transform:rotate(360deg)}}

@keyframes nvdlPulse {0%,100%{opacity:.7}50%{opacity:1}}

@keyframes nvdlMarch {to{stroke-dashoffset:-18}}


.nv-cockpit .nv-dl-body { flex:1 1 auto;min-width:0 }

.nv-cockpit .nv-dl-name { display:flex;align-items:center;gap:8px;flex-wrap:wrap }

.nv-cockpit .nv-dl-name h3 { font-size:13.5px;margin:0;color:var(--ui-fg) }

/* The stamp reads as one: a rotated, outlined mark rather than a pill. */
.nv-cockpit .nv-dl-stamp { font-size:8.5px;letter-spacing:1.2px;text-transform:uppercase;padding:2px 7px; border:1px solid currentColor;border-radius:3px;color:var(--dl-a);transform:rotate(-3deg);opacity:.95 }

.nv-cockpit .nv-dl-card.is-lapsed .nv-dl-stamp { color:var(--ui-danger) }

.nv-cockpit .nv-dl-left { font-size:11.5px;margin:5px 0 0;opacity:.8;font-variant-numeric:tabular-nums }

.nv-cockpit .nv-dl-does { font-size:11px;line-height:1.45;opacity:.68;margin:6px 0 0 }

.nv-cockpit .nv-dl-link { display:inline-block;font-size:10.5px;margin-top:8px }


.nv-cockpit .nv-dl-buy { display:flex;flex-wrap:wrap;gap:6px;margin-top:9px }

.nv-cockpit .nv-dl-opt { display:inline-flex;align-items:center;gap:4px;padding:3px 6px;border-radius:5px; border:1px solid var(--ui-line);background:var(--ui-sunken) }

.nv-cockpit .nv-dl-dur { font-size:9px;opacity:var(--sk-dl-dur-opacity,.55);color:var(--sk-dl-dur-fg,currentColor);text-transform:uppercase;letter-spacing:.6px;white-space:nowrap }

.nv-cockpit .nv-dl-f { display:inline }

/* THE PRICE IS THE BUTTON. A currency is a coin, so each price is struck as
   one: a round glyph with the mark, the amount beside it, and the pre-discount
   figure crossed through above. Glory and Crystals carry different metal, so
   the currency is legible before the word is read -- which is what matters on
   a phone, where the word wraps and the glyph does not. */
.nv-cockpit .nv-dl .nv-dl-btn { display:inline-flex;align-items:center;gap:6px;position:relative; background:linear-gradient(180deg,var(--ui-surface-2),var(--ui-surface))!important; border:1px solid var(--coin-b,var(--ui-line))!important;color:var(--ui-fg)!important; font-size:11px!important;padding:3px 10px 3px 4px!important;border-radius:999px!important;cursor:pointer; text-transform:none!important;letter-spacing:normal!important;font-weight:400!important;box-shadow:none!important; white-space:nowrap;overflow:hidden;transition:transform .12s ease,border-color .18s ease,box-shadow .18s ease }

.nv-cockpit .nv-dl .nv-dl-glory { --coin-a:var(--ui-cta);--coin-b:color-mix(in srgb,var(--ui-cta) 50%,transparent);--coin-t:var(--ui-cta-fg) }

.nv-cockpit .nv-dl .nv-dl-crystal { --coin-a:var(--ui-brand);--coin-b:color-mix(in srgb,var(--ui-brand) 45%,transparent);--coin-t:var(--ui-brand-fg) }

.nv-cockpit .nv-dl .nv-dl-coin { display:inline-flex;align-items:center;justify-content:center;width:19px;height:19px; border-radius:50%;flex:0 0 19px;font-size:10.5px;font-weight:700;color:var(--coin-t); background:radial-gradient(70% 70% at 34% 28%,color-mix(in srgb,var(--ui-surface) 55%,transparent),transparent 60%),var(--coin-a); box-shadow:inset 0 -1px 2px color-mix(in srgb,var(--ui-fg) 35%,transparent) }

.nv-cockpit .nv-dl .nv-dl-amt { display:inline-flex;flex-direction:column;align-items:flex-start;line-height:1.05 }

.nv-cockpit .nv-dl .nv-dl-amt s { font-size:10px;color:var(--ui-fg-2) }   /* audit fixes B: was 8px at opacity .4 (2.6:1) */

.nv-cockpit .nv-dl .nv-dl-amt b { font-weight:600;font-variant-numeric:tabular-nums;color:var(--sk-dl-amt-fg,var(--coin-a)) }   /* sk-*: Anime only (2026-10-25) */

.nv-cockpit .nv-dl .nv-dl-off { font-size:8px;padding:1px 4px;border-radius:999px;background:color-mix(in srgb,var(--dl-a) 22%,transparent); color:var(--ui-fg);opacity:.9 }

.nv-cockpit .nv-dl .nv-dl-btn:hover { transform:translateY(-1px);border-color:var(--coin-a)!important; box-shadow:0 3px 10px -3px var(--coin-a) }

/* One slow sweep across the coin on hover -- the light catching metal, not a
   loop. A permanently glinting price list would be unreadable. */
.nv-cockpit .nv-dl .nv-dl-btn::after { content:"";position:absolute;inset:0;pointer-events:none;opacity:0; background:linear-gradient(115deg,transparent 34%,color-mix(in srgb,var(--ui-surface) 60%,transparent) 50%,transparent 66%) }

.nv-cockpit .nv-dl .nv-dl-btn:hover::after { animation:nvdlGlint .62s ease both }

@keyframes nvdlGlint {from{opacity:1;transform:translateX(-110%)}to{opacity:1;transform:translateX(110%)}}

.nv-cockpit .nv-dl .nv-dl-btn:active { transform:translateY(0) }


.nv-cockpit .nv-dl-bundle { display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap; margin-top:12px;padding:9px 12px;border-radius:var(--radius-sm);border:1px dashed var(--ui-line); background:var(--ui-sunken) }

.nv-cockpit .nv-dl-bundle-lbl { font-size:11.5px;opacity:.8 }

.nv-cockpit .nv-dl-bundle .nv-dl-buy { margin-top:0 }

.nv-cockpit .nv-dl-rescue { font-size:11px;line-height:1.5;margin:12px 0 0;padding:9px 11px;border-radius:var(--radius-sm); border:1px solid var(--ui-line);background:var(--ui-sunken);opacity:.9 }

.nv-cockpit .nv-dl-fine { font-size:10.5px;line-height:1.55;opacity:.6;margin:10px 0 0;max-width:90ch }

@media (max-width:560px) {

	.nv-cockpit .nv-dl { padding:12px }

	.nv-cockpit .nv-dl-grid { grid-template-columns:1fr }

	.nv-cockpit .nv-dl .nv-dl-btn { min-height:34px }

}

@media (prefers-reduced-motion:reduce) {

	.nv-cockpit .nv-dl *,
.nv-cockpit .nv-dl *::before,
.nv-cockpit .nv-dl *::after { animation:none!important;transition:none!important }

}

}

/* _base/daybreak-a8.css */
@layer pages{
/* WD-9 register A8 (2026-10-15): fixes from the phone / dark / accessibility audit (tests/nvmc/web_ui_a11y.harness.mjs). */

/* A coloured chip on the blue hero card must keep its own surface (red on blue was 1.06:1). */
.nvk-daybreak .nvk-card--hero .nvk-chip--danger { background: var(--ui-surface); color: var(--ui-danger); }
/* The same for the green chip (the Armory card's "Online now" was 1.5:1 on the blue in Daybreak, 1.6:1 at Night): the surface under the look's own green,
   4.7:1 in Daybreak and 9.7:1 in Daybreak Night. */
.nvk-daybreak .nvk-card--hero .nvk-chip--ok { background: var(--ui-surface); color: var(--ui-ok); }

/* Devil Fruit orchard (module devilfruit, Cockpit page): the stage is a dark art canvas, the sheet / registry / folds under it sit on the
   Daybreak surface. The legacy rules light-green-on-dark everything through --cp-a, --cp-a-hi, --muted2 and --ok, so on the light surface
   numbers and names vanished (1.05:1). Re-point the tokens for the light parts and restore the originals inside the stage. */
.nvk-daybreak .nv-orc,
.nvk-daybreak .nv-orc-page,
.nvk-daybreak .nv-orc-sheet {
  --cp-a: color-mix(in srgb, var(--ui-ok) 75%, var(--ui-fg));
  --cp-a-hi: color-mix(in srgb, var(--ui-ok) 75%, var(--ui-fg));
  --cp-a-rgb: 23, 132, 74;
  --muted2: var(--ui-fg-3);
  --ok: var(--ui-ok);
  --orc-held: var(--ui-brand);
}
.nvk-daybreak .nv-orc-canvas,
.nvk-daybreak .nv-orc-bar {
  --cp-a: #a6e35a;
  --cp-a-hi: #e2ffb0;
  --cp-a-rgb: 166, 227, 90;
  --muted2: #b3acd8;
  --ok: #4ade80;
  --muted: #b3acd8;
  --text: #f1eefc;
}
.nvk-daybreak .nv-orc-fl { text-decoration: underline; }
.nvk-daybreak .nv-orc-qx { min-width: 24px; min-height: 24px; }

/* Hardcore halls: sub-lines inside table cells are sentences (class, place, epitaph), not eyebrows. */
.nvk-daybreak .d-hc-halls td .d-cap { text-transform: none; letter-spacing: 0; font-weight: 400; }

/* Legacy content inside the Daybreak shell: bare headings were white (legacy `h1..h5 { color: #fff }`), invisible on the light page (1.13:1). */
.nvk-daybreak main :where(h1, h2, h3, h4, h5):not([class]) { color: var(--ui-fg); }
.nvk-daybreak #submenu, .nvk-daybreak .submenu, .nvk-daybreak #pagemenu { color: var(--ui-fg-3); }

/* Eyebrows: --ui-brand-deep is a surface colour (top bar, pressed state); as text it is 2.25:1 on the dark page. */
html[data-theme="daybreak-dark"] .nvk-daybreak .d-eyebrow,
html[data-theme="daybreak-dark"] .nvk-daybreak .nvl-eyebrow { color: var(--ui-link); }
.nvk-daybreak .nvk-card--hero .d-eyebrow,
html[data-theme="daybreak-dark"] .nvk-daybreak .nvk-card--hero .d-eyebrow { color: var(--ui-brand-fg); }

/* A link inside running text must differ by more than colour (WCAG 1.4.1). */
.nvk-daybreak .d-link, .nvk-daybreak .nvcp-foot a, .nvk-daybreak .nvcp-tray-e a,
.nvk-daybreak main :where(p, td, dd, .nv-cp4-note, .sub) a:not([class]) { text-decoration: underline; text-underline-offset: 2px; }

/* Touch targets on a phone: 44 x 44 px for the footer links and the Cockpit instrument bar. */
@media (max-width: 600px), (pointer: coarse) {
  .nvk-daybreak .nvk-footer__link { display: inline-flex; align-items: center; min-height: 44px; }
  .nvk-daybreak .nvcp-purse, .nvk-daybreak .nvcp-tier, .nvk-daybreak .nvcp-find { min-height: 44px; min-width: 44px; }
  .nvk-daybreak .nv-dl-btn { min-height: 44px; min-width: 44px; }
}

/* No page may scroll sideways: a hidden hover card (Season hub constellation) stuck out 9 px at 1366. `clip`, unlike `hidden`, makes no scroll container, so sticky parts keep working. */
.nvk-daybreak .nvk-app__main { overflow-x: clip; }

/* Legacy admin tables (account list, character sheet, shop manager) were wider than the content column: they scroll inside their own box. */
.nvk-daybreak main table.horizontal-table, .nvk-daybreak main table.vertical-table { display: block; max-width: 100%; overflow-x: auto; }

/* Colours that were written for the dark looks and are unreadable on the light page: Codex card numbers, Season hub kickers and eyebrows. */
.nvk-daybreak .d-cdx-no, .nvk-daybreak .nv-sh-kicker { color: var(--ui-link); }
.nvk-daybreak .nv-obs-eyebrow { color: var(--ui-fg-3); }
/* The legacy neon text colours (`nv-u4-c*`, Blessing builder and others) as semantic colours of the look. */
.nvk-daybreak .nv-u4-c13, .nvk-daybreak .nv-u4-c14, .nvk-daybreak .nv-u4-c44, .nvk-daybreak .nv-u4-c89, .nvk-daybreak .nv-u4-c130 { color: var(--ui-link); }
.nvk-daybreak .nv-u4-c45, .nvk-daybreak .nv-u4-c110, .nvk-daybreak .nv-u4-c129, .nvk-daybreak .nv-u4-c165 { color: var(--ui-danger); }
.nvk-daybreak .nv-u4-c46, .nvk-daybreak .nv-u4-c114, .nvk-daybreak .nv-u4-c146 { color: var(--ui-ok); }
.nvk-daybreak .nv-u4-c101, .nvk-daybreak .nv-u4-c115, .nvk-daybreak .nv-u4-c136, .nvk-daybreak .nv-u4-c159 { color: var(--ui-warn); }
.nvk-daybreak .nv-u4-c156 { color: var(--ui-fg); }

/* Cockpit circle wheel: a 64 px mini-map. Its sectors are about 14 x 8 px on a phone, far too small to tap; the same moves are the large "siblings" buttons right below it (nvcp-sibs), so on touch widths the glyph is display only. Keyboard focus still reaches each sector. */
@media (max-width: 900px) {
  .nvk-daybreak .nvcp-arm-circles .sector, .nvk-daybreak .nvcp-arm-circles .hit { pointer-events: none; }
}

/* Cockpit station index: the plain-list links were 17 px high (WCAG 2.5.8 wants 24 px, and a phone 44 px). */
.nv-cockpit .nvcp5-list a { display: inline-flex; align-items: center; min-height: 24px; }
@media (max-width: 600px), (pointer: coarse) { .nv-cockpit .nvcp5-list a { min-height: 44px; } }
.nvk-daybreak .d-th-kingcrest:empty { display: none; }

/* Staff panels (Mission Control) in the Daybreak shell: colours written for the dark looks, links inside notes, tiny check boxes and table links. */
.nvk-daybreak .nvx-017297fd { color: var(--ui-danger) !important; }
.nvk-daybreak main [style*="#4ade80"] { color: var(--ui-ok) !important; }
.nvk-daybreak .nv-ops-tile > div:first-child, .nvk-daybreak .nv-ops-tile > div:last-child { color: var(--ui-fg-3) !important; }
.nvk-daybreak a.nvx-3a35346d, .nvk-daybreak .nv-mc-note a, .nvk-daybreak .mc2-hint a, .nvk-daybreak .mc2-link, .nvk-daybreak a.mc2-gap { text-decoration: underline; text-underline-offset: 2px; }
.nvk-daybreak a.nvx-9bd93d36 { display: inline-block; min-width: 24px; min-height: 24px; line-height: 24px; }
.nvk-daybreak main input[type="checkbox"], .nvk-daybreak main input[type="radio"]:not(.pub-seg__in) {   /* the privacy switch's radios stay 1px: its labels are the 44px targets (pub-pages.css) */
   width: 24px; height: 24px; margin: 4px 10px 4px 4px; }
@media (max-width: 600px), (pointer: coarse) {
  .nvk-daybreak main input[type="checkbox"], .nvk-daybreak main input[type="radio"]:not(.pub-seg__in) { margin: 10px; }
  .nvk-daybreak .nv-mc :is(input, select):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) { min-height: 44px; }
  .nvk-daybreak a.nvx-3a35346d, .nvk-daybreak .mc4-line__main, .nvk-daybreak .mc4-state, .nvk-daybreak .mc2-link, .nvk-daybreak a.nvx-9bd93d36 { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; justify-content: center; }
}
.nvk-daybreak main .ok > span { color: var(--ui-ok) !important; }
.nvk-daybreak .mc2-hour { display: inline-flex; flex-direction: column; align-items: center; min-width: 32px; }
.nvk-daybreak .mc2-hour input { margin: 4px 0; }
@media (max-width: 600px), (pointer: coarse) { .nvk-daybreak .mc2-hour { min-width: 44px; min-height: 44px; } }

/* More dark-look colours seen in the staff panels and the Season hub (extracted inline colours and legacy captions). */
.nvk-daybreak a .d-cdx-no, .nvk-daybreak .d-cdx-card__top .d-cdx-no { color: var(--ui-link); }
.nvk-daybreak .nv-obs-note, .nvk-daybreak .is-prem > h3 > small, .nvk-daybreak .nv-asc-lane > h3 > small { color: var(--ui-fg-3); }
.nvk-daybreak .nv-mc-note { color: var(--ui-warn); }
.nvk-daybreak .nvx-3eab2197, .nvk-daybreak .nvx-55f7eda6, .nvk-daybreak .nvx-4e493b2f { color: var(--ui-link) !important; }
.nvk-daybreak .nvx-ced0962d { color: var(--ui-ok) !important; }
.nvk-daybreak .nvx-60fec1e1, .nvk-daybreak .nvx-60fec1e1 > strong { color: var(--ui-danger) !important; }
/* Links inside running text, in every shell (public pages too): underlined, not only coloured. */
.nvk-daybreak :where(p, li, td, dd, label, .mcg5-hero__more, .mc2-hint, .nv-mc-note, .nv-cp4-note, .sub) a:not([class*="btn"]):not(.nvk-btn):not(.nvk-sidenav__item):not([class*="nvk-contents"]) { text-decoration: underline; text-underline-offset: 2px; }

.nvk-daybreak .nv-cc-tile > a { text-decoration: underline; text-underline-offset: 2px; }
.nvk-daybreak summary .d-cdx-chno { color: var(--ui-link); }
.nvk-daybreak .nv-cdx-dim { color: var(--ui-fg-3); }
.nvk-daybreak .nv-mc-note { color: var(--ui-warn) !important; }
.nvk-daybreak .nv-obs-progress-num > small, .nvk-daybreak .nv-obs-tier > small { color: var(--ui-fg-3) !important; }
.nvk-daybreak .nvx-5d735cb6 > h5 { color: var(--ui-link) !important; }
.nvk-daybreak .nvx-ced0962d { color: color-mix(in srgb, var(--ui-ok) 75%, var(--ui-fg)) !important; }
.nvk-daybreak .not-applicable { color: var(--ui-fg-3) !important; }
.nvk-daybreak .nv-obs, .nvk-daybreak .nv-sh, .nvk-daybreak .nv-sh-wrap { --muted2: var(--ui-fg-3); }
}

/* _base/daybreak-auctions.css */
@layer pages{
.nvk-daybreak .d-lelong-buynow { margin-top: var(--space-3); }
.nvk-daybreak .d-lelong-tags { gap: var(--space-2); flex-wrap: wrap; }
.nvk-daybreak .nv-pz-page-lelong .d-mp-form .nvk-field { width: 100%; max-width: none; align-items: stretch; text-align: start; }
.nvk-daybreak .nv-pz-page-lelong .d-mp-form .nvk-field input { width: 100%; }
}

/* _base/daybreak-bazaar2.css */
@layer pages{
/* Daybreak Bazaar sub-pages: browse, item, sell, satchel, sets, stall, mob, collection. Tokens only. */
.nvk-daybreak .d-bz-tight{gap:var(--space-1)}
.nvk-daybreak .d-bz-chips{gap:var(--space-2)}
.nvk-daybreak .d-bz-grow{flex:1 1 200px;min-width:0}
.nvk-daybreak .d-bz-scroll{overflow-x:auto;max-width:100%}
.nvk-daybreak .d-bz-price{font-size:24px;line-height:32px}
.nvk-daybreak .d-bz-qty{width:96px;min-width:0;flex:0 0 auto}
/* browse */
.nvk-daybreak .d-bz-omni__box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3);align-items:end}
/* the sift bar above the results (owner 2026-10-22): no left column. Where to get it and the categories are island rails like the
   Bazaar's section tabs (bazaar-island.css nav.d-mpi-rail); the sift form is one bar of fields. Phone rules: layout-phone.css E5. */
.nvk-daybreak .d-bz-sift,.nvk-daybreak .d-bz-main{min-width:0}
.nvk-daybreak nav.d-bz-bar{display:flex;flex-wrap:wrap;gap:4px;width:max-content;max-width:100%;padding:6px;border-radius:28px;background:var(--ui-island);box-shadow:var(--shadow-island)}
.nvk-daybreak .d-bz-pill{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 16px;border-radius:var(--radius-pill);color:var(--ui-island-fg-2);font:600 14px/1 var(--body);white-space:nowrap;text-decoration:none}
.nvk-daybreak .d-bz-pill:hover{color:var(--ui-island-fg)}
.nvk-daybreak .d-bz-pill:focus-visible{outline:3px solid var(--ui-island-gold);outline-offset:2px}
.nvk-daybreak .d-bz-pill.is-on{background:var(--ui-island-fg);color:var(--ui-island)}
.nvk-daybreak .d-bz-pill__n{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-pill);background:var(--ui-island-gold);color:var(--ui-island-gold-fg);font:700 12px/1 var(--body)}
.nvk-daybreak .d-bz-pill.is-empty .d-bz-pill__n{background:transparent;color:var(--ui-island-fg-2);box-shadow:inset 0 0 0 1px var(--ui-island-line)}
.nvk-daybreak .d-bz-sb{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:28px;box-shadow:var(--shadow-sm)}
.nvk-daybreak .d-bz-sb__row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}
.nvk-daybreak .d-bz-sb__f{flex:1 1 160px;min-width:0;margin:0}
.nvk-daybreak .d-bz-sb__f .nvk-field{margin:0}
.nvk-daybreak .d-bz-sb__f--sm{flex-basis:120px}
.nvk-daybreak .d-bz-sb__f--range{flex-basis:200px}
.nvk-daybreak .d-bz-sb fieldset{background:transparent;box-shadow:none;border:0}
.nvk-daybreak .d-bz-sb legend.nvk-field__label{font:700 13px/18px var(--body);text-transform:none;letter-spacing:normal;margin:0 0 6px;padding:0}
.nvk-daybreak .d-bz-sb__go{flex:0 0 auto;display:flex;gap:var(--space-2);align-items:center}
.nvk-daybreak .d-bz-sb__sum{cursor:pointer;display:inline-flex;align-items:center;min-height:44px;font:700 14px/20px var(--body);color:var(--ui-link)}
.nvk-daybreak .d-bz-sb__more[open]>.d-bz-sb__sum{margin-bottom:var(--space-2)}
.nvk-daybreak .d-bz-sb__checks{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin-bottom:var(--space-3)}
.nvk-daybreak .d-bz-range{border:0;margin:0;padding:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--space-2);align-items:center}
.nvk-daybreak .d-bz-range legend{grid-column:1 / -1;padding:0;margin-bottom:var(--space-1)}
.nvk-daybreak .d-bz-stats{border:0;margin:0;padding:0;min-width:0}
.nvk-daybreak .d-bz-statgrid{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4)}
.nvk-daybreak .d-bz-check{display:flex;align-items:center;gap:var(--space-2);font-family:var(--body);font-size:14px;color:var(--ui-fg-2);min-height:32px}
.nvk-daybreak .d-bz-check input{margin:0;flex:0 0 auto}
.nvk-daybreak .d-bz-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:var(--space-4);align-items:start}
.nvk-daybreak .d-bz-cell{min-width:0}
.nvk-daybreak .d-bz-sort{color:inherit;text-decoration:none;white-space:nowrap}
.nvk-daybreak .d-bz-sort:hover{color:var(--ui-link)}
/* item and mob */
.nvk-daybreak .d-bz-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-5);align-items:center}
.nvk-daybreak .d-bz-spread{align-items:start}
.nvk-daybreak .d-bz-enc,.nvk-daybreak .d-bz-mkt{min-width:0}
.nvk-daybreak .d-bz-buyform{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}
.nvk-daybreak .d-bz-chrow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--radius-md)}
.nvk-daybreak .d-bz-chrow__who{min-width:0;font-family:var(--body);font-size:15px;color:var(--ui-fg-2)}
.nvk-daybreak .d-bz-dl{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:var(--space-2) var(--space-4);margin:0;font-family:var(--body);font-size:15px}
.nvk-daybreak .d-bz-dl dt{color:var(--ui-fg-3);font-weight:700}
.nvk-daybreak .d-bz-dl dd{margin:0;color:var(--ui-fg);min-width:0;overflow-wrap:anywhere}
.nvk-daybreak .d-bz-desc{font-family:var(--body);font-size:15px;line-height:22px;color:var(--ui-fg-2);overflow-wrap:anywhere}
.nvk-daybreak .d-bz-mobart,.nvk-daybreak .d-bz-mobhero__img{display:block;max-width:100%;height:auto;image-rendering:auto}
.nvk-daybreak .d-bz-mobhero{display:flex;align-items:center;justify-content:center;min-width:120px;max-width:190px}
.nvk-daybreak .d-bz-maplist{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1);font-family:var(--body);font-size:15px;color:var(--ui-fg-2)}
/* worn preview: two radio groups and CSS, no script */
.nvk-daybreak .d-bz-prv{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}
.nvk-daybreak .d-bz-prv__r{position:absolute;opacity:0;pointer-events:none}
.nvk-daybreak .d-bz-prv__figs{display:flex;justify-content:center;min-height:120px}
.nvk-daybreak .d-bz-prv__fig{display:none}
.nvk-daybreak .d-bz-prv__figs.one .d-bz-prv__fig{display:block}
.nvk-daybreak .d-bz-prv__img{display:block;max-height:180px;width:auto}
.nvk-daybreak .d-bz-prv__r.rg.m:checked ~ .d-bz-prv__figs:not(.hasback) .d-bz-prv__fig.m,
.nvk-daybreak .d-bz-prv__r.rg.f:checked ~ .d-bz-prv__figs:not(.hasback) .d-bz-prv__fig.f{display:block}
.nvk-daybreak .d-bz-prv__r.rg.m:checked ~ .d-bz-prv__r.rd.front:checked ~ .d-bz-prv__figs .d-bz-prv__fig.m.front,
.nvk-daybreak .d-bz-prv__r.rg.m:checked ~ .d-bz-prv__r.rd.back:checked ~ .d-bz-prv__figs .d-bz-prv__fig.m.back,
.nvk-daybreak .d-bz-prv__r.rg.f:checked ~ .d-bz-prv__r.rd.front:checked ~ .d-bz-prv__figs .d-bz-prv__fig.f.front,
.nvk-daybreak .d-bz-prv__r.rg.f:checked ~ .d-bz-prv__r.rd.back:checked ~ .d-bz-prv__figs .d-bz-prv__fig.f.back{display:block}
.nvk-daybreak .d-bz-prv__tabs{display:flex;gap:var(--space-2)}
.nvk-daybreak .d-bz-prv__tab{display:inline-flex;align-items:center;min-height:36px;padding:0 var(--space-4);border-radius:var(--radius-md);background:var(--ui-sunken);color:var(--ui-fg-2);font-family:var(--body);font-size:14px;font-weight:700;cursor:pointer}
.nvk-daybreak .d-bz-prv__r.rg.m:checked ~ .d-bz-prv__tabs .d-bz-prv__tab.m,
.nvk-daybreak .d-bz-prv__r.rg.f:checked ~ .d-bz-prv__tabs .d-bz-prv__tab.f,
.nvk-daybreak .d-bz-prv__r.rd.front:checked ~ .d-bz-prv__tabs .d-bz-prv__tab.front,
.nvk-daybreak .d-bz-prv__r.rd.back:checked ~ .d-bz-prv__tabs .d-bz-prv__tab.back{background:var(--ui-brand);color:var(--ui-brand-fg)}
.nvk-daybreak .d-bz-prv__r:focus-visible ~ .d-bz-prv__tabs .d-bz-prv__tab{outline:2px solid var(--ui-focus);outline-offset:2px}
/* sell */
.nvk-daybreak .d-bz-picks{display:flex;flex-direction:column;gap:var(--space-2);max-height:420px;overflow-y:auto}
.nvk-daybreak .d-bz-pick{display:grid;grid-template-columns:auto auto minmax(0,1fr) auto auto auto;gap:var(--space-3);align-items:center;padding:var(--space-2) var(--space-3);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--radius-md);cursor:pointer}
.nvk-daybreak .d-bz-pick__check{margin:0}
.nvk-daybreak .d-bz-pick__name{min-width:0;font-family:var(--body);font-size:15px;color:var(--ui-fg);overflow-wrap:anywhere}
.nvk-daybreak .d-bz-lock{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);background:var(--ui-sunken);border-radius:var(--radius-md)}
/* satchel */
.nvk-daybreak .d-bz-feedrow{grid-template-columns:auto minmax(0,1fr) auto}
/* sets */
.nvk-daybreak .d-bz-ladder{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:var(--space-2)}
.nvk-daybreak .d-bz-ladder li{display:grid;grid-template-columns:72px minmax(0,1fr);gap:var(--space-3);align-items:baseline}
.nvk-daybreak .d-bz-pieces{gap:var(--space-2)}
.nvk-daybreak .d-bz-piece{display:inline-flex;padding:var(--space-1);border-radius:var(--radius-md);border:1px solid var(--ui-line);background:var(--ui-sunken);opacity:.7}
.nvk-daybreak .d-bz-piece.is-owned{opacity:1;border-color:var(--ui-ok)}
.nvk-daybreak .d-bz-piece:hover,.nvk-daybreak .d-bz-piece:focus-visible{opacity:1;border-color:var(--ui-brand)}
/* stall */
.nvk-daybreak .d-bz-keeper{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--space-5);align-items:start}
.nvk-daybreak .d-bz-keeper__art{display:flex;align-items:center;justify-content:center;min-width:96px}
.nvk-daybreak .d-bz-keeper__img{display:block;max-width:110px;height:auto}
.nvk-daybreak .d-bz-keeper__main{min-width:0}
.nvk-daybreak .d-bz-gift{padding:var(--space-4);background:var(--ui-sunken);border-radius:var(--radius-md)}
.nvk-daybreak .d-bz-gift[hidden],.nvk-daybreak .d-bz-gift [hidden]{display:none}
.nvk-daybreak .d-bz-gift .nv-pz-gift-row{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);width:100%;min-height:44px;padding:var(--space-2) var(--space-3);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--radius-md);color:var(--ui-fg);font-family:var(--body);font-size:14px;cursor:pointer;text-align:left}
.nvk-daybreak .d-bz-gift .nv-pz-gift-row:hover,.nvk-daybreak .d-bz-gift .nv-pz-gift-row:focus-visible{border-color:var(--ui-brand)}
/* collection */
.nvk-daybreak .d-bz-tile.is-missing .nvk-card{border-style:dashed}   /* 2026-10-22: was opacity .8 (its captions fell to 3.5:1); a dashed edge marks a piece still missing */
@media (prefers-reduced-motion: no-preference){
.nvk-daybreak .d-bz-pill,.nvk-daybreak .d-bz-piece,.nvk-daybreak .d-bz-pick{transition:background-color .15s ease,border-color .15s ease,opacity .15s ease}
}
@media (max-width:900px){
.nvk-daybreak .d-bz-chrow{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:600px){
.nvk-daybreak .d-bz-omni__box{grid-template-columns:minmax(0,1fr)}
.nvk-daybreak .d-bz-hero,.nvk-daybreak .d-bz-keeper{grid-template-columns:minmax(0,1fr)}
.nvk-daybreak .d-bz-cards{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
.nvk-daybreak .d-bz-pick{grid-template-columns:auto auto minmax(0,1fr)}
.nvk-daybreak .d-bz-pick > .d-cap,.nvk-daybreak .d-bz-pick > .d-bz-qty{grid-column:3}
.nvk-daybreak .d-bz-dl{grid-template-columns:minmax(0,1fr)}
.nvk-daybreak .d-bz-ladder li{grid-template-columns:minmax(0,1fr)}
}
}

/* _base/daybreak-commerce.css */
@layer pages{
/* Daybreak commerce views: Season hub, Codex, Top-up, Bazaar (marketplace, auction, orders, wishlist), Tycoon, Tote. Tokens only. */
.nvk-daybreak .d-sh-trial{display:flex;flex-direction:column;gap:var(--space-1);padding-bottom:var(--space-3);border-bottom:1px solid var(--ui-line)}
.nvk-daybreak .d-sh-trial:last-child{border-bottom:0;padding-bottom:0}
.nvk-daybreak .d-sh-full{display:flex;flex-direction:column;gap:var(--space-4);min-width:0}
.nvk-daybreak .d-sh-full > .nv-sh{min-width:0;max-width:100%}
.nvk-daybreak .d-sh-full .nv-sh-h2,.nvk-daybreak .d-sh-full .nv-obs-finale h2{color:var(--ui-fg)}
.nvk-daybreak .d-sh-full .nv-sh-lead{color:var(--ui-fg-2)}
.nvk-daybreak .d-pg > .nv-codex{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.nvk-daybreak .d-cdx-search{display:flex;flex-direction:column;gap:var(--space-2)}
.nvk-daybreak .d-tu-perks{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-1);color:var(--ui-fg-2);font-size:14px}
.nvk-daybreak .d-tu-steps{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);color:var(--ui-fg-2);font-size:14px}
.nvk-daybreak .d-tu-matrix{margin-top:var(--space-3)}
.nvk-daybreak .d-tu-matrix td small{display:block}
.nvk-daybreak .d-tu-detail{font-size:13px;line-height:18px;color:var(--ui-fg-2)}
.nvk-daybreak .d-tu-matrix th:not(:first-child),.nvk-daybreak .d-tu-matrix td:not(:first-child){text-align:center}
.nvk-daybreak .d-tu-grp th{background:var(--ui-sunken);color:var(--ui-fg);text-align:left}
.nvk-daybreak .d-tu-matrix .d-tu-grp th{text-align:left}
.nvk-daybreak .d-tu-yes{color:var(--ui-ok, var(--ui-brand));font-weight:700}
.nvk-daybreak .d-tu-no{color:var(--ui-fg-3)}
.nvk-daybreak .d-tu-toggle{margin-right:var(--space-2)}
.nvk-daybreak .d-tu-toggle:checked ~ .d-tu-matrix .d-tu-same{display:none}
.nvk-daybreak :has(> .d-tu-lab .d-tu-toggle:checked) > .d-tu-matrix .d-tu-same{display:none}   /* the toggle sits inside its label since audit fixes B */
.nvk-daybreak .d-tu-lab{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;cursor:pointer}
.nvk-daybreak .d-tu-faq{border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-surface);padding:var(--space-3) var(--space-4)}
.nvk-daybreak .d-tu-faq summary{cursor:pointer;font-weight:700;color:var(--ui-fg)}
.nvk-daybreak .d-tu-faq p{margin-top:var(--space-2)}
.nvk-daybreak .d-tu-packs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:var(--space-4);align-items:start}
@media (max-width:600px){.nvk-daybreak .d-tu-matrix td:first-child{min-width:200px}}
/* Bazaar */
.nvk-daybreak .d-mp-rail{flex-wrap:wrap}
.nvk-daybreak .d-mp-rail .nvk-tab.active{background:var(--ui-brand);color:var(--ui-brand-fg)}
.nvk-daybreak .d-mp-rail.is-sliding .nvk-tab.active,.nvk-daybreak .d-mp-rail.is-sliding .nvk-tab.is-was{background:transparent}
.nvk-daybreak .d-mp-chips{align-items:center}
.nvk-daybreak .d-mp-omni{position:relative;display:flex;flex-direction:column;gap:var(--space-2)}
.nvk-daybreak .d-mp-tight{gap:var(--space-1)}
.nvk-daybreak .d-mp-note{margin-top:var(--space-2)}
.nvk-daybreak .d-mp-say{font-style:italic}
.nvk-daybreak .d-mp-stall{display:block;color:inherit;text-decoration:none}
.nvk-daybreak .d-mp-stall:hover .nvk-card,.nvk-daybreak .d-mp-stall:focus-visible .nvk-card{border-color:var(--ui-brand)}
.nvk-daybreak .d-mp-stall:focus-visible{outline:2px solid var(--ui-brand);outline-offset:2px;border-radius:var(--radius-lg)}
.nvk-daybreak .d-pg > .nv-pz{display:flex;flex-direction:column;gap:var(--space-6);min-width:0}
.nvk-daybreak .d-mp-form{display:flex;flex-direction:column;gap:var(--space-4)}
.nvk-daybreak .d-mp-inline{display:inline}
.nvk-daybreak .d-mp-ord{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-4);align-items:center;padding:var(--space-3) var(--space-4);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--radius-md)}
.nvk-daybreak .d-mp-ord .nv-gb-ledgerstatus{align-items:flex-end;text-align:right}
@media (max-width:600px){.nvk-daybreak .d-mp-ord{grid-template-columns:auto minmax(0,1fr)}.nvk-daybreak .d-mp-ord .nv-gb-ledgerstatus{grid-column:1 / -1;align-items:flex-start;text-align:left}}
.nvk-daybreak .d-mp-alert.is-unread{border-color:var(--ui-brand)}
.nvk-daybreak .d-mp-alert{grid-template-columns:auto minmax(0,1fr) auto}
.nvk-daybreak .d-tile .nvk-chip{align-self:flex-start}
.nvk-daybreak .d-tbl-name th:nth-child(2),.nvk-daybreak .d-tbl-name td:nth-child(2){text-align:left}
/* Nirvana+ Flagship PF16b: the matrix's group index and finder, the prepaid bundles on the plan cards */
.nvk-daybreak .d-tu-index{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:var(--space-3) 0}
.nvk-daybreak .d-tu-ix{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;padding:0 var(--space-3);border-radius:var(--radius-pill);background:var(--ui-sunken);color:var(--ui-fg);text-decoration:none}
.nvk-daybreak .d-tu-ix:hover,.nvk-daybreak .d-tu-ix:focus-visible{background:var(--ui-surface)}
.nvk-daybreak .d-tu-find{display:flex;flex-direction:column;gap:var(--space-1);margin-top:var(--space-3)}
.nvk-daybreak .d-tu-bundles{list-style:none;margin:var(--space-2) 0 0;padding:0;display:flex;flex-direction:column;gap:var(--space-2)}
.nvk-daybreak .d-tu-matrix tr[hidden]{display:none}
}

/* _base/daybreak-halls.css */
@layer pages{
/* Daybreak "halls" pages (docs/nvmc/WEB-UI-PLAN.md, WD-9): Throne, Records, Hardcore Hall, Patrons, Museum, Vault, Bounty, Ghost gallery, Devil fruit, Haki, Live, Sage, Season patch, Fair play, Verify, Appeal, Not found, Site map. */
.nvk-daybreak .d-hl-pos-top img{object-position:50% 25%}
.nvk-daybreak .d-hl-pos-mid img{object-position:50% 50%}
.nvk-daybreak .d-hl-pos-low img{object-position:50% 70%}
.nvk-daybreak .d-hl-pos-right img{object-position:70% 20%}
.nvk-daybreak .d-hl-fit-contain img{object-fit:contain}
.nvk-daybreak .d-hl-center{text-align:center}
.nvk-daybreak .d-hl-line{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--ui-line)}
.nvk-daybreak .d-hl-line:last-child{border-bottom:0;padding-bottom:0}
.nvk-daybreak .d-hl-val{font-family:var(--font-body);font-size:15px;line-height:22px;font-weight:700;color:var(--ui-fg);text-align:right}
.nvk-daybreak .d-hl-lines{font-family:var(--font-body);font-size:15px;line-height:24px;color:var(--ui-fg-2)}
.nvk-daybreak .d-hl-lines b{color:var(--ui-fg)}
@media (max-width:600px){.nvk-daybreak .d-banner__t h1,.nvk-daybreak .d-h1{font-size:32px;line-height:40px}.nvk-daybreak .d-banner{height:200px}.nvk-daybreak .d-hd__t{padding:var(--space-5)}}
.nvk-daybreak .d-num.d-hl-num{font-size:24px;line-height:32px;overflow-wrap:anywhere}
@media (max-width:760px){.nvk-daybreak .d-hd__a{min-height:0;height:220px}}
.nvk-daybreak .d-banner::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,color-mix(in srgb,var(--ui-brand-deep) 70%,transparent) 0,transparent 65%);pointer-events:none}
.nvk-daybreak .d-banner__t{z-index:2}
.nvk-daybreak .d-hl-cmd{align-self:flex-start;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:var(--ui-sunken);color:var(--ui-fg);font-family:var(--font-mono,monospace);font-size:13px;line-height:20px;overflow-wrap:anywhere}
.nvk-daybreak .d-hd__a.d-hl-fit-contain{height:340px;min-height:0}
.nvk-daybreak .d-hl-prog{width:100%;min-width:120px;height:8px;appearance:none;-webkit-appearance:none;border:0;border-radius:var(--radius-sm);background:var(--ui-sunken);overflow:hidden}
.nvk-daybreak .d-hl-prog::-webkit-progress-bar{background:var(--ui-sunken);border-radius:var(--radius-sm)}
.nvk-daybreak .d-hl-prog::-webkit-progress-value{background:var(--ui-brand);border-radius:var(--radius-sm)}
.nvk-daybreak .d-hl-prog::-moz-progress-bar{background:var(--ui-brand);border-radius:var(--radius-sm)}
.nvk-daybreak .d-hl-me{justify-content:flex-end}
.nvk-daybreak .d-hl-sage{align-items:flex-start;flex-wrap:nowrap}
.nvk-daybreak .d-hl-bubble{max-width:80%}
.nvk-daybreak .d-hl-bubble--me{background:var(--ui-brand)}
.nvk-daybreak .d-hl-bubble--me .d-txt{color:var(--ui-brand-fg)}
.nvk-daybreak .d-hl-steps{margin:0;padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);font-family:var(--font-body);font-size:15px;line-height:22px;color:var(--ui-fg-2)}
/* the legal pages' own markup (policy text), re-skinned */
.nvk-daybreak .d-hl-prose{display:flex;flex-direction:column;gap:var(--space-3);font-family:var(--font-body);font-size:15px;line-height:24px;color:var(--ui-fg-2)}
.nvk-daybreak .d-hl-prose p,.nvk-daybreak .d-hl-prose ul,.nvk-daybreak .d-hl-prose ol{margin:0}
.nvk-daybreak .d-hl-prose ul,.nvk-daybreak .d-hl-prose ol{padding-left:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.nvk-daybreak .d-hl-prose h1{font-family:var(--font-disp);font-size:32px;line-height:40px;font-weight:700;color:var(--ui-fg)}
.nvk-daybreak .d-hl-prose h2{margin-top:var(--space-4);font-family:var(--font-disp);font-size:22px;line-height:30px;font-weight:600;color:var(--ui-fg)}
.nvk-daybreak .d-hl-prose strong,.nvk-daybreak .d-hl-prose .big{color:var(--ui-fg)}
.nvk-daybreak .d-hl-prose .big{font-weight:700;font-size:17px}
.nvk-daybreak .d-hl-prose .flat,.nvk-daybreak .d-hl-prose .sub,.nvk-daybreak .d-hl-prose .ver{font-size:13px;line-height:20px;color:var(--ui-fg-3)}
.nvk-daybreak .d-hl-prose .card{padding:var(--space-4);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken)}
.nvk-daybreak .d-hl-prose .card.note{border-left:4px solid var(--ui-brand)}
.nvk-daybreak .d-hl-prose .ver{padding-top:var(--space-3);border-top:1px solid var(--ui-line)}
.nvk-daybreak .d-hl-prose a{color:var(--ui-link)}
.nvk-daybreak .d-hl-prose code{padding:0 var(--space-1);border-radius:var(--radius-sm);background:var(--ui-sunken);color:var(--ui-fg)}
.nvk-daybreak .d-hl-prose table{width:100%;border-collapse:collapse;font-size:14px;line-height:20px}
.nvk-daybreak .d-hl-prose th{text-align:left;padding:var(--space-2);border-bottom:1px solid var(--ui-line);font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ui-fg-3)}
.nvk-daybreak .d-hl-prose td{padding:var(--space-2);border-bottom:1px solid var(--ui-line);vertical-align:top}
.nvk-daybreak .d-hl-prose td.no{color:var(--ui-danger)}
@media (max-width:600px){.nvk-daybreak .d-hl-prose table,.nvk-daybreak .d-hl-prose tbody{display:block;overflow-x:auto}}

/* ---- Plaque halls (owner-picked Option B of the 'NirvanaRO Halls' canvas, 2026-10-19): the banner and its plaque (kit Plaque), engraved record cards
   (kit PlaqueCard), ledger timelines (kit Ledger). Markup: lib/nv_daybreak_halls.php. The halls rail beside the page went in the one left menu (2026-10-22). */
.nvk-daybreak .d-halls__pg { display: block; max-width: 1240px; margin: 0 auto; }
.nvk-daybreak .nvk-contents a.nvk-contents__a, .nvk-daybreak .nvk-contents a.nvk-contents__c { text-decoration: none; }
.nvk-daybreak .d-halls__main { display: flex; flex-direction: column; gap: 22px; min-width: 0; container-type: inline-size; }
body:has(.d-halls) { overflow-x: clip; }
.nvk-daybreak .d-dh-lead { margin: 0 4px; max-width: 760px; font: 400 17px/26px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-dh-txt { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-dh-sec { display: flex; flex-direction: column; gap: 6px; margin: 18px 4px 0; scroll-margin-top: 90px; }
.nvk-daybreak .d-dh-sec__t { margin: 0; padding: 0; border: 0; font: 700 28px/34px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-dh-sec__s { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-dh-nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-dh-nums > li { display: flex; min-width: 0; margin: 0; }
.nvk-daybreak .d-dh-nums .nvk-pcard { flex: 1; }
.nvk-daybreak .d-dh-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; align-items: stretch; }
.nvk-daybreak .d-dh-c7 { grid-column: span 7; } .nvk-daybreak .d-dh-c5 { grid-column: span 5; } .nvk-daybreak .d-dh-c6 { grid-column: span 6; } .nvk-daybreak .d-dh-c12 { grid-column: 1 / -1; }
.nvk-daybreak .d-dh-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 14px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-dh-tiles > li { display: flex; min-width: 0; margin: 0; }
.nvk-daybreak .d-dh-tiles > li > .nvk-pcard, .nvk-daybreak .d-dh-tiles > .nvk-pcard { flex: 1; }
.nvk-daybreak .d-dh-tiles--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nvk-daybreak .d-dh-tiles--wide { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.nvk-daybreak .d-dh-kv { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0; margin: 0; }
.nvk-daybreak .d-dh-kv dt, .nvk-daybreak .d-dh-kv dd { margin: 0; padding: 9px 0; border-top: 1px solid var(--ui-line); font: 500 14px/20px var(--body); }
.nvk-daybreak .d-dh-kv dt { color: var(--ui-fg-2); }
.nvk-daybreak .d-dh-kv dd { color: var(--ui-fg); font-weight: 700; padding-left: 16px; text-align: right; overflow-wrap: anywhere; }
.nvk-daybreak .d-dh-kv dt:first-of-type, .nvk-daybreak .d-dh-kv dd:first-of-type { border-top: 0; }
.nvk-daybreak .d-dh-line { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; min-height: 48px; border-top: 1px solid var(--ui-line); }
.nvk-daybreak .d-dh-line:first-child { border-top: 0; }
.nvk-daybreak .d-dh-line > b { flex: 1 1 160px; display: inline-flex; align-items: center; gap: 8px; min-width: 0; font: 700 16px/20px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-dh-line > span { font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-dh-plain { margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-dh-lab { margin: 6px 0 0; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daybreak .d-dh-form { display: flex; flex-direction: column; gap: 12px; padding: 16px; border-radius: 20px; background: var(--ui-surface-2); }
.nvk-daybreak .d-dh-form .d-bz-check { min-height: 44px; display: inline-flex; align-items: center; gap: 10px; }
.nvk-daybreak .d-pcard-ring { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; margin-bottom: 6px; border: 3px solid var(--ui-island-gold); border-radius: var(--radius-pill); color: var(--ui-warn); }
/* the King box on the Throne plaque */
.nvk-daybreak .d-dh-king { display: flex; align-items: center; gap: 14px; padding: 12px 18px 12px 12px; border-radius: 24px; background: var(--ui-island-2); }
.nvk-daybreak .d-dh-king__emb { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border: 2px dashed color-mix(in srgb, var(--ui-island-gold) 60%, transparent); border-radius: 20px; color: var(--ui-island-gold); overflow: hidden; }
.nvk-daybreak .d-dh-king__emb img { display: block; width: 100%; height: 100%; object-fit: contain; }
.nvk-daybreak .d-dh-king__t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .d-dh-king__l { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-gold); }
.nvk-daybreak .d-dh-king__n { font: 700 22px/26px var(--disp); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-dh-king__w { font: 500 14px/20px var(--body); color: var(--ui-island-fg-2); }
/* live count line (Midgard Live) */
.nvk-daybreak .d-dh-live { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 16px; padding: 14px 20px; border-radius: var(--radius-pill); background: var(--ui-surface); box-shadow: var(--shadow-sm); }
/* the not-found page: banner and plaque, then every hall */
.nvk-daybreak .d-dh-nf { display: flex; flex-direction: column; gap: 22px; max-width: 1120px; margin: 28px auto 0; padding-bottom: var(--space-7); }
.nvk-daybreak .d-dh-nf .nvk-plaque__p { width: min(880px, calc(100% - 56px)); margin: -150px auto 0; padding: 34px 36px; box-sizing: border-box; }
.nvk-daybreak .d-dh-nf .nvk-plaque__aside img { display: block; width: 200px; height: auto; margin-top: -90px; }
.nvk-daybreak .d-dh-path { display: inline-flex; align-items: center; flex-wrap: wrap; gap: 10px; align-self: flex-start; max-width: 100%; min-height: 44px; margin: 6px 0 0; padding: 8px 16px; border-radius: 14px; background: var(--ui-island-2); color: var(--ui-island-fg); font: 500 15px/20px var(--font-mono, monospace); overflow-wrap: anywhere; box-sizing: border-box; }
.nvk-daybreak .d-dh-path > span { color: var(--ui-island-fg-2); font-family: var(--body); }
.nvk-daybreak .d-dh-dir { display: flex; flex-direction: column; gap: 6px; margin-top: 22px; text-align: center; align-items: center; }
.nvk-daybreak .d-dh-dir__t { margin: 0; padding: 0; border: 0; font: 700 28px/34px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-dh-grp { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-dh-grp__t { margin: 0 6px; padding: 0; border: 0; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daybreak .d-dh-dirtiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-dh-dirtiles > li { display: flex; margin: 0; }
.nvk-daybreak .d-dh-dirtiles > li > a.d-dh-tile { flex: 1; display: block; padding: 6px; border-radius: 24px; background: var(--ui-surface); box-shadow: var(--shadow-sm); color: var(--ui-fg); text-decoration: none; transition: transform var(--t-spring-fast, 260ms) var(--ease-spring, ease); }
.nvk-daybreak .d-dh-dirtiles > li > a.d-dh-tile:hover { transform: translateY(-4px); color: var(--ui-fg); }
.nvk-daybreak a.d-dh-tile:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.nvk-daybreak .d-dh-tile__in { display: flex; align-items: flex-start; gap: 12px; min-height: 88px; padding: 14px; border: 1px solid var(--ui-line); border-radius: 19px; box-sizing: border-box; }
.nvk-daybreak .d-dh-tile__ic { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 14px; background: var(--ui-island); color: var(--ui-island-gold); }
.nvk-daybreak .d-dh-tile__b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .d-dh-tile__b b { font: 700 16px/22px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-dh-tile__b span { font: 400 13px/19px var(--body); color: var(--ui-fg-2); }
@media (prefers-reduced-motion: reduce) { .nvk-daybreak .d-dh-dirtiles > li > a.d-dh-tile { transition: none; } }
@container (max-width: 760px) {
  .nvk-daybreak .d-dh-c7, .nvk-daybreak .d-dh-c5, .nvk-daybreak .d-dh-c6 { grid-column: 1 / -1; }
  .nvk-daybreak .d-dh-tiles--3 { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1000px) { .nvk-daybreak .d-dh-dirtiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } .nvk-daybreak .d-dh-nf .nvk-plaque__p { grid-template-columns: minmax(0, 1fr); } .nvk-daybreak .d-dh-nf .nvk-plaque__aside img { margin: 0 auto; width: 150px; } }
@media (max-width: 600px) {
  .nvk-daybreak .d-dh-dirtiles { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-dh-nf { margin-top: 12px; }
  .nvk-daybreak .d-dh-nf .nvk-plaque__p { width: calc(100% - 20px); margin-top: -70px; padding: 22px 20px; }
  .nvk-daybreak .d-dh-sec__t, .nvk-daybreak .d-dh-dir__t { font-size: 24px; line-height: 30px; }
  .nvk-daybreak .d-dh-lead { font-size: 16px; line-height: 24px; }
  .nvk-daybreak .d-dh-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
}
.nvk-daybreak .nvk-pcard__body .nvk-chip { align-self: flex-start; }
@media (max-width: 600px) {
  .nvk-daybreak .d-dh-nums.d-dh-nums--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .nvk-daybreak .d-dh-nums--3 .nvk-pcard { padding: 5px; border-radius: 20px; }
  .nvk-daybreak .d-dh-nums--3 .nvk-pcard__in { padding: 10px 6px; border-radius: 16px; }
  .nvk-daybreak .d-dh-nums--3 .nvk-pcard__e { font-size: 10px; line-height: 14px; letter-spacing: .06em; }
  .nvk-daybreak .d-dh-nums--3 .nvk-pcard__v { font-size: 20px; line-height: 24px; }
}

/* Audit fixes D2 (2026-10-22): Museum "Top donors" sat in the narrow (5 of 12) column; with the table's 16px cell padding its four columns
   needed 329px of a 272px card at 1366 and the Worth column was cut (it scrolled). The two boards split the row evenly now
   (museum/_daybreak_index.php), the cells of both boards are tighter, the donor numbers right-aligned, and a long donor name wraps between words (or, if it
   is one long word, inside it), so each table fits its card with no scroll. */
.nvk-daybreak .d-mu-board .nvk-table :is(th, td) { padding-inline: var(--space-2); }
.nvk-daybreak .d-mu-board .nvk-table :is(th, td):first-child { padding-left: var(--space-3); }
.nvk-daybreak .d-mu-board .nvk-table :is(th, td):last-child { padding-right: var(--space-3); }
.nvk-daybreak .d-mu-donors .nvk-table :is(th, td):nth-child(n+3) { text-align: right; font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-mu-donors .nvk-table td:nth-child(2) { overflow-wrap: break-word; }

/* Nirvana+ Flagship PF8d: the War Room's live war map (an SVG; the dots are classed, never styled inline) */
.nvk-daybreak .d-wr-map { display: block; width: 100%; max-width: 420px; aspect-ratio: 1; border: 1px solid var(--ui-line); border-radius: 12px; background: var(--ui-surface-2, var(--ui-surface)); }
.nvk-daybreak .d-wr-own { fill: var(--ui-ok, currentColor); }
.nvk-daybreak .d-wr-spot { fill: var(--ui-danger, currentColor); opacity: .45; }
.nvk-daybreak .d-wr-emp { fill: var(--ui-gold, currentColor); }
.nvk-daybreak .d-wr-mark { fill: var(--ui-fg, currentColor); font-size: 7px; }
}

/* _base/daybreak-home.css */
@layer pages{
/* Daybreak home group: Cockpit, account, character, guild, stronghold, estate, history, service desk (WD-9). */
.nvk-daybreak .d-home-hd--plain .d-hd__t{grid-column:span 12}
.nvk-daybreak .d-home-pos img{object-position:50% 30%}
.nvk-daybreak .d-home-pos--top img{object-position:50% 10%}
.nvk-daybreak .d-home-pos--low img{object-position:50% 60%}
.nvk-daybreak .d-home-pos--right img{object-position:80% 40%}
.nvk-daybreak .d-home-kv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--space-6);margin:0}
.nvk-daybreak .d-home-kv__row{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);padding:var(--space-2) 0;border-bottom:1px solid var(--ui-line);min-width:0}
.nvk-daybreak .d-home-kv dt{margin:0;font-family:var(--font-body);font-size:13px;color:var(--ui-fg-3);flex:none}
.nvk-daybreak .d-home-kv dd{margin:0;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ui-fg);text-align:right;min-width:0;overflow-wrap:anywhere}
.nvk-daybreak .d-home-none{color:var(--ui-fg-3);font-style:italic;font-weight:400}
.nvk-daybreak .d-home-form{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--ui-line)}
.nvk-daybreak .d-home-form > h3{margin:0;font-family:var(--font-disp);font-size:16px;color:var(--ui-fg)}
.nvk-daybreak .d-home-form textarea{width:100%;min-height:80px;box-sizing:border-box;padding:var(--space-3);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-surface);color:var(--ui-fg);font-family:var(--font-body)}
.nvk-daybreak .d-home-form label{font-size:13px;color:var(--ui-fg-2)}
.nvk-daybreak .d-home-char{text-decoration:none;color:inherit}
.nvk-daybreak .d-home-char .d-tile{height:100%;box-sizing:border-box}
.nvk-daybreak .d-home-char__meta{font-size:13px;color:var(--ui-fg-2)}
.nvk-daybreak .d-home-sub{margin:0;font-size:13px;color:var(--ui-fg-2)}
.nvk-daybreak .d-home-warn{color:var(--ui-warn)}
.nvk-daybreak .d-home-emb{height:14px;vertical-align:middle;margin-right:var(--space-1)}
.nvk-daybreak .d-home-icon{width:24px;height:24px}
.nvk-daybreak .d-home-list{margin:0;padding-left:var(--space-4)}
@media (max-width:900px){.nvk-daybreak .d-home-kv{grid-template-columns:minmax(0,1fr)}}
@media (max-width:600px){.nvk-daybreak .d-home-kv__row{flex-direction:column;gap:2px}.nvk-daybreak .d-home-kv dd{text-align:left}}
.nvk-daybreak .d-home-pub{overflow-x:clip}
.nvk-daybreak .d-home-center{text-align:center;align-items:center}
.nvk-daybreak .d-home-pubwrap{padding-top:var(--space-6)}
.nvk-daybreak .d-home-portrait{display:flex;align-items:flex-end;justify-content:center;padding-top:var(--space-4)}
.nvk-daybreak .d-home-portrait img{height:260px;width:auto;max-width:100%;object-fit:contain}
.nvk-daybreak .d-home-top{align-items:flex-start;flex-wrap:nowrap;margin-bottom:var(--space-4)}
.nvk-daybreak .d-home-emblem{flex:none;width:64px;height:64px;object-fit:contain;border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken)}
.nvk-daybreak .d-home-grow{flex:1;min-width:0}
.nvk-daybreak .d-home-rel{display:inline-flex;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-lg);font-size:13px;font-weight:600;border:1px solid var(--ui-line);background:var(--ui-surface);color:var(--ui-fg)}
.nvk-daybreak .d-home-rel--ok{border-color:var(--ui-ok)}
.nvk-daybreak .d-home-rel--warn{border-color:var(--ui-warn)}
@media (max-width:600px){.nvk-daybreak .d-home-top{flex-direction:column}}
.nvk-daybreak .d-home-pager{padding-top:var(--space-3);color:var(--ui-fg-2)}
.nvk-daybreak .d-home-cp{display:flex;flex-direction:column;gap:var(--space-5);margin-bottom:var(--space-6)}
}

/* _base/daybreak-landing.css */
@layer pages{
/* Daybreak landing (docs/nvmc/WEB-UI-PLAN.md, WD-9): the Claude Design "Main" artboard. Art lives in themes/nirvana/img/art; motion only when the visitor allows it. */
.nvk-daybreak .nvl { position: relative; isolation: isolate; }
.nvk-daybreak .nvl-bg { position: absolute; left: 0; right: 0; top: 0; height: 800px; overflow: hidden; pointer-events: none; z-index: -1; }
.nvk-daybreak .nvl-bg__img { position: absolute; inset: -5% -4% 0 -4%; background: url(../../img/art/castle.jpg) top center / cover no-repeat; transform-origin: 50% 0; }
.nvk-daybreak .nvl-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to bottom, transparent 0, transparent 45%, var(--ui-bg) 100%); }
.nvk-daybreak .nvl-bg__cloud { position: absolute; left: 0; top: 90px; width: 55%; height: 150px; border-radius: 50%; background: radial-gradient(closest-side, rgba(255,255,255,.85), rgba(255,255,255,0)); filter: blur(6px); opacity: .8; }
.nvk-daybreak .nvl-bg__cloud--b { top: 210px; width: 45%; height: 120px; opacity: .6; }
.nvk-daybreak .nvl-bg__cloud--c { top: 340px; width: 60%; height: 170px; opacity: .5; }
.nvk-daybreak .nvl-bg__glint { position: absolute; width: 16px; height: 16px; border-radius: 50%; background: radial-gradient(closest-side, #fff, rgba(255,255,255,0)); opacity: 0; }
.nvk-daybreak .nvl-bg__glint:nth-child(1) { left: 12%; top: 460px; animation-delay: -0s; }
.nvk-daybreak .nvl-bg__glint:nth-child(2) { left: 27%; top: 380px; animation-delay: -3s; }
.nvk-daybreak .nvl-bg__glint:nth-child(3) { left: 41%; top: 500px; animation-delay: -6s; }
.nvk-daybreak .nvl-bg__glint:nth-child(4) { left: 55%; top: 340px; animation-delay: -9s; }
.nvk-daybreak .nvl-bg__glint:nth-child(5) { left: 68%; top: 470px; animation-delay: -2s; }
.nvk-daybreak .nvl-bg__glint:nth-child(6) { left: 79%; top: 400px; animation-delay: -11s; }
.nvk-daybreak .nvl-bg__glint:nth-child(7) { left: 90%; top: 520px; animation-delay: -5s; }
.nvk-daybreak .nvl-hero { margin: var(--space-4) var(--space-4) var(--space-7); min-height: 620px; display: grid; grid-template-columns: minmax(0, 520px) minmax(0, 1fr); align-items: center; gap: var(--space-5); padding: var(--space-6) 0; box-sizing: border-box; }
.nvk-daybreak .nvl-card { display: flex; flex-direction: column; gap: var(--space-5); padding: var(--space-7) var(--space-6); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); background: color-mix(in srgb, var(--ui-surface) 90%, transparent); }
.nvk-daybreak .nvl-eyebrow { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-brand-deep); }
.nvk-daybreak .nvl-h1 { margin: 0; font: 700 60px/64px var(--disp); letter-spacing: -.01em; color: var(--ui-fg); }
.nvk-daybreak .nvl-lead { margin: 0; font: 400 18px/28px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .nvl-actions { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.nvk-daybreak .nvl-char { display: flex; justify-content: center; align-items: flex-end; min-height: 560px; }
.nvk-daybreak .nvl-char img { display: block; height: 600px; width: auto; max-width: 100%; object-fit: contain; filter: drop-shadow(0 18px 22px rgba(11, 61, 145, .35)); }
.nvk-daybreak .nvl-band { padding: 0 var(--space-4) var(--space-7); }
.nvk-daybreak .nvl-photo { position: relative; border-radius: var(--radius-lg); overflow: hidden; box-shadow: var(--shadow-md); background: var(--ui-surface); }
.nvk-daybreak .nvl-photo img { display: block; width: 100%; object-fit: cover; }
.nvk-daybreak .nvl-photo--pan { height: 300px; }
.nvk-daybreak .nvl-photo--pan img { height: 100%; }
.nvk-daybreak .nvl-photo--kb img { height: 420px; object-position: 50% 30%; }
.nvk-daybreak .nvl-photo__cap { position: absolute; left: var(--space-6); bottom: var(--space-5); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: color-mix(in srgb, var(--ui-surface) 90%, transparent); font: 600 20px/28px var(--disp); color: var(--ui-fg); }
@media (max-width: 900px) {
  .nvk-daybreak .nvl-hero { grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .nvk-daybreak .nvl-char { min-height: 0; }
  .nvk-daybreak .nvl-char img { height: 360px; }
  .nvk-daybreak .nvl-h1 { font-size: 40px; line-height: 44px; }
  .nvk-daybreak .nvl-card { padding: var(--space-6) var(--space-5); }
}
@keyframes nvl-drift { from { transform: scale(1) translate3d(-3%, 0, 0); } to { transform: scale(1.16) translate3d(3%, -3%, 0); } }
@keyframes nvl-cloud { from { transform: translate3d(-70%, 0, 0); } to { transform: translate3d(190%, 0, 0); } }
@keyframes nvl-rise { 0% { opacity: 0; transform: translate3d(0, 60px, 0) scale(.6); } 20% { opacity: .95; } 80% { opacity: .7; } 100% { opacity: 0; transform: translate3d(26px, -220px, 0) scale(1.3); } }
@keyframes nvl-kb { from { transform: scale(1.02); } to { transform: scale(1.16) translate3d(-2.5%, -2%, 0); } }
@keyframes nvl-pan { from { object-position: 0% 50%; } to { object-position: 100% 50%; } }
@keyframes nvl-float { 0%, 100% { transform: translate3d(0, 0, 0) rotate(-.6deg); } 50% { transform: translate3d(0, -16px, 0) rotate(.6deg); } }
@media (prefers-reduced-motion: no-preference) {
  .nvk-daybreak .nvl-bg__img { animation: nvl-drift 26s ease-in-out infinite alternate; }
  .nvk-daybreak .nvl-bg__cloud { animation: nvl-cloud 45s linear infinite; }
  .nvk-daybreak .nvl-bg__cloud--b { animation-duration: 62s; animation-delay: -30s; }
  .nvk-daybreak .nvl-bg__cloud--c { animation-duration: 80s; animation-delay: -50s; }
  .nvk-daybreak .nvl-bg__glint { animation: nvl-rise 9s ease-in-out infinite; }
  .nvk-daybreak .nvl-char img { animation: nvl-float 5s ease-in-out infinite; }
  .nvk-daybreak .nvl-photo--pan img { animation: nvl-pan 45s ease-in-out infinite alternate; }
  .nvk-daybreak .nvl-photo--kb img { animation: nvl-kb 22s ease-in-out infinite alternate; transform-origin: 50% 40%; }
}
}

/* _base/daybreak-page.css */
@layer pages{
/* Page chrome of the live site when the Daybreak shell is on (web/lib/nv_ui_shell.php): the legacy page content sits inside the kit's content column. */
body.nvk-daybreak { margin: 0; background: var(--ui-bg); color: var(--ui-fg); font-family: var(--body); }
.nvk-daybreak .nv-content--kit { display: block; width: 100%; max-width: var(--max, 1220px); margin: 0 auto; padding: 0; background: transparent; box-shadow: none; border: 0; }
.nvk-daybreak .nvk-app__content > .nv-content--kit > :first-child { margin-top: 0; }
}

/* _base/daybreak-play.css */
@layer pages{
/* Daybreak "play" pages (docs/nvmc/WEB-UI-PLAN.md, WD-9): jobs, job trials, armory, mentor, journal, saga, abyss, arena, PvP, WoE, world boss,
   weekly trial, mythic, shadow palace, everfall. Colours and spacing come from tokens only. */
.nvk-daybreak .d-play-pos > img{object-position:50% 40%}
.nvk-daybreak .d-play-pos--top > img{object-position:50% 20%}
.nvk-daybreak .d-play-pos--low > img{object-position:50% 70%}
.nvk-daybreak .d-play-pos--right > img{object-position:70% 20%}
.nvk-daybreak .d-play-jobart{margin:calc(-1 * var(--space-1)) 0 var(--space-3);border-radius:var(--radius-md);overflow:hidden;aspect-ratio:16/10;background:var(--ui-sunken)}
.nvk-daybreak .d-play-jobart img{display:block;width:100%;height:100%;object-fit:cover;object-position:center top}
.nvk-daybreak .d-play-search{display:flex;gap:var(--space-3);align-items:flex-end;flex-wrap:wrap}
.nvk-daybreak .d-play-search .nvk-field{flex:1;min-width:220px}
.nvk-daybreak .d-play-share{display:flex;gap:var(--space-3);align-items:center;flex-wrap:wrap}
.nvk-daybreak .d-play-share__url{flex:1;min-width:200px;padding:var(--space-2) var(--space-3);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken);color:var(--ui-fg);font-family:var(--font-mono, monospace);font-size:13px}
.nvk-daybreak .d-play-find{margin-bottom:var(--space-3);border-radius:var(--radius-md);overflow:hidden;aspect-ratio:16/9;background:var(--ui-sunken)}
.nvk-daybreak .d-play-find img,.nvk-daybreak .d-play-find picture{display:block;width:100%;height:100%;object-fit:cover}
.nvk-daybreak .d-play-mobwrap{display:flex;justify-content:center;margin-bottom:var(--space-3);min-height:96px}
.nvk-daybreak .d-play-mob{max-width:96px;max-height:96px;object-fit:contain}

/* ---- Island stage (owner-picked Option B of the 'NirvanaRO Play Pages' canvas, 2026-10-19): the slim title island (kit PlayStrip), the white stage
   beside the Now and next column (kit NowNext), boards below with centred headings (the floating dock is gone, 2026-10-22). Markup: lib/nv_daybreak_play.php. */
.nvk-daybreak .d-play__pg { max-width: 1120px; gap: var(--space-5); }
.nvk-daybreak .d-stage { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 22px; align-items: start; }
.nvk-daybreak .d-stage__main { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; padding: 26px; border-radius: 40px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; }
.nvk-daybreak .d-stage__side { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.nvk-daybreak .d-stage__hd { display: flex; flex-direction: column; gap: 4px; }
.nvk-daybreak .d-stage__h { margin: 0; padding: 0; border: 0; font: 700 24px/30px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-stage__s { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
/* panels on the stage lose their own card: the stage is the card */
.nvk-daybreak .d-stage__main .nvk-panel { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.nvk-daybreak .d-stage-card { display: flex; flex-direction: column; gap: 10px; padding: 20px; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; min-width: 0; }
.nvk-daybreak .d-stage-card__h { margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-stage-card__s { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-stage-sec { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: var(--space-5) 0 0; text-align: center; }
.nvk-daybreak .d-stage-sec__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-link); }
.nvk-daybreak .d-stage-sec__t { margin: 0; padding: 0; border: 0; font: 700 30px/36px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-stage-board { width: 100%; max-width: 820px; margin: 0 auto; }
.nvk-daybreak .d-play .nvk-panel { border-radius: 32px; }
.nvk-daybreak .d-mini { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nvk-daybreak .d-mini > div { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 12px 14px; border-radius: 20px; background: var(--ui-surface-2); }
.nvk-daybreak .d-mini > .d-mini__w { grid-column: 1 / -1; }
.nvk-daybreak .d-mini span { font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-mini b { font: 700 22px/28px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }

/* the picker: buttons choose the focus panel (nv-ui.js data-nv-pick adds is-live; without it every panel shows) */
.nvk-daybreak .d-pick { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-pick__bs { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-pick__ps { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-pick__p[hidden] { display: none; }
.nvk-daybreak .d-pick__b { font: inherit; cursor: pointer; text-align: left; border: 0; box-sizing: border-box; }
.nvk-daybreak .d-pick__b:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.nvk-daybreak .d-pick:not(.is-live) .d-pick__b { cursor: default; }
/* Abyss: the depth bands, lighter to darker as you go down */
.nvk-daybreak .d-band { display: grid; grid-template-columns: 130px minmax(0, 1fr) auto; gap: 16px; align-items: center; width: 100%; min-height: 64px; padding: 14px 18px 14px 16px; border-radius: 28px; transition: transform var(--t-spring-fast) var(--ease-spring), box-shadow var(--t-fast); }
.nvk-daybreak .d-band:hover { transform: translateX(6px); }
.nvk-daybreak .d-band__fl { font: 700 15px/20px var(--disp); }
.nvk-daybreak .d-band__nm { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .d-band__nm b { font: 700 17px/22px var(--disp); }
.nvk-daybreak .d-band__s { font: 400 13px/18px var(--body); }
.nvk-daybreak .d-band__you { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 13px/1 var(--body); white-space: nowrap; }
.nvk-daybreak .d-band--s1 { background: var(--ui-brand-tint); color: var(--ui-fg); }
.nvk-daybreak .d-band--s2 { background: color-mix(in srgb, var(--ui-brand) 30%, var(--ui-surface)); color: var(--ui-fg); }
.nvk-daybreak .d-band--s3 { background: var(--ui-island-2); color: var(--ui-island-fg); }
.nvk-daybreak .d-band--s4 { background: var(--ui-island); color: var(--ui-island-fg); }
.nvk-daybreak .d-band--s3 .d-band__s, .nvk-daybreak .d-band--s4 .d-band__s { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-pick.is-live .d-pick__b[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--ui-island-gold), var(--shadow-lg); }
.nvk-daybreak .d-focus { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 18px; align-items: center; padding: 18px; border-radius: 32px; background: var(--ui-surface-2); }
.nvk-daybreak .d-focus__t { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.nvk-daybreak .d-focus__h { margin: 0; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-band__lab { margin: 4px 0 0; font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-2); }
/* the deepest per job: tiles with the class logo */
.nvk-daybreak .d-jobtiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-jobtile { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 16px 12px; border-radius: 28px; background: var(--ui-surface); box-shadow: var(--shadow-sm); text-align: center; }
.nvk-daybreak .d-jobtile__logo { width: 56px; height: 56px; }
.nvk-daybreak .d-jobtile__job { font: 700 15px/20px var(--disp); }
.nvk-daybreak .d-jobtile__who { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-jobtile__v { font: 700 20px/24px var(--disp); color: var(--ui-fg); }

.nvk-daybreak .d-band--s3, .nvk-daybreak .d-band--s4 { box-shadow: inset 0 0 0 1px var(--ui-island-line); }
@media (max-width: 1100px) { .nvk-daybreak .d-stage { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 760px) {
  .nvk-daybreak .d-stage__main { padding: 18px; border-radius: 32px; }
  .nvk-daybreak .d-band { grid-template-columns: minmax(0, 1fr) auto; padding: 14px 16px; }
  .nvk-daybreak .d-band__fl { grid-column: 1 / -1; }
  .nvk-daybreak .d-band:hover { transform: none; }
  .nvk-daybreak .d-focus { grid-template-columns: minmax(0, 1fr); padding: 14px; }
  .nvk-daybreak .d-stage-sec__t { font-size: 24px; line-height: 30px; }
  .nvk-daybreak .d-jobtiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) { .nvk-daybreak .d-band { transition: none; } .nvk-daybreak .d-band:hover { transform: none; } }

/* World bosses: the fight card, the live damage bars, the six titans, the weekly hunters */
.nvk-daybreak .d-stage__h3 { margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-fight { position: relative; overflow: hidden; display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 24px; align-items: center; padding: 26px; border-radius: 32px; color: var(--ui-island-fg);
  background: radial-gradient(120% 120% at 15% 0, var(--ui-island-2) 0, var(--ui-island) 62%); }
.nvk-daybreak .d-fight--noart { grid-template-columns: minmax(0, 1fr); }
.nvk-daybreak .d-fight > *:not(.d-fight__stars) { position: relative; }
.nvk-daybreak .d-fight__stars { position: absolute; inset: 0; pointer-events: none; opacity: .7;
  background: radial-gradient(2px 2px at 12% 20%, var(--ui-island-fg), transparent), radial-gradient(2px 2px at 70% 12%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 88% 60%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 40% 85%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 55% 40%, var(--ui-island-fg), transparent); }
.nvk-daybreak .d-fight__port { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; border-radius: 22px; border: 2px dashed color-mix(in srgb, var(--ui-island-blue) 50%, transparent); background: color-mix(in srgb, var(--ui-island-blue) 8%, transparent); }
.nvk-daybreak .d-fight__t { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.nvk-daybreak .d-fight__live, .nvk-daybreak .d-fight__e { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; height: 30px; margin: 0; padding: 0 12px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 12%, transparent); color: var(--ui-island-fg); font: 600 13px/1 var(--body); }
.nvk-daybreak .d-fight__h { margin: 0; padding: 0; border: 0; font: 700 32px/36px var(--disp); color: var(--ui-island-fg); text-wrap: balance; }
.nvk-daybreak .d-fight__p { margin: 0; font: 400 15px/22px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-fight .nvk-meter-row__text { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-dmg { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-dmg__r { display: grid; grid-template-columns: 160px minmax(0, 1fr) 100px; gap: 12px; align-items: center; font: 600 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-dmg__n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nvk-daybreak .d-dmg__bar { width: 100%; }
.nvk-daybreak .d-dmg__v { text-align: right; font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-pick--titan .d-pick__bs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.nvk-daybreak .d-titan { display: flex; flex-direction: column; gap: 2px; min-height: 64px; padding: 12px 14px; border-radius: 24px; background: var(--ui-surface-2); color: var(--ui-fg); transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-daybreak .d-titan:hover { transform: translateY(-3px); }
.nvk-daybreak .d-titan__n { font: 700 15px/20px var(--disp); }
.nvk-daybreak .d-titan__s { font: 500 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pick.is-live .d-titan[aria-pressed="true"] { background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-md); }
.nvk-daybreak .d-pick.is-live .d-titan[aria-pressed="true"] .d-titan__s { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-titan.is-live { box-shadow: 0 0 0 2px var(--ui-danger); }
.nvk-daybreak .d-focus--noart { grid-template-columns: minmax(0, 1fr); }
.nvk-daybreak .d-focus .d-play-mobwrap { margin: 0; }
.nvk-daybreak .d-hunt { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-hunt__r { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: center; min-height: 52px; padding: 6px 16px 6px 6px; border-radius: var(--radius-pill); background: var(--ui-surface-2); }
.nvk-daybreak .d-hunt__k { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); font: 700 15px/1 var(--disp); }
.nvk-daybreak .d-hunt__k.is-first { color: var(--ui-island-gold); }
.nvk-daybreak .d-hunt__n { font: 700 15px/20px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-hunt__v { font: 700 18px/22px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-stage-wide { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
@media (max-width: 760px) {
  .nvk-daybreak .d-fight { grid-template-columns: minmax(0, 1fr); padding: 20px; }
  .nvk-daybreak .d-fight__port { max-width: 160px; }
  .nvk-daybreak .d-fight__h { font-size: 26px; line-height: 30px; }
  .nvk-daybreak .d-dmg__r { grid-template-columns: minmax(0, 1fr) auto; }
  .nvk-daybreak .d-dmg__bar { grid-column: 1 / -1; grid-row: 2; }
  .nvk-daybreak .d-pick--titan .d-pick__bs { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-titan:hover { transform: none; }
}
@media (prefers-reduced-motion: reduce) { .nvk-daybreak .d-titan { transition: none; } .nvk-daybreak .d-titan:hover { transform: none; } }
.nvk-daybreak .d-mini--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nvk-daybreak .d-stage-board--wide { max-width: none; }
@media (max-width: 760px) { .nvk-daybreak .d-mini--3 { grid-template-columns: minmax(0, 1fr); } }
.nvk-daybreak .d-wingrow { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; min-height: 52px; padding: 8px 14px 8px 18px; border-radius: 28px; background: var(--ui-surface-2); }
.nvk-daybreak .d-wingrow__n { font: 700 16px/20px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-wingrow__s { flex: 1 1 auto; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-stage-sec__t--l { align-self: flex-start; text-align: left; font-size: 24px; line-height: 30px; }
.nvk-daybreak .d-stage__main .d-g3, .nvk-daybreak .d-stage__main .d-g4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 760px) { .nvk-daybreak .d-stage__main .d-g3, .nvk-daybreak .d-stage__main .d-g4 { grid-template-columns: minmax(0, 1fr); } }
.nvk-daybreak .d-stage--side { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 760px) {
  .nvk-daybreak .d-play .nvk-card__foot .d-link { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; padding: 0 6px; }
  .nvk-daybreak .d-play .nvk-ranklist__name { display: inline-flex; align-items: center; min-height: 44px; }
}
}

/* _base/daybreak-rankings.css */
@layer pages{
/* Daybreak ranking views (docs/nvmc/WEB-UI-PLAN.md, WD-9; canvas "Rankings"): filter row, card footer links, emblem, pager. The 4/2/1 grid is .d-g4. */
.nvk-daybreak .d-rk-filter{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);margin-bottom:var(--space-5)}
.nvk-daybreak .d-rk-filter .nvk-field{flex:1;min-width:220px;max-width:420px}
.nvk-daybreak .d-rk-cell{display:flex;flex-direction:column;gap:var(--space-2);min-width:0}
.nvk-daybreak .d-rk-links{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-3);margin:0;padding:0 var(--space-2);font-family:var(--font-body);font-size:14px;line-height:20px;color:var(--ui-fg-2)}
.nvk-daybreak .d-rk-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--ui-link)}
.nvk-daybreak .d-rk-emblem{width:24px;height:24px;margin-right:var(--space-1);vertical-align:middle;object-fit:contain}
.nvk-daybreak .d-rk-pager{display:flex;justify-content:center;margin-top:var(--space-5)}
@media (max-width:600px){.nvk-daybreak .d-rk-filter .nvk-field{max-width:none}.nvk-daybreak .d-rk-filter .nvk-btn{flex:1}}
}

/* _base/daybreak-site.css */
@layer pages{
/* Daybreak page helpers (docs/nvmc/WEB-UI-PLAN.md, WD-9): layout and text classes of the Claude Design pages, prefixed d- so they never meet legacy class names.
   Generated once from the canvas site.css; motion is added under prefers-reduced-motion in the block at the end. */
.nvk-daybreak .d-page{position:relative;isolation:isolate}
.nvk-daybreak .d-page .nvl-bg{height:520px}
.nvk-daybreak .d-page .nvl-bg__img{opacity:.6}
.nvk-daybreak .d-page .nvl-bg::after{background:linear-gradient(to bottom, transparent 0, var(--ui-bg) 100%)}
.nvk-daybreak .d-page .nvl-bg__cloud{top:60px;height:130px;opacity:.7}
.nvk-daybreak .d-page .nvl-bg__cloud--b{top:190px;height:110px;opacity:.5}
.nvk-daybreak .d-page .nvl-bg__cloud--c{top:290px;height:140px;opacity:.4}
.nvk-daybreak .d-page--public{padding:0 var(--space-4);overflow-x:clip}
.nvk-daybreak .d-page--public .nvl-bg{height:640px;left:calc(-1 * var(--space-4));right:calc(-1 * var(--space-4))}
@keyframes nvl-kb{from{transform:scale(1.02) translate3d(0,0,0)}to{transform:scale(1.16) translate3d(-2.5%,-2%,0)}}
@keyframes nvl-pan{from{object-position:0% 50%}to{object-position:100% 50%}}
@keyframes nvl-float{0%,100%{transform:translate3d(0,0,0) rotate(-.6deg)}50%{transform:translate3d(0,-16px,0) rotate(.6deg)}}
@keyframes nvl-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.7}}
/* ---- layout helpers ---------------------------------------------------------------------------------------------------------- */
.nvk-daybreak .d-pg{max-width:1040px;margin:0 auto;display:flex;flex-direction:column;gap:var(--space-6)}
.nvk-daybreak .d-pg--narrow{max-width:760px}
.nvk-daybreak .d-pg--wide{max-width:var(--max)}
.nvk-daybreak .d-pub{max-width:var(--max);margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-8);display:flex;flex-direction:column;gap:var(--space-5)}
.nvk-daybreak .d-pub--narrow{max-width:760px}
.nvk-daybreak .d-g2,.nvk-daybreak .d-g3,.nvk-daybreak .d-g4,.nvk-daybreak .d-g5{display:grid;gap:var(--space-4);align-items:start}
.nvk-daybreak .d-g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.nvk-daybreak .d-g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.nvk-daybreak .d-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.nvk-daybreak .d-g5{grid-template-columns:repeat(5,minmax(0,1fr))}
.nvk-daybreak .d-split{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--space-4);align-items:start}
.nvk-daybreak .d-c4{grid-column:span 4}.nvk-daybreak .d-c5{grid-column:span 5}.nvk-daybreak .d-c6{grid-column:span 6}.nvk-daybreak .d-c7{grid-column:span 7}.nvk-daybreak .d-c8{grid-column:span 8}.nvk-daybreak .d-c12{grid-column:span 12}
@media (max-width:900px){.nvk-daybreak .d-g3,.nvk-daybreak .d-g4,.nvk-daybreak .d-g5{grid-template-columns:repeat(2,minmax(0,1fr))}.nvk-daybreak .d-c4,.nvk-daybreak .d-c5,.nvk-daybreak .d-c6,.nvk-daybreak .d-c7,.nvk-daybreak .d-c8{grid-column:span 12}}
@media (max-width:600px){.nvk-daybreak .d-g2,.nvk-daybreak .d-g3,.nvk-daybreak .d-g4,.nvk-daybreak .d-g5{grid-template-columns:minmax(0,1fr)}}
.nvk-daybreak .d-stack{display:flex;flex-direction:column;gap:var(--space-3)}
.nvk-daybreak .d-stack--lg{gap:var(--space-5)}
.nvk-daybreak .d-row{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center}
.nvk-daybreak .d-row--between{justify-content:space-between}
.nvk-daybreak .d-center{display:flex;justify-content:center}

/* header block with art on the right */
.nvk-daybreak .d-hd{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:stretch;background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}
.nvk-daybreak .d-hd__t{grid-column:span 7;display:flex;flex-direction:column;justify-content:center;gap:var(--space-3);padding:var(--space-6)}
.nvk-daybreak .d-hd__a{grid-column:span 5;min-height:240px}
.nvk-daybreak .d-hd__a img,.nvk-daybreak .d-banner img{display:block;width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.nvk-daybreak .d-hd__t,.nvk-daybreak .d-hd__a{grid-column:span 12}}
/* full-width banner with the title over the picture */
.nvk-daybreak .d-banner{position:relative;height:240px;border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow-md)}
.nvk-daybreak .d-banner__t{position:absolute;left:var(--space-6);bottom:var(--space-5);right:var(--space-6);display:flex;flex-direction:column;gap:var(--space-1)}
.nvk-daybreak .d-banner__t h1{font-family:var(--font-disp);font-size:44px;line-height:52px;font-weight:700;color:var(--ui-brand-fg);text-shadow:0 1px 14px var(--ui-brand-deep)}
.nvk-daybreak .d-banner__t p{font-family:var(--font-body);font-size:16px;line-height:24px;color:var(--ui-brand-fg);text-shadow:0 1px 10px var(--ui-brand-deep)}

/* text styles */
.nvk-daybreak .d-h1{font-family:var(--font-disp);font-size:44px;line-height:52px;font-weight:700;color:var(--ui-fg);letter-spacing:-.01em}
.nvk-daybreak .d-h2{font-family:var(--font-disp);font-size:24px;line-height:32px;font-weight:600;color:var(--ui-fg)}
.nvk-daybreak .d-h3{font-family:var(--font-disp);font-size:18px;line-height:26px;font-weight:600;color:var(--ui-fg)}
.nvk-daybreak .d-lead{font-family:var(--font-body);font-size:18px;line-height:28px;color:var(--ui-fg-2)}
.nvk-daybreak .d-txt{font-family:var(--font-body);font-size:15px;line-height:22px;color:var(--ui-fg-2)}
.nvk-daybreak .d-cap{font-family:var(--font-body);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ui-fg-3)}
.nvk-daybreak .d-eyebrow{font-family:var(--font-body);font-size:12px;line-height:16px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ui-brand-deep)}
.nvk-daybreak .d-num{font-family:var(--font-disp);font-size:32px;line-height:40px;font-weight:700;color:var(--ui-fg)}
.nvk-daybreak .d-link{color:var(--ui-link);font-family:var(--font-body);font-size:15px}
.nvk-daybreak .d-glass{background:color-mix(in srgb, var(--ui-surface) 90%, transparent);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}
.nvk-daybreak .d-chip-on-art{position:absolute;left:var(--space-4);bottom:var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:color-mix(in srgb, var(--ui-surface) 90%, transparent);font-family:var(--font-disp);font-size:16px;line-height:24px;font-weight:600;color:var(--ui-fg)}
.nvk-daybreak .d-tile{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-4);background:var(--ui-surface);border:1px solid var(--ui-line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font-family:var(--font-body)}
.nvk-daybreak .d-dot-live{display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--ui-ok);margin-right:var(--space-2)}
.nvk-daybreak .d-map{position:relative;height:340px;border-radius:var(--radius-lg);overflow:hidden;background:var(--ui-sunken);border:1px solid var(--ui-line)}
.nvk-daybreak .d-map img{display:block;width:100%;height:100%;object-fit:cover}
.nvk-daybreak .d-pin{position:absolute;width:14px;height:14px;border-radius:50%;background:var(--ui-cta);border:2px solid var(--ui-surface);box-shadow:var(--shadow-md);}

@keyframes nvl-pulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.18);opacity:.7}}
@media (prefers-reduced-motion: no-preference){
.nvk-daybreak .d-kb > img{animation:nvl-kb 22s ease-in-out infinite alternate}
.nvk-daybreak .d-pan > img{animation:nvl-pan 45s ease-in-out infinite alternate}
.nvk-daybreak .d-float{animation:nvl-float 5s ease-in-out infinite}
.nvk-daybreak .d-pulse,.nvk-daybreak .d-pin{animation:nvl-pulse 2.4s ease-in-out infinite}
}

.nvk-daybreak .d-kb{overflow:hidden}
.nvk-daybreak .d-pan > img{object-fit:cover}

/* ---- sign-in and sign-up: art on one side, the form on the other ---- */
.nvk-daybreak .d-auth{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:var(--space-6) auto var(--space-8);max-width:1040px;background:var(--ui-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);overflow:hidden}
.nvk-daybreak .d-auth__art{min-height:560px;position:relative}
.nvk-daybreak .d-auth__art img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover}
.nvk-daybreak .d-auth__form{padding:var(--space-7) var(--space-6);display:flex;flex-direction:column;justify-content:center;gap:var(--space-5)}
.nvk-daybreak .d-auth__form form{display:flex;flex-direction:column;gap:var(--space-4)}
.nvk-daybreak .d-auth__head{display:flex;flex-direction:column;gap:var(--space-2);text-align:center}
.nvk-daybreak .d-auth__head .nvk-brandlogo{align-self:center;margin-bottom:var(--space-2)}
.nvk-daybreak .d-auth__head h1{font:700 40px/48px var(--disp);color:var(--ui-fg)}
.nvk-daybreak .d-auth__head p{font:400 16px/24px var(--body);color:var(--ui-fg-2)}
.nvk-daybreak .d-auth__alt{font:400 15px/22px var(--body);color:var(--ui-fg-2);text-align:center}
.nvk-daybreak .d-auth__alt a{color:var(--ui-link)}
.nvk-daybreak .d-auth__or{display:flex;align-items:center;gap:var(--space-3);font:700 12px/16px var(--body);letter-spacing:.1em;text-transform:uppercase;color:var(--ui-fg-3)}
.nvk-daybreak .d-auth__or::before,.nvk-daybreak .d-auth__or::after{content:"";flex:1;height:1px;background:var(--ui-line)}
.nvk-daybreak .d-auth__oauth{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}
.nvk-daybreak .d-auth__rules{margin:0;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--ui-sunken);font:400 13px/20px var(--body);color:var(--ui-fg-2);list-style:none;display:flex;flex-direction:column;gap:var(--space-1)}
.nvk-daybreak .d-auth__ctl{display:flex;flex-direction:column;gap:var(--space-2);font:400 15px/22px var(--body);color:var(--ui-fg-2)}
.nvk-daybreak .d-auth__ctl > label,.nvk-daybreak .d-auth__ctl > span.nvk-field__label{font:700 14px/20px var(--body);color:var(--ui-fg)}
.nvk-daybreak .d-auth__ctl select{font:inherit;padding:var(--space-2) var(--space-3);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-surface);color:var(--ui-fg)}
.nvk-daybreak .d-auth__radios{display:flex;gap:var(--space-4);flex-wrap:wrap}
.nvk-daybreak .d-auth__radios label{display:flex;align-items:center;gap:var(--space-2);font:400 15px/22px var(--body);color:var(--ui-fg)}
.nvk-daybreak .d-auth__consent{display:flex;align-items:flex-start;gap:var(--space-3);font:400 14px/22px var(--body);color:var(--ui-fg-2)}
.nvk-daybreak .d-auth__consent a{color:var(--ui-link)}
.nvk-daybreak .d-teaser{grid-column:1 / -1}
@media (max-width:900px){.nvk-daybreak .d-auth{grid-template-columns:minmax(0,1fr)}.nvk-daybreak .d-auth__art{min-height:220px}.nvk-daybreak .d-auth__form{padding:var(--space-6) var(--space-5)}.nvk-daybreak .d-auth__head h1{font-size:32px;line-height:40px}}
.nvk-daybreak .nvl-bg__glints{display:contents}
.nvk-daybreak .d-auth__art--login img{object-position:70% 20%}
.nvk-daybreak .d-auth__art--register img{object-position:40% 50%}
.nvk-daybreak .d-page--public > .d-pg{padding:var(--space-6) 0 var(--space-8)}
/* Player two-factor (docs/nvmc/PLAYER-2FA-PLAN.md): code form, enrol screen, recovery codes. The QR is drawn black on white in every theme so it scans. */
.nvk-qr{display:block;width:100%;height:auto}
.nvk-qr__bg{fill:white}
.nvk-qr__fg{fill:black}
.nvk-daybreak .d-p2{display:grid;grid-template-columns:240px minmax(0,1fr);gap:var(--space-6);align-items:start}
.nvk-daybreak .d-p2__qr{width:240px;max-width:100%;padding:var(--space-2);border-radius:var(--radius-md);background:white}
.nvk-daybreak .d-p2__secret{display:block;padding:var(--space-3);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken);color:var(--ui-fg);font:600 15px/22px monospace;letter-spacing:.08em;overflow-wrap:anywhere;user-select:all}
.nvk-daybreak .d-p2__codes{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-2)}
.nvk-daybreak .d-p2__codes li{padding:var(--space-2) var(--space-3);border:1px solid var(--ui-line);border-radius:var(--radius-sm);background:var(--ui-sunken);color:var(--ui-fg);font:600 15px/22px monospace;letter-spacing:.06em;text-align:center}
.nvk-daybreak .d-p2__forms{display:flex;flex-direction:column;gap:var(--space-5)}
.nvk-daybreak .d-p2__form{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-4);border-top:1px solid var(--ui-line)}
.nvk-daybreak .d-p2__form:first-child{border-top:0;padding-top:0}
.nvk-daybreak .d-p2__form > h3{margin:0;font-family:var(--disp);font-size:16px;color:var(--ui-fg)}
.nvk-daybreak .d-auth__code{text-align:center;font:600 22px/32px monospace;letter-spacing:.3em}
@media (max-width:700px){.nvk-daybreak .d-p2{grid-template-columns:minmax(0,1fr)}.nvk-daybreak .d-p2__qr{width:min(240px,100%)}.nvk-daybreak .d-p2__codes{grid-template-columns:minmax(0,1fr)}}
}

/* _base/daybreak-support.css */
@layer pages{
/* Daybreak support group: player Service Desk ticket thread (WD-9). */
.nvk-daybreak .d-support-body{overflow-wrap:anywhere}
.nvk-daybreak .d-support-shot{display:block;max-width:100%;max-height:320px;border-radius:var(--radius-md);border:1px solid var(--ui-line)}
.nvk-daybreak .d-support-thread{display:flex;flex-direction:column;gap:var(--space-3)}
.nvk-daybreak .d-support-msg{padding:var(--space-4);border:1px solid var(--ui-line);border-radius:var(--radius-lg);background:var(--ui-surface);min-width:0;overflow-wrap:anywhere}
.nvk-daybreak .d-support-msg--staff{border-color:var(--ui-brand);background:var(--ui-sunken)}
.nvk-daybreak .d-support-msg__hd{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);color:var(--ui-fg)}
.nvk-daybreak .d-support-msg__t{margin-left:auto;font-size:12px;color:var(--ui-fg-3)}
.nvk-daybreak .d-support-msg__act{margin:0}
.nvk-daybreak .d-support-acts{margin:0;padding:0;border:0;display:flex;flex-direction:column;gap:var(--space-2)}
.nvk-daybreak .d-support-acts__lg{padding:0;margin-bottom:var(--space-2);font-size:13px;color:var(--ui-fg-3)}
.nvk-daybreak .d-support-act{display:flex;align-items:center;gap:var(--space-2);font-size:14px;color:var(--ui-fg);cursor:pointer}
@media (max-width:600px){.nvk-daybreak .d-support-msg__t{margin-left:0;width:100%}}
/* Paginator markup of the history logs (legacy .pages / .page-num). */
.nvk-daybreak .d-home-pager .pages{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-2)}
.nvk-daybreak .d-home-pager .pages a.page-num{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;padding:0 var(--space-2);box-sizing:border-box;border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-surface);color:var(--ui-fg);font-size:14px;text-decoration:none}
.nvk-daybreak .d-home-pager .pages a.page-num.current-page{background:var(--ui-brand);border-color:var(--ui-brand);color:var(--ui-brand-fg);font-weight:700}
}

/* _base/daybreak-tail.css */
@layer pages{
/* A7 tail: the parts of converted pages that were still legacy (Top-up matrix on a phone, Codex chapters, Season hub, Bazaar popover). */

/* Top-up: the benefit matrix becomes one card per benefit on a phone, so nothing scrolls sideways */
@media (max-width:600px){
  .nvk-daybreak .d-tu-matrix{overflow:visible}
  .nvk-daybreak .d-tu-matrix table,.nvk-daybreak .d-tu-matrix tbody{display:block;width:100%}
  .nvk-daybreak .d-tu-matrix thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .nvk-daybreak .d-tu-matrix tr{display:block;margin-bottom:var(--space-3);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-surface);overflow:hidden}
  .nvk-daybreak .d-tu-matrix tr.d-tu-grp{border:0;background:none;margin:var(--space-4) 0 var(--space-2)}
  .nvk-daybreak .d-tu-matrix tr.d-tu-grp th{display:block;border-radius:var(--radius-md)}
  .nvk-daybreak .d-tu-matrix td{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);text-align:right;border:0;border-top:1px solid var(--ui-line)}
  .nvk-daybreak .d-tu-matrix td:first-child{display:block;min-width:0;text-align:left;border-top:0;background:var(--ui-sunken)}
  .nvk-daybreak .d-tu-matrix td[data-label]::before{content:attr(data-label);font-weight:600;color:var(--ui-fg-2);text-align:left;flex:none}
  .nvk-daybreak .d-tu-matrix th:not(:first-child),.nvk-daybreak .d-tu-matrix td:not(:first-child){text-align:right}
}
@media (max-width:600px){
  .nvk-daybreak .d-tu-matrix tr.d-tu-all td:nth-child(3),.nvk-daybreak .d-tu-matrix tr.d-tu-all td:nth-child(4){display:none}
}

/* Codex: chapter cards and chapters as kit surfaces */
.nvk-daybreak .d-cdx-grid{margin-top:var(--space-4)}
.nvk-daybreak .d-cdx-card{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);color:var(--ui-fg);text-decoration:none}
.nvk-daybreak .d-cdx-card:hover,.nvk-daybreak .d-cdx-card:focus-visible{border-color:var(--ui-brand)}
.nvk-daybreak .d-cdx-card__top{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:100%}
.nvk-daybreak .d-cdx-no{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 var(--space-2);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken);color:var(--ui-brand);font-weight:700}
.nvk-daybreak .d-cdx-glyph{font-size:22px;line-height:1}
.nvk-daybreak .d-cdx-book{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-6)}
.nvk-daybreak .d-cdx-chapter{border:1px solid var(--ui-line);border-radius:var(--radius-lg);background:var(--ui-surface)}
.nvk-daybreak .d-cdx-chsum{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);cursor:pointer;list-style:none;min-height:44px}
.nvk-daybreak .d-cdx-chsum::-webkit-details-marker{display:none}
.nvk-daybreak .d-cdx-chsum::after{content:"";width:8px;height:8px;margin-left:var(--space-2);border-right:2px solid var(--ui-fg-3);border-bottom:2px solid var(--ui-fg-3);transform:rotate(45deg)}
.nvk-daybreak .d-cdx-chapter[open] > .d-cdx-chsum::after{transform:rotate(-135deg)}
.nvk-daybreak .d-cdx-chname{flex:1;min-width:0;font-weight:700;color:var(--ui-fg)}
.nvk-daybreak .d-cdx-chcount{font-size:13px;color:var(--ui-fg-2)}
.nvk-daybreak .d-cdx-chno{display:inline-grid;place-items:center;min-width:32px;height:32px;padding:0 var(--space-2);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken);color:var(--ui-brand);font-weight:700}
.nvk-daybreak .d-cdx-chapter > .nv-cdx-plate,.nvk-daybreak .d-cdx-chapter > .nv-cdx-chbody{margin:0 var(--space-4) var(--space-4)}
/* live blocks inside entries: a sunken panel, kit table look */
.nvk-daybreak .nv-codex-live{border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken);padding:var(--space-4);overflow-x:auto}
.nvk-daybreak .nv-codex-live h4{margin:0 0 var(--space-2);font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--ui-fg-2)}
.nvk-daybreak .nv-codex-live .horizontal-table{width:100%;border-collapse:collapse;background:var(--ui-surface);border-radius:var(--radius-md)}
.nvk-daybreak .nv-codex-live .horizontal-table th,.nvk-daybreak .nv-codex-live .horizontal-table td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--ui-line);text-align:left}
.nvk-daybreak .nv-codex-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:var(--space-3);margin-bottom:var(--space-3)}
.nvk-daybreak .nv-codex-stats div{border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-surface);padding:var(--space-3);text-align:center;color:var(--ui-fg-2);font-size:12px}
.nvk-daybreak .nv-codex-stats span{display:block;font-size:22px;font-weight:700;color:var(--ui-fg)}
@media (max-width:600px){
  .nvk-daybreak .d-cdx-chapter > .nv-cdx-plate,.nvk-daybreak .d-cdx-chapter > .nv-cdx-chbody{margin-left:var(--space-3);margin-right:var(--space-3)}
  .nvk-daybreak .nv-codex-live :not(.nv-m-scrolltable) > .horizontal-table{display:block;overflow-x:auto}   /* nv-mobile.js wraps a wide one in a focusable .nv-m-scrolltable, which then scrolls instead */
}
.nvk-daybreak .d-cdx-chname{font-size:16px}
.nvk-daybreak .d-cdx-chapter > .nv-cdx-plate{border-radius:var(--radius-md);overflow:hidden}
@media (max-width:600px){
  .nvk-daybreak .d-cdx-grid{grid-template-columns:1fr 1fr;gap:var(--space-3)}
  .nvk-daybreak .d-cdx-card .d-txt{display:none}
}

/* Season hub: the ladder's Tier column reads as text, not a number */
.nvk-daybreak .d-sh-ladder th:nth-child(3),.nvk-daybreak .d-sh-ladder td:nth-child(3){text-align:left}

/* Bazaar item page: stall and auction rows wrap inside the narrow column instead of squeezing the text to one word per line */
.nvk-daybreak .d-bz-chrow{display:flex;flex-wrap:wrap;align-items:center}
.nvk-daybreak .d-bz-chrow__who{flex:1 1 200px}
.nvk-daybreak .d-bz-chrow .d-bz-chips{flex:0 1 auto}
.nvk-daybreak .d-bz-chrow__act{flex:0 0 auto;margin-left:auto}
.nvk-daybreak .d-bz-itemcell{display:inline-flex;align-items:center;gap:var(--space-2)}
.nvk-daybreak .nv-pz-page-buyorders .nvk-table td{white-space:nowrap}
.nvk-daybreak .d-cap code{text-transform:none;letter-spacing:0}
.nvk-daybreak .nv-codex-season-now .nv-codex-empty{border:0;padding:0;background:none}

/* Bazaar browse: quick-look card (hover, keyboard focus, or a tap on the button). Absolute, so opening it never moves the grid. */
.nvk-daybreak .d-bz-cell{position:relative}
.nvk-daybreak .d-bz-peek{align-self:flex-start}
.nvk-daybreak .d-bz-pop{display:none;position:absolute;z-index:5;left:calc(var(--space-2) * -1);right:calc(var(--space-2) * -1);top:calc(var(--space-2) * -1);min-height:calc(100% + var(--space-4));box-sizing:border-box;padding:var(--space-4);border:1px solid var(--ui-line);border-radius:var(--radius-lg);background:var(--ui-surface);box-shadow:var(--shadow-lg, 0 12px 32px rgb(0 0 0 / .18));min-width:220px}
.nvk-daybreak .d-bz-pop__hd{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3)}
.nvk-daybreak .d-bz-pop__dl{display:grid;grid-template-columns:auto 1fr;gap:var(--space-1) var(--space-3);margin:0 0 var(--space-3)}
.nvk-daybreak .d-bz-pop__dl dt{color:var(--ui-fg-2);font-size:13px}
.nvk-daybreak .d-bz-pop__dl dd{margin:0;color:var(--ui-fg);font-size:14px;font-weight:600;text-align:right}
.nvk-daybreak .d-bz-cell.is-open .d-bz-pop,.nvk-daybreak .d-bz-cell:has(:focus-visible):not(.is-quiet) .d-bz-pop{display:block}
.nvk-daybreak .d-bz-cell.is-open,.nvk-daybreak .d-bz-cell:has(:focus-visible){z-index:6}
@media (hover:hover){.nvk-daybreak .d-bz-cell:hover:not(.is-quiet) .d-bz-pop{display:block}.nvk-daybreak .d-bz-cell:hover{z-index:6}}
.nvk-daybreak .d-bz-pop__act{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}
}

/* _base/daybreak-w1.css */
@layer pages{
/* Daybreak wire-up pages, group w1 (owner decision 2026-10-15): Account sign-ins, Cockpit season cards, Character Glory, Guild Throne facts, Stronghold "Your guild", Estate decor. */
.nvk-daybreak .d-w1-line{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--ui-line)}
.nvk-daybreak .d-w1-line:last-child{border-bottom:0;padding-bottom:0}
.nvk-daybreak .d-w1-line .d-txt{min-width:0;overflow-wrap:anywhere}
@media (max-width:900px){.nvk-daybreak .d-g5{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:600px){.nvk-daybreak .d-g5{grid-template-columns:minmax(0,1fr)}.nvk-daybreak .d-w1-line{flex-wrap:wrap}}
}

/* _base/daybreak-w2.css */
@layer pages{
/* Daybreak "w2" wiring (owner decision 2026-10-15): data that earlier conversions dropped, now read from the game. Abyss, Arena, War of Emperium,
   World boss, Weekly trial, Mythic, Everfall. Colours and spacing come from tokens only. */
.nvk-daybreak .d-w2-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);align-items:end}
.nvk-daybreak .d-w2-fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;min-width:0}
.nvk-daybreak .d-w2-fig figcaption{display:flex;flex-direction:column;gap:var(--space-1);font-size:13px;color:var(--ui-fg);overflow-wrap:anywhere}
.nvk-daybreak .d-w2-fig figcaption span{color:var(--ui-fg-3);font-size:12px}
.nvk-daybreak .d-w2-mob{display:block;width:64px;height:64px;object-fit:contain}
.nvk-daybreak .d-w2-mob--lg{width:96px;height:96px}
.nvk-daybreak .d-w2-mob--sm{width:32px;height:32px}
.nvk-daybreak .d-w2-sub{display:block;margin-top:var(--space-1);font-size:12px;color:var(--ui-fg-3)}
.nvk-daybreak .d-w2-dim{color:var(--ui-fg-3)}
.nvk-daybreak .d-w2-live{color:var(--ui-ok);font-weight:600}
.nvk-daybreak .d-w2-foe{display:flex;align-items:center;gap:var(--space-3)}
.nvk-daybreak .d-w2-brief{margin-top:var(--space-3);border:1px solid var(--ui-line);border-radius:var(--radius-md);background:var(--ui-sunken)}
.nvk-daybreak .d-w2-brief > summary{cursor:pointer;padding:var(--space-2) var(--space-3);font-weight:600;color:var(--ui-fg);list-style-position:inside}
.nvk-daybreak .d-w2-brief[open] > summary{border-bottom:1px solid var(--ui-line)}
.nvk-daybreak .d-w2-dl{display:grid;gap:var(--space-2);margin:0;padding:var(--space-3)}
.nvk-daybreak .d-w2-dl > div{display:flex;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}
.nvk-daybreak .d-w2-dl dt{color:var(--ui-fg-2)}
.nvk-daybreak .d-w2-dl dd{margin:0;color:var(--ui-fg);font-variant-numeric:tabular-nums}
.nvk-daybreak .d-w2-intro{margin:0;padding:0 var(--space-3) var(--space-3);color:var(--ui-fg-2)}
@media (max-width:600px){.nvk-daybreak .d-w2-mob--lg{width:72px;height:72px}}
.nvk-daybreak .nvk-card--hero .d-txt{color:inherit}
}

/* _base/daybreak-w3.css */
@layer pages{
/* Daybreak w3 wiring round: canvas elements wired to real data (Museum, Haki, Live, Sage, Hardcore, Records, Throne, Top up, Wishlist). Tokens only. */
.nvk-daybreak .d-sage-chips{gap:var(--space-2)}
.nvk-daybreak .d-sage-chip{display:inline-flex;margin:0}
.nvk-daybreak .d-rec-runners{list-style:none;margin:var(--space-2) 0 0;padding:var(--space-3) 0 0;border-top:1px solid var(--ui-line);display:flex;flex-direction:column;gap:var(--space-2)}
.nvk-daybreak .d-rec-run{display:grid;grid-template-columns:var(--space-5) minmax(0,1fr) auto;gap:var(--space-2);align-items:baseline}
.nvk-daybreak .d-rec-run b{overflow-wrap:anywhere}
.nvk-daybreak .d-th-crest{display:inline-block;vertical-align:middle;margin-right:var(--space-2);border-radius:var(--radius-sm);background:var(--ui-sunken);object-fit:contain}
.nvk-daybreak .d-th-kingcrest{display:flex;justify-content:flex-start}
.nvk-daybreak .d-th-kingcrest .d-th-crest{margin-right:0}
.nvk-daybreak .d-th-decl{display:inline-flex;align-items:center;min-width:0;overflow-wrap:anywhere}
.nvk-daybreak .d-hc-halls .nvk-table-wrap{overflow-x:auto}
.nvk-daybreak .d-hc-epitaph{font-style:italic}
.nvk-daybreak .d-wl-search{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}
.nvk-daybreak .d-wl-search__box{flex:1 1 220px;min-width:0}
.nvk-daybreak .d-wl-hit{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:var(--space-3);align-items:center;padding-bottom:var(--space-3);border-bottom:1px solid var(--ui-line)}
.nvk-daybreak .d-wl-hit:last-child{border-bottom:0;padding-bottom:0}
@media (max-width:600px){.nvk-daybreak .d-rec-run{grid-template-columns:var(--space-5) minmax(0,1fr)}.nvk-daybreak .d-rec-run .d-cap:last-child{grid-column:2}}
}

/* _base/fieldwork.css */
@layer pages{
/* Fieldwork on the Island mirror (owner-picked Option B of the 'NirvanaRO Automation Circle' canvas, 2026-10-20, group C4). The duty
   dock, the Mirror and the split are kit components (DutyDock, Mirror, MirrorSplit); this file draws what goes inside them on the
   Daybreak looks: the route the character runs, the live Fight / Time / Bag / Pay clusters and Stop moved into the mirror, the left
   column's cards, and the owner's free-character offer (2026-10-20). Markup: control/_companion_fieldwork.php, control/_fw_mirror.php,
   lib/nv_auto_island.php (nv_fw_route_html, nv_fw_offer_html). Tokens only; muted text uses --ui-fg-2 / --ui-island-fg-2, never opacity. */

/* ---- the route, drawn in the mirror ---- */
.nvk-daybreak .d-fw-route { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; position: relative; }
.nvk-daybreak .d-fw-route::before { content: ""; position: absolute; left: 19px; top: 22px; bottom: 22px; width: 4px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 14%, var(--ui-island)); }
.nvk-daybreak .d-fw-route__s { position: relative; display: flex; align-items: flex-start; gap: 12px; margin: 0; padding: 7px 0; }
.nvk-daybreak .d-fw-route__n { position: relative; z-index: 1; flex: none; display: flex; align-items: center; justify-content: center; width: 42px; height: 42px; border-radius: var(--radius-pill); background: var(--ui-island-2); box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--ui-island-fg) 22%, var(--ui-island)); box-sizing: border-box; font: 700 13px/1 var(--disp); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-fw-route__s.is-on .d-fw-route__n { background: var(--ui-island-gold); box-shadow: none; color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-fw-route__s.is-done .d-fw-route__n { background: var(--ui-island-blue); box-shadow: none; color: var(--ui-island); }
.nvk-daybreak .d-fw-route__s.is-home .d-fw-route__n { box-shadow: inset 0 0 0 3px color-mix(in srgb, var(--ui-island-fg) 22%, var(--ui-island)); }
.nvk-daybreak .d-fw-route__s.is-edit .d-fw-route__n { box-shadow: inset 0 0 0 3px var(--ui-island-gold); color: var(--ui-island-fg); }
.nvk-daybreak .d-fw-route__t { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding-top: 2px; }
.nvk-daybreak .d-fw-route__t b { font: 700 15px/20px var(--disp); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-fw-route__t span { font: 400 13px/18px var(--body); color: var(--ui-island-fg-2); overflow-wrap: anywhere; }
@media (prefers-reduced-motion: no-preference) { .nvk-daybreak .d-fw-route__s { animation: d-fw-route-in .3s var(--ease-spring) both; } }
@keyframes d-fw-route-in { from { opacity: 0; transform: translateX(-6px); } }
.nvk-daybreak .nvk-mirror .d-fw-mir__say:empty { display: none; }

/* ---- the live clusters, moved into the mirror (ids unchanged: the poller patches them there) ---- */
.nvk-daybreak .nvk-mirror .nv-fw2-statgrid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.nvk-daybreak .nvk-mirror .nv-fw2-stat { display: flex; flex-direction: column; gap: 2px; min-width: 0; margin: 0; padding: 10px 12px; border: 0; border-radius: 18px; background: var(--ui-island-2); text-align: left; color: var(--ui-island-fg-2); font: 400 12px/16px var(--body); }
.nvk-daybreak .nvk-mirror .nv-fw2-stat span, .nvk-daybreak .nvk-mirror .nv-fw2-stat .nv-u-muted { color: var(--ui-island-fg-2); font-size: 12px; line-height: 16px; }
.nvk-daybreak .nvk-mirror .nv-fw2-stat-title { margin: 0 0 2px; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-daybreak .nvk-mirror .nv-fw2-stat .nv-fw2-stat-big, .nvk-daybreak .nvk-mirror .nv-fw2-stat .nv-u-fs15, .nvk-daybreak .nvk-mirror .nv-fw2-stat .nv-u-fw6 { font: 700 18px/22px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .nvk-mirror .nv-fw2-stat .nv-u-fs15 span { display: inline; }
.nvk-daybreak .nvk-mirror .nv-fw2-stat .nv-u-fs15 > span:not(.nv-u-muted) { font: 700 18px/22px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .nvk-mirror .nv-fw2-stat .nv-u-fs15 .nv-u-muted { font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .nvk-mirror .nv-fw2-stat [data-nv-color] { color: var(--ui-island-gold); }
.nvk-daybreak .nvk-mirror .nv-fw2-stat svg { max-width: 100%; }
.nvk-daybreak .nvk-mirror .nv-fw2-bagbar { display: block; height: 6px; margin: 4px 0; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 12%, var(--ui-island)); overflow: hidden; }
.nvk-daybreak .nvk-mirror .nv-fw2-bagbar i { display: block; height: 100%; border-radius: var(--radius-pill); background: var(--ui-island-live); }

/* ---- Stop and the poll note ---- */
.nvk-daybreak .nvk-mirror #nv-fw-stop-form, .nvk-daybreak .nvk-mirror form:has(> .d-fw-home) { margin: 0; }
.nvk-daybreak .d-fw-home { --_bg: color-mix(in srgb, var(--ui-danger) 22%, var(--ui-island)); --_fg: var(--ui-island-fg); --_bd: color-mix(in srgb, var(--ui-danger) 55%, var(--ui-island)); min-height: 48px; font-size: 15px; }
.nvk-daybreak .nvk-mirror #nv-fw-live-note { margin: 0; font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .nvk-mirror__foot a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }

/* ---- the left column ---- */
.nvk-daybreak .d-fw { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.nvk-daybreak .d-fw > #fw-run, .nvk-daybreak .d-fw #fw-where, .nvk-daybreak .d-fw #fw-errands { display: flex; flex-direction: column; gap: 18px; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; }
.nvk-daybreak .d-fw .nv-fw-hero { margin: 0; padding: 18px 20px; border: 0; border-radius: 26px; background: var(--ui-surface); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--ui-line); color: var(--ui-fg); }
.nvk-daybreak .d-fw .nv-fw-hero .nv-cp-sub { color: var(--ui-fg-2); }
.nvk-daybreak .d-fw .nv-fw-hero--claim { box-shadow: var(--shadow-sm), inset 0 0 0 2px var(--ui-island); }
.nvk-daybreak .d-fw .nv-fw-builder.nv-wz { margin: 0; border: 0; border-radius: 26px; background: var(--ui-surface); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--ui-line); }
.nvk-daybreak .d-fw .nv-fw2-scene.nvk-panel { border-radius: 26px; }
.nvk-daybreak .d-fw .nv-cdx-chapter, .nvk-daybreak .d-fw > details.nv-cp-guide, .nvk-daybreak .d-fw #fw-where > details.nv-cp-guide { margin: 0; padding: 4px 16px; border: 0; border-radius: 22px; background: var(--ui-surface); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--ui-line); }
.nvk-daybreak .d-fw .nv-cdx-chapter > summary { display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 0; color: var(--ui-fg); font: 700 16px/22px var(--disp); }
.nvk-daybreak .d-fw .nv-cdx-chapter > summary .nv-u-muted { color: var(--ui-fg-2); font: 500 13px/18px var(--body); }
.nvk-daybreak .d-fw .nv-cdx-chapter[open] { padding-bottom: 16px; }
.nvk-daybreak .d-fw .nv-cdx-chapter .nvk-panel { margin: 0; box-shadow: none; }

/* the live card's own words on white: the legacy tints were drawn for a dark page (1.4:1 here) */
.nvk-daybreak .d-fw .nv-fw2-hl-verb { color: var(--ui-fg); }
.nvk-daybreak .d-fw .nv-fw2-hl-detail { color: var(--ui-fg-2); }
.nvk-daybreak .d-fw .nv-fw2-busy { border-color: var(--ui-line-strong); color: var(--ui-fg-2); }
.nvk-daybreak .d-fw .nv-fw2-busy.is-busy { border-color: color-mix(in srgb, var(--ui-ok) 55%, var(--ui-surface)); color: color-mix(in srgb, var(--ui-ok) 70%, var(--ui-fg)); }

/* ---- owner 2026-10-20: the characters free to go, after a refused start ---- */
.nvk-daybreak .d-fw-offer, .d-fw-offer { display: flex; flex-direction: column; gap: 10px; margin: 0 0 16px; padding: 18px 20px; border-radius: 26px; background: var(--ui-surface); box-shadow: var(--shadow-sm), inset 0 0 0 2px var(--ui-island); color: var(--ui-fg); }
.nvk-daybreak .d-fw .d-fw-offer { margin: 0; }
.d-fw-offer__h { margin: 0; padding: 0; border: 0; font: 700 18px/24px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); }
.d-fw-offer__p { margin: 0; font: 400 14px/21px var(--body); color: var(--ui-fg-2); }
.d-fw-offer__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.d-fw-offer__f { margin: 0; }
.nvk-daybreak .d-fw-chip, .d-fw-chip { --_bg: var(--ui-island); --_fg: var(--ui-island-fg); justify-content: flex-start; white-space: normal; display: inline-flex; align-items: center; gap: 10px; min-height: 52px; margin: 0; padding: 6px 18px 6px 6px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); font: inherit; text-align: left; cursor: pointer; box-shadow: var(--shadow-sm); transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-daybreak .d-fw-chip:hover, .d-fw-chip:hover { transform: translateY(-2px); background: var(--ui-island-2); color: var(--ui-island-fg); }
.d-fw-chip:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.d-fw-chip__a { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-pill); background: var(--ui-island-blue); color: var(--ui-island); font: 700 13px/1 var(--disp); }
.d-fw-chip__t { display: flex; flex-direction: column; min-width: 0; }
.d-fw-chip__t b { font: 700 15px/18px var(--disp); color: var(--ui-island-fg); }
.d-fw-chip__t small { font: 500 12px/16px var(--body); color: var(--ui-island-fg-2); }
@media (prefers-reduced-motion: reduce) { .d-fw-chip { transition: none; } .d-fw-chip:hover { transform: none; } }

/* ---- phone ---- */
@media (max-width: 760px) {
  .nvk-daybreak .d-fw .nv-fw-hero, .nvk-daybreak .d-fw-offer { padding: 16px; }
  .d-fw-offer__f, .d-fw-chip { width: 100%; }
  .nvk-daybreak .d-fw .nv-fw-verdict a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* ---- owner 2026-10-20 (C4 follow-up): this run's Rewards card beside the bag, Under the hood in the mirror, the mirror first on a phone ---- */
.nvk-daybreak .d-fw .d-fw-bagrow { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 240px); gap: 14px; align-items: start; margin: 0 0 10px; }
.nvk-daybreak .d-fw .d-fw-bagrow > .nv-u-mb10 { margin: 0; min-width: 0; }
.nvk-daybreak .d-fw-rw { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 14px 16px; border-radius: 20px; background: var(--ui-surface-2); box-shadow: inset 0 0 0 1px var(--ui-line); }
.nvk-daybreak .d-fw-rw__h { margin: 0; padding: 0; border: 0; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-fw-rw__l { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.nvk-daybreak .d-fw-rw__l div { display: flex; flex-direction: column; gap: 0; }
.nvk-daybreak .d-fw-rw__l dt { margin: 0; font: 600 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fw-rw__l dd { margin: 0; font: 700 18px/24px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-fw-rw__l dd.d-fw-rw__s { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fw-rw__p { margin: 0; font: 400 13px/19px var(--body); color: var(--ui-fg-2); }
@container (max-width: 520px) { .nvk-daybreak .d-fw .d-fw-bagrow { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 600px) { .nvk-daybreak .d-fw .d-fw-bagrow { grid-template-columns: minmax(0, 1fr); } }
.nvk-daybreak .nvk-mirror .d-fw-hood details { margin: 0; padding: 0 12px; border-radius: 18px; background: var(--ui-island-2); }
.nvk-daybreak .nvk-mirror .d-fw-hood summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-island-fg); }
.nvk-daybreak .nvk-mirror .d-fw-hood details[open] { padding-bottom: 12px; }
.nvk-daybreak .nvk-mirror .d-fw-hood .nv-u-muted, .nvk-daybreak .nvk-mirror .d-fw-hood .nv-fw-rtstrip, .nvk-daybreak .nvk-mirror .d-fw-hood .nv-fw-rtstrip span { color: var(--ui-island-fg-2); font: 400 12px/17px var(--body); }
.nvk-daybreak .nvk-mirror .d-fw-hood .nv-fw-rtstrip { display: flex; flex-direction: column; gap: 4px; margin: 10px 0 0; padding: 0; border: 0; background: transparent; }
.nvk-daybreak .nvk-mirror .d-fw-hood svg { max-width: 100%; height: auto; }
.nvk-daybreak .nvk-mirror .d-fw-hood > details > div { min-width: 0; }
/* a phone: the mirror of a run (live, heading out, coming home: a route with a stop running) sits first, right under The Call (canvas B-Phone) */
@media (max-width: 1100px) {
  .nvk-daybreak .nvk-msplit:has(.d-fw-route__s.is-on) > .nvk-msplit__side { order: -1; }
}
/* the long form (owner 2026-10-20, canvas B-Fieldwork "Plan the next run"): the builder's four steps as one form, numbered questions,
   no paging. Same sections, fields and POST; the step rail and Next / Back are not used. */
.nvk-daybreak .d-fw .nv-fw-builder[data-long="1"] .nv-wz-rail { display: none; }
.nvk-daybreak .d-fw .nv-fw-builder[data-long="1"] .nv-wz-step { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 16px 0 0; border-top: 1px solid var(--ui-line); animation: none; }
.nvk-daybreak .d-fw .nv-fw-builder[data-long="1"] .nv-wz-step[data-step="1"] { border-top: 0; padding-top: 4px; }
.nvk-daybreak .d-fw .nv-fw-builder[data-long="1"] .nv-wz-step[hidden] { display: flex; }
.nvk-daybreak .d-fw-q { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; border: 0; font: 700 17px/22px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); }
.nvk-daybreak .d-fw-q__n { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 13px/1 var(--disp); }
.nvk-daybreak .d-fw .d-fw-wait { margin: 0; color: var(--ui-fg-2); }
.nvk-daybreak .d-fw .d-fw-wait[hidden] { display: none; }
.nvk-daybreak .d-fw .nv-fw-builder .nv-wz-tiles { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 8px; }
.nvk-daybreak .d-fw .nv-fw-builder .nv-wz-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; min-height: 44px; margin: 0; padding: 12px 14px; border: 1px solid var(--ui-line); border-radius: 20px; background: var(--ui-surface); color: var(--ui-fg); text-align: left; }
.nvk-daybreak .d-fw .nv-fw-builder .nv-wz-tile.is-on { border: 2px solid var(--ui-island); background: var(--ui-surface-2); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-wz-tile-name { font: 700 15px/20px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-wz-tile-blurb, .nvk-daybreak .d-fw .nv-fw-builder .nv-wz-tile-why { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-wz-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
/* the long form shows every step at once, so the wizard's opacity-muted words are on screen together: muting by colour, never opacity */
.nvk-daybreak .d-fw .nv-fw-builder :is(.nv-wz-hint, .nv-wz-tile-blurb, .nv-wz-tile-why, .nv-wz-cap, .nv-wz-lbl, .nv-wz-sub, .nv-wz-tile-rules) { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-fwb-editlink { opacity: 1; color: var(--ui-link); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-fwb-editlink:hover { color: var(--ui-fg); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-wz-tile.is-on :is(.nv-wz-tile-blurb, .nv-wz-tile-why) { color: var(--ui-fg); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-fwb-supnow { color: color-mix(in srgb, var(--ui-warn) 55%, var(--ui-fg)); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-fwb-none { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .d-fw .nv-fw-builder .nv-fwb-none a { color: var(--ui-link); }
}

/* _base/grandline.css */
@layer pages{
/* Grand Line pages: Haki and Devil Fruit in the Skypiea look (owner pick: Option C of the 'NirvanaRO Grand Line v2' canvas, 2026-10-20).
   Markup: haki/_daybreak_{index,ladder,thrones}.php, devilfruit/_daybreak_{index,fruit,hunts}.php and the Skypiea heads of control/haki.php
   and control/devilfruit.php, all inside div.d-gl (lib/nv_daybreak_grandline.php). Kit: SkyPanel, SkyAura, SkyCastle, CloudLadder, DenDen,
   FruitIsle, TierTag, ShipLog. */
.nvk-daybreak .d-gl, .d-gl { display: flex; flex-direction: column; gap: 22px; min-width: 0; }

/* the eight sub pages: a white pill bar */
.d-gl-sub { min-width: 0; }
.d-gl-sub__l { display: flex; gap: 6px; margin: 0; padding: 6px; list-style: none; overflow-x: auto; scrollbar-width: none; background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); box-shadow: var(--shadow-sm); }
.d-gl-sub__l > li { flex: 0 0 auto; }
.d-gl-sub__a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-4); border-radius: var(--radius-pill); color: var(--ui-fg-2); font: 600 14px/1 var(--body); text-decoration: none; white-space: nowrap; transition: background-color var(--t-fast) var(--ease-rune), color var(--t-fast) var(--ease-rune); }
.d-gl-sub__a:hover { background: var(--ui-brand-tint); color: var(--ui-brand-deep); }
.d-gl-sub__a[aria-current="page"] { background: var(--ui-brand); color: var(--ui-brand-fg); }
.d-gl-sub__a:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }

/* numbers in Rune Island capsules */
.d-gl-nums { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 118px), 1fr)); gap: var(--space-3); margin: 0; padding: 0; list-style: none; }
.d-gl-num { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: var(--space-4) var(--space-2); border-radius: var(--radius-lg); background: var(--ui-surface); border: 1px solid var(--ui-line); box-shadow: var(--shadow-sm); text-align: center; }
.d-gl-num__v { display: inline-flex; padding: 6px 14px; border-radius: var(--radius-pill); background: var(--ui-capsule); color: var(--ui-capsule-fg); font: 700 18px/1.1 var(--disp); font-variant-numeric: tabular-nums; }
.d-gl-num__k { font: 600 13px/18px var(--body); color: var(--ui-fg-2); }
.d-gl-num--logia .d-gl-num__v { box-shadow: inset 0 -3px 0 var(--ui-df-logia); }
.d-gl-num--paramecia .d-gl-num__v { box-shadow: inset 0 -3px 0 var(--ui-df-paramecia); }
.d-gl-num--zoan .d-gl-num__v { box-shadow: inset 0 -3px 0 var(--ui-df-zoan); }
.d-gl-num--gold .d-gl-num__v { background: var(--ui-cta); color: var(--ui-cta-fg); }
.nvk-skyp--hero .d-gl-num { background: color-mix(in srgb, var(--ui-surface) 86%, transparent); }

/* the ring legend under an aura */
.d-gl-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.d-gl-legend__i { display: inline-flex; align-items: center; gap: 6px; padding: 4px 12px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-surface) 88%, transparent); color: var(--ui-fg); font: 700 13px/18px var(--body); }
.d-gl-legend__i::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--ui-hk-arm); }
.d-gl-legend__i--obs::before { background: var(--ui-hk-obs); }
.d-gl-legend__i--hao::before { background: var(--ui-tier-legendary); }

/* grids */
.d-gl-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: var(--space-4); }
.d-gl-grid3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.d-gl-grid3 > li { display: flex; min-width: 0; }
.d-gl-grid3 > li > * { flex: 1 1 auto; }
.d-gl-isles { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 150px), 1fr)); gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.d-gl-isles > li { display: flex; min-width: 0; }
.d-gl-isles > li > * { width: 100%; }
.d-gl-castles { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: var(--space-4); margin: 0; padding: 0; list-style: none; }
.d-gl-castles > li { display: flex; min-width: 0; }
.d-gl-castles > li > * { flex: 1 1 auto; }

/* a ladder card: its ring, name, line, link */
.d-gl-ladder { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); min-width: 0; padding: var(--space-5) var(--space-4); border-radius: var(--radius-lg); background: linear-gradient(180deg, var(--ui-sky-3), var(--sk-onsky-end, var(--ui-surface))); border: 1px solid var(--ui-line); box-shadow: var(--shadow-sm); color: var(--sk-onsky-fg, var(--ui-fg)); text-align: center; text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring-fallback), box-shadow var(--t-fast) var(--ease-rune); }
a.d-gl-ladder:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); color: var(--sk-onsky-fg, var(--ui-fg)); }
.d-gl-ladder__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .06em; text-transform: uppercase; color: var(--sk-onsky-fg-2, var(--ui-link)); }
.d-gl-ladder__h { margin: 0; font: 700 18px/24px var(--disp); color: var(--sk-onsky-fg, var(--ui-fg)); }   /* sk-*: Anime only, see SkyPanel.css */
.d-gl-ladder__s { margin: 0; font: 400 13px/18px var(--body); color: var(--sk-onsky-fg-2, var(--ui-fg-2)); }
.d-gl-ladder__p { margin: 0; font: 400 14px/1.5 var(--body); color: var(--sk-onsky-fg-2, var(--ui-fg-2)); }
.d-gl-ladder__go { margin-top: auto; padding-top: var(--space-2); font: 700 14px/20px var(--body); color: var(--sk-onsky-fg-2, var(--ui-link)); }

.d-gl-note { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-skyp--hero .d-gl-note { color: var(--ui-sky-fg-2); }

/* the Orchard filter */
.d-gl-filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); margin: 0; }
.d-gl-filter__f { display: flex; flex-direction: column; gap: 6px; min-width: 140px; }
.d-gl-filter__f--q { flex: 1 1 240px; }
.d-gl-filter__l { font: 600 13px/18px var(--body); color: var(--ui-fg-2); }
.d-gl-filter__c { min-height: 44px; padding: 0 14px; border: 1.5px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); font: 500 15px/1 var(--body); box-sizing: border-box; }
.d-gl-filter__c::placeholder { color: var(--ui-fg-3); }
.d-gl-filter__c:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.d-gl-filter__go { display: flex; flex-wrap: wrap; gap: var(--space-2); }

.d-gl-host { min-width: 0; }

/* the fruit page hero body and the hosted Orchard cards */
.d-gl-lore { margin: 0; max-width: 64ch; font: 400 16px/1.6 var(--body); color: var(--ui-sky-fg-2); }
.d-gl-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.d-gl-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: var(--space-4); }
.d-gl-cards > * { min-width: 0; }
.nvk-skyp form.nv-orc-act, .nvk-skyp .d-gl-wish { display: inline-flex; margin: 0; }

/* legacy link and heading rules must not reach the link cards */
.nvk-daybreak .d-gl a.d-gl-sub__a, .nvk-daybreak .d-gl a.d-gl-ladder, .nvk-daybreak .d-gl a.nvk-isle, .d-gl a.d-gl-sub__a, .d-gl a.d-gl-ladder, .d-gl a.nvk-isle, .nvk-daybreak .d-gl a.nvk-log__a, .d-gl a.d-gl-ladder *, .d-gl a.nvk-isle * { text-decoration: none; }
.d-gl-ladder__h, .d-gl .nvk-skyp__h, .d-gl .nvk-castle__h { text-transform: none; letter-spacing: 0; }

/* the Orchard's own tier and type chips were drawn for its dark tree; on a white board they take the page's ink */
.d-gl .d-gl-host .nv-orc-tchip { color: var(--ui-fg-2); border-color: var(--ui-line-strong); }
.d-gl .d-gl-host .nv-orc-rvname { color: var(--ui-danger); }

@media (max-width: 760px) {
  .d-gl-isles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); }
}
@media (prefers-reduced-motion: reduce) { .d-gl-ladder, a.d-gl-ladder:hover { transition: none; transform: none; } }

/* a button on the Den Den Mushi capsule reads as a white pill */
.nvk-denden .nvk-btn--ghost { --_bg: var(--ui-surface); --_fg: var(--ui-fg); --_bd: transparent; }
.nvk-skyp__aside .d-gl-nums { width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* _base/halls.css */
@layer pages{
/* Cockpit Halls III, the Wanted wall (owner pick B of the 'NirvanaRO Cockpit Halls' canvas, 2026-10-21). Markup: control/rivals.php, pvp.php,
   mythic.php, palace.php, everfall.php (lib/nv_daybreak_wall.php nv_dw_*), every look (the Cockpit frame wraps the Anime look in .nvk-daybreak).
   Kit WantedPoster and WallTile draw the posters and the wall tiles; this file lays them out: the dial, the wall and the side column of dark
   island cards (Your Ghost, Send your Ghost, the Boon), the station walls (ranks, keys, boss plaques, floors) and the Mythic run log.
   Muted text is --ui-fg-2 (--ui-island-fg-2 on the dark cards), never opacity. */
.nvk-daybreak .d-wall { display: flex; flex-direction: column; gap: 24px; min-width: 0; container: d-wall / inline-size; }
.nvk-daybreak .d-wall-eye { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-wall-h2 { margin: 0; border: 0; padding: 0; font: 700 24px/30px var(--disp); letter-spacing: 0; color: var(--ui-fg); }
.nvk-daybreak .d-wall-h3 { margin: 0; border: 0; padding: 0; font: 700 19px/26px var(--disp); letter-spacing: 0; color: var(--ui-fg); }
.nvk-daybreak .d-wall-line { margin: 2px 0 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-wall-row { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 16px; min-width: 0; }
.nvk-daybreak .d-wall-link { display: inline-flex; align-items: center; min-height: 44px; font: 600 14px/20px var(--body); color: var(--ui-link); text-decoration: underline; text-underline-offset: 3px; }
.nvk-daybreak .d-wall-link:hover { color: var(--ui-fg); }
.nvk-daybreak .d-wall-panel { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: 20px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-wall-sec { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.nvk-daybreak .d-wall-sec > .nvk-empty, .nvk-daybreak .d-wall-panel > .nvk-empty { margin: 0; }

/* ---- the dial ---- */
.nvk-daybreak .d-wall-dial { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 20px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-wall-dial__set { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; min-width: 0; margin: 0; padding: 0; border: 0; background: none; box-shadow: none; }
.nvk-daybreak .d-wall-dial__set > legend { float: left; width: 100%; margin: 0 0 2px; padding: 0; }
.nvk-daybreak .d-wall-dial__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.nvk-daybreak .d-wall-dial__note { flex: 1 1 100%; margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-wall-seg { display: inline-flex; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: var(--radius-pill); background: var(--ui-sunken); }
.nvk-daybreak .d-wall-seg__o { position: relative; display: inline-flex; margin: 0; cursor: pointer; }
.nvk-daybreak .d-wall-seg__o input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.nvk-daybreak .d-wall-seg__o span { display: inline-flex; align-items: center; min-height: 36px; padding: 0 16px; border-radius: var(--radius-pill); font: 600 14px/20px var(--body); color: var(--ui-fg-2); transition: background var(--t-fast) ease, color var(--t-fast) ease; }
.nvk-daybreak .d-wall-seg__o input:checked + span { background: var(--ui-island); color: var(--ui-island-fg); }
.nvk-daybreak .d-wall-seg__o input:focus-visible + span { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-wall-seg__o:hover input:not(:checked) + span { color: var(--ui-fg); }

/* ---- the wall and the side column ---- */
.nvk-daybreak .d-wall-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 340px); gap: 24px; align-items: start; }
.nvk-daybreak .d-wall-wide, .nvk-daybreak .d-wall-side { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.nvk-daybreak .d-wall-posters, .nvk-daybreak .d-wall-picks, .nvk-daybreak .d-wall-cases { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 16px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-wall-posters > li, .nvk-daybreak .d-wall-picks > li, .nvk-daybreak .d-wall-cases > li { display: flex; min-width: 0; margin: 0; padding: 0; }
.nvk-daybreak .d-wall-posters > li > .nvk-wanted, .nvk-daybreak .d-wall-cases > li > .nvk-wanted { flex: 1 1 auto; }
.nvk-daybreak .d-wall-sprite { display: block; max-width: 80%; max-height: 80%; width: auto; height: auto; margin: 0; border: 0; image-rendering: auto; }
.nvk-daybreak .d-wall-ini { display: grid; place-items: center; width: 100%; height: 100%; margin: 0; font: 700 22px/1 var(--disp); color: var(--ui-fg-2); }

/* Mark a rival: dashed poster buttons */
.nvk-daybreak .d-wall-pickf { display: flex; flex: 1 1 auto; margin: 0; }
.nvk-daybreak .d-wall-pick { display: flex; flex: 1 1 auto; align-items: center; gap: 12px; min-width: 0; min-height: 64px; margin: 0; padding: 10px 12px; border: 1px dashed var(--ui-line-strong); border-radius: var(--radius-lg); background: var(--ui-surface); color: var(--ui-fg); font: inherit; text-align: left; cursor: pointer; transition: transform var(--t-spring-fast) var(--ease-spring), border-color var(--t-fast) ease; }
.nvk-daybreak .d-wall-pick:hover { border-color: var(--ui-brand); }
.nvk-daybreak .d-wall-pick:active { transform: scale(.98); }
.nvk-daybreak .d-wall-pick:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-wall-pick__art { display: grid; place-items: center; flex: none; width: 48px; height: 48px; overflow: hidden; border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-daybreak .d-wall-pick__art .d-wall-ini { font-size: 15px; }
.nvk-daybreak .d-wall-pick__m { display: flex; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-wall-pick__m b { font: 700 15px/20px var(--body); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-wall-pick__m span { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }

/* ---- the dark island cards: Your Ghost, Send your Ghost, the Boon ---- */
.nvk-daybreak .d-wall-isle {
  --ui-fg: var(--ui-island-fg); --ui-fg-2: var(--ui-island-fg-2); --ui-fg-3: var(--ui-island-fg-2); --ui-sunken: var(--ui-island-2); --ui-line: var(--ui-island-line); --ui-line-strong: var(--ui-island-fg-2);
  --ui-ok: var(--ui-island-live); --ui-warn: var(--ui-island-gold); --ui-danger: var(--ui-island-boss); --ui-link: var(--ui-island-blue);
  display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px; border-radius: var(--radius-lg); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-md);
}
.nvk-daybreak .d-wall-isle .d-wall-eye { color: var(--ui-island-blue); }
.nvk-daybreak .d-wall-isle__h { margin: 0; border: 0; padding: 0; font: 700 22px/28px var(--disp); letter-spacing: 0; color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-wall-isle__h3 { margin: 4px 0 0; border: 0; padding: 0; font: 700 14px/20px var(--body); color: var(--ui-island-fg); }
.nvk-daybreak .d-wall-hint { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-wall-isle .nvk-chip { --_bg: var(--ui-island-2); --_fg: var(--ui-island-fg); }
.nvk-daybreak .d-wall-isle .nvk-chip--ok { --_fg: var(--ui-island-live); }
.nvk-daybreak .d-wall-isle .nvk-chip--warn { --_fg: var(--ui-island-gold); }
.nvk-daybreak .d-wall-isle .nvk-chip--danger { --_fg: var(--ui-island-boss); }
.nvk-daybreak .d-wall-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.nvk-daybreak .d-wall-stat { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 10px 12px; border-radius: var(--radius-md); background: var(--ui-island-2); }
.nvk-daybreak .d-wall-stat dt { margin: 0; font: 600 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-wall-stat dd { margin: 0; font: 700 19px/24px var(--disp); color: var(--ui-island-fg); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-wall-stat dd.d-wall-stat__s { font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-wall-kv { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.nvk-daybreak .d-wall-kv > div { display: flex; justify-content: space-between; gap: 12px; }
.nvk-daybreak .d-wall-kv dt { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-wall-kv dd { margin: 0; font: 600 14px/20px var(--body); color: var(--ui-fg); text-align: right; }
.nvk-daybreak .d-wall-privacy { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.nvk-daybreak .d-wall-privacy__l { font: 600 13px/18px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-wall-privacy__row { display: flex; gap: 8px; align-items: center; }
.nvk-daybreak .d-wall-select { flex: 1 1 auto; min-width: 0; min-height: 40px; margin: 0; padding: 0 10px; border: 1px solid var(--ui-island-line); border-radius: var(--radius-md); background: var(--ui-island-2); color: var(--ui-island-fg); font: 400 14px/20px var(--body); }
.nvk-daybreak .d-wall-select:focus-visible { outline: 2px solid var(--ui-island-blue); outline-offset: 2px; }
.nvk-daybreak .d-wall-isle .nvk-btn--ghost { --_bd: var(--ui-island-fg-2); --_fg: var(--ui-island-fg); }
.nvk-daybreak .d-wall-sendf { margin: 0; }
.nvk-daybreak .d-wall-answer { margin: 0; padding: 10px 12px; border-radius: var(--radius-md); background: var(--ui-island-2); box-shadow: inset 3px 0 0 var(--ui-island-fg-2); font: 400 14px/20px var(--body); color: var(--ui-island-fg); }
.nvk-daybreak .d-wall-answer--ok { box-shadow: inset 3px 0 0 var(--ui-island-live); }
.nvk-daybreak .d-wall-answer--danger { box-shadow: inset 3px 0 0 var(--ui-island-boss); }
.nvk-daybreak .d-wall-answer--warn, .nvk-daybreak .d-wall-answer--info { box-shadow: inset 3px 0 0 var(--ui-island-gold); }
.nvk-daybreak .d-wall-answer__w { color: var(--ui-island-fg-2); white-space: nowrap; }
.nvk-daybreak .d-wall-hunts { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-wall-hunt { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 0; padding: 10px 12px; border-radius: var(--radius-md); background: var(--ui-island-2); }
.nvk-daybreak .d-wall-hunt__m { display: flex; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-wall-hunt__m b { font: 700 14px/20px var(--body); color: var(--ui-island-fg); }
.nvk-daybreak .d-wall-hunt__m span { font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-wall-boon__h { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; margin: 0; border: 0; padding: 0; font: 700 26px/32px var(--disp); color: var(--ui-island-gold); }
.nvk-daybreak .d-wall-boon__l { font: 600 14px/20px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-wall-boon__chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
/* the live countdown: tabular figures and a fixed minimum width, so a ticking second never moves the line */
.nvk-daybreak .d-wall-cd { display: inline-block; min-width: 5.5ch; font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-wall-dlg { margin: 0; font: 400 15px/22px var(--body); color: var(--ui-fg); }

/* the Expert doors */
.nvk-daybreak .d-wall-doors { gap: 10px; }
.nvk-daybreak .d-wall-door { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 10px 14px; border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); color: var(--ui-fg); text-decoration: none; transition: border-color var(--t-fast) ease; }
.nvk-daybreak .d-wall-door:hover { border-color: var(--ui-brand); }
.nvk-daybreak .d-wall-door:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-wall-door__m { display: flex; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-wall-door__m b { font: 700 15px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-wall-door__m span { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-wall-links { display: flex; flex-wrap: wrap; gap: 0 16px; margin: 0; }
.nvk-daybreak .d-wall-doorbodies { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.nvk-daybreak .d-wall-doorbodies:empty { display: none; }

/* ---- the station walls (PvP ranks, Mythic keys, Palace bosses, Everfall floors) ---- */
.nvk-daybreak .d-wall-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 12px 16px; min-width: 0; }
.nvk-daybreak .d-wall-head__m { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .d-wall-head__r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.nvk-daybreak .d-wall-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-wall-tiles > li { display: flex; flex-direction: column; min-width: 0; margin: 0; padding: 0; }
.nvk-daybreak .d-wall-tiles > li > .nvk-wtile { flex: 1 1 auto; }
.nvk-daybreak .d-wall-tiles--ranks { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 8px; }
.nvk-daybreak .d-wall-tiles--keys { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nvk-daybreak .d-wall-tiles--bosses { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nvk-daybreak .d-wall-tiles--bosses .nvk-wtile__art { aspect-ratio: 2 / 1; }
.nvk-daybreak .d-wall-tiles--floors { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.nvk-daybreak .d-wall-pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); gap: 20px; align-items: start; }
.nvk-daybreak .d-wall-twin { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: start; }
.nvk-daybreak .d-wall-kvl { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.nvk-daybreak .d-wall-kvl > div { display: flex; justify-content: space-between; gap: 12px; padding: 6px 0; border-bottom: 1px solid var(--ui-line); }
.nvk-daybreak .d-wall-kvl > div:last-child { border-bottom: 0; }
.nvk-daybreak .d-wall-kvl dt { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-wall-kvl dd { margin: 0; font: 600 14px/20px var(--body); color: var(--ui-fg); text-align: right; }
.nvk-daybreak .d-wall-actions { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---- the Mythic run log ---- */
.nvk-daybreak .d-wall-runs { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-wall-run { display: grid; grid-template-columns: 56px minmax(0, 1fr) auto; align-items: center; gap: 14px; margin: 0; padding: 12px 14px; border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nvk-daybreak .d-wall-run__key { display: grid; place-items: center; width: 56px; height: 48px; border-radius: var(--radius-md); background: var(--ui-island); color: var(--ui-island-fg); font: 700 19px/1 var(--disp); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-wall-run__m { min-width: 0; }
.nvk-daybreak .d-wall-run__t { margin: 0; font: 400 15px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-wall-run__t b { font-weight: 700; }
.nvk-daybreak .d-wall-run__s { margin: 2px 0 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-daybreak .d-wall-run__time { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; }
.nvk-daybreak .d-wall-run__clock { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); white-space: nowrap; }
.nvk-daybreak .d-wall-run__clock b { font: 700 17px/22px var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-wall-run__chips { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; margin: 0; }
.nvk-daybreak .d-wall-run__when { margin: 0; font: 400 12px/16px var(--body); color: var(--ui-fg-2); }

/* the station walls follow the width they get (the site menu and the Cockpit rail stay in view), not the window */
@container d-wall (max-width: 999px) {
  .nvk-daybreak .d-wall-pair, .nvk-daybreak .d-wall-twin { grid-template-columns: minmax(0, 1fr); }
}
@container d-wall (max-width: 599px) {
  .nvk-daybreak .d-wall-tiles--ranks { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .nvk-daybreak .d-wall-tiles--ranks .nvk-wtile__t { font-size: 14px; }
  .nvk-daybreak .d-wall-tiles--keys, .nvk-daybreak .d-wall-tiles--bosses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* Ghosts & Rivals in a station narrower than the canvas (the site menu and the Cockpit rail both stay in view at 1366): the posters take the
   full width, three across, and the dark cards pair up under them (Ghost | Send); Mark a rival and Closed cases follow. */
@container d-wall (max-width: 1079px) {
  .nvk-daybreak .d-wall--rivals .d-wall-split { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvk-daybreak .d-wall--rivals .d-wall-wide, .nvk-daybreak .d-wall--rivals .d-wall-side { display: contents; }
  .nvk-daybreak .d-wall--rivals .d-wall-sec--wanted { order: 1; grid-column: 1 / -1; }
  .nvk-daybreak .d-wall--rivals .d-wall-boon { order: 2; grid-column: 1 / -1; }
  .nvk-daybreak .d-wall--rivals .d-wall-ghost { order: 3; }
  .nvk-daybreak .d-wall--rivals .d-wall-send { order: 4; }
  .nvk-daybreak .d-wall--rivals .d-wall-sec--mark { order: 5; grid-column: 1 / -1; }
  .nvk-daybreak .d-wall--rivals .d-wall-sec--closed { order: 6; grid-column: 1 / -1; }
  .nvk-daybreak .d-wall--rivals .d-wall-doors { order: 7; grid-column: 1 / -1; }
  .nvk-daybreak .d-wall--rivals .d-wall-posters { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }
}
/* B-Phone: the posters first and sideways, then the dial, the Boon, the Ghost, Send, Mark a rival, Closed cases and the doors */
@container d-wall (max-width: 619px) {
  .nvk-daybreak .d-wall--rivals .d-wall-split { display: contents; }
  .nvk-daybreak .d-wall--rivals .d-wall-sec--wanted { order: 1; }
  .nvk-daybreak .d-wall--rivals .d-wall-dial { order: 2; }
  .nvk-daybreak .d-wall--rivals .d-wall-boon { order: 3; }
  .nvk-daybreak .d-wall--rivals .d-wall-ghost { order: 4; }
  .nvk-daybreak .d-wall--rivals .d-wall-send { order: 5; }
  .nvk-daybreak .d-wall--rivals .d-wall-sec--mark { order: 6; }
  .nvk-daybreak .d-wall--rivals .d-wall-sec--closed { order: 7; }
  .nvk-daybreak .d-wall--rivals .d-wall-doors { order: 8; }
  .nvk-daybreak .d-wall--rivals .d-wall-doorbodies { order: 9; }
  .nvk-daybreak .d-wall--rivals .d-wall-posters { display: flex; gap: 12px; margin: 0 -16px; padding: 0 16px 6px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding: 0 16px; overscroll-behavior-x: contain; }
  .nvk-daybreak .d-wall--rivals .d-wall-posters > li { flex: none; width: min(260px, 78vw); scroll-snap-align: start; }
  .nvk-daybreak .d-wall--rivals .d-wall-cases { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .nvk-daybreak .d-wall--rivals .d-wall-picks { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-wall--rivals .d-wall-dial { flex-direction: column; align-items: stretch; padding: 16px; }
  .nvk-daybreak .d-wall--rivals .d-wall-seg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-radius: var(--radius-lg); }
  .nvk-daybreak .d-wall--rivals .d-wall-seg__o span { justify-content: center; width: 100%; min-height: 44px; border-radius: var(--radius-md); }
  .nvk-daybreak .d-wall--rivals .d-wall-dial__set .nvk-btn { width: 100%; }
}
@media (max-width: 760px) {
  .nvk-daybreak .d-wall { gap: 20px; }
  .nvk-daybreak .d-wall-panel, .nvk-daybreak .d-wall-isle { padding: 16px; }
  .nvk-daybreak .d-wall-h2 { font-size: 21px; line-height: 28px; }
  .nvk-daybreak .d-wall-tiles--keys, .nvk-daybreak .d-wall-tiles--bosses { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvk-daybreak .d-wall-tiles--floors { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
  .nvk-daybreak .d-wall-tiles--floors .nvk-wtile__note { font-size: 11px; line-height: 14px; }
  .nvk-daybreak .d-wall-run { grid-template-columns: 48px minmax(0, 1fr); gap: 10px; }
  .nvk-daybreak .d-wall-run__key { width: 48px; height: 44px; font-size: 17px; }
  .nvk-daybreak .d-wall-run__time { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: space-between; text-align: left; }
  .nvk-daybreak .d-wall-run__chips { justify-content: flex-start; }
  .nvk-daybreak .d-wall-select { min-height: 44px; }
}
@media (prefers-reduced-motion: reduce) {
  .nvk-daybreak .d-wall-pick, .nvk-daybreak .d-wall-seg__o span, .nvk-daybreak .d-wall-door { transition: none; }
  .nvk-daybreak .d-wall-posters { scroll-behavior: auto; }
}
.nvk-daybreak .d-wall-privacy__h { font: 400 13px/18px var(--body); color: var(--ui-island-fg-2); }
/* the station guides (nvc_guide) on a dark card: the island's own blue and text colours */
.nvk-daybreak .d-wall-isle .nv-cp-guide, .nvk-daybreak .d-wall-isle .nv-cp-guide summary { color: var(--ui-island-blue); }
.nvk-daybreak .d-wall-isle .nv-cp-guide p, .nvk-daybreak .d-wall-isle .nv-cp-guide li { color: var(--ui-island-fg-2); }
@container d-wall (max-width: 619px) {
  .nvk-daybreak .d-wall--rivals .d-wall-dial__set { flex-direction: column; align-items: stretch; }
  .nvk-daybreak .d-wall--rivals .d-wall-seg { width: 100%; box-sizing: border-box; }
}
@container d-wall (max-width: 419px) {
  .nvk-daybreak .d-wall-tiles--ranks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* the posters scroll sideways on a phone: the list takes the keyboard focus, with a ring */
.nvk-daybreak .d-wall-posters:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 4px; border-radius: var(--radius-lg); }

/* One left menu follow-ups (owner 2026-10-22): a "How to use this" guide inside a dark wall island (Your Ghost, Send your Ghost) draws its
   command words and its Codex link in the island's light blue; they kept the page's dark link colour (1.7:1). */
.nvk-daybreak .d-wall-isle .nv-cp-guide-codex, .nvk-daybreak .d-wall-isle .nv-cp-guide a { color: var(--ui-island-blue); }
.nvk-daybreak .d-wall-isle .nv-cp-guide code { background: var(--ui-island-2); color: var(--ui-island-blue); }
}

/* _base/help.css */
@layer pages{
/* Contents rail (owner-picked Option 1 of the 'NirvanaRO Help Pages' canvas, 2026-10-19): the two-column frame of the reading pages (lib/nv_daybreak_help.php). */
/* One left menu (owner 2026-10-22): the page, and 'On this page' on its right (kit ContentsRail side); a page with no anchors is the page alone */
.nvk-daybreak .d-help { display: grid; grid-template-columns: minmax(0, 1fr) 248px; gap: var(--space-5); align-items: start; }
.nvk-daybreak .d-help--solo { grid-template-columns: minmax(0, 1fr); }
.nvk-daybreak .d-help__otp { position: sticky; top: calc(var(--nvk-bar-stick, 0px) + 20px); align-self: start; min-width: 0; }
.nvk-daybreak .d-help__otp .nvk-contents { position: static; }
.nvk-daybreak .nvk-contents a.nvk-contents__a, .nvk-daybreak .nvk-contents a.nvk-contents__c { text-decoration: none; }
.nvk-daybreak .d-help__main { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.nvk-daybreak .d-help__main > .nvk-panel { padding: var(--space-5); }
.nvk-daybreak .d-help__main > .nvk-card, .nvk-daybreak .d-help__main > .nvk-panel, .nvk-daybreak .d-help-card { border: 0; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-help-card { padding: var(--space-5); scroll-margin-top: 90px; }
.nvk-daybreak .d-help-card h2 { margin: 0 0 8px; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-help-card p { margin: 0; font: 400 15px/24px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-help-card--dark { background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-daybreak .d-help-card--dark h2, .nvk-daybreak .d-help-card--dark p, .nvk-daybreak .d-help-card--dark strong { color: var(--ui-island-fg); }
.nvk-daybreak .d-help-card--gold { background: var(--ui-island-gold); }
.nvk-daybreak .d-help-card--gold h2, .nvk-daybreak .d-help-card--gold p, .nvk-daybreak .d-help-card--gold strong { color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-help-head { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: var(--space-4) 0 var(--space-5); text-align: center; }
.nvk-daybreak .d-help-head__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--ui-link); }
.nvk-daybreak .d-help-head__t { margin: 0; padding: 0; border: 0; font: 700 44px/50px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-help-head__s { margin: 0; max-width: 62ch; font: 400 16px/24px var(--body); color: var(--ui-fg-2); }
@media (max-width: 900px) { .nvk-daybreak .d-help__otp { position: static; order: -1; } .nvk-daybreak .d-help { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); } .nvk-daybreak .d-help-head__t { font-size: 32px; line-height: 38px; } }
/* 'On this page' is sticky (the AppShell clip in PublicShell.css covers signed-in pages since 2026-10-19; this stays for any rail page outside the shells). The legacy body { overflow-x: hidden } makes body a scroll container that never scrolls, so a sticky list would scroll
   away; on such a page, clip cuts the overflow the same way without making a scroll container (as the public shell does, kit.css PublicNav). */
body:has(.d-help) { overflow-x: clip; }
}

/* _base/home.css */
@layer base{
/* Home (owner-picked Option 2, 2026-10-18): the page grid around the Home components (the Cockpit/Season opening, control/_daybreak_cockpit_hero.php). */
.nvk-daybreak .nv-page-title, .nvk-daybreak .nv-sh-h2 { background: none; -webkit-text-fill-color: currentColor; color: var(--ui-fg); text-shadow: none; }   /* the engraved looks clip a light gradient into the heading; on Daybreak it read as washed out (owner 2026-10-18) */
.nvh { container-type: inline-size; display: flex; flex-direction: column; gap: var(--space-5); margin: 0 0 var(--space-6); }
.nvh__top { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: var(--space-5); align-items: stretch; }
.nvh__chap { margin-top: var(--space-3); }
@container (max-width: 900px) { .nvh__top { grid-template-columns: minmax(0, 1fr); } }

/* Home replaces the old Sky hero (dial) of The Season's Today chapter: the season island above carries the dial, the countdown, the Pass and the next event line */
.nvk-daybreak .nv-cp-page-season .nv-sky-hero { display: none; }
}

/* _base/layout-phone.css */
@layer pages{
/* Audit fixes B "Layout and phone" (owner 2026-10-21: fix every item of the site-wide audit). Page rules the audit asked for that belong to no single
   component; each block names its audit item. Tokens only; motion stays transform/opacity. */

/* Polish 7: Daybreak Night Hall of Legends, "Every champion, season by season". The running season and the crowned seasons sat on the saturated
   brand tint and a cta mix that turned olive on the night surface; on Night they are the surface-2 tile with an accent rule on top instead. */
html[data-theme="daybreak-dark"] .hl-season.is-now { background: var(--ui-surface-2); box-shadow: inset 0 3px 0 var(--ui-brand); }
html[data-theme="daybreak-dark"] .hl-season.is-crowned { background: var(--ui-surface-2); box-shadow: inset 0 3px 0 var(--ui-cta); }
html[data-theme="daybreak-dark"] .hl-link__icon { background: var(--ui-surface-2); color: var(--ui-cta); }
html[data-theme="daybreak-dark"] .hl-link__icon--brand { background: var(--ui-surface-2); color: var(--ui-link); }

/* Real bug 10: the Terms re-acceptance notice on every Cockpit station (themes/nirvana/control/_policy_notice.php) is the kit's now: a
   quiet card on the station surface, the date as one line, "What changed" folded, the kit primary button. */
.nvk-daybreak .nvcp-policy { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); margin: var(--space-4) 0 0; padding: var(--space-3) var(--space-4);
  border: 1px solid var(--ui-line); border-left: 4px solid var(--ui-warn); border-radius: var(--radius-md); background: var(--ui-surface); box-shadow: var(--shadow-sm); color: var(--ui-fg); clip-path: none; font: 400 14px/20px var(--body); }
.nvk-daybreak .nvcp-policy__t { flex: 1 1 260px; margin: 0; color: var(--ui-fg); }
.nvk-daybreak .nvcp-policy__more { flex: 1 1 100%; order: 3; margin: 0; color: var(--ui-fg-2); }
.nvk-daybreak .nvcp-policy__more > summary { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; font-weight: 600; color: var(--ui-link); }
.nvk-daybreak .nvcp-policy__more > p { margin: 0 0 var(--space-2); max-width: 72ch; }
.nvk-daybreak .nvcp-policy__err { flex: 1 1 100%; order: 4; margin: 0; color: var(--ui-danger); }
.nvk-daybreak .nvcp-policy__form { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-4); margin: 0; }
.nvk-daybreak .nvcp-policy__read { display: inline-flex; align-items: center; min-height: 44px; color: var(--ui-link); font-weight: 600; }
.nvk-daybreak .nvcp-policy .nvk-btn { min-height: 44px; }

/* Polish 12: the phone Cockpit spent about 1,200px on chrome before the station's own content. On a phone the instrument bar is two short
   rows (the seal shows only its art), the station header drops its medal and runs Previous / Next on one row, and The Call folds to its
   title and its one button (the why and the "Then" list stay on the wider layouts and in the Season hub's full plate). */
@media (max-width: 760px) {
  .nvk-daybreak .nvcp .nvcp-bar { padding: 6px; }
  .nvk-daybreak .nvcp .nvcp-bar > .nvcp-seal { flex: 0 0 auto; }
  .nvk-daybreak .nvcp .nvcp-bar > .nvcp-seal .nvcp-seal-txt { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }   /* visually hidden, still the button's name */
  .nvk-daybreak .nvcp .nvcp-bar > .nvcp-seal { order: 0; }
  .nvk-daybreak .nvcp .nvcp-bar > .nvcp-crumb { order: 1; flex: 1 1 160px; min-width: 0; }
  .nvk-daybreak .nvcp .nvcp-bar > .nvcp-find { order: 2; }
  .nvk-daybreak .nvcp .nvcp-bar > :is(.nvcp-purse, .nvcp-lamps, .nvcp-owed) { order: 3; }
  .nvk-daybreak .nvcp .nvcp-bar > .nvcp-find .nvcp-find-txt, .nvk-daybreak .nvcp .nvcp-bar > .nvcp-find kbd { display: none; }
  .nvk-daybreak .nvcp .nvcp-head { gap: 10px; padding: 20px 18px; }
  .nvk-daybreak .nvcp .nvcp-head-g, .nvk-daybreak .nvcp .nvcp-head-arm { display: none; }
  .nvk-daybreak .nvcp .nvcp-head .nvcp-h1 { font-size: 30px; line-height: 34px; }
  .nvk-daybreak .nvcp .nvcp-head-s { font-size: 14px; line-height: 20px; }
  .nvk-daybreak .nvcp .nvcp-head-pn { flex-wrap: nowrap; gap: 8px; }
  .nvk-daybreak .nvcp .nvcp-head-pn .nvcp-pn { min-width: 0; }
  .nvk-daybreak .nvcp-stage .nvk-callstrip { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 10px 12px; padding: 12px 14px; border-width: 1px; border-radius: 24px; }
  .nvk-daybreak .nvcp-stage .nvk-callstrip__seal, .nvk-daybreak .nvcp-stage .nvk-callstrip__then { display: none; }
  .nvk-daybreak .nvcp-stage .nvk-callstrip__title { font-size: 17px; line-height: 22px; }
  .nvk-daybreak .nvcp-stage .nvk-callstrip__why { display: none; }
  .nvk-daybreak .nvcp-stage .nvk-callstrip__t { flex: 1 1 180px; }
  .nvk-daybreak .nvcp-stage .nvk-callstrip__go { flex: 0 1 auto; }
  .nvk-daybreak .nvcp-stage .nvk-callstrip__verb { min-height: 44px; padding: 0 16px; }
  .nvk-daybreak .nvcp-policy { padding: var(--space-2) var(--space-3); }
}

/* Real bug 8 (Index): the station table broke words mid-letter ("Automati/on") because every cell may break anywhere; on the Index a cell
   breaks only between words, the circle and station columns never wrap, and on a phone every link is a 44px row. */
.nvk-daybreak .nvcp-index .d-rl-table td { overflow-wrap: break-word; }
.nvk-daybreak .nvcp-index .d-rl-table td:nth-child(1), .nvk-daybreak .nvcp-index .d-rl-table td:nth-child(2) { white-space: nowrap; }
@media (max-width: 760px) {
  .nvk-daybreak .nvcp-index .d-rl-table td:nth-child(1), .nvk-daybreak .nvcp-index .d-rl-table td:nth-child(2) { white-space: normal; }
  .nvk-daybreak .nvcp-index .d-rl-table td a { display: inline-flex; align-items: center; min-height: 44px; }
}

/* Polish 13: 44px tap targets on a phone (the Cockpit dial's sectors went with the header medal above). */
@media (max-width: 760px) {
  .nvk-daybreak a.nvk-podium__name, .nvk-daybreak a.nvk-ranklist__name { display: inline-flex; align-items: center; min-height: 44px; }
  .nvk-daybreak .nv-btn { min-height: 44px; }
  .nvk-daybreak .d-h3 > a.d-link, .nvk-daybreak .nvcp5-p > a:only-child { display: inline-flex; align-items: center; min-height: 44px; }
}

/* Polish 15: faint text to 4.5:1. The automation wizards (Combat Brain, Blessing, Fieldwork, Standing Order; css/pages/wizard.css and
   cp-brain.css) muted their small print with opacity (.42 to .74), which fell to 2.5:1; muted text is the fg-2 / fg-3 colour instead. */
.nvk-daybreak .nv-wz :is(.nv-wz-sub, .nv-wz-hint, .nv-wz-cap, .nv-wz-tile-blurb, .nv-wz-tile-rules, .nv-wz-tile-why) { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nv-wz .nv-wz-lbl { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nv-cockpit .nv-blb-card.is-blank { opacity: 1; }
.nvk-daybreak .nv-wz-rail li { opacity: 1; color: var(--ui-fg-3); }
.nvk-daybreak .nv-wz-rail li.is-done { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nv-wz-rail li.is-on { opacity: 1; color: var(--ui-link); font-weight: 700; }
.nvk-daybreak .nv-cockpit :is(.nv-rwb-livesub, .nv-rwb-qlbl, .nv-rwb-fired) { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nv-cockpit .nv-rwb-tune > summary { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .d-auto-buy__b s { opacity: 1; color: color-mix(in srgb, currentColor 78%, transparent); }   /* inside the dark price pill: its own text, quieter */
.nvk-daybreak .nv-cockpit .nv-cw-builder .nv-cwb-who { color: var(--ui-link); }
.nvk-daybreak .nv-cockpit .nv-cw-builder .nv-cwb-nav:disabled { opacity: 1; color: var(--ui-fg-3); border-style: dashed; }
.nvk-daybreak .nv-fwseal-txt em { opacity: 1; color: var(--ui-fg-2); }

/* Real bug 9: on a phone the calendar's Subscribe bar was fixed to the bottom of the window and sat on the day strip. It is now a row in the
   page, right under the title (flex order; the markup stays at the end for the wide layouts, where it is hidden), so nothing floats over the days. */
@media (max-width: 600px) {
  .cal-wrap { padding-bottom: var(--space-7); }
  .cal-wrap > * { order: 2; }
  .cal-wrap > .cal-hd { order: 0; }
  .cal-wrap > .cal-dock { order: 1; position: static; left: auto; right: auto; bottom: auto; }
}

/* Real bug 11 (Anime Sky): the Cockpit instrument bar is position: relative in the kit frame (stations.css), but the legacy sticky rule's
   top: var(--nvk-bar-stick) still applied, and under the Anime look's floating top bar that is 88px: the bar slid 88px down over the
   station rail and the header, leaving a gap above. A relative bar has no offset. */
.nvk-daybreak .nvcp .nvcp-bar { top: auto; }

/* Real bug 17: Hall of Records runner-ups. The value column never wrapped, so in a narrow card the name broke one letter per line
   ("E2E / _0 / 04"); the row now wraps as a whole, the value dropping under the name when both do not fit. */
.nvk-daybreak .d-rec-run { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px var(--space-2); }
.nvk-daybreak .d-rec-run > .d-cap:first-child { flex: 0 0 var(--space-5); }
.nvk-daybreak .d-rec-run > b { flex: 1 1 auto; min-width: 0; overflow-wrap: break-word; }
.nvk-daybreak .d-rec-run > .d-cap:last-child { margin-left: auto; }

/* Polish 17: an empty state on a list-and-reader page (News, the item and monster databases) sat in the list column with the reader column
   empty beside it; with nothing to read, the list takes the whole width. */
.nw-grid:has(> .nw-read[hidden]):has(.nw-none:not([hidden])) { grid-template-columns: minmax(0, 1fr); }
.dbp-grid:has(> .dbp-results .dbp-empty):has(> .dbp-detail:empty) { grid-template-columns: minmax(0, 1fr); }
.dbp-grid:has(> .dbp-results .dbp-empty) > .dbp-detail:empty { display: none; }

/* Polish 9: the landing hero hugged the window's left edge (16px) under a top bar that is centred at 1220px; it now lines up with the bar. */
.nvk-daybreak .nvl-hero { margin-inline: max(var(--space-4), calc((100% - 1220px) / 2)); }

/* Real bug 8 (duty licences): on a phone the Glory and Crystals buttons of a licence row stood side by side and ran out of the card (the
   Crystals price was cut off); they wrap onto two lines instead, whenever the licence card is in its stacked form (its own container query). */
@container autolic (max-width: 700px) {
  .nvk-daybreak .d-auto-mx td { min-width: 0; }
  .nvk-daybreak .d-auto-mx__btns { flex-wrap: wrap; min-width: 0; }
  .nvk-daybreak .d-auto-mx__btns > * { flex: 1 1 140px; min-width: 0; }
}
/* the hue is passed as rgb(), not hex: the theme remaps some legacy hex colours found in a style attribute (kit.css [style*="#4ade80"]) with !important */
.nv-cp-mask-glabel, .nv-blb-glabel { opacity: 1; color: color-mix(in srgb, var(--gc, currentColor) 25%, var(--ui-fg, currentColor)); }   /* group hue mixed into the text colour: 8:1 or more on white, 12:1 on Night */
.nvk-daybreak .nv-orc-techs li.is-locked { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nv-orc-on { color: color-mix(in srgb, var(--ui-ok) 75%, var(--ui-fg)); }
.nvk-daybreak .nv-orc-techs li.is-locked em { color: var(--ui-fg-2); }
.nvk-daybreak .nvhk-meter-n { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nvhk-alt-you { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nvhk-glory { color: var(--ui-warn); }
.nvk-daybreak .nv-cockpit :is(.nv-blb-card-sub, .nv-blb-card-empty) { opacity: 1; color: var(--ui-fg-2); }
.nvk-daybreak .nv-cockpit :is(.nv-blb-ladder-up, .nv-blb-ladder-tier) { opacity: 1; color: var(--ui-link); }
.nvk-daybreak .nv-cp2-hero-name { color: var(--ui-fg); }
html[data-theme="daybreak-dark"] .pub-page .pub-muted { color: var(--ui-fg-2); }
html[data-theme="daybreak-dark"] .nvk-ranklist__k { color: var(--ui-fg-2); }
html:is([data-theme="daybreak-dark"], [data-theme="anime"]) .gp-hero .gp-eyebrow { color: var(--ui-fg); }
.dbp-pill[aria-pressed="true"] .dbp-pill__n { opacity: 1; }

/* Polish 13 (Devil Fruit page): the detail tabs are labels for invisible radios (the radios, now .nvk-sr, measured 24px and the labels 35px);
   the labels are 44px on a phone (the wishlist button is the kit's ghost button now, lib/nv_df_orchard.php). */
@media (max-width: 760px) {
  .nv-orc-dtl label { display: inline-flex; align-items: center; min-height: 44px; }
}

/* Real bug 7 (Sage tab, calendar): the phone day strip runs to the right edge; it stops short of the edge tabs. */
@media (max-width: 600px) { .cal-strip { margin-right: calc(var(--nvk-edge-w, 0px) - var(--space-4)); } }

/* Polish 13, more 44px targets on a phone: the season timeline's zoom tabs (labels for .nvk-sr radios), the Oath crown names and season picks, a Cockpit
   line that is nothing but one link ("Open your Orchard", "See what Ultra includes", "Load them"). */
@media (max-width: 760px) {
  .nv-ssn-zoomtab { display: inline-flex; align-items: center; min-height: 44px; }
  .nvk-daybreak :is(a.d-oath-who, a.d-oath-pick__a, .d-oath-season__h > a) { display: inline-flex; align-items: center; min-height: 44px; }
  .nvk-daybreak .nv-cockpit :is(p, .nv-cp4-note) > a:only-child { display: inline-flex; align-items: center; min-height: 44px; }
}

/* Polish 15: the licence price buttons are dark pills; the struck-through old price inside one is the pill's own text, a little quieter. */
.nvk-daybreak .nv-cockpit .nv-dl .nv-dl-amt s { color: color-mix(in srgb, currentColor 78%, transparent); }
.nvk-daybreak .nv-wz .nv-wz-tile.is-on .nv-wz-tile-name { color: var(--ui-fg); }

/* ---- Audit fixes D "preview leftovers" (owner 2026-10-22: fix all seven) ---- */

/* D1 (Index, phone): each station is a stacked row inside the card: the circle on top, the station and its subtitle on one line, its
   sections on a line of their own (realm.css makes the stacked table a plain block, so nothing runs past the card edge). */
@container d-rl (max-width: 420px) {
  .nvk-daybreak .nvcp-index .d-rl-table tr { align-items: center; }
  .nvk-daybreak .nvcp-index .d-rl-table td:nth-child(3) { flex: 1 1 auto; }
  .nvk-daybreak .nvcp-index .d-rl-table td:nth-child(4) { flex: 1 1 100%; }
}

/* D4 (sign-in and the other form sheets, phone): the sheet ended 16px from the window edge, so its full-width buttons (Discord) ended
   6px from the Sage edge tab. The sheet keeps the tab's width clear on both sides, the way a Cockpit phone card does (28px). */
@media (max-width: 600px) {
  .nvk-daybreak .d-fs > .d-pg.d-fs__pg { padding-inline: calc(var(--nvk-edge-w, 28px) - var(--space-4)); }
}

/* D6 (My account, phone): the tab row ran past the right edge with no sign of more. It scrolls sideways with snap and fades out at the
   end, the same as the character switcher chips (sheet.css, audit B); the last tab clears the fade. */
@media (max-width: 760px) {
  .nvk-daybreak .d-acc-switch .nvk-boards__track { scroll-snap-type: x proximity; scroll-padding-inline: 5px; overscroll-behavior-x: contain;
    -webkit-mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); }
  .nvk-daybreak .d-acc-switch .nvk-boards__item { scroll-snap-align: start; }
  .nvk-daybreak .d-acc-switch .nvk-boards__item:last-child { margin-right: 24px; }
}

/* E4 (Bazaar section tabs, phone; owner 2026-10-22): the island rail (Stalls, Auctions, Sets, Buy orders ...) ran past the right edge
   with a hard cut. It scrolls sideways with snap and fades out at the end, the same as the My account tab row (D6); the last tab
   clears the fade. */
@media (max-width: 760px) {
  .nvk-daybreak nav.d-mpi-rail { scroll-snap-type: x proximity; scroll-padding-inline: 6px; overscroll-behavior-x: contain;
    -webkit-mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); }
  .nvk-daybreak nav.d-mpi-rail .nvk-tab { scroll-snap-align: start; }
  .nvk-daybreak nav.d-mpi-rail .nvk-tab:last-child { margin-right: 24px; }
}

/* E5 (Bazaar Ledger sift bar, phone; owner 2026-10-22): the Where-to-get-it and category rails and the bar of sift fields scroll sideways
   with snap and fade out at the end, like the section tabs (E4); the last item clears the fade. */
@media (max-width: 760px) {
  .nvk-daybreak nav.d-bz-bar, .nvk-daybreak .d-bz-sb__row { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; scroll-snap-type: x proximity; scroll-padding-inline: 6px; overscroll-behavior-x: contain;
    -webkit-mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); }
  .nvk-daybreak nav.d-bz-bar { width: auto; border-radius: var(--radius-pill); }
  .nvk-daybreak nav.d-bz-bar .d-bz-pill, .nvk-daybreak .d-bz-sb__row > .d-bz-sb__f { scroll-snap-align: start; }
  .nvk-daybreak nav.d-bz-bar .d-bz-pill:last-child, .nvk-daybreak .d-bz-sb__row > .d-bz-sb__f:last-child { margin-right: 24px; }
  .nvk-daybreak .d-bz-sb__row > .d-bz-sb__f { flex: 0 0 172px; }
  .nvk-daybreak .d-bz-sb__row > .d-bz-sb__f--range { flex-basis: 212px; }
  .nvk-daybreak .d-bz-sb__row > .d-bz-sb__go { flex: 0 0 auto; }
  .nvk-daybreak .d-bz-sb { padding: var(--space-3); border-radius: 24px; }
}
/* ...and, like the calendar's day strip, they stop short of the Sage edge tab */
@media (max-width: 600px) { .nvk-daybreak nav.d-bz-bar, .nvk-daybreak .d-bz-sb { margin-right: calc(var(--nvk-edge-w, 0px) - var(--space-4)); } }

/* One left menu round (2026-10-22): a link in a table cell or an order row (My orders' "Buy again", a buy order's item) is a 44px target on a phone */
@media (max-width: 600px), (pointer: coarse) {
  .nvk-daybreak .nvk-table td a.d-link, .nvk-daybreak .d-mpi-row a.d-link { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; }
  /* the Owed tray rows, a Wishing Wall stall, the Orchard's Haki link, the wizard's Next, the podium names, the step trio, the Bazaar capsules */
  .nvk-daybreak a:has(> .nvcp-tray-l), .nvk-daybreak .nv-wz-next, .nvk-daybreak .nvk-podium__name { min-height: 44px; }
  .nvk-daybreak a.d-mp-stall, .nvk-daybreak .nv-orc-haki a, .nvk-daybreak a.nvk-capsule { display: inline-flex; align-items: center; min-height: 44px; }
  .nvk-daybreak a.nvk-steptrio__step { min-height: 44px; }
  .nvk-daybreak .nv-cp-mask-tools a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; }   /* Blessing: All / None / Solo / Party */
}
}

/* _base/mc-b1.css */
@layer components{
/* Staff panel helpers on kit components (WEB-UI-PLAN register B1): mc_section is a Panel heading, mc_kv a key/value table. */
.nv-mc .mc-b1-sechead { margin: var(--space-5) 0 var(--space-3); gap: 0; }
.nv-mc .mc-b1-sechead .nvk-panel__body:empty { display: none; }
.nv-mc .mc-b1-sechead .nvk-panel__title { font-size: 16px; line-height: 24px; }
.nvk-table--kv th { width: 42%; text-align: left; font-weight: 600; color: var(--ui-fg-3); background: transparent; text-transform: none; letter-spacing: 0; }
.nvk-table--kv td { font-variant-numeric: tabular-nums; }
.nv-mc .mc-b1-sechead.is-sub { margin: var(--space-4) 0 var(--space-2); }
.nv-mc .mc-b1-sechead.is-sub .nvk-panel__head { border-bottom: 0; padding-bottom: 0; }
.nv-mc .mc-b1-sechead.is-sub .nvk-panel__title { font-size: 14px; line-height: 20px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ui-fg-3); }
.nv-mc .mc-b1-note { font-size: 12px; line-height: 1.5; color: var(--ui-fg-3); }
.nv-mc td.mc-b1-note, .nv-mc label.mc-b1-note { font-size: 12px; }
/* Account Flagship 7.4: Account Health (modules/nvmc/accounts_view.php) */
.nv-mc .mc-ah-find { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 12px 0; }
.nv-mc .mc-ah-find input[type=search] { min-width: 260px; max-width: 100%; }
.nv-mc .mc-ah-one { border: 1px solid var(--ui-line); border-radius: var(--radius-md); padding: 12px 16px; margin: 12px 0 20px; }
.nv-mc .mc-ah-one form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 6px 0; }
.nv-mc .mc-ah-viewas { border: 2px solid var(--ui-danger); border-radius: var(--radius-md); padding: 12px 16px; margin: 12px 0; }
.nv-mc .mc-ah-viewas__banner { margin: 0 0 8px; padding: 8px 12px; border-radius: var(--radius-sm); background: color-mix(in srgb, var(--ui-danger) 14%, transparent); border-left: 4px solid var(--ui-danger); color: var(--ui-fg); }
.nv-mc .mc-ah-tree { display: grid; grid-template-columns: minmax(120px, max-content) 1fr; gap: 2px 12px; margin: 0; font-size: 13px; }
.nv-mc .mc-ah-tree dt { color: var(--ui-fg-3); }
.nv-mc .mc-ah-tree dd { margin: 0; overflow-wrap: anywhere; }
.nv-mc .mc-ah-tree-wrap { max-height: 560px; overflow: auto; padding-right: 8px; }
}

/* _base/mc-b4.css */
@layer components{
/* Rendered by web/lib/nv_cmp_view.php (the Observer / Sentinel comparator): the intent mix bar and the replay tape heading. WEB-UI-PLAN register B4. */
.nv-cmp-ibar { display: inline-flex; width: var(--bw, 150px); height: 9px; border-radius: 4px; overflow: hidden; border: 1px solid var(--ui-line); vertical-align: middle; }
.nv-cmp-iseg { display: inline-block; height: 100%; background: var(--ui-fg-3); }
.nv-cmp-iseg.is-mixed { background: var(--ui-fg-3); }
.nv-cmp-iseg.is-farming { background: var(--ui-warn); }
.nv-cmp-iseg.is-travelling { background: var(--ui-link); }
.nv-cmp-iseg.is-trading { background: var(--ui-ok); }
.nv-cmp-iseg.is-socialising { background: var(--ui-brand-hi); }
.nv-cmp-iseg.is-idle { background: var(--ui-line-strong); }
.nv-cmp-iseg.is-dialog { background: var(--ui-brand); }
.nv-cmp-tape__head { font-size: 11px; line-height: 1.5; color: var(--ui-fg-3); }
.nv-cmp-tape__head.is-first { font-size: 12px; font-weight: 700; color: var(--ui-fg); }
/* The Armature (_render_armature.php): the 24-hour clock instrument, its text column and legend, on tokens. */
.nv-mc .mc-b4-arm { display: flex; gap: 28px; flex-wrap: wrap; align-items: center; margin: 18px 0; }
.nv-mc .mc-b4-arm__face { flex: none; position: relative; width: 260px; height: 260px; }
.nv-mc .mc-b4-arm__text { flex: 1; min-width: min(240px, 100%); display: flex; flex-direction: column; gap: 8px; font-size: 12.5px; color: var(--ui-fg-3); }
.nv-mc .mc-b4-arm__em { color: var(--ui-fg); }
.nv-mc .mc-b4-arm__quiet { font-size: 11px; color: var(--ui-fg-3); }
.nv-mc .mc-b4-arm__legend { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; margin-top: 4px; }
.nv-mc .mc-b4-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 3px; }
.nv-mc .mc-b4-dot.is-ok { background: var(--ui-ok); opacity: .7; }
.nv-mc .mc-b4-dot.is-bad { background: var(--ui-danger); opacity: .5; }
.nv-mc .mc-b4-dot.is-quiet { background: var(--ui-fg-3); opacity: .3; }
.nv-mc .mc-b4-dot.is-pop { background: var(--ui-link); opacity: .7; }
.nv-mc .mc-b4-dot.is-sched { background: var(--ui-cta); }
}

/* _base/mc-b5.css */
@layer components{
/* Staff panel defects (WEB-UI-PLAN register B5). Bare h3/h4 headings inside Mission Control: the unlayered-looking legacy rule
   `.nv-mc h4 { uppercase; display serif }` (themes/nirvana/css/nirvana.css) beat the kit under every look; classed headings keep their own rules. */
.nv-mc h4:not([class]) { font-family: inherit; text-transform: none; letter-spacing: .01em; color: var(--ui-fg-2); font-size: 14px; font-weight: 600; }
.nv-mc h3:not([class]) { font-family: inherit; letter-spacing: 0; color: var(--ui-fg); }
/* Community at 390: the hidden hover tip is centred on a trigger near the right edge and pushed the page 26px wide. On phones align it to the trigger's right edge. */
@media (max-width: 640px) { .nv-mc .nv-tip-box { left: auto; right: 0; transform: none; } .nv-mc .nv-tip:hover .nv-tip-box, .nv-mc .nv-tip:focus .nv-tip-box { transform: none; } .nv-mc .nv-tip-box::after { left: auto; right: 12px; transform: none; } }
/* Expedition: kit tables written without a .nvk-table-wrap grew wider than the panel (174px at Daybreak 1366, 562px at 390). Scroll them inside their own box. */
.nv-mc :not(.nvk-table-wrap, .nv-m-scrolltable) > table.nvk-table { display: block; max-width: 100%; overflow-x: auto; }
/* Sentinel case "Take action": the ground + reason inputs were 150px wide, so the placeholders ("what the evidence showed") were cut off and each card was a different width. */
.nv-mc .g3-row--top > .g3-act { flex: 1 1 420px; display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.nv-mc .g3-act .g3-reason { flex: 1 1 240px; min-width: min(240px, 100%); text-transform: none; letter-spacing: 0; }
/* Inputs and selects that themselves carry .nv-mc-field (Sentinel ground + reason boxes) inherited the label look: uppercase 11px, so placeholders and the longest option were cut off. */
.nv-mc input.nv-mc-field, .nv-mc select.nv-mc-field { text-transform: none; letter-spacing: 0; font-size: 13px; }
.nv-mc .g3-reason--wide { flex: 1 1 380px; }
/* Phones: mobile.css makes every .nv-content td break anywhere, so a staff table with many columns (Forge Drafts/Releases) squeezed each id to one digit per line. Break only at spaces and let the table scroll in its wrap. */
.nv-mc .nvk-table td, .nv-mc .nvk-table th { word-break: normal; overflow-wrap: normal; }
}

/* _base/mc-b6.css */
@layer components{
/* Staff panel leftovers that used to carry a style attribute (WEB-UI-PLAN register B6): fixed looks as classes, per-render values as step classes or data-nv-* (see nv_steps.php, nv-ui.js). */
.nv-mc .mc-b6-forgebox { margin-top: 8px; padding: 10px; border: 1px solid var(--ui-line); border-radius: 6px; }
.nv-mc .mc-b6-mvpdrops { width: 100%; margin-top: 10px; }
.nv-mc .mc-b6-stepup { padding: 8px 10px; margin-bottom: 10px; border: 1px solid var(--ui-line); }
.nv-mc .mc-b6-stepup.is-on { border-color: color-mix(in srgb, var(--ui-ok) 50%, transparent); }
.nv-mc .mc-b6-plustab { padding: 5px 12px; font-size: 12px; text-decoration: none; display: inline-block; }
.nv-mc .mc-b6-plustab.is-on { font-weight: 700; }
.mc-b6-inlineform { display: inline; }
.mc-b6-small { font-size: 11px; }
.mc-b6-quiet { color: var(--muted2, var(--ui-fg-3)); }
.mc-b6-good { color: var(--ui-ok); }
.mc-b6-bad { color: var(--ui-danger); }
.mc-b6-gold { color: var(--ui-warn); }
.mc-b6-art48 { border-radius: 4px; flex: none; }
.mc-b6-art20 { width: 20px; height: 20px; object-fit: contain; vertical-align: middle; flex: none; }
.nv-mc .mc-b6-verdict { border-left: 3px solid var(--vbc, var(--muted2)); padding: 8px 12px; margin: 0 0 16px; background: color-mix(in srgb, var(--ui-fg) 2%, transparent); font-size: 13px; }
.nv-mc .mc-b6-verdict.is-ok { --vbc: var(--ok, var(--ui-ok)); }
.nv-mc .mc-b6-verdict.is-warn { --vbc: var(--warn, var(--ui-warn)); }
.nv-mc .mc-b6-verdict.is-danger { --vbc: var(--danger, var(--ui-danger)); }
.mc-b6-reach { font-size: 11px; color: var(--rc); border-color: color-mix(in srgb, var(--rc) 40%, transparent); }
.mc-b6-reach.is-direct { --rc: var(--ok, var(--ui-ok)); }
.mc-b6-reach.is-bus { --rc: var(--warn, var(--ui-warn)); }
.mc-b6-reach.is-ops { --rc: var(--crystal, var(--ui-link)); }
.mc-b6-reach.is-dead { --rc: var(--danger, var(--ui-danger)); }
.mc-b6-reach.is-muted { --rc: var(--muted2, var(--ui-fg-3)); }
}

/* _base/mc-b7.css */
@layer utilities{
/* Kit controls (nv_ui('Control') / nv_ui('Field')) inside the Season Atelier: the Atelier stylesheet sits in the legacy layer, so the kit's own control size would win;
   these keep the compact cell size on a desktop table and the 16 px / 44 px phone rule that stops iOS zooming. WEB-UI-PLAN register B1. */
@media (min-width: 721px) {
  .nv-sa td .nvk-field__control.nvk-ctl, .nv-sa .nvk-field__control.nvk-ctl.nv-sa-cell { min-height: 40px; padding: 6px 8px; font-size: 14px; box-sizing: border-box; }
}
@media (max-width: 720px) {
  .nv-sa input.nvk-field__control, .nv-sa select.nvk-field__control, .nv-sa textarea.nvk-field__control { font-size: 16px; min-height: 44px; padding: 6px 8px; box-sizing: border-box; }
}

/* a Palace tier header: the tier colour is a thick bottom edge (the old coloured text failed contrast on the light header) */
.nv-mc th.mc-b7-tierhead { border-bottom: 3px solid; }
}

/* _base/mc-g1.css */
@layer components{
/* Mission Control group g1 (Forge, Guide): tiles, sub-headings, report blocks, the guide's role tiers. */
.nv-mc .nv-mc-g1-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .nv-mc-g1-tile--ok .nvk-stat__value { color: var(--ui-ok, var(--ui-fg)); }
.nv-mc .nv-mc-g1-tile--warn .nvk-stat__value { color: var(--ui-warn, var(--ui-fg)); }
.nv-mc .nv-mc-g1-h { margin: var(--space-5) 0 var(--space-2); padding-bottom: var(--space-1); border-bottom: 1px solid var(--ui-border, currentColor); color: var(--ui-fg); }
.nv-mc .nv-mc-g1-bar { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .nv-mc-g1-callout { margin: var(--space-3) 0; }
.nv-mc .nv-mc-g1-callout .nvk-table-wrap { margin-top: var(--space-2); }
.nv-mc .nv-mc-g1-list { margin: var(--space-2) 0 0; padding-left: var(--space-5); }
.nv-mc .nv-mc-g1-sev--error { color: var(--ui-danger, var(--ui-fg)); font-weight: 700; }
.nv-mc .nv-mc-g1-sev--warn { color: var(--ui-warn, var(--ui-fg)); font-weight: 700; }
.nv-mc .nvk-table-wrap { margin: var(--space-2) 0 var(--space-3); }
}

/* _base/mc-g2.css */
@layer components{
/* Mission Control, Commerce deck (group g2): bazaar_ops, market, gerai, economy, auction, commissions, currency. Tokens only. */
.nv-mc .mc2-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-3); margin: var(--space-2) 0 var(--space-4); }
.nv-mc .mc2-h2, .nv-mc .mc2-h3, .nv-mc .mc2-h4 { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); margin: var(--space-6) 0 var(--space-3); color: var(--ui-fg); font-family: var(--font-disp); line-height: 1.25; }
.nv-mc .mc2-h2 { font-size: 1.35rem; margin-top: var(--space-2); }
.nv-mc .mc2-h3 { font-size: 1.15rem; padding-bottom: var(--space-2); border-bottom: 1px solid var(--ui-line); }
.nv-mc .mc2-h4 { font-size: 1rem; }
.nv-mc .mc2-h5, .nv-mc .mc2-h6 { margin: var(--space-4) 0 var(--space-2); font-size: .8125rem; letter-spacing: .05em; text-transform: uppercase; color: var(--ui-fg-3); }
.nv-mc .mc2-sub { font-family: var(--font-body); font-size: .75rem; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ui-fg-3); }
.nv-mc .mc2-hint { margin: var(--space-2) 0 var(--space-3); max-width: 72ch; font-size: .8125rem; line-height: 1.55; color: var(--ui-fg-2); }
.nv-mc .mc2-hint code, .nv-mc .nvk-callout code, .nv-mc .mc2-kv code { padding: 1px var(--space-1); border: 1px solid var(--ui-line); border-radius: var(--radius-sm); background: var(--ui-sunken); font-size: .75rem; }
.nv-mc .nvk-callout { margin: var(--space-3) 0; }
.nv-mc .mc2-muted { color: var(--ui-fg-3); margin: 0; }
.nv-mc .mc2-small { font-size: .75rem; }
.nv-mc .mc2-dim { opacity: .75; }
.nv-mc .mc2-bad { color: var(--ui-danger); }
.nv-mc .mc2-good { color: var(--ui-ok); }
.nv-mc .mc2-warntext { color: var(--ui-warn); }
.nv-mc .mc2-link { color: var(--ui-link); }
.nv-mc .mc2-inline { display: inline; }
.nv-mc .mc2-scroll { overflow-x: auto; }
.nv-mc .mc2-num { font-variant-numeric: tabular-nums; }
.nv-mc .mc2-row-warn td { background: var(--ui-sunken); }
.nv-mc .mc2-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); margin: var(--space-3) 0; padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .mc2-field { display: flex; flex-direction: column; gap: var(--space-1); font-size: .75rem; letter-spacing: .04em; text-transform: uppercase; color: var(--ui-fg-3); }
.nv-mc .mc2-field input, .nv-mc .mc2-field select, .nv-mc .mc2-form > select, .nv-mc .mc2-form > input { min-width: 120px; padding: var(--space-2) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-sm); background: var(--ui-bg); color: var(--ui-fg); font: inherit; font-size: .8125rem; letter-spacing: 0; text-transform: none; }
.nv-mc .mc2-field input[type="checkbox"] { min-width: 0; }
.nv-mc .mc2-kv td:first-child { width: 42%; color: var(--ui-fg-3); }
.nv-mc .mc2-kv td:last-child { color: var(--ui-fg); }
.nv-mc .mc2-tag { display: inline-block; padding: 1px var(--space-2); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); font-size: .6875rem; color: var(--ui-fg-2); }
.nv-mc .mc2-tag.is-ok { color: var(--ui-ok); border-color: currentColor; }
.nv-mc .mc2-tag.is-warn { color: var(--ui-warn); border-color: currentColor; }
.nv-mc .mc2-tag.is-danger { color: var(--ui-danger); border-color: currentColor; }
.nv-mc .mc2-box { margin: 0 0 var(--space-4); padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .mc2-scales { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); margin: var(--space-3) 0 var(--space-4); }
.nv-mc .mc2-gap { margin-right: var(--space-2); }
.nv-mc .mc2-pop { margin-top: var(--space-2); }
.nv-mc .mc2-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-2) 0; }
.nv-mc .mc2-flex { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.nv-mc .mc2-flexrow { display: flex; flex-wrap: wrap; gap: var(--space-3); }
.nv-mc .mc2-wrap { flex-wrap: wrap; }
.nv-mc .mc2-hidden { display: none; }
.nv-mc .mc2-nowrap { white-space: nowrap; }
.nv-mc .mc2-wrapcell { max-width: 320px; white-space: normal; }
.nv-mc .mc2-narrow { max-width: 280px; }
.nv-mc .mc2-grow { flex: 1; }
.nv-mc .mc2-noshrink { flex: none; }
.nv-mc .mc2-gap-top { margin-top: var(--space-3); }
.nv-mc .mc2-gap-bottom { margin-bottom: var(--space-3); }
.nv-mc .mc2-gap-left { margin-left: var(--space-2); }
.nv-mc .mc2-lead { margin: var(--space-2) 0; font-weight: 700; }
.nv-mc .mc2-current { font-weight: 700; color: var(--ui-link); }
.nv-mc .mc2-sum { cursor: pointer; font-size: .75rem; color: var(--ui-link); }
.nv-mc .mc2-manage { display: flex; flex-direction: column; gap: var(--space-2); min-width: 160px; padding: var(--space-2) 0; }
.nv-mc .mc2-manage.mc2-wide { min-width: 280px; }
.nv-mc .mc2-scales-text { flex: 1; min-width: 200px; font-size: .8125rem; color: var(--ui-fg-2); }
.nv-mc .mc2-sched-note { width: 100%; margin-top: var(--space-1); white-space: nowrap; }
.nv-mc .mc2-hour { display: inline-block; width: 20px; text-align: center; font-size: .5625rem; color: var(--ui-fg-3); }
.nv-mc .mc2-w55 { width: 55px; } .nv-mc .mc2-w60 { width: 60px; } .nv-mc .mc2-w70 { width: 70px; } .nv-mc .mc2-w80 { width: 80px; }
.nv-mc .mc2-w90 { width: 90px; } .nv-mc .mc2-w100 { width: 100px; } .nv-mc .mc2-w120 { width: 120px; } .nv-mc .mc2-w140 { width: 140px; }
.nv-mc .mc2-w160 { width: 160px; } .nv-mc .mc2-w260 { width: 260px; }
.nv-mc .mc2-mw160 { min-width: 160px; } .nv-mc .mc2-mw200 { min-width: 200px; } .nv-mc .mc2-mw220 { min-width: 220px; }
.nv-mc .mc2-mw260 { min-width: 260px; } .nv-mc .mc2-mw280 { min-width: 280px; }
.nv-mc .mc2-xw140 { max-width: 140px; } .nv-mc .mc2-xw150 { max-width: 150px; }
.nv-mc :is(.mc2-flex, .mc2-flexrow, .mc2-manage, .nvk-table, .mc2-box) :is(input:not([type="checkbox"]):not([type="hidden"]), select) { padding: var(--space-1) var(--space-2); border: 1px solid var(--ui-line); border-radius: var(--radius-sm); background: var(--ui-bg); color: var(--ui-fg); font: inherit; font-size: .8125rem; }
.nv-mc .mc2-box > details > summary { cursor: pointer; }
@media (max-width: 640px) {
  .nv-mc .mc2-form { flex-direction: column; align-items: stretch; }
  .nv-mc .mc2-field input, .nv-mc .mc2-field select { min-width: 0; width: 100%; box-sizing: border-box; }
  .nv-mc .mc2-sched-note { white-space: normal; }
}
}

/* _base/mc-g3.css */
@layer components{
/* Mission Control group g3 (WD-10): Sentinel, Observer, Moderation, Player 360. Tokens only; scoped under .nv-mc. */

/* tone -> one custom property, read by every g3 piece */
.nv-mc .g3-t-ok { --g3-t: var(--ui-ok); }
.nv-mc .g3-t-warn { --g3-t: var(--ui-warn); }
.nv-mc .g3-t-danger { --g3-t: var(--ui-danger); }
.nv-mc .g3-t-info { --g3-t: var(--ui-link); }
.nv-mc .g3-t-brand { --g3-t: var(--ui-brand); }
.nv-mc .g3-t-muted { --g3-t: var(--ui-fg-3); }
.nv-mc .g3-fg { color: var(--g3-t, inherit); }
.nv-mc .g3-dim { color: var(--ui-fg-3); }

/* section headings */
.nv-mc .g3-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2) var(--space-3); margin: var(--space-5) 0 var(--space-3); font-family: var(--disp); font-weight: 600; color: var(--ui-fg); }
.nv-mc .g3-head--h3 { font-size: 20px; line-height: 28px; }
.nv-mc .g3-head--h4 { font-size: 16px; line-height: 24px; }
.nv-mc .g3-head__sub { font-family: var(--body); font-size: 13px; font-weight: 400; color: var(--ui-fg-3); }

/* toned callout box (dossier cards: steelman, companion, recommendation, narrative) */
.nv-mc .g3-box { border: 1px solid color-mix(in srgb, var(--g3-t, var(--ui-line)) 45%, transparent); background: color-mix(in srgb, var(--g3-t, var(--ui-line)) 7%, var(--ui-surface)); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin: var(--space-3) 0; }
.nv-mc .g3-box__title { font-size: 11px; letter-spacing: .08em; font-weight: 700; color: var(--g3-t, var(--ui-fg)); }
.nv-mc .g3-box__big { font-size: 17px; font-weight: 700; color: var(--g3-t, var(--ui-fg)); }
.nv-mc .g3-quote { border-left: 3px solid var(--g3-t, var(--ui-line)); padding: var(--space-1) 0 var(--space-1) var(--space-3); font-size: 12.5px; line-height: 1.55; color: var(--ui-fg); white-space: pre-wrap; }
.nv-mc .g3-quote--fill { flex: 1; }
.nv-mc .g3-card { border: 1px solid var(--ui-line); background: var(--ui-surface); border-radius: var(--radius-md); padding: var(--space-3) var(--space-4); margin: var(--space-3) 0; }
.nv-mc .g3-card.is-open { border-color: color-mix(in srgb, var(--ui-warn) 45%, transparent); background: color-mix(in srgb, var(--ui-warn) 6%, var(--ui-surface)); }

/* small toned label (replaces the bordered role tag) */
.nv-mc .g3-tag { display: inline-block; padding: 0 var(--space-2); border: 1px solid color-mix(in srgb, var(--g3-t, var(--ui-fg-3)) 50%, transparent); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--g3-t, var(--ui-fg-3)) 12%, transparent); color: var(--g3-t, var(--ui-fg-3)); font-size: 11px; font-weight: 600; line-height: 18px; }
.nv-mc .g3-tag--ghost { background: none; }

/* stat grid of kit StatCards */
.nv-mc .g3-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .g3-stats .nvk-stat.g3-t-warn .nvk-stat__value, .nv-mc .g3-stats .g3-t-warn .nvk-stat__value { color: var(--ui-warn); }
.nv-mc .g3-stats .g3-t-danger .nvk-stat__value { color: var(--ui-danger); }
.nv-mc .g3-stats .g3-t-ok .nvk-stat__value { color: var(--ui-ok); }

/* key/value table + two-column layout */
.nv-mc .g3-kv { width: 100%; }
.nv-mc .g3-kv td:first-child { color: var(--ui-fg-3); width: 42%; }
.nv-mc .g3-kv td:last-child { color: var(--ui-fg); }
.nv-mc .g3-cols2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: var(--space-5); }
.nv-mc .g3-cols2 > * { min-width: 0; }

/* rows of controls: forms, concierge-style action rows, ledger cards */
.nv-mc .g3-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); margin: var(--space-2) 0; }
.nv-mc .g3-row form { margin: 0; }
.nv-mc .g3-ledger { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .g3-ledger__item { border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); padding: var(--space-3) var(--space-4); min-width: 0; }
.nv-mc .g3-ledger__top { display: flex; justify-content: space-between; align-items: center; gap: var(--space-2); margin-bottom: var(--space-2); }
.nv-mc .g3-ledger__body { font-size: 12.5px; line-height: 1.7; color: var(--ui-fg-2); }
.nv-mc .g3-ledger__foot { margin-top: var(--space-2); }

/* bar cells (percentage widths themselves stay on the element) */
.nv-mc .g3-bar { position: relative; height: 8px; border-radius: var(--radius-sm); background: var(--ui-sunken); overflow: hidden; }
.nv-mc .g3-bar__fill { position: absolute; top: 0; bottom: 0; left: 0; background: var(--g3-t, var(--ui-brand)); }

/* forms inside the panels */
.nv-mc .g3-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); border: 1px solid var(--ui-line); background: var(--ui-surface); border-radius: var(--radius-md); padding: var(--space-4); margin: var(--space-3) 0; }
.nv-mc .g3-form .nvk-field { margin: 0; min-width: 220px; }
.nv-mc .g3-table-wrap { margin: var(--space-3) 0; }
.nv-mc .nvk-table.g3-compact th, .nv-mc .nvk-table.g3-compact td { padding: var(--space-2) var(--space-3); }
.nv-mc .nvk-table code { font-size: 12px; }

/* bars: the element carries a dynamic width / height from PHP, the look is here */
.nv-mc .g3-bar--meter { height: 8px; margin: var(--space-2) 0 6px; }
.nv-mc .g3-bar--120 { width: 120px; height: 8px; border: 1px solid var(--ui-line); }
.nv-mc .g3-bar--tall { height: 22px; border: 1px solid var(--ui-line); }
.nv-mc .g3-bar--meter { border: 1px solid var(--ui-line); }
.nv-mc .g3-bar__tick { position: absolute; top: -2px; bottom: -2px; width: 2px; background: currentColor; }
.nv-mc .g3-bar__mark { position: absolute; top: 2px; bottom: 2px; width: 3px; background: var(--g3-t, var(--ui-brand)); box-shadow: 0 0 4px var(--g3-t, var(--ui-brand)); }
.nv-mc .g3-bar__band { position: absolute; top: 0; bottom: 0; min-width: 2px; background: color-mix(in srgb, var(--ui-link) 27%, transparent); border-left: 2px solid var(--ui-link); border-right: 2px solid var(--ui-link); }
.nv-mc .g3-spark { display: inline-block; width: 6px; background: var(--ui-link); }
.nv-mc .g3-spark.is-null { background: var(--ui-fg-3); opacity: .45; }
.nv-mc .g3-spark.is-drift { border-top: 2px solid var(--ui-danger); }

/* highlighted table row, preformatted block, small name */
.nv-mc .nvk-table tr.g3-hl td { background: color-mix(in srgb, var(--ui-warn) 9%, transparent); }
.nv-mc .nvk-table tr.g3-hl--strong td { font-weight: 600; }
.nv-mc .g3-pre { background: var(--ui-sunken); border: 1px solid var(--ui-line); border-radius: var(--radius-sm); padding: var(--space-2) var(--space-3); margin: 0 0 var(--space-2); font-size: 13px; white-space: pre-wrap; word-break: break-word; color: var(--ui-fg-2); }
.nv-mc .g3-name { font-size: 13px; font-weight: 700; color: var(--ui-fg); }
.nv-mc .g3-quote-plain { font-size: 12.5px; color: var(--ui-fg); line-height: 1.55; white-space: pre-wrap; }
.nv-mc .g3-note-box { border-left: 3px solid var(--ui-line); padding: var(--space-1) 0 var(--space-1) var(--space-3); margin: var(--space-2) 0; }
.nv-mc .g3-section { border-top: 1px solid var(--ui-line); margin-top: var(--space-3); padding-top: var(--space-2); }
.nv-mc .g3-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: var(--space-3); align-items: start; }
.nv-mc .g3-form--bare { border: 0; background: none; padding: var(--space-1) 0; margin: 2px 0; }
.nv-mc .g3-hold-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2) var(--space-3); }

.nv-mc .g3-mono { font-family: var(--mono, monospace); }
.nv-mc .g3-reason { min-width: 150px; }
.nv-mc .g3-reason--wide { min-width: 260px; flex: 1; }
.nv-mc .g3-row--top { align-items: flex-start; }
.nv-mc .g3-act { border: 1px solid var(--ui-line); border-radius: var(--radius-md); padding: var(--space-2) var(--space-3); background: var(--ui-surface); }
.nv-mc .g3-act--enf { flex-wrap: wrap; max-width: 440px; }
.nv-mc .nvk-btn.g3-reco { box-shadow: 0 0 0 2px var(--g3-t, var(--ui-focus)); }
}

/* _base/mc-g4.css */
@layer components{
/* Mission Control group g4 (WD-10): Watchtower, Bridge, Realm Security, Inbox, Approvals, Bus Ops, Switchboard.
   Markup comes from web/lib/nv_mc_g4.php and the _panel_*.php partials. Tokens only, scoped under .nv-mc. */

/* text helpers */
.nv-mc .mc4-quiet { color: var(--ui-fg-3); }
.nv-mc .mc4-small { font-size: .8125rem; color: var(--ui-fg-2); }
.nv-mc .mc4-bad { color: var(--ui-danger); font-weight: 600; }
.nv-mc .mc4-warn { color: var(--ui-warn); font-weight: 600; }
.nv-mc .mc4-note { margin: var(--space-2) 0; max-width: 72ch; font-size: .8125rem; line-height: 1.55; color: var(--ui-fg-3); }
.nv-mc .mc4-note code { padding: 1px 5px; border: 1px solid var(--ui-line); border-radius: var(--radius-sm); background: var(--ui-sunken); color: var(--ui-fg-2); font-size: .75rem; }
.nv-mc .mc4-sub { margin: var(--space-5) 0 var(--space-2); font-size: 1rem; color: var(--ui-fg); }
.nv-mc .mc4-sub__hint { font-size: .8125rem; font-weight: 400; color: var(--ui-fg-3); }
.nv-mc .nvk-panel { margin-bottom: var(--space-5); }
.nv-mc .nvk-callout { margin: var(--space-3) 0; }

/* stat tiles */
.nv-mc .mc4-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .mc4-tile { display: block; color: inherit; text-decoration: none; border-radius: var(--radius-md); border-left: 3px solid transparent; }
.nv-mc .mc4-tile--ok { border-left-color: var(--ui-ok); }
.nv-mc .mc4-tile--warn { border-left-color: var(--ui-warn); }
.nv-mc .mc4-tile--danger { border-left-color: var(--ui-danger); }
.nv-mc .mc4-tile > .nvk-stat { height: 100%; }
.nv-mc .mc4-tile--link:hover > .nvk-stat { border-color: var(--ui-line-strong); }
.nv-mc .mc4-tile--link:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }

/* status dots and one-line status rows */
.nv-mc .mc4-dot { display: inline-block; flex: none; width: .75em; height: .75em; border-radius: 50%; background: var(--ui-fg-3); }
.nv-mc .mc4-dot--ok { background: var(--ui-ok); }
.nv-mc .mc4-dot--warn { background: var(--ui-warn); }
.nv-mc .mc4-dot--danger { background: var(--ui-danger); }
.nv-mc .mc4-line { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: var(--space-2) 0; }
.nv-mc .mc4-line__main { font-weight: 600; }

/* boxed sub-blocks (Tonight, ledgers, Glory court) */
.nv-mc .mc4-box { margin: var(--space-3) 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-sunken); }
.nv-mc .mc4-box__title { margin-bottom: var(--space-2); font-size: .75rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-2); }
.nv-mc .mc4-realms { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); margin: var(--space-3) 0; color: var(--ui-fg-2); }
.nv-mc .mc4-realms__n { font-size: 1.25rem; color: var(--ui-fg); }

/* chips, pills, link chips */
.nv-mc .mc4-chips { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: var(--space-2) 0; }
.nv-mc .mc4-pill { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--space-1); padding: var(--space-1) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); background: var(--ui-surface); font-size: .8125rem; color: var(--ui-fg-2); }
.nv-mc .mc4-pill strong { color: var(--ui-fg); }
.nv-mc .mc4-retire { padding: var(--space-1) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); font-size: .8125rem; color: var(--ui-fg-2); text-decoration: none; }
.nv-mc .mc4-retire:hover { border-color: var(--ui-danger); color: var(--ui-danger); }
.nv-mc .mc4-state { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-1) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); color: var(--ui-fg-2); text-decoration: none; }
.nv-mc .mc4-state--ok { border-color: var(--ui-ok); }
.nv-mc .mc4-state--danger { border-color: var(--ui-danger); }
.nv-mc .mc4-star { color: var(--ui-warn); }
.nv-mc .mc4-inv { color: var(--ui-danger); cursor: help; }
.nv-mc .mc4-woe { padding: 1px var(--space-2); border-radius: var(--radius-sm); background: var(--ui-warn); color: var(--ui-brand-fg); font-size: .6875rem; font-weight: 700; }

/* dial + side text */
.nv-mc .mc4-dial { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); margin: var(--space-3) 0; }
.nv-mc .mc4-dial__svg { flex: none; }
.nv-mc .mc4-dial__text { flex: 1 1 240px; min-width: 0; }
.nv-mc .mc4-gov { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .mc4-socket { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .mc4-toolbar { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: var(--space-3) 0; }
.nv-mc .mc4-auto { display: inline-flex; align-items: center; gap: var(--space-2); font-size: .8125rem; color: var(--ui-fg-2); }
.nv-mc .mc4-statusrow { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }

/* forms */
.nv-mc .mc4-inline { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 var(--space-1) var(--space-1) 0; vertical-align: middle; }
.nv-mc .mc4-pad { margin: var(--space-3) 0; }
.nv-mc .mc4-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); margin: var(--space-3) 0; padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-sunken); }
.nv-mc .mc4-field { display: flex; flex-direction: column; gap: var(--space-1); min-width: 140px; }
.nv-mc .mc4-field--wide { flex: 2 1 320px; }
.nv-mc .mc4-field .nvk-field__control, .nv-mc .mc4-inline .nvk-field__control { width: 100%; min-width: 0; padding: var(--space-2) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); color: var(--ui-fg); font: inherit; }
.nv-mc .mc4-ctl { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); }

/* tables */
.nv-mc .mc4-kv th[scope="row"] { width: 52%; text-align: left; font-weight: 400; color: var(--ui-fg-2); }
.nv-mc .mc4-subject { word-break: break-all; font-size: .8125rem; }
.nv-mc .mc4-acts { white-space: nowrap; }
.nv-mc .mc4-plan { background: var(--ui-sunken); }
.nv-mc .mc4-pre { overflow: auto; max-height: 240px; margin: var(--space-2) 0 0; padding: var(--space-3); border-radius: var(--radius-md); background: var(--ui-bg); color: var(--ui-fg-2); font-size: .75rem; }
.nv-mc .mc4-threat { font-weight: 700; }
.nv-mc .mc4-threat--danger { color: var(--ui-danger); }
.nv-mc .mc4-threat--warn { color: var(--ui-warn); }
.nv-mc .mc4-threat--ok { color: var(--ui-ok); }
.nv-mc .mc4-why { max-width: 260px; font-size: .75rem; color: var(--ui-fg-2); }

/* Enginework fleet grid */
.nv-mc .mc4-fleet { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .mc4-unit { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .mc4-unit--ok { border-left: 3px solid var(--ui-ok); }
.nv-mc .mc4-unit--danger { border-left: 3px solid var(--ui-danger); }
.nv-mc .mc4-unit__state { display: flex; align-items: center; gap: var(--space-2); }
.nv-mc .mc4-unit__name { font-size: .8125rem; color: var(--ui-fg-2); word-break: break-all; }

/* bot-calibration scale: only left/width are inline (they carry PHP values) */
.nv-mc .mc4-scale { position: relative; height: 26px; margin: var(--space-2) 0 var(--space-1); border: 1px solid var(--ui-line); border-radius: var(--radius-sm); background: var(--ui-sunken); }
.nv-mc .mc4-scale__band { position: absolute; top: 0; bottom: 0; border-left: 2px solid var(--ui-brand); border-right: 2px solid var(--ui-brand); background: var(--ui-line); }
.nv-mc .mc4-scale__trip { position: absolute; top: -2px; bottom: -2px; width: 2px; background: var(--ui-danger); }
.nv-mc .mc4-scale__lbl { position: absolute; font-size: .5625rem; }
.nv-mc .mc4-scale__lbl--trip { top: 1px; transform: translateX(4px); color: var(--ui-danger); }
.nv-mc .mc4-scale__lbl--bots { bottom: 1px; transform: translateX(-50%); color: var(--ui-brand); }
.nv-mc .mc4-scale__axis { display: flex; justify-content: space-between; font-size: .625rem; color: var(--ui-fg-3); }

/* hold-to-confirm Panic Row buttons (was a <style> block in the Bridge partial). The label sits above the fill in paint order (BUGFIX 2026-08-22). */
.nv-mc .nv-hold { position: relative; overflow: hidden; -webkit-user-select: none; user-select: none; }
.nv-mc .nv-hold .nv-hold-fill { position: absolute; inset: 0; background: var(--ui-line-strong); opacity: .6; transform: scaleX(0); transform-origin: left; pointer-events: none; }
.nv-mc .nv-hold.nv-holding .nv-hold-fill { transform: scaleX(1); transition: transform .65s linear; }
.nv-mc .nv-hold-hint { display: block; margin-top: 1px; font-size: .625rem; letter-spacing: .04em; opacity: .75; }
.nv-mc .nv-hold-tx { position: relative; }

@media (max-width: 640px) {
  .nv-mc .mc4-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nv-mc .mc4-kv th[scope="row"] { width: auto; }
  .nv-mc .mc4-acts { white-space: normal; }
  .nv-mc .mc4-field { flex: 1 1 100%; }
}
}

/* _base/mc-g5.css */
@layer components{
/* Mission Control panel group g5 (WD-10): conf editor, job studio, community, roles, audit, knobs, doctor, understudy, console, comms,
   scheduler, day ledger, live world, chorus, pvp war, siege, automation, live ops, regalia, director board, palace.
   Markup helpers: web/lib/nv_mc_g5.php. Tokens only. */

/* ---------- text ---------- */
.nv-mc .mcg5-sub { margin: var(--space-5) 0 var(--space-2); font-size: 15px; line-height: 22px; font-weight: 700; color: var(--ui-fg); text-transform: none; letter-spacing: 0; }
.nv-mc .nvk-panel__body > .mcg5-sub:first-child, .nv-mc .mcg5-cols > div > .mcg5-sub:first-child { margin-top: 0; }
.nv-mc .mcg5-hint { font-size: 12px; font-weight: 400; color: var(--ui-fg-3); text-transform: none; letter-spacing: 0; }
.nv-mc .mcg5-text { margin: var(--space-2) 0 var(--space-3); font-size: 13px; line-height: 20px; color: var(--ui-fg-2); max-width: 96ch; }
.nv-mc .mcg5-prose { margin: var(--space-2) 0; font-size: 13px; line-height: 20px; color: var(--ui-fg-2); max-width: 82ch; }
.nv-mc .mcg5-muted { color: var(--ui-fg-3); }
.nv-mc .mcg5-small { font-size: 12px; line-height: 18px; }
.nv-mc .mcg5-accent { color: var(--ui-brand); font-weight: 700; }
.nv-mc .mcg5-ok { color: var(--ui-ok); }
.nv-mc .mcg5-warn { color: var(--ui-warn); }
.nv-mc .mcg5-danger { color: var(--ui-danger); }
.nv-mc .mcg5-dim { opacity: .7; }
.nv-mc .mcg5-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
.nv-mc .mcg5-empty { color: var(--ui-fg-3); font-size: 13px; }
.nv-mc td.mcg5-empty, .nv-mc p.mcg5-empty { text-align: center; padding: var(--space-4); }
.nv-mc .mcg5-code { display: inline-block; margin: 2px 6px 2px 0; font-size: 12px; color: var(--ui-fg-2); }
.nv-mc .mcg5-glyph { font-size: 16px; }
.nv-mc .mcg5-pip { color: var(--ui-fg-3); }
.nv-mc .mcg5-pip.is-ok { color: var(--ui-ok); }
.nv-mc .mcg5-pip.is-gold { color: var(--ui-brand); }

/* ---------- layout ---------- */
.nv-mc .mcg5-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-3); margin: var(--space-2) 0 var(--space-3); }
.nv-mc .mcg5-stat { min-width: 0; border-radius: var(--radius-md); border-left: 3px solid transparent; }
.nv-mc .mcg5-stat--ok { border-left-color: var(--ui-ok); }
.nv-mc .mcg5-stat--warn { border-left-color: var(--ui-warn); }
.nv-mc .mcg5-stat--danger { border-left-color: var(--ui-danger); }
.nv-mc .mcg5-stat .nvk-stat__value { overflow-wrap: anywhere; }
.nv-mc .mcg5-cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-5); align-items: start; }
.nv-mc .mcg5-cols > * { min-width: 0; }
.nv-mc .mcg5-split { display: flex; flex-wrap: wrap; gap: var(--space-5); margin-top: var(--space-3); }
.nv-mc .mcg5-split__main { flex: 2 1 280px; min-width: 0; }
.nv-mc .mcg5-split__side { flex: 1 1 220px; min-width: 0; }
.nv-mc .mcg5-flow { min-width: 0; }
.nv-mc .mcg5-scroll { max-height: 420px; overflow-y: auto; }
/* A scroll box is a keyboard stop (tabindex=0, role=region in the panel markup), so it shows the kit focus ring like any other stop. */
.nv-mc .mcg5-scroll:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nv-mc .mcg5-codes { padding: var(--space-2) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); max-height: 220px; }
.nv-mc .mcg5-list { margin: 0; padding-left: var(--space-5); font-size: 13px; line-height: 20px; }
.nv-mc .mcg5-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0 0 var(--space-4); }
.nv-mc .mcg5-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: var(--space-2) 0 var(--space-3); }
.nv-mc .mcg5-jump { text-decoration: none; cursor: pointer; }
.nv-mc .mcg5-kvrow { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-2); margin: var(--space-2) 0 var(--space-3); font-size: 13px; }
.nv-mc .nvk-table tr.mcg5-row--bad td { background: color-mix(in srgb, var(--ui-danger) 8%, transparent); }
.nv-mc .nvk-table tr.mcg5-row--dim td { opacity: .55; }
.nv-mc .nvk-table .nvk-num { text-align: right; font-variant-numeric: tabular-nums; }
.nv-mc .mcg5-kvwrap { max-width: 420px; }
.nv-mc .nvk-tabs { margin: 0 0 var(--space-4); }
.nv-mc .nvk-panel__body > .nvk-callout { margin: var(--space-2) 0 var(--space-3); }
.nv-mc .nvk-callout .mcg5-form, .nv-mc .nvk-callout .mcg5-inline { margin-top: var(--space-2); }

/* ---------- forms ---------- */
.nv-mc .mcg5-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .mcg5-inline { display: inline-flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0; }
.nv-mc .mcg5-box { padding: var(--space-2) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); }
.nv-mc .mcg5-tune { display: flex; flex-wrap: wrap; gap: var(--space-1); }
.nv-mc .mcg5-field { display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; font-size: 12px; font-weight: 700; line-height: 16px; color: var(--ui-fg-2); text-transform: none; letter-spacing: 0; }
.nv-mc .mcg5-field--row { flex-direction: row; align-items: center; gap: var(--space-2); font-weight: 400; font-size: 13px; }
.nv-mc .mcg5-grow { flex: 1 1 260px; }
.nv-mc :is(.mcg5-field, .mcg5-form, .mcg5-inline, .mcg5-tune, .mcg5-search, .mcg5-split) :is(input, select, textarea):not([type="checkbox"]):not([type="radio"]):not([type="hidden"]) {
  min-height: 36px; padding: var(--space-1) var(--space-3); margin: 0; font-family: var(--body); font-size: 14px; line-height: 20px; font-weight: 400;
  color: var(--ui-fg); background: var(--ui-surface); border: 1px solid var(--ui-line-strong); border-radius: var(--radius-sm); box-shadow: none; text-transform: none; letter-spacing: 0; min-width: 0; width: auto; }
.nv-mc :is(.mcg5-field, .mcg5-form, .mcg5-inline, .mcg5-tune, .mcg5-search) :is(input, select, textarea):focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 1px; border-color: var(--ui-focus); }
.nv-mc .mcg5-field--row input[type="checkbox"], .nv-mc .mcg5-pack input[type="radio"] { width: auto; margin: 0; accent-color: var(--ui-brand); }
.nv-mc .mcg5-w56 { width: 56px !important; } .nv-mc .mcg5-w60 { width: 60px !important; } .nv-mc .mcg5-w64 { width: 64px !important; }
.nv-mc .mcg5-w78 { width: 78px !important; } .nv-mc .mcg5-w80 { width: 80px !important; } .nv-mc .mcg5-w100 { width: 100px !important; }
.nv-mc .mcg5-w140 { width: 140px !important; } .nv-mc .mcg5-w160 { width: 160px !important; } .nv-mc .mcg5-w220 { width: 220px !important; }
.nv-mc .mcg5-wmin200 { min-width: 200px !important; } .nv-mc .mcg5-wmin220 { min-width: 220px !important; }
.nv-mc .mcg5-wmin360 { min-width: min(360px, 100%) !important; } .nv-mc .mcg5-wmin380 { min-width: min(380px, 100%) !important; }
.nv-mc .mcg5-search { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-3); }
.nv-mc .mcg5-search__input { width: 100%; max-width: 640px; min-height: 44px; }
.nv-mc .mcg5-wmin200, .nv-mc .mcg5-wmin220, .nv-mc .mcg5-wmin360, .nv-mc .mcg5-wmin380 { flex: 1 1 auto; }
@media (max-width: 600px) { .nv-mc .mcg5-w220, .nv-mc .mcg5-w160 { width: 100% !important; } .nv-mc .mcg5-form > .mcg5-field { flex: 1 1 100%; } }

/* ---------- doctor ---------- */
.nv-mc .mcg5-verdict { margin: var(--space-3) 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-line); border-left: 3px solid var(--ui-line-strong); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .mcg5-verdict--ok { border-left-color: var(--ui-ok); }
.nv-mc .mcg5-verdict--warn { border-left-color: var(--ui-warn); }
.nv-mc .mcg5-verdict--danger { border-left-color: var(--ui-danger); }
.nv-mc .mcg5-verdict__head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--space-3); }
.nv-mc .mcg5-verdict__name { font-size: 15px; color: var(--ui-fg); }
.nv-mc .mcg5-verdict__detail { margin: var(--space-2) 0 0; font-size: 13px; line-height: 20px; color: var(--ui-fg-2); max-width: 82ch; }

/* ---------- job studio, regalia ---------- */
.nv-mc .mcg5-edit { margin-top: var(--space-4); padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-brand); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .mcg5-edit__title { margin-bottom: var(--space-2); font-size: 12px; font-weight: 700; color: var(--ui-brand); }
.nv-mc .mcg5-packs { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0 var(--space-4); }
.nv-mc .mcg5-pack { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); color: var(--ui-fg); cursor: pointer; }
.nv-mc .mcg5-pack.is-current { border-color: var(--ui-brand); }
.nv-mc .mcg5-pack__head { display: flex; align-items: center; gap: var(--space-2); }
.nv-mc .mcg5-pack__swatch { flex: none; }
.nv-mc .mcg5-pack__blurb { font-size: 12px; line-height: 18px; color: var(--ui-fg-3); }

/* ---------- pvp war hero, siege ---------- */
.nv-mc .mcg5-hero { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-5); margin: var(--space-3) 0 var(--space-4); }
.nv-mc .mcg5-hero__dial { flex: none; }
.nv-mc .mcg5-hero__text { flex: 1 1 200px; display: flex; flex-direction: column; gap: var(--space-1); font-size: 13px; color: var(--ui-fg-2); }
.nv-mc .mcg5-hero__more { margin-top: var(--space-2); padding-top: var(--space-2); border-top: 1px solid var(--ui-line); }
.nv-mc .mcg5-dot { display: inline-block; vertical-align: middle; margin-right: var(--space-1); }

/* ---------- chorus: hour bars and cast ---------- */
.nv-mc .mcg5-bars { display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); gap: 2px; align-items: end; height: 60px; margin: 0 0 var(--space-1); }
.nv-mc .mcg5-bar { background: color-mix(in srgb, var(--ui-brand) 40%, transparent); border-radius: 2px 2px 0 0; }
.nv-mc .mcg5-bar.is-now { background: var(--ui-brand); }
.nv-mc .mcg5-bar-axis { display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); gap: 2px; margin: 0 0 var(--space-4); font-size: 9px; color: var(--ui-fg-3); text-align: center; }
.nv-mc .mcg5-cast { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: var(--space-3); }
.nv-mc .mcg5-persona { padding: var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); display: flex; flex-direction: column; gap: var(--space-1); min-width: 0; }
.nv-mc .mcg5-persona.is-off { opacity: .5; }
.nv-mc .mcg5-persona__head { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-2); }
.nv-mc .mcg5-persona__name { font-size: 14px; color: var(--ui-fg); }
.nv-mc .mcg5-persona__notes { font-size: 11px; color: var(--ui-fg-3); font-style: italic; }
.nv-mc .mcg5-strip { display: grid; grid-template-columns: repeat(24, minmax(0, 1fr)); gap: 1px; margin-top: var(--space-2); }
.nv-mc .mcg5-strip__h { height: 10px; background: var(--ui-line); border-radius: 1px; }
.nv-mc .mcg5-strip__h.is-on { background: color-mix(in srgb, var(--ui-brand) 45%, transparent); }
.nv-mc .mcg5-strip__h.is-now { background: var(--ui-brand); }

/* ---------- percentage steps (stand in for width/height styles) ---------- */
.nv-mc .mcg5-p0 { height: 0; } .nv-mc .mcg5-p5 { height: 5%; } .nv-mc .mcg5-p10 { height: 10%; } .nv-mc .mcg5-p15 { height: 15%; }
.nv-mc .mcg5-p20 { height: 20%; } .nv-mc .mcg5-p25 { height: 25%; } .nv-mc .mcg5-p30 { height: 30%; } .nv-mc .mcg5-p35 { height: 35%; }
.nv-mc .mcg5-p40 { height: 40%; } .nv-mc .mcg5-p45 { height: 45%; } .nv-mc .mcg5-p50 { height: 50%; } .nv-mc .mcg5-p55 { height: 55%; }
.nv-mc .mcg5-p60 { height: 60%; } .nv-mc .mcg5-p65 { height: 65%; } .nv-mc .mcg5-p70 { height: 70%; } .nv-mc .mcg5-p75 { height: 75%; }
.nv-mc .mcg5-p80 { height: 80%; } .nv-mc .mcg5-p85 { height: 85%; } .nv-mc .mcg5-p90 { height: 90%; } .nv-mc .mcg5-p95 { height: 95%; }
.nv-mc .mcg5-p100 { height: 100%; }

/* ---------- conf editor ---------- */
.nv-mc .mcg5-card { padding: var(--space-3) var(--space-4); margin: 0 0 var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .mcg5-card__head { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--space-3); }
.nv-mc .mcg5-card__key { font-size: 13px; color: var(--ui-brand); }
.nv-mc .mcg5-editor { display: flex; border: 1px solid var(--ui-line-strong); border-radius: var(--radius-md); background: var(--ui-sunken); margin: 0 0 var(--space-3); width: 100%; }
.nv-mc .mcg5-editor__gutter { margin: 0; padding: var(--space-3) var(--space-2); min-width: 44px; overflow: hidden; user-select: none; text-align: right; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.45; color: var(--ui-fg-3); background: transparent; border: 0; }
.nv-mc .mcg5-editor__area { flex: 1; min-width: 0; padding: var(--space-3); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.45; color: var(--ui-fg); background: transparent; border: 0; outline: none; resize: vertical; }
.nv-mc .mcg5-diffbox { display: none; margin-top: var(--space-3); padding: var(--space-4); border: 1px solid var(--ui-line-strong); border-radius: var(--radius-md); background: var(--ui-sunken); }
.nv-mc .mcg5-diff { margin: 0 0 var(--space-3); max-height: 340px; overflow: auto; font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 12px; line-height: 1.5; }
.nv-mc .mcg5-diff-add { color: var(--ui-ok); }
.nv-mc .mcg5-diff-del { color: var(--ui-danger); }
.nv-mc .mcg5-diff-ctx { color: var(--ui-fg-3); }

@media (max-width: 720px) {
  .nv-mc .mcg5-cols { grid-template-columns: minmax(0, 1fr); }
  .nv-mc .mcg5-stats { grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }
}
/* Season Flagship Wave 6: Season Live Ops (owner pick A "Flight Deck"): the main column and the Copilot's rail */
.nv-mc .nv-sops { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: flex-start; }
.nv-mc .nv-sops-main { flex: 999 1 560px; min-width: 0; }
.nv-mc .nv-sops-rail { flex: 1 1 300px; display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); border-radius: var(--radius-lg); background: var(--ui-sunken); border: 1px solid var(--ui-line); }
.nv-mc .nv-sops-railhead { font-size: 16px; color: var(--ui-fg); }
.nv-mc .nv-sops-prop { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-3); border-radius: var(--radius-md); background: var(--ui-surface); border: 1px solid var(--ui-line); font-size: 14px; color: var(--ui-fg); }
.nv-mc .nv-sops-binds { font-size: 13px; white-space: normal; word-break: break-word; color: var(--ui-fg-2); }
.nv-mc .nv-sops-note { font-size: 13px; color: var(--ui-fg-2); }
.nv-mc .nv-sops-form { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: flex-end; margin: var(--space-2) 0; }
.nv-mc .nv-sops-bar { width: 100%; height: 12px; accent-color: var(--ui-brand); }
/* Season Flagship Wave 7 -- Season Safety (pick A "Vault"): four strongboxes, each opening to its list below */
.nv-mc .nv-sfv { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: var(--space-4); align-items: start; }
.nv-mc .nv-sfv-box { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); border-radius: var(--radius-lg); background: var(--ui-surface); border: 1px solid var(--ui-line); min-width: 0; color: var(--ui-fg); }
.nv-mc .nv-sfv-box--dark { background: var(--ui-sunken); }
.nv-mc .nv-sfv-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-2); align-items: center; padding: var(--space-2) var(--space-3); border-radius: var(--radius-md); background: var(--ui-sunken); font-size: 14px; }
.nv-mc .nv-sfv-row > span { min-width: 0; flex: 1 1 220px; }
.nv-mc .nv-sfv-ok { color: var(--ui-ok); font-weight: 600; }
.nv-mc .nv-sfv-fail { color: var(--ui-danger); font-weight: 600; }
.nv-mc .nv-sfv-na { color: var(--ui-fg-2); }
.nv-mc .nv-sfv-note { font-size: 13px; color: var(--ui-fg-2); }
.nv-mc .nv-sfv-form { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: flex-end; margin: var(--space-1) 0; }
.nv-mc .nv-sfv-bar { width: 100%; height: 10px; accent-color: var(--ui-brand); }
.nv-mc .nv-sfv-form > .nv-sfv-row { flex: 1 1 100%; }
.nv-mc .nv-sfv-check { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; margin-right: 12px; font-size: 14px; }   /* Season Reach: event boxes */   /* SF-7b: a feature's name on its own line above its switch */
}

/* _base/mc-g6.css */
@layer components{
/* Mission Control group g6 (WD-10): Complete Control screens (throne/atlas/feature/timeline/realm_map/findings, controls/emergency,
   compose, voices, taste, prelaunch, touch) plus the expedition/companion/rotation/missions/autobuff/Plus partials.
   Replaces the per-partial <style> blocks. Tokens only. */
.nv-mc .nv-cc-note { font-size: 12px; color: var(--ui-fg-3); }
.nv-mc .nv-cc-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.nv-mc .nv-cc-scroll > table { min-width: 560px; }
.nv-mc .nv-cc-filter, .nv-mc .nv-cc-kinds, .nv-mc .nv-cc-row { display: flex; gap: var(--space-2); flex-wrap: wrap; align-items: center; margin: var(--space-2) 0; }
.nv-mc .nv-cc-filter input, .nv-mc .nv-cc-filter select { max-width: 100%; }
.nv-mc .nv-cc-inline { display: flex; gap: var(--space-1); flex-wrap: wrap; align-items: center; }
.nv-mc .nv-cc-inline input { width: 8em; }
.nv-mc .nv-cc-tabs { display: flex; gap: var(--space-2); flex-wrap: wrap; margin: var(--space-2) 0; }
.nv-mc .nv-cc-prev, .nv-mc .nv-cc-switch, .nv-mc .nv-vc, .nv-mc .nv-cc-tile {
	border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface);
	padding: var(--space-3) var(--space-4); margin: var(--space-3) 0; min-width: 0; color: var(--ui-fg);
}
.nv-mc .nv-cc-prev { border-color: var(--ui-brand); }
.nv-mc .nv-cc-prev.bad, .nv-mc .nv-cc-switch.is-on, .nv-mc .nv-cc-tile.danger { border-color: var(--ui-danger); }
.nv-mc .nv-cc-tile.warn { border-color: var(--ui-warn); }
.nv-mc .nv-cc-switch { margin: 0; }
.nv-mc .nv-vc .t { white-space: pre-wrap; overflow-wrap: anywhere; }
.nv-mc .nv-cc-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(270px, 100%), 1fr)); gap: var(--space-3); margin: var(--space-3) 0; }
.nv-mc .nv-cc-grid > .nv-cc-tile { margin: 0; }
.nv-mc .nv-cc-tile h4 { margin: 0 0 6px; font-size: 13px; letter-spacing: .02em; color: var(--ui-fg-2); font-weight: 600; }
.nv-mc .nv-cc-tile .big { font-size: 26px; font-weight: 700; line-height: 1.1; }
.nv-mc .nv-cc-tile .big small { font-size: 12px; font-weight: 400; color: var(--ui-fg-3); margin-left: 6px; }
.nv-mc .nv-cc-tile ul { margin: 6px 0 0; padding-left: 16px; font-size: 12.5px; }
.nv-mc .nv-cc-tile li { margin: 2px 0; overflow-wrap: anywhere; }
.nv-mc .nv-cc-chips { display: flex; gap: 3px; flex-wrap: wrap; }
.nv-mc .nv-cc-chip { display: inline-block; min-width: 20px; padding: 1px 4px; border-radius: var(--radius-sm); font-size: 10.5px; text-align: center; border: 1px solid var(--ui-line); color: var(--ui-fg-3); }
.nv-mc .nv-cc-chip.s1 { border-color: var(--ui-warn); color: var(--ui-warn); }
.nv-mc .nv-cc-chip.s2, .nv-mc .nv-cc-chip.met { border-color: var(--ui-ok); color: var(--ui-ok); }
.nv-mc .nv-cc-chip.na { opacity: .35; }
.nv-mc pre.nv-cc-out { max-height: 320px; overflow: auto; font-size: 11px; white-space: pre-wrap; background: var(--ui-sunken); padding: var(--space-2); border-radius: var(--radius-sm); }
.nv-mc .nv-cp-form { display: grid; gap: var(--space-2); max-width: 640px; }
.nv-mc .nv-cp-form textarea { min-height: 90px; width: 100%; }
.nv-mc .nv-cc-scroll.is-sm table { font-size: 12.5px; }
.nv-mc .nv-cc-heat { height: 8px; border-radius: var(--radius-sm); background: var(--ui-brand); }
/* tone helpers that replace inline colour styles */
.nv-mc .nv-tone-ok { color: color-mix(in srgb, var(--ui-ok) 70%, var(--ui-fg)); }
.nv-mc .nv-tone-warn { color: var(--ui-warn); }
.nv-mc .nv-tone-danger { color: var(--ui-danger); }
.nv-mc .nv-tone-muted { color: var(--ui-fg-3); }
.nv-mc .nv-tone-strong { color: var(--ui-brand); font-weight: 700; }
.nv-mc .nv-pill { display: inline-block; margin: 2px 3px; padding: 1px 7px; border-radius: var(--radius-pill); font-size: 11px; background: var(--ui-sunken); color: var(--ui-fg-3); }
.nv-mc .nv-pill.is-on { background: var(--ui-sunken); color: var(--ui-ok); }
.nv-mc .nv-pill.is-off { color: var(--ui-danger); }
.nv-mc .nv-callout-line { margin: var(--space-3) 0; padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-line); border-left: 3px solid var(--ui-brand); background: var(--ui-sunken); border-radius: var(--radius-sm); }
.nv-mc .nv-callout-line.tone-ok { border-left-color: var(--ui-ok); }
.nv-mc .nv-callout-line.tone-warn { border-left-color: var(--ui-warn); }
.nv-mc .nv-callout-line.tone-danger { border-left-color: var(--ui-danger); }
/* bare kit tables (no wrapper in the legacy markup): scroll sideways on narrow screens instead of widening the page */
.nv-mc table.nvk-table { max-width: 100%; }
@media (max-width: 720px) { .nv-mc :not(.nvk-table-wrap, .nv-m-scrolltable) > table.nvk-table { display: block; overflow-x: auto; } }
}

/* _base/mc-g7.css */
@layer components{
/* WD-10 group g7: Devil Fruit / PvP Director / Shadow Palace view libs (web/modules/nvmc/{df,pvpd,palace}_view.php). */
.nv-mc .g7-stats { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0 var(--space-4); }
.nv-mc .g7-tabs { margin: var(--space-3) 0 var(--space-4); overflow-x: auto; }
.nv-mc .nvk-callout { margin: var(--space-3) 0; }
.nv-mc .g7-heading { margin-top: var(--space-5); }
.nv-mc .g7-pass { color: var(--ui-ok, var(--ok)); font-weight: 600; }
.nv-mc .g7-stop { color: var(--ui-danger, var(--danger)); font-weight: 600; }
.nv-mc .g7-swatch { display: inline-block; width: 12px; height: 12px; border-radius: var(--radius-sm); vertical-align: middle; }
/* Devil Fruit Director (was an inline <style> echoed by dfmc_style) */
.nv-dfd .nv-dfd-orb { display: inline-block; vertical-align: middle; width: var(--sz, 16px); height: var(--sz, 16px); border-radius: 50%; background: radial-gradient(circle at 34% 30%, var(--c2, var(--ui-surface)) 0, var(--c1, var(--ui-muted)) 62%); box-shadow: 0 0 0 2px var(--ring, var(--ui-muted)); margin: 3px; }
.nv-dfd .nv-dfd-orb.st-returning { box-shadow: none; outline: 2px dashed var(--ring); outline-offset: 1px; opacity: .65; }
.nv-dfd .nv-dfd-orb.st-dormant { filter: grayscale(.85); opacity: .7; }
.nv-dfd .nv-dfd-orb.st-carried { box-shadow: 0 0 0 2px var(--ring), 0 0 8px 2px var(--ui-danger, var(--danger)); }
.nv-dfd .nv-dfd-orb.st-adrift { opacity: .55; }
.nv-dfd .nv-dfd-bough { display: flex; flex-wrap: wrap; align-items: center; gap: 2px; border: 1px solid var(--line); padding: var(--space-2) var(--space-3); margin: 0 0 var(--space-2); }
.nv-dfd .nv-dfd-bough b { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--muted2); min-width: 88px; }
.nv-dfd .nv-dfd-banner { border-left: 3px solid var(--warn); padding: var(--space-2) var(--space-3); margin: 0 0 var(--space-3); font-size: 12.5px; }
.nv-dfd .nv-dfd-banner.bad { border-left-color: var(--danger); }
.nv-dfd .nv-dfd-banner.info { border-left-color: var(--muted2); }
.nv-dfd .nv-dfd-rcpt { font-size: 12px; border: 1px solid var(--line); padding: 6px var(--space-3); margin: 0 0 var(--space-4); }
.nv-dfd .nv-dfd-rcpt div { padding: 2px 0; }
.nv-dfd .nv-dfd-sm { font-size: 11px; color: var(--muted2); }
.nv-dfd .nv-dfd-inline { display: inline; margin: 0; }
.nv-dfd .nv-dfd-inline .nv-btn { padding: 3px 8px; font-size: 11px; }
.nv-dfd .nv-dfd-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(280px, 100%), 1fr)); gap: var(--space-3); margin: var(--space-2) 0 var(--space-4); }
.nv-dfd .nv-dfd-card { border: 1px solid var(--line); padding: var(--space-3) var(--space-4); font-size: 12.5px; line-height: 1.6; }
.nv-dfd .nv-dfd-bar { height: 6px; background: var(--line); margin: 4px 0; }
.nv-dfd .nv-dfd-bar span { display: block; height: 100%; background: var(--warn); }
.nv-dfd code.nv-dfd-body { display: block; white-space: pre-wrap; word-break: break-all; font-size: 11px; max-width: 60ch; }
.nv-dfd .nv-dfd-num { width: 64px; }
}

/* _base/mc-g8.css */
@layer components{
/* Mission Control group g8 (WD-10): mythic, haki, nemesis, nvscale, anvil, ghost duels, mobile, conductor, everfall panels. Tokens only. */
.nv-mc .nvg8-head { margin: var(--space-4) 0 var(--space-3); }
.nv-mc .nvg8-title { margin: 0; font-size: 18px; color: var(--ui-fg); }
.nv-mc .nvg8-sub { margin: var(--space-1) 0 0; font-size: 13px; color: var(--ui-fg-3); }
.nv-mc .nvg8-h4 { margin: var(--space-5) 0 var(--space-2); font-size: 15px; color: var(--ui-fg); }
.nv-mc .nvg8-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--space-3); margin: var(--space-3) 0 var(--space-4); }
.nv-mc .nvg8-stat--ok { border-color: var(--ui-ok); }
.nv-mc .nvg8-stat--warn { border-color: var(--ui-warn); }
.nv-mc .nvg8-stat--danger { border-color: var(--ui-danger); }
.nv-mc .nvg8-tabs { margin: var(--space-3) 0 var(--space-4); }
.nv-mc .nvk-callout, .nv-mc .nvk-empty { margin: var(--space-3) 0; }
.nv-mc .nvk-table-wrap { margin: var(--space-2) 0 var(--space-4); overflow-x: auto; }
.nv-mc .nvg8-card { border: 1px solid var(--ui-line); border-radius: var(--radius-md); padding: var(--space-3); margin-bottom: var(--space-3); background: var(--ui-surface); }
.nv-mc .nvg8-row { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; margin: var(--space-2) 0; }
.nv-mc .nvg8-muted { color: var(--ui-fg-3); font-size: 13px; }
.nv-mc .nvg8-note-sm { font-size: 13px; color: var(--ui-fg-2); margin: var(--space-2) 0; line-height: 1.55; max-width: 70ch; }
.nv-mc .nvg8-title { margin: var(--space-5) 0 var(--space-2); }
.nv-mc .nvg8-muted { color: var(--ui-fg-3); font-size: 12px; }
.nv-mc .nvg8-pointer { cursor: pointer; }
.nv-mc .nvg8-mb6 { margin: 0 0 var(--space-2); }
.nv-mc .nvg8-mb10 { margin-bottom: var(--space-3); }
.nv-mc .nvg8-mb12 { margin-bottom: var(--space-3); }
.nv-mc .nvg8-mt2 { margin: var(--space-1) 0 0; }
.nv-mc .nvg8-mt6 { margin: var(--space-2) 0 0; }
.nv-mc .nvg8-mt8 { margin: var(--space-2) 0 0; }
.nv-mc .nvg8-mt10 { margin-top: var(--space-3); }
.nv-mc .nvg8-m0 { margin: 0; }
.nv-mc .nvg8-w80 { max-width: 80ch; }
.nv-mc .nvg8-w84 { max-width: 84ch; }
.nv-mc .nvg8-lede { margin: 0 0 var(--space-3); }
.nv-mc .nvg8-block { display: block; }
.nv-mc .nvg8-inline { display: inline; }
.nv-mc .nvg8-fs12 { font-size: 12px; }
.nv-mc .nvg8-nowrap { white-space: nowrap; }
.nv-mc form.nvg8-row { display: flex; }
.nv-mc .nvg8-end { align-items: flex-end; }
.nv-mc .nvg8-bar { border-left: 3px solid var(--ui-line); padding: var(--space-2) var(--space-3); background: var(--ui-sunken); border-radius: var(--radius-sm); }
.nv-mc .nvg8-bar--ok { border-left-color: var(--ui-ok); }
.nv-mc .nvg8-bar--warn { border-left-color: var(--ui-warn); }
.nv-mc .nvg8-bar--danger { border-left-color: var(--ui-danger); }
.nv-mc .nvg8-throne { border-top: 2px solid var(--ui-line); }
.nv-mc .nvg8-throne--held { border-top-color: var(--ui-brand); }
.nv-mc .nvg8-ok { color: var(--ui-ok); }
.nv-mc .nvg8-warn { color: var(--ui-warn); }
.nv-mc .nvg8-danger { color: var(--ui-danger); }
.nv-mc .nvg8-dot { display: inline-block; width: 10px; height: 10px; border-radius: var(--radius-pill); background: var(--ui-fg-3); vertical-align: baseline; margin-right: var(--space-1); }
.nv-mc .nvk-meter { width: 100%; min-width: 80px; }
.nv-mc .nvg8-spark { display: block; width: 100%; height: 90px; margin: var(--space-2) 0; background: var(--ui-sunken); border-radius: var(--radius-sm); }
.nv-mc .nvg8-spark-bar { fill: var(--ui-brand); }
.nv-mc .nv-mb table { width: 100%; }
.nv-mc .nv-mb fieldset { margin: 0 0 var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); padding: var(--space-3); }
.nv-mc .nv-mb legend { font-weight: 600; color: var(--ui-fg); }
.nv-mc .nv-mb label.row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-2); align-items: center; margin: var(--space-2) 0; }
.nv-mc .nv-mb input[type=text], .nv-mc .nv-mb input[type=number], .nv-mc .nv-mb select, .nv-mc .nv-mb textarea { min-height: 44px; box-sizing: border-box; width: 100%; }
.nv-mc .nv-mb small { color: var(--ui-fg-3); }
.nv-mc .nv-mb .nvg8-w120 { max-width: 120px; }
.nv-mc .nv-mb-split { display: flex; flex-wrap: wrap; gap: var(--space-5); align-items: flex-start; }
.nv-mc .nv-mb-phone { width: 220px; height: 440px; border: 8px solid var(--ui-line-strong); border-radius: 28px; background: var(--ui-sunken); color: var(--ui-fg); padding: var(--space-3); box-sizing: border-box; font-size: 12px; overflow: hidden; }
.nv-mc .nv-mb-phone .btn { display: block; margin: var(--space-2) 0; padding: var(--space-2); border-radius: var(--radius-md); background: var(--ui-surface); border: 1px solid var(--ui-line); text-align: center; }
.nv-mc .nvg8-pv-lang { margin-top: 22px; }
.nv-mc .nvg8-scale-s { font-size: 10px; }
.nv-mc .nvg8-scale-m { font-size: 12px; }
.nv-mc .nvg8-scale-l { font-size: 14px; }
.nv-mc .nvg8-scale-xl { font-size: 16px; }
@media (max-width: 640px) { .nv-mc .nv-mb label.row { grid-template-columns: 1fr; } }
/* Midgard Web beta panel (webbeta_view.php): crash stacks, feedback rows and the picture sent with a note (were inline styles). */
.nv-wbeta .nv-wbeta-stack { white-space: pre-wrap; font-size: 11px; }
.nv-wbeta .nv-wbeta-shot { max-width: 100%; height: auto; }
.nv-wbeta .nv-wbeta-fb { border-top: 1px solid var(--ui-line); padding: 6px 0; }
.nv-wbeta .nv-wbeta-note { white-space: pre-wrap; margin: 4px 0; }
}

/* _base/mc-kit.css */
@layer components{
/* Mission Control helpers that render kit markup (web/modules/nvmc/mc_kit.php, WD-10). Numeric table columns: right-aligned, tabular figures. */
.nvk-table .nvk-num { text-align: right; font-variant-numeric: tabular-nums; }
}

/* _base/mc-servicedesk.css */
@layer components{
/* Mission Control > Service Desk (owner decision 2026-10-15): stat row, ticket facts, the thread, reply and settings forms.
   Markup: web/themes/default/nvmc/_panel_servicedesk.php. Tokens only, scoped .nv-mc. */

.nv-mc .sd-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--space-3); margin: 0 0 var(--space-4); }
.nv-mc .sd-tabs { margin: 0 0 var(--space-4); overflow-x: auto; }
.nv-mc .sd-sub { margin: var(--space-5) 0 var(--space-2); font-size: 15px; line-height: 22px; font-weight: 700; color: var(--ui-fg); text-transform: none; letter-spacing: 0; }
.nv-mc .sd-sub:first-child { margin-top: 0; }
.nv-mc .sd-text { margin: var(--space-2) 0 var(--space-3); font-size: 13px; line-height: 20px; color: var(--ui-fg-2); max-width: 96ch; }
.nv-mc .sd-muted { color: var(--ui-fg-3); }
.nv-mc .sd-small { font-size: 12px; line-height: 18px; }
.nv-mc .sd-nowrap { white-space: nowrap; }
.nv-mc .sd-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.nv-mc .sd-inline { display: inline-block; margin: 0 var(--space-1) var(--space-1) 0; }
.nv-mc .sd-back { margin: 0 0 var(--space-3); }
.nv-mc .sd-head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); margin: 0 0 var(--space-3); }
.nv-mc .sd-title { margin: 0; font-size: 18px; line-height: 26px; font-weight: 700; color: var(--ui-fg); text-transform: none; letter-spacing: 0; overflow-wrap: anywhere; }

/* ticket facts */
.nv-mc .sd-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: var(--space-3); margin: 0 0 var(--space-4); padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .sd-fact { min-width: 0; margin: 0; }
.nv-mc .sd-fact dt { font-size: 11px; line-height: 16px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-fg-3); }
.nv-mc .sd-fact dd { margin: 0; font-size: 14px; line-height: 20px; color: var(--ui-fg); overflow-wrap: anywhere; }
.nv-mc .sd-fact--wide { grid-column: 1 / -1; }
.nv-mc .sd-report { white-space: pre-wrap; }

/* the thread */
.nv-mc .sd-thread { display: flex; flex-direction: column; gap: var(--space-3); margin: 0 0 var(--space-4); padding: 0; list-style: none; }
.nv-mc .sd-msg { padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-line); border-left: 3px solid var(--ui-line-strong); border-radius: var(--radius-md); background: var(--ui-surface); }
.nv-mc .sd-msg.is-staff { border-left-color: var(--ui-brand); background: var(--ui-sunken); }
.nv-mc .sd-msg__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); margin: 0 0 var(--space-1); font-size: 13px; line-height: 20px; color: var(--ui-fg-2); }
.nv-mc .sd-msg__who { font-weight: 700; color: var(--ui-fg); }
.nv-mc .sd-msg__when { margin-left: auto; font-size: 12px; color: var(--ui-fg-3); font-variant-numeric: tabular-nums; }
.nv-mc .sd-msg__body { margin: 0; font-size: 14px; line-height: 21px; color: var(--ui-fg); white-space: pre-wrap; overflow-wrap: anywhere; }
.nv-mc .sd-msg__action { margin: var(--space-1) 0 0; font-size: 12px; line-height: 18px; font-weight: 700; color: var(--ui-fg-2); }

/* forms */
.nv-mc .sd-form { display: flex; flex-direction: column; gap: var(--space-3); max-width: 72ch; margin: 0 0 var(--space-4); }
.nv-mc .sd-form .nvk-field__control { width: 100%; box-sizing: border-box; }
.nv-mc .sd-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.nv-mc .sd-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--space-4); align-items: start; }
.nv-mc .sd-box { padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); min-width: 0; }
.nv-mc .sd-box .sd-sub { margin-top: 0; }
.nv-mc .sd-note { width: 100%; max-width: 40ch; box-sizing: border-box; }
.nv-mc .sd-cell-form { display: inline-block; margin: 0 var(--space-1) 0 0; vertical-align: middle; }
.nv-mc .sd-check { display: inline-flex; align-items: center; gap: var(--space-2); font-size: 14px; color: var(--ui-fg); }

@media (max-width: 640px) {
	.nv-mc .sd-msg__when { margin-left: 0; width: 100%; }
	.nv-mc .sd-facts { padding: var(--space-3); }
	.nv-mc .sd-note { max-width: none; }
}
}

/* _base/menu.css */
@layer pages{
/* One left menu (owner 2026-10-22, canvas 'NirvanaRO One Menu'): page pieces that go with it. lib/nv_site_menu.php, lib/nv_daybreak_sheet.php. */

/* the Mine / Everyone switch of the five paired pages (PvP, Mythic Midgard, Shadow Palace, Everfall, The Oath): one menu row lights on both URLs */
.nvk-daybreak .d-pair, .d-pair { display: flex; justify-content: flex-end; margin: 0 0 var(--space-3); }
.nvk-daybreak .d-pair .nvk-boards { margin: 0; }
@media (max-width: 760px) { .nvk-daybreak .d-pair, .d-pair { justify-content: center; } }

/* the way back from a character form to its character (the form rail is gone) */
.nvk-daybreak .d-fs-back { margin: var(--space-3) 0 0; text-align: center; font: 600 14px/20px var(--body); }
.nvk-daybreak .d-fs-back a { display: inline-flex; align-items: center; min-height: 44px; }

/* Anime Sky in the AppShell (owner pick 5(i)): its framed page cards run closer to the window edge than Daybreak's, so on a desktop the page
   column keeps the Sage edge tab's width clear on the right (the tab never sits on a control or a line of text) */
@media (min-width: 861px) {
  html[data-theme="anime"] .nvk-app__content { padding-right: calc(var(--nvk-edge-w) + var(--space-4)); }
}
}

/* _base/motion.css */
@layer components{
/* Rune Motion (docs/nvmc/WEB-MOTION-PAGES-PLAN.md part A): the CSS half of the kit's shared motion (js/nv-ui.js, NvUI.motion). Reduced motion
   (the OS setting or data-motion="off") is the sitewide rule in nirvana.css: every keyframe and transition there ends at once. */

/* rolling digits: a clipped cell per digit that moves; the digits it rolls past are the roll's ::before, one per line (data-was), so the
   text and the width of the number never change while it rolls */
.nvk-roll__ch { display: inline-block; clip-path: inset(-1px -2px); }
.nvk-roll__roll { display: inline-block; position: relative; }
.nvk-roll__roll::before { content: attr(data-was); position: absolute; left: 0; bottom: 100%; white-space: pre; }

/* the ring that follows the pointer or the focus between the children of [data-nv-morph] (the Top up packages); only there while it moves */
[data-nv-morph] { position: relative; }
.nvk-morph { position: absolute; left: 0; top: 0; z-index: 1; box-sizing: border-box; border: 2px solid var(--ui-brand); border-radius: var(--radius-lg); pointer-events: none; }

/* a ring that pulses out twice from [data-nv-pulse] (a bid someone went over), then goes */
[data-nv-pulse] { position: relative; }
.nvk-pulse { position: absolute; inset: 0; box-sizing: border-box; border: 2px solid var(--ui-warn); border-radius: var(--radius-lg); pointer-events: none; }

/* page to page: the browser's cross-document view transition. The top bar (PublicNav or the AppShell top bar) is its own layer that does not
   move; the rest of the page fades across. */
@view-transition { navigation: auto; }
.nvk-pubnav__bar, .nvk-topbar { view-transition-name: nvk-bar; }
::view-transition-group(nvk-bar), ::view-transition-old(nvk-bar), ::view-transition-new(nvk-bar) { animation: none; }
::view-transition-old(nvk-bar) { display: none; }
::view-transition-old(root) { animation: var(--t-swap) var(--ease-exit) both nvk-page-out; }
::view-transition-new(root) { animation: var(--t-swap) var(--ease-rune) both nvk-page-in; }
@keyframes nvk-page-out { to { opacity: 0; } }
@keyframes nvk-page-in { from { opacity: 0; } }
}

/* _base/oath.css */
@layer pages{
/* The Oath hub (Hardcore, H2): owner pick C 'Living and Fallen' of the Oath hub canvas and the 'Frost Oath' look (2026-10-20).
   Markup: hardcore/_daybreak_{index,ladder,fallen,ledger,crown,watch,mine}.php and _oath_head.php, all inside div.d-oath (lib/nv_daybreak_oath.php).
   Frost Oath: the pages are one dark hall in every look (Daybreak, Daybreak Night): div.d-oath sets the --ui-* tokens the kit reads to the
   --ui-hc-* night, ice and bronze, so kit Buttons, Empty, Callout and Meter take the hall's colours. Two halls everywhere: Living (ice) and Fallen (ash). */
.nvk-daybreak .d-oath-pg { padding: 0 0 var(--space-6); }
.nvk-daybreak .d-oath {
  --ui-bg: var(--ui-hc-night); --ui-surface: var(--ui-hc-living); --ui-surface-2: var(--ui-hc-living-2); --ui-sunken: var(--ui-hc-living-2);
  --ui-fg: var(--ui-hc-fg); --ui-fg-2: var(--ui-hc-fg-2); --ui-fg-3: var(--ui-hc-fg-3);
  --ui-line: var(--ui-hc-line); --ui-line-strong: var(--ui-hc-line-ice); --ui-link: var(--ui-hc-ice); --ui-focus: var(--ui-hc-ice);
  --ui-brand: var(--ui-hc-ice); --ui-brand-fg: var(--ui-hc-ice-fg); --ui-brand-deep: var(--ui-hc-ice); --ui-brand-tint: var(--ui-hc-living-2);
  --ui-cta: var(--ui-hc-ice); --ui-cta-fg: var(--ui-hc-ice-fg);
  --ui-island: var(--ui-hc-living-2); --ui-island-2: var(--ui-hc-living); --ui-island-fg: var(--ui-hc-fg); --ui-island-fg-2: var(--ui-hc-fg-2); --ui-island-line: var(--ui-hc-line-ice); --ui-island-gold: var(--ui-hc-ice);
  --ui-warn: var(--ui-hc-bronze); --ui-danger: var(--ui-hc-ember);
  color-scheme: dark; position: relative; isolation: isolate; display: flex; flex-direction: column; gap: 28px; box-sizing: border-box; width: 100%; max-width: 1240px; margin: 0 auto; padding: 32px 40px 48px;
  border-radius: 28px; background: var(--ui-hc-night); box-shadow: var(--shadow-md); color: var(--ui-hc-fg); container-type: inline-size; font: 400 15px/1.5 var(--body);
}
.nvk-daybreak .d-oath a:not([class*="nvk-"]) { color: var(--ui-hc-ice); text-decoration: none; }
.nvk-daybreak .d-oath p a:not([class*="nvk-"]) { text-decoration: underline; text-underline-offset: 3px; }
.nvk-daybreak .d-oath a:not([class*="nvk-"]):hover { color: var(--ui-hc-fg); text-decoration: underline; }
.nvk-daybreak .d-oath :focus-visible { outline: 2px solid var(--ui-hc-ice); outline-offset: 2px; }
.nvk-daybreak .d-oath h1, .nvk-daybreak .d-oath h2, .nvk-daybreak .d-oath h3, .nvk-daybreak .d-oath h4 { margin: 0; padding: 0; border: 0; text-transform: none; letter-spacing: normal; text-shadow: none; }
.nvk-daybreak .d-oath p { margin: 0; }
.nvk-daybreak .d-oath ul, .nvk-daybreak .d-oath ol { margin: 0; padding: 0; list-style: none; }

/* the split hero: Living N | crest | Fallen N */
.nvk-daybreak .d-oath-hero { display: grid; grid-template-columns: minmax(0, 1fr) 280px minmax(0, 1fr); align-items: stretch; }
.nvk-daybreak .d-oath-hero__side { display: flex; flex-direction: column; justify-content: center; gap: 6px; min-width: 0; padding: 32px; }
.nvk-daybreak .d-oath-hero__side--living { border-radius: 22px 0 0 22px; background: var(--ui-hc-living); border: 1px solid var(--ui-hc-line-ice); border-right: 0; }
.nvk-daybreak .d-oath-hero__side--fallen { align-items: flex-end; text-align: right; border-radius: 0 22px 22px 0; background: var(--ui-hc-fallen); border: 1px solid var(--ui-hc-line-ash); border-left: 0; }
.nvk-daybreak .d-oath-hero__k { font: 700 13px/18px var(--body); letter-spacing: .14em; text-transform: uppercase; }
.nvk-daybreak .d-oath-hero__n { font: 800 64px/1 var(--disp); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-oath-hero__side--living .d-oath-hero__k, .nvk-daybreak .d-oath-hero__side--living .d-oath-hero__n { color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-hero__side--fallen .d-oath-hero__k, .nvk-daybreak .d-oath-hero__side--fallen .d-oath-hero__n { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-hero__s { font: 400 15px/1.45 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-hero__mid { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-width: 0; padding: 16px 12px 20px; text-align: center;
  border-top: 1px solid var(--ui-hc-line); border-bottom: 1px solid var(--ui-hc-line); background: radial-gradient(circle at 50% 40%, var(--ui-hc-glow), transparent 62%), var(--ui-hc-night); }
.nvk-daybreak .d-oath-hero__h { font: 800 30px/1.15 var(--disp); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-hero__e { font: 700 13px/18px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-hero__when { font: 500 14px/20px var(--body); color: var(--ui-hc-fg-2); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-oath-hero--sm { grid-template-columns: minmax(0, 1fr) 240px minmax(0, 1fr); }
.nvk-daybreak .d-oath-hero--sm .d-oath-hero__side { padding: 20px 28px; }
.nvk-daybreak .d-oath-hero--sm .d-oath-hero__n { font-size: 44px; }
.nvk-daybreak .d-oath-hero--sm .d-oath-hero__h { font-size: 26px; }
.nvk-daybreak .d-oath-hero--sm .d-oath-hero__mid { flex-direction: column; gap: 4px; padding: 12px; }

/* the seven sub pages and the season switch: pills on the night floor */
.nvk-daybreak .d-oath-tabs, .nvk-daybreak .d-oath-pick { display: flex; justify-content: center; min-width: 0; }
.nvk-daybreak .d-oath-tabs__l, .nvk-daybreak .d-oath-pick__l { display: flex; gap: 4px; max-width: 100%; padding: 4px; overflow-x: auto; scrollbar-width: none; border-radius: var(--radius-pill); background: var(--ui-hc-living); border: 1px solid var(--ui-hc-line); }
.nvk-daybreak .d-oath-tabs__l > li, .nvk-daybreak .d-oath-pick__l > li { flex: 0 0 auto; }
.nvk-daybreak .d-oath-tab__a, .nvk-daybreak .d-oath-pick__a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: var(--radius-pill); color: var(--ui-hc-fg-2); font: 500 14px/1 var(--body); text-decoration: none; white-space: nowrap; transition: background-color var(--t-fast) var(--ease-rune), color var(--t-fast) var(--ease-rune); }
.nvk-daybreak .d-oath .d-oath-tab__a, .nvk-daybreak .d-oath .d-oath-pick__a { color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath .d-oath-tab__a:hover, .nvk-daybreak .d-oath .d-oath-pick__a:hover { background: var(--ui-hc-living-2); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath .d-oath-tab__a[aria-current="page"], .nvk-daybreak .d-oath .d-oath-pick__a[aria-current="true"] { background: var(--ui-hc-ice); color: var(--ui-hc-ice-fg); font-weight: 700; }
.nvk-daybreak .d-oath-pick { margin-top: -12px; }
@media (min-width: 761px) {
  .nvk-daybreak .d-oath-pick__a { min-height: 40px; }
  .nvk-daybreak .d-oath-tabs__l { flex-wrap: wrap; justify-content: center; border-radius: 26px; }
}
.nvk-daybreak .d-oath-note { max-width: 760px; margin: 0 auto; width: 100%; }

/* two halls side by side */
.nvk-daybreak .d-oath-pair { display: flex; flex-direction: column; gap: 16px; min-width: 0; scroll-margin-top: 90px; }
.nvk-daybreak .d-oath-pair__h, .nvk-daybreak .d-oath-calm__h { font: 800 28px/1.2 var(--disp); color: var(--ui-hc-fg); text-align: center; }
.nvk-daybreak .d-oath-pair__g { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.nvk-daybreak .d-oath-pair__g--fallen-wide { grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); }
.nvk-daybreak .d-oath-pair__g--living-wide { grid-template-columns: minmax(0, 2.1fr) minmax(0, 1fr); }
.nvk-daybreak .d-oath-hall { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: 24px; border-radius: 22px; scroll-margin-top: 90px; }
.nvk-daybreak .d-oath-sec__h { scroll-margin-top: 90px; }
.nvk-daybreak .d-oath-hall--living { background: var(--ui-hc-living); border: 1px solid var(--ui-hc-line-ice); }
.nvk-daybreak .d-oath-hall--fallen { background: var(--ui-hc-fallen); border: 1px solid var(--ui-hc-line-ash); }
.nvk-daybreak .d-oath-hall__h { font: 700 22px/1.25 var(--disp); }
.nvk-daybreak .d-oath-hall--living .d-oath-hall__h { color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-hall--fallen .d-oath-hall__h { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-hall__s, .nvk-daybreak .d-oath-foot { font: 400 14px/1.5 var(--body); color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-foot { text-align: center; }
.nvk-daybreak .d-oath-hall .d-oath-foot { text-align: left; }
.nvk-daybreak .d-oath-sub { font: 700 15px/1.3 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-none { font: 400 14px/1.5 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-more { font: 600 14px/20px var(--body); }

/* a section head between blocks (the Overview's ladder) */
.nvk-daybreak .d-oath-sec { display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap; }
.nvk-daybreak .d-oath-sec__m { flex: 1 1 260px; display: flex; flex-direction: column; gap: 4px; }
.nvk-daybreak .d-oath-sec__h { font: 800 28px/1.2 var(--disp); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-sec__s { color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-sec--c { justify-content: center; }

/* rules, tiers, boxes */
.nvk-daybreak .d-oath-tiers { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.nvk-daybreak .d-oath-tier { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 14px; border-radius: 16px; background: var(--ui-hc-living-2); }
.nvk-daybreak .d-oath-tier__n { font: 700 15px/1.3 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-tier__v { font: 800 26px/1.15 var(--disp); color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-tier__s { font: 400 13px/1.4 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-rules { display: flex; flex-direction: column; gap: 12px; }
.nvk-daybreak .d-oath-rule { display: flex; gap: 12px; font: 400 15px/1.5 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-rule__k { flex: 0 0 auto; width: 10px; height: 18px; margin: 2px 6px 0 4px; border: solid var(--ui-hc-ice); border-width: 0 2px 2px 0; transform: rotate(45deg) scale(.8); }
.nvk-daybreak .d-oath-rule__n { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--ui-hc-line-ash); color: var(--ui-hc-bronze); font: 700 13px/1 var(--body); }
.nvk-daybreak .d-oath-box { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: 16px; }
.nvk-daybreak .d-oath-box--living { background: var(--ui-hc-living-2); }
.nvk-daybreak .d-oath-box--fallen { background: var(--ui-hc-fallen-2); }
.nvk-daybreak .d-oath-box--stash { border: 1px solid var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-box--on { box-shadow: inset 0 0 0 1px var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-box__h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font: 700 15px/1.3 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-box--fallen .d-oath-box__h, .nvk-daybreak .d-oath-box--stash .d-oath-box__h { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-box__s { font: 400 14px/1.5 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-box__tag { padding: 2px 8px; border-radius: var(--radius-pill); border: 1px solid var(--ui-hc-line-ash); font: 700 12px/16px var(--body); color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-box .nvk-btn { align-self: flex-start; }
.nvk-daybreak .d-oath-boxes { display: flex; flex-direction: column; gap: 10px; }

/* the ladder: tier columns beside Fell from the ladder */
/* three tier columns while each keeps ~230 px for a name, a class and a level (owner answer B6: readable beside the halls rail); narrower, two
   columns with the third across both below them (2+1, its rows two by two); one column with the tier switch on a phone (below) */
.nvk-daybreak .d-oath-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
@container (min-width: 721px) and (max-width: 880px) {
  .nvk-daybreak .d-oath-cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 22px; }
  .nvk-daybreak .d-oath-cols > .d-oath-col:nth-child(3) { grid-column: 1 / -1; }
  .nvk-daybreak .d-oath-cols > .d-oath-col:nth-child(3) .d-oath-rows { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; }
}
.nvk-daybreak .d-oath-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.nvk-daybreak .d-oath-col__h { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; padding: 0 4px 6px; border-bottom: 1px solid var(--ui-hc-line); }
.nvk-daybreak .d-oath-col__t { font: 700 18px/1.2 var(--disp); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-col__m { font: 400 13px/1.3 var(--body); color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-rows { display: flex; flex-direction: column; gap: 8px; }
.nvk-daybreak .d-oath-row { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 10px 12px; border-radius: 14px; background: var(--ui-hc-living-2); }
.nvk-daybreak .d-oath-hall--fallen .d-oath-row { background: var(--ui-hc-fallen-2); }
.nvk-daybreak .d-oath a.d-oath-row--a { min-height: 44px; color: var(--ui-hc-fg); text-decoration: none; transition: background-color var(--t-fast) var(--ease-rune), box-shadow var(--t-fast) var(--ease-rune); }
.nvk-daybreak .d-oath a.d-oath-row--a:hover { text-decoration: none; color: var(--ui-hc-fg); background: var(--ui-hc-living); box-shadow: inset 0 0 0 1px var(--ui-hc-line-ice); }
.nvk-daybreak .d-oath a.d-oath-row--a:focus-visible { outline: 2px solid var(--ui-hc-ice); outline-offset: 2px; box-shadow: inset 0 0 0 1px var(--ui-hc-line-ice); }
.nvk-daybreak .d-oath .d-oath-hall--fallen a.d-oath-row--a:hover { background: var(--ui-hc-fallen); box-shadow: inset 0 0 0 1px var(--ui-hc-line-ash); }
.nvk-daybreak .d-oath .d-oath-row--a .d-oath-who { color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath .d-oath-row--a:hover .d-oath-who { color: var(--ui-hc-fg); text-decoration: underline; text-decoration-color: var(--ui-hc-ice); text-underline-offset: 3px; }
.nvk-daybreak .d-oath-row__r { flex: 0 0 auto; min-width: 18px; font: 700 13px/1 var(--body); color: var(--ui-hc-fg-3); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-oath-row__m { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .d-oath-row__t { display: flex; align-items: center; gap: 6px; min-width: 0; font: 700 15px/1.3 var(--body); }
.nvk-daybreak .d-oath-row__s { font: 400 13px/1.35 var(--body); color: var(--ui-hc-fg-2); overflow-wrap: anywhere; }
.nvk-daybreak .d-oath-row__x { flex: 0 0 auto; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.nvk-daybreak .d-oath-row__lv { font: 700 14px/1.2 var(--body); color: var(--ui-hc-fg); white-space: nowrap; }
.nvk-daybreak .d-oath-row--fell .d-oath-row__lv { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath .d-oath-who { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ui-hc-fg); text-decoration: none; }
/* a name that links to its profile reads in the page text colour, not the ice link colour (owner answer B8); hover underlines it in ice */
.nvk-daybreak .d-oath a.d-oath-who { color: var(--ui-hc-fg); text-decoration: none; }
.nvk-daybreak .d-oath a.d-oath-who:hover { color: var(--ui-hc-fg); text-decoration: underline; text-decoration-color: var(--ui-hc-ice); text-underline-offset: 3px; }
.nvk-daybreak .d-oath a.d-oath-who:focus-visible { outline: 2px solid var(--ui-hc-ice); outline-offset: 2px; border-radius: 4px; }
.nvk-daybreak .d-oath .d-oath-season__h a:hover { text-decoration-color: var(--ui-hc-ice); text-underline-offset: 3px; }
.nvk-daybreak .d-oath .d-oath-who--gone { color: var(--ui-hc-fg-2); font-style: italic; }
.nvk-daybreak .d-oath-row .nvk-icon { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-chg { display: inline-flex; align-items: center; gap: 2px; font: 700 12px/1 var(--body); color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-chg::before { content: "–"; }
.nvk-daybreak .d-oath-chg--up { color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-chg--up::before { content: "▲"; font-size: 9px; }
.nvk-daybreak .d-oath-chg--down { color: var(--ui-hc-ember); }
.nvk-daybreak .d-oath-chg--down::before { content: "▼"; font-size: 9px; }
.nvk-daybreak .d-oath-sw { display: none; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: var(--radius-pill); background: var(--ui-hc-night); border: 1px solid var(--ui-hc-line); }
.nvk-daybreak .d-oath .d-oath-sw__b { min-height: 44px; margin: 0; padding: 0 8px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ui-hc-fg-2); font: 700 14px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-oath .d-oath-sw__b[aria-pressed="true"] { background: var(--ui-hc-ice); color: var(--ui-hc-ice-fg); }
.nvk-daybreak .d-oath-filter { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; margin-top: -12px; }
/* the Class filter and the phone season switch: kit Field selects laid out in one row (label, select, Show), frost pills */
.nvk-daybreak .d-oath .d-oath-filter__f, .nvk-daybreak .d-oath .d-oath-pickf__f { flex-direction: row; align-items: center; gap: 10px; }
.nvk-daybreak .d-oath .d-oath-filter__f .nvk-field__label, .nvk-daybreak .d-oath .d-oath-pickf__f .nvk-field__label { font: 600 14px/1 var(--body); color: var(--ui-hc-fg-2); white-space: nowrap; }
.nvk-daybreak .d-oath .d-oath-filter__f .nvk-field__control, .nvk-daybreak .d-oath .d-oath-pickf__f .nvk-field__control { width: auto; min-width: 180px; padding: 0 16px; border-radius: var(--radius-pill);
  border: 1px solid var(--ui-hc-line); background: var(--ui-hc-living); color: var(--ui-hc-fg); font: 500 15px/1 var(--body); color-scheme: dark; }
.nvk-daybreak .d-oath-pickf { display: none; align-items: center; gap: 8px; }

/* the Hall of the Fallen: memorials */
.nvk-daybreak .d-oath-graves { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.nvk-daybreak .d-oath-grave { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 16px; border-radius: 16px; background: var(--ui-hc-fallen-2); }
.nvk-daybreak .d-oath-grave__top { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.nvk-daybreak .d-oath-grave__h { flex: 1 1 auto; min-width: 0; font: 700 18px/1.25 var(--disp); color: var(--ui-hc-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-oath-grave__st { font: 700 12px/16px var(--body); }
.nvk-daybreak .d-oath-grave__st--grace { color: var(--ui-hc-ember); }
.nvk-daybreak .d-oath-grave__st--gone { color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-grave__s, .nvk-daybreak .d-oath-grave__t { font: 400 13px/1.4 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-grave__t { color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-grave__k { font: 400 14px/1.45 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-grave__by { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-grave__ep { font: italic 400 14px/1.45 var(--body); color: var(--ui-hc-fg-2); }
/* Hardcore Flagship HF1: how it ended, and the last seconds folded */
.nvk-daybreak .d-oath-grave__how { font: 600 14px/1.45 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-tl { margin-top: 4px; }
.nvk-daybreak .d-oath-tl__s { min-height: 44px; display: flex; align-items: center; font: 600 13px/1.4 var(--body); color: var(--ui-hc-bronze); cursor: pointer; }
.nvk-daybreak .d-oath-tl__l { margin: 0; padding-left: 20px; display: grid; gap: 2px; }
.nvk-daybreak .d-oath-tl__e { font: 400 13px/1.4 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-tl__e--heal { color: var(--ui-hc-ice); }
/* Hardcore Flagship HF2: the appeal form under a fallen char in My Oath */
.nvk-daybreak .d-oath-appeal { display: grid; gap: 8px; margin-top: 8px; }

/* numbers, bars and tallies (the Ledger) */
.nvk-daybreak .d-oath-nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.nvk-daybreak .d-oath-num { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 14px; border-radius: 16px; background: var(--ui-hc-living-2); }
.nvk-daybreak .d-oath-nums--fallen .d-oath-num { background: var(--ui-hc-fallen-2); }
.nvk-daybreak .d-oath-num__v { font: 800 26px/1.15 var(--disp); color: var(--ui-hc-fg); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-oath-nums--fallen .d-oath-num__v { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-num__k { font: 400 13px/1.35 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-bars { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-oath-bar { display: grid; grid-template-columns: 110px minmax(0, 1fr) 76px; align-items: center; gap: 10px; font: 400 14px/1.3 var(--body); }
.nvk-daybreak .d-oath-bar__v { text-align: right; color: var(--ui-hc-fg-2); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-oath-bar .nvk-meter { margin: 0; }
.nvk-daybreak .d-oath-bar .nvk-meter-row { margin: 0; gap: 0; }
.nvk-daybreak .d-oath-bar .nvk-meter-row__text { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.nvk-daybreak .d-oath-tallies { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.nvk-daybreak .d-oath-tally { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.nvk-daybreak .d-oath-tally__h { font: 700 15px/1.3 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-tally__i { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-top: 1px solid var(--ui-hc-line-ash); font: 400 14px/1.4 var(--body); }
.nvk-daybreak .d-oath-tally__i > span { min-width: 0; overflow-wrap: anywhere; }

/* events (Death Watch, PvP deaths, Reapers); Death Watch rows lead with their kind's icon (owner answer A2: level lines have their own) */
.nvk-daybreak .d-oath-evs { display: flex; flex-direction: column; }
.nvk-daybreak .d-oath-ev__i { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin-top: -3px; border-radius: 50%; background: var(--ui-hc-living-2); color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-hall--fallen .d-oath-ev__i { background: var(--ui-hc-fallen-2); color: var(--ui-hc-ember); }
.nvk-daybreak .d-oath-ev__i--crown, .nvk-daybreak .d-oath-ev__i--first { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-ev__i--level { box-shadow: inset 0 0 0 1px var(--ui-hc-line-ice); }
.nvk-daybreak .d-oath-ev { display: flex; gap: 12px; padding: 10px 0; border-top: 1px solid var(--ui-hc-line); font: 400 14px/1.45 var(--body); }
.nvk-daybreak .d-oath-hall--fallen .d-oath-ev { border-top-color: var(--ui-hc-line-ash); }
.nvk-daybreak .d-oath-ev__t { flex: 0 0 64px; font: 400 13px/1.45 var(--body); color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-ev__x { min-width: 0; overflow-wrap: anywhere; color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-ev__k--living { color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-ev__k--fallen { color: var(--ui-hc-ember); }
.nvk-daybreak .d-oath-ev.is-new { animation: d-oath-new 1.6s var(--ease-rune) both; }
@keyframes d-oath-new { from { background: var(--ui-hc-living-2); } to { background: transparent; } }
.nvk-daybreak .d-oath-live { display: inline-flex; align-items: center; gap: 8px; padding: 6px 14px; border-radius: var(--radius-pill); background: var(--ui-hc-living); border: 1px solid var(--ui-hc-line); font: 500 13px/1 var(--body); color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-live__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ui-hc-ice); animation: d-oath-pulse 2.4s ease-in-out infinite; }
@keyframes d-oath-pulse { 50% { opacity: .35; } }

/* crown & champions */
.nvk-daybreak .d-oath-champs, .nvk-daybreak .d-oath-seasons, .nvk-daybreak .d-oath-firsts, .nvk-daybreak .d-oath-mes { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-oath-champ { display: flex; align-items: center; gap: 16px; min-width: 0; }
.nvk-daybreak .d-oath-champ__m { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nvk-daybreak .d-oath-champ__e { font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-champ__h { font: 800 26px/1.15 var(--disp); }
.nvk-daybreak .d-oath-champ__s { font: 400 14px/1.4 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-champ__t { display: flex; align-items: center; gap: 6px; font: 600 14px/1.3 var(--body); color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .d-oath-chip { padding: 6px 12px; border-radius: var(--radius-pill); background: var(--ui-hc-living-2); border: 1px solid var(--ui-hc-line-ice); font: 700 13px/1.2 var(--body); color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-first { display: flex; gap: 10px; align-items: center; padding: 8px 12px; border-radius: 12px; background: var(--ui-hc-living-2); font: 400 14px/1.4 var(--body); }
.nvk-daybreak .d-oath-first__k { flex: 1 1 auto; min-width: 0; color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-first__v { flex: 0 0 auto; }
.nvk-daybreak .d-oath-season { display: flex; flex-direction: column; gap: 4px; padding: 14px; border-radius: 16px; background: var(--ui-hc-fallen-2); }
.nvk-daybreak .d-oath-season--on { box-shadow: inset 0 0 0 1px var(--ui-hc-bronze); }
.nvk-daybreak .d-oath-season__top { display: flex; align-items: baseline; gap: 8px; }
.nvk-daybreak .d-oath-season__h { flex: 1 1 auto; font: 700 16px/1.3 var(--body); }
.nvk-daybreak .d-oath .d-oath-season__h a { color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-season__st { font: 700 12px/16px var(--body); color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-season__s { font: 400 14px/1.4 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-season__c { display: flex; align-items: center; gap: 6px; font: 600 14px/1.3 var(--body); color: var(--ui-hc-bronze); }

/* my oath */
.nvk-daybreak .d-oath-lives { display: flex; align-items: center; gap: 14px; }
.nvk-daybreak .d-oath-lives__n { font: 800 48px/1 var(--disp); color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-lives__s { font: 400 15px/1.4 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-lives__t { font-size: 13px; color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-me { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px; border-radius: 16px; background: var(--ui-hc-living-2); }
.nvk-daybreak .d-oath-hall--fallen .d-oath-me { background: var(--ui-hc-fallen-2); }
.nvk-daybreak .d-oath-me__m { flex: 1 1 220px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .d-oath-me__h { font: 700 16px/1.3 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-me__s { font: 400 13px/1.4 var(--body); color: var(--ui-hc-fg-2); }
/* a fallen character on My Oath: the Glory and Crystals held at death beside its stash (owner answer A4) */
.nvk-daybreak .d-oath-me__x { flex: 1 1 100%; display: flex; flex-direction: column; gap: 6px; min-width: 0; padding-top: 10px; border-top: 1px solid var(--ui-hc-line-ash); }
.nvk-daybreak .d-oath-me__w { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 10px; font: 400 14px/1.4 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-me__wk { font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-hc-fg-3); }
.nvk-daybreak .d-oath-me__wv { font: 700 15px/1.3 var(--body); color: var(--ui-hc-bronze); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nvk-daybreak .d-oath-me__f { font: 400 13px/1.45 var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-me__its { display: flex; flex-wrap: wrap; gap: 6px; }
.nvk-daybreak .d-oath-me__it { padding: 4px 10px; border-radius: var(--radius-pill); background: var(--ui-hc-fallen); border: 1px solid var(--ui-hc-line-ash); font: 500 13px/1.3 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-me__it--more { color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-me__iq { color: var(--ui-hc-fg-3); }

/* the calm explainer and empty states */
.nvk-daybreak .d-oath-calm { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 24px 16px 8px; text-align: center; }
.nvk-daybreak .d-oath-calm__s { max-width: 60ch; color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oath-empty .nvk-empty { padding: 24px 12px; }

/* tablets: the ladder's columns before the fell column; phones: the halls stack, the hero folds, one tier column at a time */
@container (max-width: 1100px) {
  .nvk-daybreak .d-oath-pair__g--living-wide { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-oath-pair__g--living-wide > .d-oath-hall--fallen .d-oath-rows { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); }
}
@container (max-width: 980px) {
  .nvk-daybreak .d-oath-hero { grid-template-columns: minmax(0, 1fr) 200px minmax(0, 1fr); }
  .nvk-daybreak .d-oath-hero__n { font-size: 48px; }
}
@container (max-width: 720px) {
  .nvk-daybreak .d-oath-pair__g, .nvk-daybreak .d-oath-pair__g--fallen-wide { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-oath-graves, .nvk-daybreak .d-oath-tallies { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-oath-cols { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-oath-ladder.is-switch [data-nv-hc-off] { display: none; }
  .nvk-daybreak .d-oath-ladder.is-switch .d-oath-sw:not([hidden]) { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 4px; border-radius: var(--radius-pill); background: var(--ui-hc-night); border: 1px solid var(--ui-hc-line); }
  .nvk-daybreak .d-oath-filter { justify-content: stretch; }
  .nvk-daybreak .d-oath .d-oath-filter__f { flex: 1 1 auto; }
}
@media (max-width: 760px) {
  .nvk-daybreak .d-oath { gap: 22px; padding: 16px 12px 28px; border-radius: 22px; }
  .nvk-daybreak .d-oath-hero, .nvk-daybreak .d-oath-hero--sm { grid-template-columns: minmax(0, 1fr) 132px minmax(0, 1fr); grid-template-areas: "l c f" "m m m"; row-gap: 10px; }
  .nvk-daybreak .d-oath-hero__side { padding: 14px 12px; }
  .nvk-daybreak .d-oath-hero--sm .d-oath-hero__side { padding: 12px; }
  .nvk-daybreak .d-oath-hero__side--living { grid-area: l; border-radius: 18px 0 0 18px; }
  .nvk-daybreak .d-oath-hero__side--fallen { grid-area: f; border-radius: 0 18px 18px 0; }
  .nvk-daybreak .d-oath-hero__k { font-size: 11px; letter-spacing: .08em; }
  .nvk-daybreak .d-oath-hero__n, .nvk-daybreak .d-oath-hero--sm .d-oath-hero__n { font-size: 34px; }
  .nvk-daybreak .d-oath-hero__s { display: none; }
  .nvk-daybreak .d-oath-hero__mid { display: contents; }
  .nvk-daybreak .d-oath-hero__mid > .nvk-oathc { grid-area: c; justify-self: center; align-self: center; --nvk-oathc: 132px; }
  .nvk-daybreak .d-oath-hero--sm .d-oath-hero__mid > .nvk-oathc { --nvk-oathc: 96px; }
  .nvk-daybreak .d-oath-hero__h, .nvk-daybreak .d-oath-hero__e, .nvk-daybreak .d-oath-hero__when { grid-column: 1 / -1; text-align: center; }
  .nvk-daybreak .d-oath-hero__h { font-size: 30px; }
  .nvk-daybreak .d-oath-hero--sm .d-oath-hero__h { font-size: 26px; }
  .nvk-daybreak .d-oath-tabs, .nvk-daybreak .d-oath-pick { justify-content: flex-start; }
  .nvk-daybreak .d-oath-pick { display: none; }
  .nvk-daybreak .d-oath-pickf { display: flex; margin-top: -10px; }
  .nvk-daybreak .d-oath .d-oath-pickf__f { flex: 1 1 auto; }
  .nvk-daybreak .d-oath .d-oath-pickf__f .nvk-field__label, .nvk-daybreak .d-oath .d-oath-filter__f .nvk-field__label { min-width: 52px; }
  .nvk-daybreak .d-oath .d-oath-pickf__f .nvk-field__control, .nvk-daybreak .d-oath .d-oath-filter__f .nvk-field__control { flex: 1 1 auto; min-width: 0; width: 100%; }
  .nvk-daybreak .d-oath-tabs__l, .nvk-daybreak .d-oath-pick__l { border-radius: 22px; }
  .nvk-daybreak .d-oath-hall { padding: 16px; border-radius: 20px; }
  .nvk-daybreak .d-oath-pair__h, .nvk-daybreak .d-oath-sec__h, .nvk-daybreak .d-oath-calm__h { font-size: 24px; }
  .nvk-daybreak .d-oath-tiers, .nvk-daybreak .d-oath-nums { gap: 8px; }
  .nvk-daybreak .d-oath-tier, .nvk-daybreak .d-oath-num { padding: 10px; }
  .nvk-daybreak .d-oath-bar { grid-template-columns: 84px minmax(0, 1fr) 64px; }
}
@media (prefers-reduced-motion: reduce) { .nvk-daybreak .d-oath-live__dot, .nvk-daybreak .d-oath-ev.is-new { animation: none; } }

/* in a narrower column the seven tabs sit in one row: tighter pills (they wrap only when even that does not fit) */
@container (min-width: 721px) and (max-width: 940px) {
  .nvk-daybreak .d-oath-tabs__l { gap: 0; padding: 3px; }
  .nvk-daybreak .d-oath-tab__a { padding: 0 10px; font-size: 13.5px; }
}
@media (min-width: 1301px) and (max-width: 1500px) { .nvk-daybreak .d-oath-pg .d-oath { padding: 28px 24px 40px; } }

/* ---- Oath hub H3 (2026-10-21): the Hardcore badge (kit HcBadge) beside names outside the hub: the public profile (.pp-hc, a link into the
   Oath hall), the Hall of Legends cards and Top players rows (.hl-hc), the PvP boards (.pv-hc). The rankings use the RankList / RankPodium
   badge slot. The badge keeps its Frost Oath night pill in every look. */
.nvk-daybreak .hl-hc, .nvk-daybreak .pv-hc { display: flex; margin: 2px 0; line-height: 0; }
.nvk-daybreak .pv-pod .pv-hc { justify-content: center; }
/* Audit fixes D3 (2026-10-22): on a Hall of Legends champion card (about 176px beside the initial) the one-line badge "Hardcore | Eternal,
   from Season 1" ran 70px past the card edge. In a champion card the badge is two lines: the glyph, the word and the crown on top, the
   state under them (and it wraps if it still does not fit), so it always stays inside the card. */
.nvk-daybreak .hl-champ__who > span { min-width: 0; }
.nvk-daybreak .hl-champ .nvk-hcb { display: inline-grid; grid-template-columns: 20px max-content minmax(0, 1fr); justify-content: start; align-items: center; gap: 0 6px; max-width: 100%; padding: 3px 10px 4px 3px; border-radius: var(--radius-md); white-space: normal; }
.nvk-daybreak .hl-champ .nvk-hcb__g { grid-area: 1 / 1; }
.nvk-daybreak .hl-champ .nvk-hcb__t { grid-area: 1 / 2; }
.nvk-daybreak .hl-champ .nvk-hcb > .nvk-icon { grid-area: 1 / 3; justify-self: start; }
.nvk-daybreak .hl-champ .nvk-hcb__s { grid-area: 2 / 1 / 3 / 4; min-width: 0; padding-left: 5px; border-left: 0; overflow-wrap: break-word; }
.nvk-daybreak .pp-hc { display: inline-flex; align-items: center; min-height: 44px; border-radius: var(--radius-pill); text-decoration: none; }
.nvk-daybreak .pp-hc:hover .nvk-hcb { box-shadow: inset 0 0 0 2px var(--ui-hc-ice); }
.nvk-daybreak .pp-hc:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }

/* ---- Oath hub H3: the Cockpit station 'The Oath' (control/hardcore.php, Halls III). A Frost Oath hero (night, the still Iron Warden crest,
   ice ink, three numbers) above cockpit cards for the player's living and fallen oathsworn (kit HcBadge on each) and the doors into the hub. */
.nvk-daybreak .d-oathcp-hero { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-4) var(--space-5); align-items: center; margin: 0;
  padding: var(--space-5); border-radius: 28px; background: var(--ui-hc-night); box-shadow: inset 0 0 0 1px var(--ui-hc-line-ice), var(--shadow-sm); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oathcp-hero .nvk-oathc { --nvk-oathc: 128px; }
.nvk-daybreak .d-oathcp-hero__m { min-width: 0; }
.nvk-daybreak .d-oathcp-hero__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-hc-ice); }
.nvk-daybreak .d-oathcp-hero__h { margin: 4px 0 0; border: 0; font: 700 26px/32px var(--disp); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oathcp-hero__p { margin: 6px 0 0; font: 500 15px/22px var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oathcp-nums { display: flex; gap: var(--space-3); margin: 0; }
.nvk-daybreak .d-oathcp-num { display: flex; flex-direction: column-reverse; align-items: center; min-width: 104px; margin: 0; padding: 12px 14px; border-radius: 20px;
  background: var(--ui-hc-living); box-shadow: inset 0 0 0 1px var(--ui-hc-line-ice); text-align: center; }
.nvk-daybreak .d-oathcp-num.is-ash { background: var(--ui-hc-fallen); box-shadow: inset 0 0 0 1px var(--ui-hc-line-ash); }
.nvk-daybreak .d-oathcp-num dt { margin: 2px 0 0; font: 600 12px/16px var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oathcp-num dd { margin: 0; font: 700 28px/32px var(--disp); color: var(--ui-hc-ice); }
.nvk-daybreak .d-oathcp-num.is-ash dd { color: var(--ui-hc-bronze); }
.nvk-daybreak .d-oathcp-num dd span { font: 600 13px/16px var(--body); color: var(--ui-hc-fg-2); }
.nvk-daybreak .d-oathcp-list, .nvk-daybreak .d-oathcp-doors { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-oathcp-doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nvk-daybreak .d-oathcp-doors > li { margin: 0; list-style: none; }
.nvk-daybreak .d-oathcp .d-oathcp-doors a.d-oathcp-door { display: flex; align-items: center; gap: 12px; min-height: 60px; height: 100%; box-sizing: border-box; padding: 10px 16px 10px 10px; border-radius: 22px;
  background: var(--ui-surface-2); color: var(--ui-fg); text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring), box-shadow var(--t-fast); }
.nvk-daybreak .d-oathcp-door:hover { transform: translateY(-2px); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-oathcp-door:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-oathcp-door__i { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: var(--radius-pill);
  background: var(--ui-hc-night); color: var(--ui-hc-ice); }
.nvk-daybreak .d-oathcp-door__m { display: flex; flex: 1 1 auto; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-oathcp-door__t { font: 700 15px/20px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-oathcp-door__s { font: 500 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-oathcp-door > .nvk-icon:last-child { flex: none; color: var(--ui-fg-3); }
.nvk-daybreak .d-oathcp-ch { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; margin: 0; padding: 10px 14px;
  border-radius: 18px; background: var(--ui-surface-2); list-style: none; }
.nvk-daybreak .d-oathcp-ch__m { display: flex; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-oathcp-ch__n { font: 700 16px/22px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-oathcp-ch__s { font: 500 13px/18px var(--body); color: var(--ui-fg-2); }
@media (max-width: 860px) {
  .nvk-daybreak .d-oathcp-hero { grid-template-columns: auto minmax(0, 1fr); padding: var(--space-4); }
  .nvk-daybreak .d-oathcp-hero .nvk-oathc { --nvk-oathc: 88px; }
  .nvk-daybreak .d-oathcp-nums { grid-column: 1 / -1; }
  .nvk-daybreak .d-oathcp-num { flex: 1 1 0; min-width: 0; padding: 10px 8px; }
  .nvk-daybreak .d-oathcp-num dd { font-size: 24px; line-height: 28px; }
  .nvk-daybreak .d-oathcp-doors { grid-template-columns: minmax(0, 1fr); }
}

/* Hardcore Flagship HF7: the week's Oath Gauntlet on the overview */
.nvk-daybreak .d-oath-gauntlet { list-style: decimal inside; margin: 0 0 var(--s-5, 24px); padding: 0; display: grid; gap: 6px; }
.nvk-daybreak .d-oath-gauntlet__row { padding: 10px 14px; border-radius: 12px; background: var(--ui-hc-living-2); color: var(--ui-hc-fg); font: 500 14px/1.45 var(--body); }
.nvk-daybreak .d-oath-gauntlet__name { font-weight: 700; }
.nvk-daybreak .d-oath-gauntlet__line { color: var(--ui-hc-fg-2); }

/* Hardcore Flagship HF9: the death replay's HP line and the lessons */
.nvk-daybreak .d-oath-hpline { display: block; width: 100%; max-width: 240px; height: 60px; margin: 6px 0; color: var(--ui-hc-ice); }
.nvk-daybreak .d-oath-lessons { margin-top: 8px; padding: 10px 12px; border-radius: 12px; background: var(--ui-hc-living-2); }
.nvk-daybreak .d-oath-lessons__h { margin: 0 0 4px; font: 700 13px/1.4 var(--body); color: var(--ui-hc-fg); }
.nvk-daybreak .d-oath-lessons__l { margin: 0; padding-left: 18px; font: 400 14px/1.45 var(--body); color: var(--ui-hc-fg-2); }
}

/* _base/patron.css */
@layer pages{
/* Cockpit Patron V, the Tier ascent (owner pick A of the 'NirvanaRO Cockpit Patron' canvas, 2026-10-21). Markup: control/plus.php (Nirvana+),
   customize.php, wallet.php (lib/nv_daybreak_patron.php nv_dpa_*), every look (the Cockpit frame wraps the Anime look in .nvk-daybreak).
   Kit TierStop, AscentTrack, CapStops and BalanceIsland draw the tiers, the streak ladder, the owned / cap stops and the balance island; this
   file lays the stations out: the ascent and its call to action, the Gift Nirvana+ card, the chapter tabs as pills, the perk meters, the
   Patron systems, the Happy Hour island, the unlock ladders and the Wallet. Container queries: the stations follow their own width (the site
   menu and the Cockpit rail both stay in view). Muted text is --ui-fg-2 (--ui-island-fg-2 on islands), never opacity. */
.nvk-daybreak .d-pa-page { display: flex; flex-direction: column; gap: 24px; min-width: 0; container: d-pa / inline-size; }
.nvk-daybreak .d-pa-panel { display: flex; flex-direction: column; gap: 16px; min-width: 0; padding: 20px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-pa-panel > .nvk-empty, .nvk-daybreak .d-pa-panel > .nvk-callout { margin: 0; }
.nvk-daybreak .d-pa-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 16px; min-width: 0; }
.nvk-daybreak .d-pa-head__m { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 220px; }
.nvk-daybreak .d-pa-head__r { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px 12px; min-width: 0; flex: 0 1 auto; }
.nvk-daybreak .d-pa-head__r .d-pa-line { max-width: 46ch; }
.nvk-daybreak .d-pa-eye { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-h2 { margin: 0; border: 0; padding: 0; font: 700 22px/28px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-pa-h3 { margin: 0; border: 0; padding: 0; font: 700 17px/22px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-pa-line { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-line--strong { color: var(--ui-fg); font-weight: 600; }
.nvk-daybreak .d-pa-p { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-daybreak .d-pa-p b, .nvk-daybreak .d-pa-line b { color: var(--ui-fg); }
.nvk-daybreak .d-pa-p--warn { color: var(--ui-fg); }
.nvk-daybreak .d-pa-p--warn b { color: var(--ui-warn); }
.nvk-daybreak .d-pa-p--ok { color: var(--ui-ok); font-weight: 600; }
.nvk-daybreak .d-pa-p code, .nvk-daybreak .d-pa-line code, .nvk-daybreak .d-pa-cmd code, .nvk-daybreak .d-pa-benefit__d code { font: 600 13px/18px monospace; padding: 1px 6px; border-radius: var(--radius-sm); background: var(--ui-sunken); color: var(--ui-fg); }
.nvk-daybreak .d-pa-link { display: inline-flex; align-items: center; min-height: 44px; color: var(--ui-link); text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.nvk-daybreak .d-pa-link:hover { color: var(--ui-fg); }
.nvk-daybreak .d-pa-row { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; min-width: 0; }
.nvk-daybreak .d-pa-row > form { margin: 0; }
.nvk-daybreak .d-pa-stack { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nvk-daybreak .d-pa-stack > form { margin: 0; }
.nvk-daybreak .d-pa-inline { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; margin: 0; }
.nvk-daybreak .d-pa-inline .d-pa-field { flex: 1 1 160px; }
.nvk-daybreak .d-pa-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; min-width: 0; align-items: start; }
.nvk-daybreak .d-pa-grid2--tight { gap: 12px; }
.nvk-daybreak .d-pa-grid3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; min-width: 0; align-items: start; }
.nvk-daybreak .d-pa-num { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 12px; }
.nvk-daybreak .d-pa-num b { font: 800 28px/1 var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-pa-num span { font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-narrow { width: 80px; }

/* ---- fields ---- */
.nvk-daybreak .d-pa-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; font: 700 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-field > label, .nvk-daybreak .d-pa-field > span, .nvk-daybreak .d-pa-field > legend { margin: 0; padding: 0; text-transform: none; letter-spacing: 0; background: transparent; border: 0; font: 700 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-field small { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-field .nvk-field__control { min-height: 44px; box-sizing: border-box; width: 100%; }

/* ---- cards ---- */
.nvk-daybreak .d-pa-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; height: 100%; box-sizing: border-box; padding: 16px; border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nvk-daybreak .d-pa-card__h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; min-width: 0; }
.nvk-daybreak .d-pa-card--sunken { background: var(--ui-sunken); border-color: var(--ui-sunken); }
.nvk-daybreak .d-pa-card .nvk-btn { align-self: flex-start; }
.nvk-daybreak .d-pa-sub { display: flex; flex-direction: column; gap: 6px; padding: 12px; border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-daybreak .d-pa-kv { display: flex; flex-direction: column; margin: 0; padding: 0; }
.nvk-daybreak .d-pa-kv > div { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--ui-line); font: 400 14px/20px var(--body); }
.nvk-daybreak .d-pa-kv dt { margin: 0; color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-kv dd { margin: 0; color: var(--ui-fg); text-align: right; }

/* ---- the ascent: three tier stops on a track ---- */
.nvk-daybreak .d-pa-tiers { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 0; padding: 24px 0 0; list-style: none; min-width: 0; }
.nvk-daybreak .d-pa-tiers::before { content: ""; position: absolute; z-index: 0; left: 8%; right: 8%; top: 52px; height: 4px; border-radius: var(--radius-pill); background: linear-gradient(90deg, var(--ui-brand), var(--ui-island-gold)); }
.nvk-daybreak .d-pa-tiers > li { position: relative; z-index: 1; display: block; min-width: 0; margin: 0; padding: 0; }
.nvk-daybreak .d-pa-panel--ascent .nvk-ascent { padding: 16px; border-radius: var(--radius-md); background: var(--ui-surface-2, var(--ui-sunken)); }
.nvk-daybreak .d-pa-cta { display: flex; flex-direction: column; gap: 8px; padding-top: 16px; border-top: 1px solid var(--ui-line); }
.nvk-daybreak .d-pa-cta__b { display: flex; flex-wrap: wrap; gap: 8px; }

/* ---- Gift Nirvana+ ---- */
.nvk-daybreak .d-pa-gift { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 20px; min-width: 0; align-items: start; }
.nvk-daybreak .d-pa-gift__form { display: flex; flex-direction: column; gap: 14px; min-width: 0; margin: 0; padding: 16px; border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-daybreak .d-pa-gift__go { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.nvk-daybreak .d-pa-gift__mine { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.nvk-daybreak .d-pa-segs { flex-direction: row; flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .d-pa-segs > legend { flex: 0 0 100%; margin-bottom: 6px; }
.nvk-daybreak .d-pa-seg { position: relative; display: inline-flex; flex: 1 1 140px; min-width: 0; cursor: pointer; }
.nvk-daybreak .d-pa-seg input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.nvk-daybreak .d-pa-seg span { display: flex; flex-direction: column; justify-content: center; flex: 1 1 auto; min-height: 44px; box-sizing: border-box; padding: 6px 14px; border: 1px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); font: 700 14px/18px var(--body); }
.nvk-daybreak .d-pa-seg small { font: 500 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-seg input:checked + span { background: var(--ui-island); border-color: var(--ui-island); color: var(--ui-island-fg); box-shadow: inset 0 0 0 2px var(--ui-island-gold); }
.nvk-daybreak .d-pa-seg input:checked + span small { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-pa-seg input:focus-visible + span { outline: 3px solid var(--ui-focus, var(--ui-brand)); outline-offset: 2px; }
.nvk-daybreak .d-pa-gifts { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-pa-gifts__i { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nvk-daybreak .d-pa-gifts__h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; font: 700 15px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-gifts__acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.nvk-daybreak .d-pa-gifts__acts > form { margin: 0; }
.nvk-daybreak .d-pa-gotgift { display: flex; align-items: flex-start; gap: 12px; padding: 14px 18px; border-radius: var(--radius-lg); background: var(--ui-island); color: var(--ui-island-fg); border: 1px solid var(--ui-island-line); }
.nvk-daybreak .d-pa-gotgift p { margin: 0; font: 500 15px/22px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-pa-gotgift b { color: var(--ui-island-fg); }
.nvk-daybreak .d-pa-gotgift__dot { flex: none; width: 10px; height: 10px; margin-top: 6px; border-radius: var(--radius-pill); background: var(--ui-island-gold); }
.nvk-daybreak .d-pa-dlg { margin: 0; font: 400 15px/22px var(--body); color: var(--ui-fg); }

/* ---- the chapter tabs as pills ---- */
.nvk-daybreak .d-pa-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; padding: 6px; border: 0; border-radius: var(--radius-pill); background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-pa-tabs .nvk-tab { min-height: 44px; margin: 0; padding: 0 18px; border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ui-fg-2); font: 700 15px/20px var(--body); box-shadow: none; }
.nvk-daybreak .d-pa-tabs .nvk-tab:hover { color: var(--ui-fg); background: var(--ui-sunken); }
.nvk-daybreak .d-pa-tabs .nvk-tab[aria-selected="true"] { background: var(--ui-island); color: var(--ui-island-fg); }
.nvk-daybreak .nv-plus-tabpanel.active { display: flex; flex-direction: column; gap: 24px; min-width: 0; }

/* ---- perks, live ---- */
.nvk-daybreak .d-pa-meters { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-pa-meter { display: flex; flex-direction: column; gap: 8px; min-width: 0; padding: 14px; border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-daybreak .d-pa-meter__n { font: 700 14px/18px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-meter__v { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px; font: 800 18px/1.2 var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-pa-meter__r { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-meter .nvk-meter { background: var(--ui-surface); }
.nvk-daybreak .d-pa-meter .nvk-meter::-webkit-progress-bar { background: var(--ui-surface); }
.nvk-daybreak .d-pa-bars { display: flex; align-items: flex-end; gap: 3px; height: 64px; min-width: 0; }
.nvk-daybreak .d-pa-bar { flex: 1 1 0; min-width: 2px; height: max(2px, var(--v, 0%)); border-radius: 3px 3px 0 0; background: var(--ui-brand); }
.nvk-daybreak .d-pa-bars--muted .d-pa-bar { background: var(--ui-fg-2); }
.nvk-daybreak .d-pa-cmd .nvk-btn__label { display: inline-flex; align-items: center; gap: 8px; }
.nvk-daybreak .d-pa-cmd small { font: 500 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-benefit { display: flex; align-items: flex-start; gap: 8px; min-width: 0; padding-top: 8px; border-top: 1px solid var(--ui-line); }
.nvk-daybreak .d-pa-benefit > div { min-width: 0; font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-benefit__d { font: 400 12px/18px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-daybreak .d-pa-benefit__d a { color: var(--ui-link); text-decoration: underline; text-underline-offset: 2px; }
.nvk-daybreak .d-pa-benefit .nvk-chip { flex: none; }

/* ---- Patron systems ---- */
.nvk-daybreak .d-pa-list { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-pa-list > li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 12px; padding: 8px 0; border-top: 1px solid var(--ui-line); }
.nvk-daybreak .d-pa-list > li > div { display: flex; flex-direction: column; min-width: 0; flex: 1 1 160px; font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-list > li > div span { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-list > li > form { margin: 0; }
.nvk-daybreak .d-pa-hh { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 16px; padding: 20px; border-radius: var(--radius-lg); background: var(--ui-island); color: var(--ui-island-fg); border: 1px solid var(--ui-island-line); box-shadow: var(--shadow-island); }
.nvk-daybreak .d-pa-hh__dot { flex: none; width: 52px; height: 52px; border-radius: var(--radius-pill); background: var(--ui-island-2); box-shadow: inset 0 0 0 4px var(--ui-island-gold); }
.nvk-daybreak .d-pa-hh.is-live .d-pa-hh__dot { background: var(--ui-island-gold); }
.nvk-daybreak .d-pa-hh__m { display: flex; flex-direction: column; gap: 10px; flex: 1 1 280px; min-width: 0; }
.nvk-daybreak .d-pa-hh .d-pa-h3 { color: var(--ui-island-fg); }
.nvk-daybreak .d-pa-hh .d-pa-p { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-pa-hh__f { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0; }
.nvk-daybreak .d-pa-hh__or { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; font: 500 14px/20px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-pa-hh__or label { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-pa-hh .nvk-btn--ghost { --_bg: transparent; --_bd: var(--ui-island-fg-2); --_fg: var(--ui-island-fg); }
.nvk-daybreak .d-pa-hh .nvk-field__control { min-height: 44px; box-sizing: border-box; }

/* ---- community ---- */
.nvk-daybreak .d-pa-vote { display: flex; flex-direction: column; gap: 6px; }
.nvk-daybreak .d-pa-vote__h { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-vote__h small { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-votebtn { min-height: 44px; }
.nvk-daybreak .nv-plus-vote-pct { color: var(--ui-fg-2); }

/* ---- Customize: unlock ladders ---- */
.nvk-daybreak .d-pa-skus { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-pa-sku { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; min-width: 0; padding: 16px; border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-daybreak .d-pa-sku__m { display: flex; flex-direction: column; gap: 8px; flex: 1 1 300px; min-width: 0; }
.nvk-daybreak .d-pa-sku__r { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; flex: 0 1 300px; min-width: 0; }
.nvk-daybreak .d-pa-sku__r > form { margin: 0; }
.nvk-daybreak .d-pa-sku__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.nvk-daybreak .d-pa-sku .nvk-capstops__s:not(.nvk-capstops--done):not(.nvk-capstops--next) { background: var(--ui-surface); }
.nvk-daybreak .d-pa-sku .nvk-capstops--next { box-shadow: 0 0 0 3px var(--ui-sunken), 0 0 0 5px var(--ui-island); }
.nvk-daybreak .d-pa-giftc { padding-top: 12px; border-top: 1px solid var(--ui-line); }
.nvk-daybreak .d-pa-giftc__t { font: 700 15px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pa-cell2 { display: block; font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-cell2--in { display: inline; }

/* ---- Wallet ---- */
.nvk-daybreak .d-pa-wtop { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 16px; min-width: 0; align-items: start; }
.nvk-daybreak .d-pa-where { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-pa-where > li { display: flex; flex-direction: column; gap: 4px; }
.nvk-daybreak .d-pa-csv { display: flex; flex-direction: column; gap: 10px; margin: 0; padding: 16px; border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nvk-daybreak .d-pa-csv .d-pa-field { flex: 1 1 140px; }
.nvk-daybreak .d-pa-trivia { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0 0 0 18px; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pa-trivia b { color: var(--ui-fg); }

/* ---- the station's own width ---- */
@container d-pa (max-width: 1000px) {
  .nvk-daybreak .d-pa-meters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvk-daybreak .d-pa-grid3--inc { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container d-pa (max-width: 860px) {
  .nvk-daybreak .d-pa-grid3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nvk-daybreak .d-pa-wtop { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-pa-gift { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-pa-grid2--wide { grid-template-columns: minmax(0, 1fr); }
}
@container d-pa (max-width: 700px) {
  .nvk-daybreak .d-pa-tiers { grid-template-columns: minmax(0, 1fr); gap: 28px; padding-top: 18px; }
  .nvk-daybreak .d-pa-tiers::before { left: 22px; right: auto; top: 0; bottom: 0; width: 4px; height: auto; background: linear-gradient(180deg, var(--ui-brand), var(--ui-island-gold)); }
  .nvk-daybreak .d-pa-tiers > li { padding-left: 0; }
  .nvk-daybreak .d-pa-grid2, .nvk-daybreak .d-pa-grid3, .nvk-daybreak .d-pa-grid3--inc { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-pa-meters { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-pa-panel { padding: 16px; }
  .nvk-daybreak .d-pa-cta__b > .nvk-btn { flex: 1 1 100%; }
  .nvk-daybreak .d-pa-tabs { border-radius: var(--radius-lg); }
  .nvk-daybreak .d-pa-tabs .nvk-tab { flex: 1 1 calc(50% - 6px); }
  .nvk-daybreak .d-pa-sku__r { flex-basis: 100%; }
}
.nvk-daybreak .d-pa-cmd.copied { background: var(--ui-brand-tint); color: var(--ui-link); }
.nvk-daybreak .d-pa-fold { display: block; margin: 0; }
.nvk-daybreak .d-pa-fold > summary { display: flex; align-items: center; min-height: 44px; cursor: pointer; font: 700 15px/20px var(--body); color: var(--ui-link); }
.nvk-daybreak .d-pa-fold[open] > summary { margin-bottom: 12px; }
.nvk-daybreak .d-pa-grid2 > :only-child { grid-column: 1 / -1; }
.nvk-daybreak .d-pa-fold:not([open]) > :not(summary) { display: none; }
.nvk-daybreak .d-pa-buys > li { flex-wrap: nowrap; align-items: flex-start; justify-content: flex-start; }
}

/* _base/public-float.css */
@layer pages{
/* PublicShell + the floating PublicNav (2026-10-17). Layer pages: it must beat the wallpaper rules of daybreak-landing.css and daybreak-site.css. */
/* The bar floats over the page's own art: on an unframed page (the landing, the converted pages) the wallpaper (.nvl-bg) reaches up under the bar. */
.nvk-public { --nvk-bar-h: calc(64px + var(--space-4)); }
.nvk-pubnav + .nvk-public__main:not(.nvk-public__main--framed) .nvl-bg { top: calc(-1 * (var(--nvk-bar-h) + var(--space-6))); padding-top: calc(var(--nvk-bar-h) + var(--space-6)); box-sizing: content-box; }   /* + 32px: some pages start their art a little below the bar; what reaches above the page top is never painted */
@media (max-width: 760px) { .nvk-public { --nvk-bar-h: calc(60px + var(--space-3)); } }
}

/* _base/rankings2.css */
@layer pages{
/* Rankings, Option A of the canvas 'NirvanaRO Rankings' (owner 2026-10-19): the page around BoardSwitch, RankPodium and RankList. */
.d-rk2 .d-pg { display: flex; flex-direction: column; gap: var(--space-5); }
.d-rk2-head { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-6) 0 0; text-align: center; }
.d-rk2-eye { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-link); }
.d-rk2-h1 { margin: 0; font: 700 44px/50px var(--disp); color: var(--ui-fg); text-wrap: balance; }
.d-rk2-sec { display: flex; flex-direction: column; gap: var(--space-4); }
.d-rk2-sechead { text-align: center; }
.d-rk2-h2 { margin: 0; font: 700 26px/32px var(--disp); color: var(--ui-fg); }
.d-rk2-hint { margin: var(--space-1) 0 0; font: 400 15px/22px var(--body); color: var(--ui-fg-2); }
.d-rk2-bar { display: flex; flex-wrap: wrap; gap: var(--space-3); align-items: flex-end; justify-content: center; }
.d-rk2-bar .d-rk-filter { margin: 0; }
.d-rk2-tools { display: flex; gap: var(--space-2); align-items: center; }
.d-rk2-q { box-sizing: border-box; min-width: 0; width: min(360px, 70vw); height: 48px; padding: 0 20px; border: 1px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); color: var(--ui-fg); font: 500 15px/48px var(--body); }
.d-rk2-q:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.d-rk2-none { margin: 0; text-align: center; font: 400 15px/22px var(--body); color: var(--ui-fg-2); }
.d-rk2-board { display: flex; flex-direction: column; gap: var(--space-4); }
@media (max-width: 860px) { .d-rk2-h1 { font-size: 30px; line-height: 36px; } }
.nvk-daybreak .d-rk2 a.nvk-ranklist__name, .nvk-daybreak .d-rk2 a.nvk-podium__name { text-decoration: none; }   /* beats the prose link underline of the pages layer */
.nvk-daybreak .d-rk2 a.nvk-ranklist__name:hover, .nvk-daybreak .d-rk2 a.nvk-podium__name:hover { text-decoration: underline; }
}

/* _base/realm.css */
@layer pages{
/* Cockpit Realm VI and the Index, the Control room (owner pick B of the 'NirvanaRO Cockpit Realm and Index' canvas, 2026-10-21). Markup:
   control/navigator.php, residents.php, cast.php, account.php (the Preferences block of the home view), sentry.php, bugreport.php,
   stations.php (lib/nv_daybreak_realm.php nv_drl_*), every look (the Cockpit frame wraps the Anime look in .nvk-daybreak). Kit NavConsole and
   NavRow draw the Navigator's console and rows; kit MirrorSplit + Mirror the dark right-hand column (the Automation circle's Island mirror);
   this file lays out the light work column, the dense tables, the dark column's rows and the console's search and Open now toggle. Container
   queries: the lists follow their own width (the site menu and the Cockpit rail both stay in view). Muted text is --ui-fg-2 / --ui-fg-3
   (--ui-island-fg-2 on islands), never opacity. */
.nvk-daybreak .d-rl-page { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.nvk-daybreak .d-rl-page .nvk-msplit { margin: 0; }
.nvk-daybreak .d-rl-panel { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 20px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); container: d-rl / inline-size; }
.nvk-daybreak .d-rl-panel > .nvk-callout, .nvk-daybreak .d-rl-panel > .nvk-empty { margin: 0; }
.nvk-daybreak .d-rl-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; min-width: 0; }
.nvk-daybreak .d-rl-head__r { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; min-width: 0; }
.nvk-daybreak .d-rl-h2 { margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-rl-h3 { margin: 0; padding: 0; border: 0; font: 700 16px/22px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-rl-cap { margin: 0; font: 400 12px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-rl-p { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-daybreak .d-rl-p b { color: var(--ui-fg); }
.nvk-daybreak .d-rl-p code, .nvk-daybreak .d-rl-card code, .nvk-daybreak .d-rl-table code { font: 600 13px/18px monospace; padding: 1px 6px; border-radius: var(--radius-sm); background: var(--ui-sunken); color: var(--ui-fg); }
.nvk-daybreak .d-rl-lbl { margin: 0; padding: 0; border: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-rl-card { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 20px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-rl-card .nvk-disclosure { margin: 0; }
.nvk-daybreak .d-rl-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; min-width: 0; }
.nvk-daybreak .d-rl-row > form { margin: 0; }

/* ---- the Navigator: console controls ---- */
.nvk-daybreak .d-rl-find { display: flex; flex-direction: column; gap: 6px; flex: 1 1 320px; min-width: 0; }
.nvk-daybreak .d-rl-find__l { font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-daybreak .d-rl-find__in { width: 100%; min-height: 52px; margin: 0; padding: 0 20px; border: 1px solid var(--ui-island-line); border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); font: 400 16px/1 var(--body); box-sizing: border-box; }
.nvk-daybreak .d-rl-find__in::placeholder { color: var(--ui-island-fg-2); }
.nvk-daybreak .d-rl-find__in:focus-visible { outline: 2px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak .d-rl-openform { margin: 0; flex: none; }
.nvk-daybreak .d-rl-open { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 20px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); font: 700 15px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-rl-open__dot { width: 12px; height: 12px; border-radius: var(--radius-pill); box-shadow: inset 0 0 0 2px var(--ui-island-fg-2); }
.nvk-daybreak .d-rl-open.is-on { background: var(--ui-surface); color: var(--ui-fg); }
.nvk-daybreak .d-rl-open.is-on .d-rl-open__dot { background: var(--ui-ok); box-shadow: none; }
.nvk-daybreak .d-rl-open:focus-visible { outline: 2px solid var(--ui-island-gold); outline-offset: 2px; }

/* ---- the Navigator: results ---- */
.nvk-daybreak .d-rl-panel.d-rl-nlist { container-name: d-rl nvk-nlist; gap: 4px; }
.nvk-daybreak .d-rl-band { display: flex; flex-direction: column; gap: 4px; min-width: 0; padding-top: 8px; scroll-margin-top: 96px; }
.nvk-daybreak .d-rl-band[hidden], .nvk-daybreak .d-rl-cat[hidden], .nvk-daybreak .d-rl-none[hidden] { display: none; }
.nvk-daybreak .d-rl-band + .d-rl-band { margin-top: 12px; }
.nvk-daybreak .d-rl-bandh { margin: 0; padding: 0; border: 0; font: 800 13px/18px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-fg); }
.nvk-daybreak .d-rl-bandh .d-rl-cap { letter-spacing: 0; text-transform: none; font-weight: 600; }
.nvk-daybreak .d-rl-cat { display: flex; flex-direction: column; min-width: 0; }
.nvk-daybreak .d-rl-cat__h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 4px 12px; min-height: 44px; padding: 6px 0; border-bottom: 2px solid var(--ui-island); cursor: pointer; list-style: none; }
.nvk-daybreak .d-rl-cat__h::-webkit-details-marker { display: none; }
.nvk-daybreak .d-rl-cat__h .d-rl-h3::before { content: '+'; display: inline-block; width: 18px; color: var(--ui-fg-2); }
.nvk-daybreak details[open] > .d-rl-cat__h .d-rl-h3::before { content: '\2212'; }
.nvk-daybreak .d-rl-cat__h:focus-visible { outline: 2px solid var(--ui-link); outline-offset: 2px; }
.nvk-daybreak .d-rl-cat__h .d-rl-h3 { display: inline; }

/* ---- the dark column ---- */
.nvk-daybreak .d-rl-mrows { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-rl-mrows li { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 10px; min-height: 44px; padding: 4px 0; border-top: 1px solid var(--ui-island-line); }
.nvk-daybreak .d-rl-card .d-rl-mrows li { border-top-color: var(--ui-line); }
.nvk-daybreak .d-rl-mrows__m { flex: 1 1 140px; min-width: 0; font: 400 14px/20px var(--body); overflow-wrap: anywhere; }
.nvk-daybreak .nvk-mirror .d-rl-mrows__m b { color: var(--ui-island-fg); }
.nvk-daybreak .d-rl-card .d-rl-mrows__m b { color: var(--ui-fg); }
.nvk-daybreak .d-rl-mrows__s { flex: none; font: 400 13px/18px var(--body); }
.nvk-daybreak .nvk-mirror .d-rl-mrows code { font: 600 12px/18px monospace; padding: 1px 6px; border-radius: var(--radius-sm); background: var(--ui-island-2); color: var(--ui-island-fg); }
.nvk-daybreak .d-rl-unpin { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 14px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); font: 700 13px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-rl-unpin:focus-visible { outline: 2px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak .d-rl-kv { display: flex; flex-direction: column; margin: 0; }
.nvk-daybreak .d-rl-kv > div { display: grid; grid-template-columns: minmax(0, 110px) minmax(0, 1fr); gap: 10px; align-items: center; min-height: 40px; border-top: 1px solid var(--ui-island-line); }
.nvk-daybreak .d-rl-kv dt { margin: 0; font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-rl-kv dd { margin: 0; font: 700 14px/20px var(--body); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-rl-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 16px; border: 0; border-radius: var(--radius-pill); font: 700 14px/1 var(--body); text-decoration: none; cursor: pointer; }
.nvk-daybreak .d-rl-btn--ghost { background: var(--ui-island-2); color: var(--ui-island-fg); }
.nvk-daybreak .d-rl-btn--line { background: transparent; color: var(--ui-fg); box-shadow: inset 0 0 0 1px var(--ui-line-strong); }
.nvk-daybreak .d-rl-btn:focus-visible { outline: 2px solid var(--ui-link); outline-offset: 2px; }
.nvk-daybreak .nvk-mirror .d-rl-btns { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .nvk-mirror .nvk-callout { margin: 0; }
.nvk-daybreak .nvk-mirror .d-rl-lbl { color: var(--ui-island-fg-2); }

/* ---- dense tables (Townsfolk, Security, the Index) ---- */
.nvk-daybreak .d-rl-tablewrap { min-width: 0; overflow-x: auto; }
.nvk-daybreak .d-rl-table { width: 100%; border-collapse: collapse; font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-rl-table th { padding: 8px 12px 8px 0; border-bottom: 2px solid var(--ui-island); text-align: left; font: 700 12px/16px var(--body); color: var(--ui-fg-2); white-space: nowrap; }
.nvk-daybreak .d-rl-table td { padding: 10px 12px 10px 0; border-bottom: 1px solid var(--ui-line); vertical-align: middle; overflow-wrap: anywhere; }
.nvk-daybreak .d-rl-table .d-rl-num { text-align: right; font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-rl-table td a { color: var(--ui-link); font-weight: 700; }
.nvk-daybreak .d-rl-table .d-rl-dim { color: var(--ui-fg-2); }
.nvk-daybreak .d-rl-table .d-rl-quote { font-style: italic; color: var(--ui-fg-2); }
@container d-rl (max-width: 420px) {
  /* audit fixes D (2026-10-22): the stacked rows sat in a body the legacy phone rule (css/mobile.css: tbody min-width max-content) sized to
     every cell on one line (2,111px on the Index at 390), so a row's later cells were cut at the card edge. The table and its body are
     plain blocks no wider than the card here, and the rows wrap inside it. */
  .nvk-daybreak .d-rl-table, .nvk-daybreak .d-rl-table tbody { display: block; width: 100%; min-width: 0; }
  .nvk-daybreak .d-rl-table td { min-width: 0; }
  .nvk-daybreak .d-rl-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .nvk-daybreak .d-rl-table tr { display: flex; flex-wrap: wrap; gap: 2px 12px; padding: 10px 0; border-bottom: 1px solid var(--ui-line); }
  .nvk-daybreak .d-rl-table td { padding: 0; border: 0; }
  .nvk-daybreak .d-rl-table td:first-child { flex: 1 1 100%; }
}

/* ---- Report a problem: the screenshot field and its preview link ---- */
.nvk-daybreak .d-rl-shot { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.nvk-daybreak .d-rl-shot__l { font: 700 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-rl-shot__h { font: 400 12px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-rl-form input[type=file] { min-height: 44px; max-width: 100%; font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-rl-form input[type=file]::file-selector-button { min-height: 40px; margin-right: 12px; padding: 0 16px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); font: 700 14px/1 var(--body); cursor: pointer; }
.nvk-daybreak .d-rl-shotlink { color: var(--ui-island-blue); font-weight: 700; }
.nvk-daybreak .d-rl-shotimg { display: block; max-width: 100%; height: auto; border-radius: var(--radius-sm); }
.nvk-daybreak .d-rl-mrows__sub { display: block; font: 400 12px/17px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-rl-card .d-rl-mrows__sub { color: var(--ui-fg-2); }
.nvk-daybreak .d-rl-form { margin: 0; }
.nvk-daybreak .d-rl-who { display: inline-flex; align-items: center; gap: 10px; min-width: 0; }
.nvk-daybreak .d-rl-who__art { flex: none; width: 36px; height: 36px; border-radius: var(--radius-pill); object-fit: cover; background: var(--ui-sunken); }
.nvk-daybreak .d-rl-dim { color: var(--ui-fg-2); }
.nvk-daybreak .d-rl-quote { font-style: italic; color: var(--ui-fg-2); }
.nvk-daybreak .nvk-mirror .d-rl-standing { width: 100%; min-height: 44px; box-sizing: border-box; }
.nvk-daybreak .nvk-mirror .d-rl-shotlink { display: inline-block; margin-top: 2px; }
.nvk-daybreak .d-rl-panel > .d-rl-h3 { margin-top: 8px; }
.nvk-daybreak .nvk-mirror__body > .nvk-chip { align-self: flex-start; }
}

/* _base/season-circle.css */
@layer pages{
/* Season circle, Home (owner-picked Option B 'Island Now Rail' of the 'NirvanaRO Season Circle' canvas, 2026-10-20): the chapter road (kit
   SeasonChapters) sticky above one long scroll of Climb, Harvest and Legacy, and Today as the sticky Now and next column beside it.
   Markup: themes/nirvana/seasonhub/_season_island.php. Sticky needs no scroll-container ancestors: season.css clips body (overflow-x: clip).
   Tokens only. */
.nvk-daybreak .nvk-ssn { --ssn-road-top: calc(var(--nvk-bar-stick, 0px) + 12px); --ssn-now-top: calc(var(--ssn-road-top) + 78px); container-type: inline-size; display: flex; flex-direction: column; gap: 22px; }
.nvk-daybreak .nvk-ssn [id] { scroll-margin-top: calc(var(--ssn-now-top) + 8px); }
.nvk-daybreak .nvk-ssn__road { position: sticky; top: var(--ssn-road-top); z-index: 30; }
.nvk-daybreak .nvk-ssn__two { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 32%, 330px); gap: 20px; align-items: start; }
.nvk-daybreak .nvk-ssn__main { display: flex; flex-direction: column; gap: 40px; min-width: 0; }

/* the chapters: a plaque opening, then the chapter's own cards */
.nvk-daybreak .nvk-ssn-stage { display: flex; flex-direction: column; gap: 18px; margin: 0; padding: 0; min-width: 0; background: none; border: 0; }
.nvk-daybreak .nvk-ssn-plq { display: flex; align-items: center; gap: 18px; margin: 0; }
.nvk-daybreak .nvk-ssn-plq__n { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 24px/1 var(--disp); box-shadow: 0 0 0 4px var(--ui-surface), 0 0 0 6px var(--ui-island-line); }
.nvk-daybreak .nvk-ssn-plq__t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .nvk-ssn-plq__k { font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-link); }
.nvk-daybreak .nvk-ssn-plq__h { margin: 0; padding: 0; border: 0; font: 700 32px/38px var(--disp); color: var(--ui-fg); background: none; -webkit-text-fill-color: currentColor; text-shadow: none; }
.nvk-daybreak .nvk-ssn-plq__p { margin: 4px 0 0; max-width: 640px; font: 400 15px/22px var(--body); color: var(--ui-fg-2); }

/* Today: the Now and next column */
.nvk-daybreak .nvk-ssn__now { position: sticky; top: var(--ssn-now-top); max-height: calc(100vh - var(--ssn-now-top) - 16px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 2px 4px 8px 2px; box-sizing: border-box; }
.nvk-daybreak .nvk-ssn__anchor { display: block; height: 0; }
.nvk-daybreak .nvk-ssn__nowh { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 8px 6px 18px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: inset 0 0 0 1px var(--ui-island-line); box-sizing: border-box; }
.nvk-daybreak .nvk-ssn__nowt { margin: 0 auto 0 0; padding: 0; border: 0; font: 700 15px/20px var(--disp); color: var(--ui-island-fg); background: none; -webkit-text-fill-color: currentColor; }
.nvk-daybreak .nvk-ssn__now .nv-cph, .nvk-daybreak .nvk-ssn__now .nvcp-now, .nvk-daybreak .nvk-ssn__now .nvcp-now-side { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; min-width: 0; grid-template-columns: none; }
.nvk-daybreak .nvk-ssn-nc { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.nvk-daybreak .nvk-ssn-nc > .nvk-card, .nvk-daybreak .nvk-ssn-nc > .nvk-nownext { border-radius: 26px; }
.nvk-daybreak .nvk-ssn__now .nvk-nownext { padding: 16px; gap: 6px; }
.nvk-daybreak .nvk-ssn__now .nvk-nownext__h { font-size: 17px; line-height: 22px; }
.nvk-daybreak .nvk-ssn__more { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; align-self: flex-start; border-radius: var(--radius-pill); background: var(--ui-surface); box-shadow: var(--shadow-sm); color: var(--ui-link); font: 700 13px/1 var(--body); text-decoration: none; }
.nvk-daybreak .nvk-ssn__more:hover { text-decoration: underline; }
.nvk-daybreak .nvk-ssn__more:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .nvk-ssn__caps { display: none; }

/* narrower stage: the column moves above the road, its cards side by side */
@container (max-width: 720px) {
	.nvk-daybreak .nvk-ssn__two { display: contents; }
	.nvk-daybreak .nvk-ssn__now { order: -1; position: static; max-height: none; overflow: visible; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); align-items: start; padding: 0; }
	.nvk-daybreak .nvk-ssn__now > .nvk-ssn__nowh, .nvk-daybreak .nvk-ssn__now > .nvk-ssn__caps, .nvk-daybreak .nvk-ssn__now > .nv-cph { grid-column: 1 / -1; }
	.nvk-daybreak .nvk-ssn__now .nvcp-now-side { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); align-items: start; }
	.nvk-daybreak .nvk-ssn__main { gap: 32px; }
}
/* a phone: the cards become a row of capsules, one card open at a time (nv-ui.js data-nv-now; without script every card shows) */
@media (max-width: 760px) {
	.nvk-daybreak .nvk-ssn__now, .nvk-daybreak .nvk-ssn__now .nvcp-now-side { display: flex; align-items: stretch; }
	.nvk-daybreak .nvk-ssn__now.is-caps .nvk-ssn__caps { display: flex; gap: 8px; overflow-x: auto; margin: 0 -16px; padding: 2px 16px 4px; scrollbar-width: none; }
	.nvk-daybreak .nvk-ssn__now.is-caps .nvk-ssn-nc.is-shut { display: none; }
	.nvk-daybreak .nvk-ssn-plq__n { width: 48px; height: 48px; font-size: 18px; }
	.nvk-daybreak .nvk-ssn-plq__h { font-size: 24px; line-height: 30px; }
}
.nvk-daybreak .nvk-ssn-cap { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 52px; padding: 0 16px 0 8px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); font: 700 14px/1 var(--body); cursor: pointer; }
.nvk-daybreak .nvk-ssn-cap i { display: inline-flex; align-items: center; justify-content: center; min-width: 36px; height: 36px; padding: 0 6px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 13px/1 var(--disp); font-style: normal; box-sizing: border-box; }
.nvk-daybreak .nvk-ssn-cap[aria-expanded="true"] { background: var(--ui-surface); color: var(--ui-fg); box-shadow: inset 0 0 0 2px var(--ui-island); }
.nvk-daybreak .nvk-ssn-cap:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }

/* inside the column the cards are narrow: The Call's title and its head wrap instead of stacking word by word */
.nvk-daybreak .nvk-ssn__now .nvcp-call .nvk-card__head { flex-wrap: wrap; gap: 8px; }
.nvk-daybreak .nvk-ssn__now .nvcp-call .nvk-card__title { font-size: 20px; line-height: 26px; }

/* the You strip opens Climb (it sat in Today): kit cards, the first one the dark island of 'Your standing' */
.nvk-daybreak .nvk-ssn .nv-ssn-you { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; margin: 0; }
.nvk-daybreak .nvk-ssn .nv-ssn-yt { gap: 2px; padding: 16px 18px; border: 0; border-radius: 24px; background: var(--ui-surface); box-shadow: var(--shadow-sm); color: var(--ui-fg); }
.nvk-daybreak .nvk-ssn .nv-ssn-yt:hover { box-shadow: var(--shadow-md); }
.nvk-daybreak .nvk-ssn .nv-ssn-yt:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .nvk-ssn .nv-ssn-yt .k { font: 700 11px/16px var(--body); letter-spacing: .1em; color: var(--ui-fg-2); text-shadow: none; }
.nvk-daybreak .nvk-ssn .nv-ssn-yt b { font: 700 19px/24px var(--disp); color: var(--ui-fg); text-shadow: none; }
.nvk-daybreak .nvk-ssn .nv-ssn-yt b small { color: var(--ui-fg-2); }
.nvk-daybreak .nvk-ssn .nv-ssn-yt .s { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .nvk-ssn .nv-ssn-yt.is-gold b { color: var(--ui-link); }
.nvk-daybreak .nvk-ssn .nv-ssn-yt:first-child, .nvk-daybreak .nvk-ssn .nv-ssn-yt.is-claim { background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island), inset 0 0 0 1px var(--ui-island-line); }
.nvk-daybreak .nvk-ssn .nv-ssn-yt:first-child b, .nvk-daybreak .nvk-ssn .nv-ssn-yt.is-claim b { color: var(--ui-island-gold); }
.nvk-daybreak .nvk-ssn .nv-ssn-yt:first-child .k, .nvk-daybreak .nvk-ssn .nv-ssn-yt:first-child .s, .nvk-daybreak .nvk-ssn .nv-ssn-yt:first-child b small,
.nvk-daybreak .nvk-ssn .nv-ssn-yt.is-claim .k, .nvk-daybreak .nvk-ssn .nv-ssn-yt.is-claim .s { color: var(--ui-island-fg-2); }
.nvk-daybreak .nvk-ssn .nv-ssn-you-quiet { margin: 0; padding: 16px 18px; border: 0; border-radius: 24px; background: var(--ui-surface); box-shadow: var(--shadow-sm); color: var(--ui-fg-2); }

/* the Today blocks under "Today, in full": legacy pieces put on the kit's ink (contrast in both Daybreak looks) */
.nvk-daybreak .nvk-ssn .nv-ssn-hp { border-color: var(--ui-line); background: var(--ui-surface); color: var(--ui-fg-2); box-shadow: var(--shadow-sm); }
.nvk-daybreak .nvk-ssn .nv-ssn-hp b, .nvk-daybreak .nvk-ssn .nv-ssn-hp.is-hot, .nvk-daybreak .nvk-ssn .nv-ssn-hp.is-paused { color: var(--ui-fg); }
.nvk-daybreak .nvk-ssn .nv-cp-fw-step.is-done { opacity: 1; }
.nvk-daybreak .nvk-ssn .nv-cp-fw-step.is-done .nv-cp-fw-title, .nvk-daybreak .nvk-ssn .nv-cp-fw-step.is-done .nv-cp-fw-sub { color: var(--ui-fg-2); }
/* The Call's "then" links are touch targets (Home column and The Day) */
.nvk-daybreak .nvcp-call-then a { display: inline-flex; align-items: center; min-height: 44px; }

/* ---- The Day (control/_daybreak_planner.php): the budget island, the route as a road of stops, the lane board, "Your day so far" ---- */
.nvk-daybreak .d-day__call { margin: 0 0 20px; }
.nvk-daybreak .d-day { display: grid; grid-template-columns: minmax(0, 1fr) clamp(260px, 32%, 330px); gap: 20px; align-items: start; }
.nvk-daybreak .d-day__main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.nvk-daybreak .d-day__bud { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; padding: 8px 8px 8px 22px; border-radius: 36px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island), inset 0 0 0 1px var(--ui-island-line); scroll-margin-top: calc(var(--nvk-bar-stick, 0px) + 16px); }
.nvk-daybreak .d-day__q { font: 700 15px/20px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-day__u { margin-left: auto; padding: 0 12px; font: 600 13px/20px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-day__bud .nvk-tab { min-height: 44px; display: inline-flex; align-items: center; }
.nvk-daybreak .d-day-card { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: 22px; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; scroll-margin-top: calc(var(--nvk-bar-stick, 0px) + 16px); }
.nvk-daybreak .d-day-card--sm { gap: 8px; padding: 16px 18px; border-radius: 26px; box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-day-card--warn { background: color-mix(in srgb, var(--ui-warn) 14%, var(--ui-surface)); }
.nvk-daybreak .d-day-card__hd { display: flex; align-items: baseline; justify-content: space-between; flex-wrap: wrap; gap: 4px 14px; }
.nvk-daybreak .d-day-card__h { text-transform: none; letter-spacing: 0; margin: 0; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-day-card__h3 { text-transform: none; letter-spacing: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; padding: 0; border: 0; font: 700 17px/22px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-day-card__s { margin: 0; font: 400 13px/19px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-day-card__big { margin: 0; font: 700 18px/24px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-day-card__ul { margin: 0; padding-left: 18px; font: 400 13px/19px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-day-road { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-day-road__it { display: grid; grid-template-columns: 56px 24px minmax(0, 1fr) auto; gap: 12px; align-items: start; min-height: 60px; }
.nvk-daybreak .d-day-road__clk { padding-top: 12px; text-align: right; font: 700 13px/20px var(--body); color: var(--ui-fg-2); font-variant-numeric: tabular-nums; }
.nvk-daybreak .d-day-road__sp { position: relative; display: flex; justify-content: center; align-self: stretch; }
.nvk-daybreak .d-day-road__sp::before { content: ""; position: absolute; top: 0; bottom: 0; width: 3px; background: var(--ui-line); }
.nvk-daybreak .d-day-road__it:first-child .d-day-road__sp::before { top: 22px; }
.nvk-daybreak .d-day-road__it:last-child .d-day-road__sp::before { bottom: auto; height: 22px; }
.nvk-daybreak .d-day-road__sp i { position: relative; width: 18px; height: 18px; margin-top: 13px; border-radius: var(--radius-pill); background: var(--ui-fg); box-shadow: 0 0 0 4px var(--ui-surface); }
.nvk-daybreak .d-day-road__it.is-first .d-day-road__sp i { background: var(--ui-island-gold); }
.nvk-daybreak .d-day-road__bx { display: flex; flex-direction: column; gap: 2px; padding: 8px 0 12px; min-width: 0; }
.nvk-daybreak .d-day-road__bx b { font: 700 15px/20px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-day-road__bx span { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-day-road__it > .nvk-chip { margin-top: 10px; }
.nvk-daybreak .d-day-board { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 14px; }
.nvk-daybreak .d-day-col { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.nvk-daybreak .d-day-col__h { text-transform: none; letter-spacing: 0; display: flex; align-items: center; justify-content: space-between; gap: 8px; margin: 0; padding: 0 4px; border: 0; font: 700 15px/20px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-day-col__list { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-day-lane { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px 14px; border-radius: 18px; background: var(--ui-surface-2); min-width: 0; }
.nvk-daybreak .d-day-lane__t { font: 700 14px/18px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-day-lane__acc, .nvk-daybreak .d-day-lane__b, .nvk-daybreak .d-day-lane__why { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-day-lane__why { font-weight: 600; }
.nvk-daybreak .d-day-lane__bar { width: 100%; height: 6px; border: 0; border-radius: var(--radius-pill); background: var(--ui-line); overflow: hidden; appearance: none; -webkit-appearance: none; }
.nvk-daybreak .d-day-lane__bar::-webkit-progress-bar { background: var(--ui-line); border-radius: var(--radius-pill); }
.nvk-daybreak .d-day-lane__bar::-webkit-progress-value { background: var(--ui-brand); border-radius: var(--radius-pill); }
.nvk-daybreak .d-day-lane__bar::-moz-progress-bar { background: var(--ui-brand); border-radius: var(--radius-pill); }
.nvk-daybreak .d-day-lane__m { display: flex; flex-wrap: wrap; gap: 2px 10px; width: 100%; font: 600 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-day-lane.is-done .d-day-lane__bar::-webkit-progress-value { background: var(--ui-ok); }
.nvk-daybreak .d-day__side { position: sticky; top: calc(var(--nvk-bar-stick, 0px) + 16px); max-height: calc(100vh - var(--nvk-bar-stick, 0px) - 32px); overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; padding: 2px 4px 8px 2px; box-sizing: border-box; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nvk-daybreak .d-day__sideh { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 8px 6px 18px; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: inset 0 0 0 1px var(--ui-island-line); box-sizing: border-box; }
.nvk-daybreak .d-day__sidet { margin: 0 auto 0 0; padding: 0; border: 0; font: 700 15px/20px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-day__note { margin: 0; font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-day-tal { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; }
.nvk-daybreak .d-day-tal > div { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 20px; background: var(--ui-island); box-shadow: inset 0 0 0 1px var(--ui-island-line); }
.nvk-daybreak .d-day-tal dt { font: 500 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-day-tal dd { margin: 0; font: 700 20px/24px var(--disp); color: var(--ui-island-fg); }
.nvk-daybreak .d-day-chars { display: flex; flex-direction: column; gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-day-chars__it { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 10px 8px 8px; border-radius: var(--radius-lg); background: var(--ui-surface-2); }   /* a wrapping card, not a pill: in the narrow side column the pill turned into a circle with the text crammed inside (audit fixes B) */
.nvk-daybreak .d-day-chars__it.is-me { background: var(--ui-brand-tint); }
.nvk-daybreak .d-day-chars__av { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 14px/1 var(--disp); }
.nvk-daybreak .d-day-chars__t { display: flex; flex-direction: column; flex: 1 1 120px; min-width: 0; }
.nvk-daybreak .d-day-chars__t b { font: 700 14px/18px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-day-chars__t span { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
@media (max-width: 1000px) {
	.nvk-daybreak .d-day { grid-template-columns: minmax(0, 1fr); }
	.nvk-daybreak .d-day__side { position: static; order: -1; max-height: none; overflow: visible; padding: 0; }
}
@media (max-width: 760px) {
	.nvk-daybreak .d-day__bud { border-radius: 28px; padding: 14px; }
	.nvk-daybreak .d-day__u { margin-left: 0; padding: 0; }
	.nvk-daybreak .d-day-card { padding: 18px 16px; border-radius: 28px; }
	.nvk-daybreak .d-day-road__it { grid-template-columns: 44px 20px minmax(0, 1fr); }
	.nvk-daybreak .d-day-road__it > .nvk-chip { grid-column: 3; margin: -6px 0 10px; justify-self: start; }
	.nvk-daybreak .d-day-board { grid-template-columns: minmax(0, 1fr); }
}

/* Climb's Season Journal and Lifetime Renown on the kit's ink (the sky look painted them white-on-night) */
.nvk-daybreak .nvk-ssn .nv-ssn-journal, .nvk-daybreak .nvk-ssn .nv-ssn-lifetime { padding: 20px; border: 0; border-radius: 28px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-daybreak .nvk-ssn .nv-ssn-h3 { font: 700 17px/22px var(--disp); letter-spacing: 0; color: var(--ui-fg); }
.nvk-daybreak .nvk-ssn .nv-ssn-h3 small { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .nvk-ssn .nv-ssn-jcard { border: 0; border-radius: 20px; background: var(--ui-surface-2); box-shadow: none; }
.nvk-daybreak .nvk-ssn .nv-ssn-jcard.is-paying { box-shadow: inset 0 0 0 2px var(--ui-island-gold); }
.nvk-daybreak .nvk-ssn .nv-ssn-jcard header { color: var(--ui-fg); }
.nvk-daybreak .nvk-ssn .nv-ssn-jcard header small, .nvk-daybreak .nvk-ssn .nv-ssn-jcard .st, .nvk-daybreak .nvk-ssn .nv-ssn-jcard .st .is-unranked,
.nvk-daybreak .nvk-ssn .nv-ssn-jcard .pay .is-none, .nvk-daybreak .nvk-ssn .nv-ssn-jcard .next { color: var(--ui-fg-2); }
.nvk-daybreak .nvk-ssn .nv-ssn-jcard .st b, .nvk-daybreak .nvk-ssn .nv-ssn-jcard .pay, .nvk-daybreak .nvk-ssn .nv-ssn-jcard .pay .t { color: var(--ui-fg); }
.nvk-daybreak .nvk-ssn .nv-ssn-jcard .next { border-top-color: var(--ui-line); }
.nvk-daybreak .nvk-ssn .nv-ssn-lt-main b, .nvk-daybreak .nvk-ssn .nv-ssn-ltb b { color: var(--ui-fg); }
.nvk-daybreak .nvk-ssn .nv-ssn-lt-main span, .nvk-daybreak .nvk-ssn .nv-ssn-ltb { color: var(--ui-fg-2); }
.nvk-daybreak .nvk-ssn .nv-ssn-lt-main span b { color: var(--ui-link); }
.nvk-daybreak .nvk-ssn .nv-ssn-ltb i { background: var(--ui-line); }
}

/* _base/security.css */
@layer base{
/* Account Flagship 8.1 / 8.2: the account security checklist (lib/nv_security_score.php) on the Cockpit Account station and Account > Security. */
.nv-ss { display: flex; flex-direction: column; gap: 14px; }
.nv-ss__head { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.nv-ss__lead { margin: 0; font-size: 15px; color: var(--ui-fg-2); flex: 1 1 220px; }
.nv-ss__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px 16px; margin: 0; padding: 0; list-style: none; }
.nv-ss__item { display: flex; align-items: center; gap: 10px; min-height: 44px; font-size: 14px; color: var(--ui-fg); }
.nv-ss__item a { color: var(--ui-link, var(--ui-brand)); }
.nv-ss__mark { flex: 0 0 24px; height: 24px; display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; border: 2px solid var(--ui-line-strong); color: var(--ui-fg-3); font-size: 13px; line-height: 1; }
.nv-ss__item.is-done .nv-ss__mark { border-color: var(--ui-ok); background: var(--ui-ok); color: var(--ui-surface); }
.nv-ss__more { margin: 0; font-size: 14px; }

}

/* _base/sheet.css */
@layer pages{
/* Island sheet (owner-picked Option B of the 'NirvanaRO Sign-in and Forms' canvas, 2026-10-19): the sign-in and account forms on the kit FormSheet.
   Markup: lib/nv_daybreak_sheet.php. Tokens only. */
.nvk-daybreak .d-fs__pg { display: flex; flex-direction: column; align-items: stretch; gap: 0; max-width: 1180px; padding-top: 28px; }
.nvk-daybreak .d-fs-band { position: relative; width: 100%; max-width: 880px; height: 220px; margin: 0 auto -76px; border-radius: 40px; overflow: hidden; box-shadow: var(--shadow-md); }
.nvk-daybreak .d-fs-band img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 22%; }
.nvk-daybreak .d-fs-band::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, color-mix(in srgb, var(--ui-island) 55%, transparent)); }
.nvk-daybreak .d-fs--art .nvk-fsheet { position: relative; z-index: 1; }
/* the sheet's parts */
.nvk-daybreak .d-fs-form { display: flex; flex-direction: column; gap: 18px; margin: 0; min-width: 0; }
.nvk-daybreak .d-fs-form .nvk-field__control { min-height: 52px; font-size: 16px; }
.nvk-daybreak .d-fs-code.nvk-field__control { min-height: 64px; text-align: center; font: 700 26px/1 var(--disp); letter-spacing: .28em; }
.nvk-daybreak .d-fs-sec { display: flex; flex-direction: column; gap: 14px; min-width: 0; scroll-margin-top: 96px; }
.nvk-daybreak .d-fs-sec + .d-fs-sec { padding-top: 22px; border-top: 1px solid var(--ui-line); }
.nvk-daybreak .d-fs-sec__h { display: flex; align-items: center; gap: 10px; margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-fs-sec__n { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 14px/1 var(--disp); }
.nvk-daybreak .d-fs-sec__s { margin: -6px 0 0; font: 400 14px/21px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fs-sec > p, .nvk-daybreak .d-fs-txt { margin: 0; font: 400 15px/23px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fs-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.nvk-daybreak .d-fs-row { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.nvk-daybreak .d-fs-row--c { justify-content: center; }
.nvk-daybreak .d-fs-alt { margin: 0; text-align: center; font: 500 15px/22px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak p.d-fs-alt a, .nvk-daybreak .d-fs-alt a { font-weight: 700; color: var(--ui-link); }
.nvk-daybreak .d-fs-alt--sm { font-size: 14px; }
.nvk-daybreak .d-fs-alt a { display: inline-flex; align-items: center; min-height: 44px; min-width: 44px; justify-content: center; }
.nvk-daybreak .d-fs-help { margin: 0; padding: 14px 16px; border-radius: 18px; background: var(--ui-surface-2); font: 400 14px/21px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fs-or { display: flex; align-items: center; gap: 12px; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-fs-or::before, .nvk-daybreak .d-fs-or::after { content: ""; flex: 1; height: 1px; background: var(--ui-line); }
/* One-list sign-in doors (owner-picked Option B of 'NirvanaRO Sign-in Doors', 2026-10-31): each provider a full-width row; the door used last floats up, marked "Last time". */
.nvk-daybreak .d-fs-doors { display: flex; flex-direction: column; gap: 10px; }
.nvk-daybreak .d-fs-door { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 16px 6px 6px; border-radius: var(--radius-pill); border: 1px solid var(--ui-line-strong); background: var(--ui-surface); color: var(--ui-fg); font: 600 15px/20px var(--body); text-decoration: none; box-sizing: border-box; transition: transform var(--t-spring-fast) var(--ease-spring), background .2s, border-color .2s; }
.nvk-daybreak .d-fs-door:hover { transform: translateY(-1px); background: var(--ui-brand-tint); border-color: var(--ui-brand); }
.nvk-daybreak .d-fs-door:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-daybreak .d-fs-door__g { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg); font: 700 15px/1 var(--disp); }
.nvk-daybreak .d-fs-door__l { flex: 1 1 auto; min-width: 0; }
.nvk-daybreak .d-fs-door__last { flex: none; font: 700 11px/1 var(--body); letter-spacing: .04em; color: var(--ui-ok); background: color-mix(in srgb, var(--ui-ok) 14%, var(--ui-surface)); border-radius: var(--radius-pill); padding: 5px 10px; }
.nvk-daybreak .d-fs-door--dark { background: var(--ui-fg); border-color: var(--ui-fg); color: var(--ui-surface); }
.nvk-daybreak .d-fs-door--dark:hover { background: var(--ui-fg); border-color: var(--ui-fg); color: var(--ui-surface); transform: translateY(-1px); }
.nvk-daybreak .d-fs-door--dark .d-fs-door__g { background: var(--ui-surface); color: var(--ui-fg); }
/* the passkey door (Account Flagship 3.2): a <button class="nvk-door ..."> (the nvk- prefix keeps the legacy !important button skin off it), shown by js/nv-passkey.js only where WebAuthn works ([hidden] beats the flex display) */
.nvk-daybreak .d-fs-doors[hidden] { display: none; }
.nvk-daybreak button.d-fs-door { width: 100%; cursor: pointer; text-align: left; appearance: none; -webkit-appearance: none; }
.nvk-daybreak button.d-fs-door:disabled { cursor: progress; }
.nvk-daybreak .d-fs-door--key .d-fs-door__g { background: var(--ui-island); color: var(--ui-island-gold); }
/* Account > Passkeys: one card per key with its rename and remove forms */
.nvk-daybreak .d-pk-list { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-pk-item { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; border-radius: 18px; background: var(--ui-surface-2); }
.nvk-daybreak .d-pk-item__head { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; font: 600 15px/22px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-pk-item__meta { font: 400 13px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-pk-item__forms { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.nvk-daybreak .d-pk-item__forms form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; }
.nvk-daybreak .d-pk-item__forms .nvk-field__control { min-height: 44px; max-width: 220px; box-sizing: border-box; }
/* Account > Devices (Account Flagship 4.1): the device cards reuse .d-pk-list / .d-pk-item; "This device" is a green pill */
.nvk-daybreak .d-dev-tag { flex: none; font: 700 11px/1 var(--body); letter-spacing: .04em; color: var(--ui-ok); background: color-mix(in srgb, var(--ui-ok) 14%, var(--ui-surface)); border-radius: var(--radius-pill); padding: 5px 10px; }
.nvk-daybreak .d-dev-tag--new { color: var(--ui-warn); background: color-mix(in srgb, var(--ui-warn) 14%, var(--ui-surface)); }
.nvk-daybreak .d-dev-risk { margin: 6px 0 0; font: 600 13px/18px var(--body); color: var(--ui-warn); }
/* Login Shield (Account Flagship 4.3): the waiting box on the sign-in sheet */
.nvk-daybreak .d-sh-wait { display: flex; flex-direction: column; gap: 10px; padding: 16px; border-radius: var(--radius-lg, 16px); background: color-mix(in srgb, var(--ui-link) 6%, var(--ui-surface)); border: 1px solid var(--ui-line); }
.nvk-daybreak .d-sh-wait__who { margin: 0; font: 400 15px/22px var(--body); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-sh-wait__status { margin: 0; font: 600 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-sh-wait__num { margin: 0; align-self: center; font: 800 56px/1 var(--disp, var(--body)); letter-spacing: .06em; color: var(--ui-fg); padding: 8px 24px; border-radius: var(--radius-lg, 16px); background: var(--ui-surface); border: 1px solid var(--ui-line-strong); }
.nvk-daybreak .d-sh-wait.is-ended .d-sh-wait__status { color: var(--ui-danger); }
/* Sign in with your phone (Account Flagship 4.4): the QR card under the door */
.nvk-daybreak .d-qr-card { display: flex; flex-wrap: wrap; gap: 16px; align-items: center; padding: 16px; border-radius: var(--radius-lg, 16px); border: 1px solid var(--ui-line); background: var(--ui-surface); }
.nvk-daybreak .d-qr-card[hidden] { display: none; }
.nvk-daybreak .d-qr-card__img { flex: none; width: 168px; height: 168px; border-radius: 12px; overflow: hidden; background: var(--ui-surface-2, var(--ui-surface)); }
.nvk-daybreak .d-qr-card__img svg { display: block; width: 100%; height: 100%; }
.nvk-daybreak .d-qr-card__t { flex: 1 1 200px; min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.nvk-daybreak .d-qr-card__h { margin: 0; font: 700 16px/22px var(--body); color: var(--ui-fg); }
.nvk-daybreak .d-qr-card__code { margin: 0; font: 700 22px/28px var(--mono, monospace); letter-spacing: .12em; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-qr-card.is-done .d-qr-card__img { opacity: .35; }
/* username + password behind a disclosure when the doors lead */
.nvk-daybreak .d-fs-more { border-top: 1px solid var(--ui-line); padding-top: 6px; }
.nvk-daybreak .d-fs-more__s { list-style: none; cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 48px; font: 600 15px/20px var(--body); color: var(--ui-link); }
.nvk-daybreak .d-fs-more__s::-webkit-details-marker { display: none; }
.nvk-daybreak .d-fs-more__s:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; border-radius: var(--radius-pill); }
.nvk-daybreak .d-fs-more__chev { flex: none; transition: transform var(--t-med); }
.nvk-daybreak .d-fs-more[open] .d-fs-more__chev { transform: rotate(180deg); }
.nvk-daybreak .d-fs-more__b { display: flex; flex-direction: column; gap: 18px; padding-top: 12px; }
.nvk-daybreak .d-fs-captcha { display: flex; flex-direction: column; gap: 8px; }
/* Account Flagship 6.3: the Rune Challenge block (lib/nv_challenge.php, js/nv-challenge.js): a quiet status line, the picture only when the address is risky */
.nvk-daybreak .d-ch { display: flex; flex-direction: column; gap: 8px; }
.nvk-daybreak .d-ch__status { margin: 0; font-size: 13px; color: var(--ui-fg-2); }
.nvk-daybreak .d-ch[data-nv-ch-done] .d-ch__status { color: var(--ui-ok); }
.nvk-daybreak .d-ch__pic { display: block; max-width: 100%; height: auto; border-radius: var(--radius-md); border: 1px solid var(--ui-line); }
/* Account Flagship 7.3: Connected sign-ins > Discord: link with a code */
.nvk-daybreak .nv-dv { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; max-width: 560px; }
.nvk-daybreak .nv-dv form { display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.nvk-daybreak .nv-dv code { font-size: 15px; padding: 2px 6px; border-radius: var(--radius-sm); background: var(--ui-surface-2); }
.nvk-daybreak .d-fs-switch { display: flex; align-items: center; min-height: 48px; }
/* show / hide on a password box (nv-ui.js data-nv-pwshow adds the button) */
.nvk-daybreak .d-fs-pwbox { position: relative; display: block; }
.nvk-daybreak .d-fs-pwbox .nvk-field__control { width: 100%; padding-right: 88px; box-sizing: border-box; }
.nvk-daybreak .d-fs-show.nvk-btn { position: absolute; top: 4px; right: 4px; min-height: 44px; height: calc(100% - 8px); padding: 0 14px; }
/* password rules: plain list without script, green capsules as they are met */
.nvk-daybreak .d-fs-rules { display: flex; flex-direction: column; gap: 8px; }
.nvk-daybreak .d-fs-rules__k { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-daybreak .d-fs-rules__list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-fs-rule { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 4px 14px 4px 4px; border-radius: var(--radius-pill); background: var(--ui-surface-2); border: 1px solid var(--ui-line); font: 500 13px/18px var(--body); color: var(--ui-fg-2); box-sizing: border-box; transition: background var(--t-med), color var(--t-med), border-color var(--t-med); }
.nvk-daybreak .d-fs-rule__i { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 26px; height: 26px; padding: 0 4px; border-radius: var(--radius-pill); background: var(--ui-sunken); color: var(--ui-fg-2); font: 700 12px/1 var(--body); box-sizing: border-box; transition: transform var(--t-spring) var(--ease-spring); }
.nvk-daybreak .d-fs-rule__i .nvk-icon { display: none; }
.nvk-daybreak .d-fs-rule.is-ok { background: color-mix(in srgb, var(--ui-ok) 14%, var(--ui-surface)); border-color: color-mix(in srgb, var(--ui-ok) 40%, var(--ui-surface)); color: color-mix(in srgb, var(--ui-ok) 60%, var(--ui-fg)); }
.nvk-daybreak .d-fs-rule.is-ok .d-fs-rule__i { background: var(--ui-ok); color: var(--ui-surface); transform: scale(1.06); }
.nvk-daybreak .d-fs-rule.is-ok .d-fs-rule__i b { display: none; }
.nvk-daybreak .d-fs-rule.is-ok .d-fs-rule__i .nvk-icon { display: inline-block; }
/* radios, check, date */
.nvk-daybreak .d-fs-set { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; border: 0; min-width: 0; background: none; }
.nvk-daybreak .d-fs-set > legend { float: left; width: 100%; margin: 0 0 8px; padding: 0; font: 600 14px/20px var(--body); letter-spacing: normal; text-transform: none; color: var(--ui-fg); background: none; }
.nvk-daybreak .d-fs-set > legend + * { clear: both; }
.nvk-daybreak .d-fs-radios { display: flex; flex-wrap: wrap; gap: 10px; }
.nvk-daybreak .d-fs-radio { display: inline-flex; align-items: center; gap: 10px; min-height: 48px; padding: 0 20px 0 14px; border-radius: var(--radius-pill); border: 1px solid var(--ui-line-strong); background: var(--ui-surface); color: var(--ui-fg); font: 600 15px/1 var(--body); cursor: pointer; box-sizing: border-box; }
.nvk-daybreak .d-fs-radio:has(input:checked) { border-color: var(--ui-brand); background: var(--ui-brand-tint); }
/* a 44px hit box drawn as a 22px control (the box itself is the tap target) */
.nvk-daybreak .d-fs input.nvk-fs-radio[type], .nvk-daybreak .d-fs input.nvk-fs-check[type] { flex: none; position: relative; width: 44px; height: 44px; margin: -10px -6px -10px -12px; padding: 0; border: 0; background: none; appearance: none; -webkit-appearance: none; cursor: pointer; }
.nvk-daybreak .d-fs input.nvk-fs-radio[type]::before, .nvk-daybreak .d-fs input.nvk-fs-check[type]::before { content: ""; position: absolute; inset: 11px; border: 2px solid var(--ui-line-strong); background: var(--ui-surface); box-sizing: border-box; transition: background var(--t-fast), border-color var(--t-fast); }
.nvk-daybreak .d-fs input.nvk-fs-radio[type]::before { border-radius: var(--radius-pill); }
.nvk-daybreak .d-fs input.nvk-fs-check[type]::before { border-radius: 7px; }
.nvk-daybreak .d-fs input.nvk-fs-radio[type]:checked::before { border: 7px solid var(--ui-brand); }
.nvk-daybreak .d-fs input.nvk-fs-check[type]:checked::before { border-color: var(--ui-brand); background: var(--ui-brand); }
.nvk-daybreak .d-fs input.nvk-fs-check[type]:checked::after { content: ""; position: absolute; left: 18px; top: 14px; width: 6px; height: 12px; border: solid var(--ui-brand-fg); border-width: 0 3px 3px 0; transform: rotate(45deg); }
.nvk-daybreak .d-fs input.nvk-fs-radio[type]:focus-visible, .nvk-daybreak .d-fs input.nvk-fs-check[type]:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: -5px; }
.nvk-daybreak .d-fs input.nvk-fs-radio[type] { border-radius: var(--radius-pill); }
.nvk-daybreak .d-fs input.nvk-fs-check[type] { border-radius: 12px; }
.nvk-daybreak .d-fs-date { display: grid; width: 100%; grid-template-columns: 1.3fr 1fr 1fr; gap: 10px; }
.nvk-daybreak .d-fs-date select.nvk-field__control { min-height: 52px; width: 100%; min-width: 0; }
.nvk-daybreak .d-fs-consent { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border-radius: 18px; background: var(--ui-surface-2); font: 500 15px/22px var(--body); color: var(--ui-fg); cursor: pointer; }
.nvk-daybreak .d-fs-consent a { color: var(--ui-link); font-weight: 700; }
.nvk-daybreak .d-fs-go .nvk-nextstep { padding: 10px 10px 10px 24px; }
.nvk-daybreak .d-fs-go .nvk-nextstep__acts .nvk-btn { min-height: 52px; }
/* the register rail's picture under the contents */
.nvk-daybreak .d-fs-railart { position: relative; height: 180px; margin-top: 12px; border-radius: 28px; overflow: hidden; box-shadow: var(--shadow-sm); }
.nvk-daybreak .d-fs-railart img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 40% 50%; }
/* the rail ticks a filled section off (nv-ui.js data-nv-sheet) */
.nvk-daybreak .nvk-contents__item.is-done > .nvk-contents__a .nvk-contents__n { background: var(--ui-ok); color: var(--ui-surface); }
.nvk-daybreak .nvk-contents__item.is-done > .nvk-contents__a .nvk-contents__s { color: color-mix(in srgb, var(--ui-ok) 60%, var(--ui-fg)); font-weight: 700; }
.nvk-daybreak .nvk-contents a.nvk-contents__a, .nvk-daybreak .nvk-contents a.nvk-contents__c { text-decoration: none; }
/* plans under the public forms: dark island capsules */
.nvk-daybreak .d-fs-plans { display: flex; flex-direction: column; align-items: center; gap: 18px; margin: 56px auto 0; max-width: 1040px; text-align: center; }
.nvk-daybreak .d-fs-plans__h { margin: 0; padding: 0; border: 0; font: 700 26px/32px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-fs-plans__row { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-fs-plan { display: inline-flex; align-items: center; gap: 12px; padding: 10px 22px 10px 10px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); text-align: left; max-width: 340px; box-sizing: border-box; }
.nvk-daybreak .d-fs-plan__p { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 56px; height: 52px; padding: 0 10px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 15px/1 var(--disp); box-sizing: border-box; }
.nvk-daybreak .d-fs-plan__t { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-daybreak .d-fs-plan__t b { font: 700 17px/22px var(--disp); }
.nvk-daybreak .d-fs-plan__t span { font: 400 13px/18px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .d-fs-plan--rec { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-fs-plan--rec .d-fs-plan__p { background: var(--ui-island-gold-fg); color: var(--ui-island-gold); }
.nvk-daybreak .d-fs-plan--rec .d-fs-plan__t span { color: var(--ui-island-gold-fg); }
.nvk-daybreak .d-fs-plans__more { margin: 0; }
.nvk-daybreak p.d-fs-plans__more a.d-link { display: inline-flex; align-items: center; min-height: 44px; font-weight: 700; }
/* character chips on the lid, the slot grid */
.nvk-daybreak .d-fs-chips { display: flex; gap: 4px; padding: 4px; margin: 0 -12px -0px -0px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 8%, transparent); overflow-x: auto; scrollbar-width: none; }
/* audit fixes B (2026-10-21): the chips ran 12px past the lid and a chip was cut in half at its rounded edge. The row stays inside the lid,
   scrolls with snap, and fades out at the end so the next character reads as "more this way". */
.nvk-daybreak .d-fs-chips { min-width: 0; max-width: 100%; margin: 0; scroll-snap-type: x proximity; scroll-padding-inline: 4px;
  -webkit-mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); mask-image: linear-gradient(90deg, var(--ui-fg) calc(100% - 28px), transparent); }
.nvk-daybreak .d-fs-chips > .d-fs-chip { scroll-snap-align: start; }
.nvk-daybreak .d-fs-chips > .d-fs-chip:last-child { margin-right: 24px; }
.nvk-daybreak a.d-fs-chip { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px 0 4px; border-radius: var(--radius-pill); color: var(--ui-island-fg-2); font: 600 14px/1 var(--body); text-decoration: none; white-space: nowrap; transition: background var(--t-med), color var(--t-med); }
.nvk-daybreak a.d-fs-chip:hover { color: var(--ui-island-fg); background: color-mix(in srgb, var(--ui-island-fg) 10%, transparent); }
.nvk-daybreak a.d-fs-chip.is-on { background: var(--ui-island-fg); color: var(--ui-island); }
.nvk-daybreak a.d-fs-chip:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak .d-fs-chip__i { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 14px/1 var(--disp); }
.nvk-daybreak .d-fs-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.nvk-daybreak .d-fs-slots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; padding: 10px; border-radius: 32px; background: var(--ui-island); }
.nvk-daybreak .d-fs-slots[hidden] { display: none; }
.nvk-daybreak .nvk-fs-slot { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; min-height: 64px; padding: 8px 14px; border: 0; border-radius: 22px; background: var(--ui-island-2); color: var(--ui-island-fg); font: 600 14px/18px var(--body); text-align: left; cursor: pointer; transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-daybreak .nvk-fs-slot:hover { transform: translateY(-2px); }
.nvk-daybreak .nvk-fs-slot span { font: 700 11px/14px var(--body); letter-spacing: .06em; color: var(--ui-island-gold); }
.nvk-daybreak .nvk-fs-slot.is-me { box-shadow: inset 0 0 0 2px var(--ui-island-blue); }
.nvk-daybreak .nvk-fs-slot[aria-pressed="true"] { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-daybreak .nvk-fs-slot[aria-pressed="true"] span { color: var(--ui-island-gold-fg); }
.nvk-daybreak .nvk-fs-slot:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
/* lists and tables on a sheet (Who's Online, Map statistics) and All pages */
.nvk-daybreak .d-fs-sheet-table .nvk-table-wrap { border-radius: 20px; }
.nvk-daybreak .d-fs-map { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px; }
.nvk-daybreak .d-fs-map__g { display: flex; flex-direction: column; gap: 6px; min-width: 0; scroll-margin-top: 96px; }
.nvk-daybreak .d-fs-map__h { display: flex; align-items: center; gap: 10px; margin: 0 0 4px; padding: 0; border: 0; font: 700 18px/24px var(--disp); color: var(--ui-fg); }
.nvk-daybreak .d-fs-codes { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.nvk-daybreak .d-fs-codes li { padding: 10px 12px; border-radius: 14px; background: var(--ui-surface-2); border: 1px solid var(--ui-line); font: 700 15px/20px ui-monospace, monospace; letter-spacing: .06em; text-align: center; color: var(--ui-fg); }
.nvk-daybreak .d-fs-qr { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: start; }
.nvk-daybreak .d-fs-qr__img { padding: 12px; border-radius: 22px; background: var(--ui-surface); border: 1px solid var(--ui-line); }
.nvk-daybreak .d-fs-qr__img svg { display: block; width: 180px; height: 180px; }
.nvk-daybreak .d-fs-key { display: block; margin-top: 6px; padding: 8px 12px; border-radius: 12px; background: var(--ui-surface-2); font: 700 15px/20px ui-monospace, monospace; letter-spacing: .08em; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-daybreak .d-fs-steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 10px; font: 400 15px/23px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fs-check { display: flex; align-items: center; gap: 10px; min-height: 44px; font: 600 15px/22px var(--body); color: var(--ui-fg); cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .nvk-daybreak .d-fs-rule, .nvk-daybreak .d-fs-rule__i, .nvk-daybreak a.d-fs-chip, .nvk-daybreak .nvk-fs-slot { transition: none; } .nvk-daybreak .d-fs-rule.is-ok .d-fs-rule__i { transform: none; } }
@media (max-width: 900px) { .nvk-daybreak .d-fs-railart { display: none; } }
@media (max-width: 560px) {
  .nvk-daybreak .d-fs__pg { padding-top: 16px; }
  .nvk-daybreak .d-fs-band { height: 150px; margin-bottom: -56px; border-radius: 28px; }
  .nvk-daybreak .d-fs-two { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-fs-date { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-fs-plan { border-radius: 28px; width: 100%; max-width: none; }
  .nvk-daybreak .d-fs-qr { grid-template-columns: minmax(0, 1fr); }
  .nvk-daybreak .d-fs-slots { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
/* two-factor: its forms keep their own classes (d-p2__form); on the sheet the buttons sit at their own width, no rule above a lone form */
.nvk-daybreak .d-fs .d-p2__form { flex-direction: column; align-items: flex-start; gap: 12px; }
.nvk-daybreak .d-fs .d-p2__form > .nvk-field, .nvk-daybreak .d-fs .d-p2__form > .nvk-toggle { align-self: stretch; }
.nvk-daybreak .d-fs .d-fs-sec .d-stack > .d-p2__form, .nvk-daybreak .d-fs .d-p2__forms > p + .d-p2__form { border-top: 0; padding-top: 0; }
.nvk-daybreak .d-fs .d-p2__form .nvk-btn { min-height: 48px; }
.nvk-daybreak .d-fs-tg { display: flex; flex-direction: column; gap: 4px; }
.nvk-daybreak .d-fs-tg .nvk-toggle { min-height: 44px; }
.nvk-daybreak .d-fs-head__n { font: 700 24px/30px var(--disp); color: var(--ui-fg); margin-right: 6px; }
/* Realm VI leftovers (2026-10-21): the missing action / view facts and Who's online's search row */
.nvk-daybreak .d-fs-kv { display: flex; flex-direction: column; margin: 0; }
.nvk-daybreak .d-fs-kv > div { display: grid; grid-template-columns: minmax(0, 150px) minmax(0, 1fr); gap: 12px; align-items: center; min-height: 44px; border-top: 1px solid var(--ui-line); }
.nvk-daybreak .d-fs-kv > div:first-child { border-top: 0; }
.nvk-daybreak .d-fs-kv dt { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-daybreak .d-fs-kv dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.nvk-daybreak .d-fs-kv code { font: 600 13px/18px monospace; padding: 1px 6px; border-radius: var(--radius-sm); background: var(--ui-sunken); color: var(--ui-fg); }
.nvk-daybreak .d-fs-onrow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: start; }
@media (max-width: 720px) { .nvk-daybreak .d-fs-onrow, .nvk-daybreak .d-fs-kv > div { grid-template-columns: minmax(0, 1fr); gap: 2px; } }
}

/* _base/stations.css */
@layer pages{
/* Cockpit stations, Island Rail (owner-picked Option A of the 'NirvanaRO Cockpit Stations' canvas, 2026-10-19): the instrument bar is a
   black island (the stations themselves live in the one left menu since 2026-10-22), the station header
   a dark starry hero with Previous / Next. Markup: control/_frame_open.php + _frame_stagehead.php (ids and classes the runtime reads
   are unchanged); The Call strip is the CallStrip component. The pages layer outranks the legacy cockpit.css. */

/* ---- the instrument bar: a black island ---- */
.nvk-daybreak .nvcp-bar { position: relative; z-index: 25; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-height: 64px; margin: 0 0 22px; padding: 8px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island), inset 0 0 0 1px var(--ui-island-line); backdrop-filter: none; }
.nvk-daybreak .nvcp-bar a, .nvk-daybreak .nvcp-bar button { color: var(--ui-island-fg); }
.nvk-daybreak .nvcp-seal, .nvk-daybreak .nvcp-crumb, .nvk-daybreak .nvcp-find, .nvk-daybreak .nvcp-purse, .nvk-daybreak .nvcp-tier, .nvk-daybreak .nvcp-lamps, .nvk-daybreak .nvcp-owed { min-height: 44px; border: 0; border-radius: var(--radius-pill); transition: transform var(--t-spring-fast) var(--ease-spring), background .2s; }
.nvk-daybreak .nvcp-seal { display: inline-flex; align-items: center; gap: 10px; height: 48px; padding: 0 14px 0 6px; background: var(--ui-island-2); }
.nvk-daybreak .nvcp-seal:active, .nvk-daybreak .nvcp-find:active, .nvk-daybreak .nvcp-crumb:active { transform: scale(.96); }
.nvk-daybreak .nvcp-seal-art { width: 36px; height: 36px; border: 0; background: linear-gradient(135deg, var(--ui-brand-hi), var(--ui-island-gold)); color: var(--ui-island); }
.nvk-daybreak .nvcp-seal-txt b { font: 700 15px/18px var(--disp); letter-spacing: 0; color: var(--ui-island-fg); }
.nvk-daybreak .nvcp-seal-txt i { font: 400 12px/14px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .nvcp-caret { color: var(--ui-island-fg-2); }
.nvk-daybreak .nvcp-crumb { display: inline-flex; align-items: center; gap: 8px; padding: 0 10px; background: transparent; font: 600 14px/20px var(--body); letter-spacing: 0; text-transform: none; color: var(--ui-island-fg-2); }
.nvk-daybreak .nvcp-crumb:hover { background: var(--ui-island-2); }
.nvk-daybreak .nvcp-crumb-g { color: var(--ui-island-gold); }
.nvk-daybreak .nvcp-crumb-s { color: var(--ui-island-fg); font-weight: 700; }
.nvk-daybreak .nvcp-crumb-sep { color: var(--ui-island-fg-2); }
/* 2026-10-20: a long station name plus the Owed chip pushed Find onto a second line (Standing Order at 1366). On a wide screen the bar
   stays one line: the crumb's station name gives way first and ends in an ellipsis (its full name is the page's h1 and the menu row). */
@media (min-width: 1280px) {
  .nvk-daybreak .nvcp-bar { flex-wrap: nowrap; }
  .nvk-daybreak .nvcp-bar-gap { flex: 1 1 0; min-width: 0; }
  .nvk-daybreak .nvcp-crumb { flex: 0 1 auto; min-width: 0; overflow: hidden; }
  .nvk-daybreak .nvcp-crumb-s { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
.nvk-daybreak .nvcp-purse { gap: 8px; padding: 0 6px; background: transparent; font: 700 14px/1 var(--body); }
.nvk-daybreak .nvcp-purse .nv-bal { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 14px 0 6px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); }
.nvk-daybreak .nvcp-purse .nv-bal > span[aria-hidden="true"]:first-child { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: var(--radius-pill); background: var(--ui-island-line); color: var(--ui-island-gold); }
.nvk-daybreak .nvcp-tier { gap: 8px; padding: 0 14px 0 8px; border: 1px solid var(--ui-island-line); background: transparent; font: 600 13px/1 var(--body); letter-spacing: 0; text-transform: none; color: var(--ui-island-fg); }
.nvk-daybreak .nvcp-tier-txt i { color: var(--ui-island-fg-2); }
.nvk-daybreak .nvcp-tier-ring > span { background: var(--ui-island); color: var(--ui-island-gold); }
.nvk-daybreak .nvcp-lamps { padding: 0 12px; background: var(--ui-island-2); }
.nvk-daybreak .nvcp-bar .nvcp-owed, .nvk-daybreak .nvcp-bar .nvcp-owed span { color: var(--ui-island-gold-fg); text-transform: none; letter-spacing: 0; }
.nvk-daybreak .nvcp-owed { display: inline-flex; align-items: center; gap: 8px; padding: 0 16px; background: var(--ui-island-gold); font: 700 14px/1 var(--body); text-decoration: none; }
.nvk-daybreak .nvcp-owed[hidden] { display: none; }
.nvk-daybreak .nvcp-bar .nvcp-find, .nvk-daybreak .nvcp-bar .nvcp-find span { color: var(--ui-island); }
.nvk-daybreak .nvcp-bar .nvcp-find { display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; background: var(--ui-island-fg); font: 700 14px/1 var(--body); }
.nvk-daybreak .nvcp-find kbd { padding: 4px 7px; border: 0; border-radius: 8px; background: var(--ui-sunken); color: var(--ui-fg-2); font: 600 11px/1 var(--body); }
.nvk-daybreak .nvcp-seal:focus-visible, .nvk-daybreak .nvcp-crumb:focus-visible, .nvk-daybreak .nvcp-bar a:focus-visible, .nvk-daybreak .nvcp-find:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }

/* ---- the station column (One left menu, owner 2026-10-22): the stations live in the site menu, so the stage takes the whole width ---- */
.nvk-daybreak .nvcp-body { display: block; }

.nvk-daybreak .nvcp-head a.nvcp-pn { text-decoration: none; }

/* ---- the station hero: dark and starry ---- */
.nvk-daybreak .nvcp-head { position: relative; overflow: hidden; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 26px; margin: 0; padding: 30px 32px; border: 0; border-radius: 40px; background: radial-gradient(120% 140% at 12% 0, var(--ui-island-2) 0, var(--ui-island) 62%); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-daybreak .nvcp-head-stars { position: absolute; inset: 0; pointer-events: none; opacity: .6; background: radial-gradient(2px 2px at 12% 20%, var(--ui-island-fg), transparent), radial-gradient(2px 2px at 70% 12%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 88% 60%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 40% 85%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 56% 40%, var(--ui-island-fg), transparent); }
.nvk-daybreak .nvcp-head-g, .nvk-daybreak .nvcp-head-arm { position: relative; flex: none; display: inline-flex; align-items: center; justify-content: center; width: 104px; height: 104px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font-size: 40px; box-shadow: 0 0 0 2px color-mix(in srgb, var(--ui-island-gold) 55%, transparent), 0 0 0 10px color-mix(in srgb, var(--ui-island-gold) 8%, transparent); animation: nvcp-medal 3.4s ease-in-out infinite; }
.nvk-daybreak .nvcp-head-arm svg { width: 92px; height: 92px; }
.nvk-daybreak .nvcp-head-t { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.nvk-daybreak .nvcp-head-e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-brand-hi); }
.nvk-daybreak .nvcp-head .nvcp-h1 { margin: 0; padding: 0; border: 0; font: 700 46px/50px var(--disp); color: var(--ui-island-fg); -webkit-text-fill-color: currentColor; text-wrap: balance; }
.nvk-daybreak .nvcp-head-s { margin: 0; max-width: 60ch; font: 400 16px/24px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .nvcp-scope { margin-top: 6px; padding: 0; border: 0; font: inherit; letter-spacing: 0; text-transform: none; }
.nvk-daybreak .nvcp-scope .nvk-chip { background: color-mix(in srgb, var(--ui-island-fg) 12%, transparent); color: var(--ui-island-fg); }
.nvk-daybreak .nvcp-scope-character .nvk-chip { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-daybreak .nvcp-head-pn { position: relative; display: flex; flex-direction: column; align-items: flex-end; gap: 10px; }
.nvk-daybreak .nvcp-pn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 14px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 8%, transparent); color: var(--ui-island-fg); font: 600 14px/16px var(--body); text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring), background .2s; }
.nvk-daybreak .nvcp-pn:hover { background: color-mix(in srgb, var(--ui-island-fg) 16%, transparent); transform: translateY(-2px); }
.nvk-daybreak .nvcp-pn:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-daybreak .nvcp-pn small { display: block; font: 500 11px/12px var(--body); color: var(--ui-island-fg-2); }
.nvk-daybreak .nvcp-pn > span[aria-hidden="true"] { font-size: 20px; line-height: 1; }
@keyframes nvcp-medal { 0%, 100% { scale: 1; } 50% { scale: 1.04; } }

/* ---- a station of several pages: the pills ride on a black island ---- */
.nvk-daybreak .nvcp-pages { display: inline-flex; flex-wrap: wrap; gap: 4px; margin: 18px 0 0; padding: 5px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: var(--shadow-island); }
.nvk-daybreak .nvcp-page { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border: 0; border-radius: var(--radius-pill); color: var(--ui-island-fg-2); font: 600 14px/1 var(--body); text-decoration: none; }
.nvk-daybreak .nvcp-page:hover { color: var(--ui-island-fg); }
.nvk-daybreak .nvcp-page.is-current { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-daybreak .nvcp-head + .nvk-callstrip, .nvk-daybreak .nvcp-pages + .nvk-callstrip { margin-top: 18px; }
.nvk-daybreak .nvk-callstrip + * { margin-top: 26px; }
.nvk-daybreak .nvk-callstrip .nvcp-call-sz { margin: 0; }


@media (prefers-reduced-motion: reduce) {
  .nvk-daybreak .nvcp-head-g, .nvk-daybreak .nvcp-head-arm { animation: none; }
  .nvk-daybreak .nvcp-pn { transition: none; }
}
@media (max-width: 1100px) {
  .nvk-daybreak .nvcp-head { grid-template-columns: auto minmax(0, 1fr); }
  .nvk-daybreak .nvcp-head-pn { grid-column: 1 / -1; flex-direction: row; justify-content: flex-start; }
}
@media (max-width: 760px) {
  .nvk-daybreak .nvcp-bar { gap: 6px; border-radius: 30px; margin-bottom: 12px; }
  .nvk-daybreak .nvcp-bar > .nvcp-seal { flex: 1 1 100%; justify-content: flex-start; }
  .nvk-daybreak .nvcp-seal-txt b { max-width: 16ch; }
  .nvk-daybreak .nvcp-bar > .nvcp-crumb { order: 10; flex: 1 1 100%; justify-content: flex-start; }
  .nvk-daybreak .nvcp-bar > .nvcp-bar-gap, .nvk-daybreak .nvcp-bar > .nvcp-tier { display: none; }
  .nvk-daybreak .nvcp-head { grid-template-columns: minmax(0, 1fr); justify-items: center; gap: 16px; padding: 26px 20px; border-radius: 32px; text-align: center; }
  .nvk-daybreak .nvcp-head-t { align-items: center; }
  .nvk-daybreak .nvcp-head .nvcp-h1 { font-size: 34px; line-height: 38px; }
  .nvk-daybreak .nvcp-head-g, .nvk-daybreak .nvcp-head-arm { width: 84px; height: 84px; font-size: 32px; }
  .nvk-daybreak .nvcp-head-arm svg { width: 74px; height: 74px; }
  .nvk-daybreak .nvcp-head-pn { flex-direction: row; justify-content: center; flex-wrap: wrap; }
}

/* Owner only (owner 2026-10-20): a station the owner still sees while it is hidden from players (the Standing Order while STANDINGORDER is
   not 'on') carries a small gold tag (in the left menu it is the row's Staff only badge). */
.nvk-daybreak .nvcp-st-tag { flex: none; margin-left: auto; display: inline-flex; align-items: center; height: 20px; padding: 0 8px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 10px/1 var(--body); letter-spacing: .04em; white-space: nowrap; }
}

/* _base/steps.css */
@layer utilities{
/* GENERATED by tools/design/gen_steps.py -- do not edit. Step classes for dynamic values (see web/lib/nv_steps.php). */
.nv-i-0{--i:0}
.nv-i-1{--i:1}
.nv-i-2{--i:2}
.nv-i-3{--i:3}
.nv-i-4{--i:4}
.nv-i-5{--i:5}
.nv-i-6{--i:6}
.nv-i-7{--i:7}
.nv-i-8{--i:8}
.nv-i-9{--i:9}
.nv-i-10{--i:10}
.nv-i-11{--i:11}
.nv-i-12{--i:12}
.nv-i-13{--i:13}
.nv-i-14{--i:14}
.nv-i-15{--i:15}
.nv-i-16{--i:16}
.nv-i-17{--i:17}
.nv-i-18{--i:18}
.nv-i-19{--i:19}
.nv-i-20{--i:20}
.nv-i-21{--i:21}
.nv-i-22{--i:22}
.nv-i-23{--i:23}
.nv-i-24{--i:24}
.nv-i-25{--i:25}
.nv-i-26{--i:26}
.nv-i-27{--i:27}
.nv-i-28{--i:28}
.nv-i-29{--i:29}
.nv-i-30{--i:30}
.nv-i-31{--i:31}
.nv-i-32{--i:32}
.nv-i-33{--i:33}
.nv-i-34{--i:34}
.nv-i-35{--i:35}
.nv-i-36{--i:36}
.nv-i-37{--i:37}
.nv-i-38{--i:38}
.nv-i-39{--i:39}
.nv-i-40{--i:40}
.nv-i-41{--i:41}
.nv-i-42{--i:42}
.nv-i-43{--i:43}
.nv-i-44{--i:44}
.nv-i-45{--i:45}
.nv-i-46{--i:46}
.nv-i-47{--i:47}
.nv-i-48{--i:48}
.nv-i-49{--i:49}
.nv-i-50{--i:50}
.nv-i-51{--i:51}
.nv-i-52{--i:52}
.nv-i-53{--i:53}
.nv-i-54{--i:54}
.nv-i-55{--i:55}
.nv-i-56{--i:56}
.nv-i-57{--i:57}
.nv-i-58{--i:58}
.nv-i-59{--i:59}
.nv-i-60{--i:60}
.nv-i-61{--i:61}
.nv-i-62{--i:62}
.nv-i-63{--i:63}
.nv-i-64{--i:64}
.nv-i-65{--i:65}
.nv-i-66{--i:66}
.nv-i-67{--i:67}
.nv-i-68{--i:68}
.nv-i-69{--i:69}
.nv-i-70{--i:70}
.nv-i-71{--i:71}
.nv-i-72{--i:72}
.nv-i-73{--i:73}
.nv-i-74{--i:74}
.nv-i-75{--i:75}
.nv-i-76{--i:76}
.nv-i-77{--i:77}
.nv-i-78{--i:78}
.nv-i-79{--i:79}
.nv-i-80{--i:80}
.nv-i-81{--i:81}
.nv-i-82{--i:82}
.nv-i-83{--i:83}
.nv-i-84{--i:84}
.nv-i-85{--i:85}
.nv-i-86{--i:86}
.nv-i-87{--i:87}
.nv-i-88{--i:88}
.nv-i-89{--i:89}
.nv-i-90{--i:90}
.nv-w-0{--w:0%}
.nv-w-1{--w:1%}
.nv-w-2{--w:2%}
.nv-w-3{--w:3%}
.nv-w-4{--w:4%}
.nv-w-5{--w:5%}
.nv-w-6{--w:6%}
.nv-w-7{--w:7%}
.nv-w-8{--w:8%}
.nv-w-9{--w:9%}
.nv-w-10{--w:10%}
.nv-w-11{--w:11%}
.nv-w-12{--w:12%}
.nv-w-13{--w:13%}
.nv-w-14{--w:14%}
.nv-w-15{--w:15%}
.nv-w-16{--w:16%}
.nv-w-17{--w:17%}
.nv-w-18{--w:18%}
.nv-w-19{--w:19%}
.nv-w-20{--w:20%}
.nv-w-21{--w:21%}
.nv-w-22{--w:22%}
.nv-w-23{--w:23%}
.nv-w-24{--w:24%}
.nv-w-25{--w:25%}
.nv-w-26{--w:26%}
.nv-w-27{--w:27%}
.nv-w-28{--w:28%}
.nv-w-29{--w:29%}
.nv-w-30{--w:30%}
.nv-w-31{--w:31%}
.nv-w-32{--w:32%}
.nv-w-33{--w:33%}
.nv-w-34{--w:34%}
.nv-w-35{--w:35%}
.nv-w-36{--w:36%}
.nv-w-37{--w:37%}
.nv-w-38{--w:38%}
.nv-w-39{--w:39%}
.nv-w-40{--w:40%}
.nv-w-41{--w:41%}
.nv-w-42{--w:42%}
.nv-w-43{--w:43%}
.nv-w-44{--w:44%}
.nv-w-45{--w:45%}
.nv-w-46{--w:46%}
.nv-w-47{--w:47%}
.nv-w-48{--w:48%}
.nv-w-49{--w:49%}
.nv-w-50{--w:50%}
.nv-w-51{--w:51%}
.nv-w-52{--w:52%}
.nv-w-53{--w:53%}
.nv-w-54{--w:54%}
.nv-w-55{--w:55%}
.nv-w-56{--w:56%}
.nv-w-57{--w:57%}
.nv-w-58{--w:58%}
.nv-w-59{--w:59%}
.nv-w-60{--w:60%}
.nv-w-61{--w:61%}
.nv-w-62{--w:62%}
.nv-w-63{--w:63%}
.nv-w-64{--w:64%}
.nv-w-65{--w:65%}
.nv-w-66{--w:66%}
.nv-w-67{--w:67%}
.nv-w-68{--w:68%}
.nv-w-69{--w:69%}
.nv-w-70{--w:70%}
.nv-w-71{--w:71%}
.nv-w-72{--w:72%}
.nv-w-73{--w:73%}
.nv-w-74{--w:74%}
.nv-w-75{--w:75%}
.nv-w-76{--w:76%}
.nv-w-77{--w:77%}
.nv-w-78{--w:78%}
.nv-w-79{--w:79%}
.nv-w-80{--w:80%}
.nv-w-81{--w:81%}
.nv-w-82{--w:82%}
.nv-w-83{--w:83%}
.nv-w-84{--w:84%}
.nv-w-85{--w:85%}
.nv-w-86{--w:86%}
.nv-w-87{--w:87%}
.nv-w-88{--w:88%}
.nv-w-89{--w:89%}
.nv-w-90{--w:90%}
.nv-w-91{--w:91%}
.nv-w-92{--w:92%}
.nv-w-93{--w:93%}
.nv-w-94{--w:94%}
.nv-w-95{--w:95%}
.nv-w-96{--w:96%}
.nv-w-97{--w:97%}
.nv-w-98{--w:98%}
.nv-w-99{--w:99%}
.nv-w-100{--w:100%}
.nv-v-0{--v:0%}
.nv-v-1{--v:1%}
.nv-v-2{--v:2%}
.nv-v-3{--v:3%}
.nv-v-4{--v:4%}
.nv-v-5{--v:5%}
.nv-v-6{--v:6%}
.nv-v-7{--v:7%}
.nv-v-8{--v:8%}
.nv-v-9{--v:9%}
.nv-v-10{--v:10%}
.nv-v-11{--v:11%}
.nv-v-12{--v:12%}
.nv-v-13{--v:13%}
.nv-v-14{--v:14%}
.nv-v-15{--v:15%}
.nv-v-16{--v:16%}
.nv-v-17{--v:17%}
.nv-v-18{--v:18%}
.nv-v-19{--v:19%}
.nv-v-20{--v:20%}
.nv-v-21{--v:21%}
.nv-v-22{--v:22%}
.nv-v-23{--v:23%}
.nv-v-24{--v:24%}
.nv-v-25{--v:25%}
.nv-v-26{--v:26%}
.nv-v-27{--v:27%}
.nv-v-28{--v:28%}
.nv-v-29{--v:29%}
.nv-v-30{--v:30%}
.nv-v-31{--v:31%}
.nv-v-32{--v:32%}
.nv-v-33{--v:33%}
.nv-v-34{--v:34%}
.nv-v-35{--v:35%}
.nv-v-36{--v:36%}
.nv-v-37{--v:37%}
.nv-v-38{--v:38%}
.nv-v-39{--v:39%}
.nv-v-40{--v:40%}
.nv-v-41{--v:41%}
.nv-v-42{--v:42%}
.nv-v-43{--v:43%}
.nv-v-44{--v:44%}
.nv-v-45{--v:45%}
.nv-v-46{--v:46%}
.nv-v-47{--v:47%}
.nv-v-48{--v:48%}
.nv-v-49{--v:49%}
.nv-v-50{--v:50%}
.nv-v-51{--v:51%}
.nv-v-52{--v:52%}
.nv-v-53{--v:53%}
.nv-v-54{--v:54%}
.nv-v-55{--v:55%}
.nv-v-56{--v:56%}
.nv-v-57{--v:57%}
.nv-v-58{--v:58%}
.nv-v-59{--v:59%}
.nv-v-60{--v:60%}
.nv-v-61{--v:61%}
.nv-v-62{--v:62%}
.nv-v-63{--v:63%}
.nv-v-64{--v:64%}
.nv-v-65{--v:65%}
.nv-v-66{--v:66%}
.nv-v-67{--v:67%}
.nv-v-68{--v:68%}
.nv-v-69{--v:69%}
.nv-v-70{--v:70%}
.nv-v-71{--v:71%}
.nv-v-72{--v:72%}
.nv-v-73{--v:73%}
.nv-v-74{--v:74%}
.nv-v-75{--v:75%}
.nv-v-76{--v:76%}
.nv-v-77{--v:77%}
.nv-v-78{--v:78%}
.nv-v-79{--v:79%}
.nv-v-80{--v:80%}
.nv-v-81{--v:81%}
.nv-v-82{--v:82%}
.nv-v-83{--v:83%}
.nv-v-84{--v:84%}
.nv-v-85{--v:85%}
.nv-v-86{--v:86%}
.nv-v-87{--v:87%}
.nv-v-88{--v:88%}
.nv-v-89{--v:89%}
.nv-v-90{--v:90%}
.nv-v-91{--v:91%}
.nv-v-92{--v:92%}
.nv-v-93{--v:93%}
.nv-v-94{--v:94%}
.nv-v-95{--v:95%}
.nv-v-96{--v:96%}
.nv-v-97{--v:97%}
.nv-v-98{--v:98%}
.nv-v-99{--v:99%}
.nv-v-100{--v:100%}
.nv-x-0{--x:0%}
.nv-x-1{--x:0.5%}
.nv-x-2{--x:1%}
.nv-x-3{--x:1.5%}
.nv-x-4{--x:2%}
.nv-x-5{--x:2.5%}
.nv-x-6{--x:3%}
.nv-x-7{--x:3.5%}
.nv-x-8{--x:4%}
.nv-x-9{--x:4.5%}
.nv-x-10{--x:5%}
.nv-x-11{--x:5.5%}
.nv-x-12{--x:6%}
.nv-x-13{--x:6.5%}
.nv-x-14{--x:7%}
.nv-x-15{--x:7.5%}
.nv-x-16{--x:8%}
.nv-x-17{--x:8.5%}
.nv-x-18{--x:9%}
.nv-x-19{--x:9.5%}
.nv-x-20{--x:10%}
.nv-x-21{--x:10.5%}
.nv-x-22{--x:11%}
.nv-x-23{--x:11.5%}
.nv-x-24{--x:12%}
.nv-x-25{--x:12.5%}
.nv-x-26{--x:13%}
.nv-x-27{--x:13.5%}
.nv-x-28{--x:14%}
.nv-x-29{--x:14.5%}
.nv-x-30{--x:15%}
.nv-x-31{--x:15.5%}
.nv-x-32{--x:16%}
.nv-x-33{--x:16.5%}
.nv-x-34{--x:17%}
.nv-x-35{--x:17.5%}
.nv-x-36{--x:18%}
.nv-x-37{--x:18.5%}
.nv-x-38{--x:19%}
.nv-x-39{--x:19.5%}
.nv-x-40{--x:20%}
.nv-x-41{--x:20.5%}
.nv-x-42{--x:21%}
.nv-x-43{--x:21.5%}
.nv-x-44{--x:22%}
.nv-x-45{--x:22.5%}
.nv-x-46{--x:23%}
.nv-x-47{--x:23.5%}
.nv-x-48{--x:24%}
.nv-x-49{--x:24.5%}
.nv-x-50{--x:25%}
.nv-x-51{--x:25.5%}
.nv-x-52{--x:26%}
.nv-x-53{--x:26.5%}
.nv-x-54{--x:27%}
.nv-x-55{--x:27.5%}
.nv-x-56{--x:28%}
.nv-x-57{--x:28.5%}
.nv-x-58{--x:29%}
.nv-x-59{--x:29.5%}
.nv-x-60{--x:30%}
.nv-x-61{--x:30.5%}
.nv-x-62{--x:31%}
.nv-x-63{--x:31.5%}
.nv-x-64{--x:32%}
.nv-x-65{--x:32.5%}
.nv-x-66{--x:33%}
.nv-x-67{--x:33.5%}
.nv-x-68{--x:34%}
.nv-x-69{--x:34.5%}
.nv-x-70{--x:35%}
.nv-x-71{--x:35.5%}
.nv-x-72{--x:36%}
.nv-x-73{--x:36.5%}
.nv-x-74{--x:37%}
.nv-x-75{--x:37.5%}
.nv-x-76{--x:38%}
.nv-x-77{--x:38.5%}
.nv-x-78{--x:39%}
.nv-x-79{--x:39.5%}
.nv-x-80{--x:40%}
.nv-x-81{--x:40.5%}
.nv-x-82{--x:41%}
.nv-x-83{--x:41.5%}
.nv-x-84{--x:42%}
.nv-x-85{--x:42.5%}
.nv-x-86{--x:43%}
.nv-x-87{--x:43.5%}
.nv-x-88{--x:44%}
.nv-x-89{--x:44.5%}
.nv-x-90{--x:45%}
.nv-x-91{--x:45.5%}
.nv-x-92{--x:46%}
.nv-x-93{--x:46.5%}
.nv-x-94{--x:47%}
.nv-x-95{--x:47.5%}
.nv-x-96{--x:48%}
.nv-x-97{--x:48.5%}
.nv-x-98{--x:49%}
.nv-x-99{--x:49.5%}
.nv-x-100{--x:50%}
.nv-x-101{--x:50.5%}
.nv-x-102{--x:51%}
.nv-x-103{--x:51.5%}
.nv-x-104{--x:52%}
.nv-x-105{--x:52.5%}
.nv-x-106{--x:53%}
.nv-x-107{--x:53.5%}
.nv-x-108{--x:54%}
.nv-x-109{--x:54.5%}
.nv-x-110{--x:55%}
.nv-x-111{--x:55.5%}
.nv-x-112{--x:56%}
.nv-x-113{--x:56.5%}
.nv-x-114{--x:57%}
.nv-x-115{--x:57.5%}
.nv-x-116{--x:58%}
.nv-x-117{--x:58.5%}
.nv-x-118{--x:59%}
.nv-x-119{--x:59.5%}
.nv-x-120{--x:60%}
.nv-x-121{--x:60.5%}
.nv-x-122{--x:61%}
.nv-x-123{--x:61.5%}
.nv-x-124{--x:62%}
.nv-x-125{--x:62.5%}
.nv-x-126{--x:63%}
.nv-x-127{--x:63.5%}
.nv-x-128{--x:64%}
.nv-x-129{--x:64.5%}
.nv-x-130{--x:65%}
.nv-x-131{--x:65.5%}
.nv-x-132{--x:66%}
.nv-x-133{--x:66.5%}
.nv-x-134{--x:67%}
.nv-x-135{--x:67.5%}
.nv-x-136{--x:68%}
.nv-x-137{--x:68.5%}
.nv-x-138{--x:69%}
.nv-x-139{--x:69.5%}
.nv-x-140{--x:70%}
.nv-x-141{--x:70.5%}
.nv-x-142{--x:71%}
.nv-x-143{--x:71.5%}
.nv-x-144{--x:72%}
.nv-x-145{--x:72.5%}
.nv-x-146{--x:73%}
.nv-x-147{--x:73.5%}
.nv-x-148{--x:74%}
.nv-x-149{--x:74.5%}
.nv-x-150{--x:75%}
.nv-x-151{--x:75.5%}
.nv-x-152{--x:76%}
.nv-x-153{--x:76.5%}
.nv-x-154{--x:77%}
.nv-x-155{--x:77.5%}
.nv-x-156{--x:78%}
.nv-x-157{--x:78.5%}
.nv-x-158{--x:79%}
.nv-x-159{--x:79.5%}
.nv-x-160{--x:80%}
.nv-x-161{--x:80.5%}
.nv-x-162{--x:81%}
.nv-x-163{--x:81.5%}
.nv-x-164{--x:82%}
.nv-x-165{--x:82.5%}
.nv-x-166{--x:83%}
.nv-x-167{--x:83.5%}
.nv-x-168{--x:84%}
.nv-x-169{--x:84.5%}
.nv-x-170{--x:85%}
.nv-x-171{--x:85.5%}
.nv-x-172{--x:86%}
.nv-x-173{--x:86.5%}
.nv-x-174{--x:87%}
.nv-x-175{--x:87.5%}
.nv-x-176{--x:88%}
.nv-x-177{--x:88.5%}
.nv-x-178{--x:89%}
.nv-x-179{--x:89.5%}
.nv-x-180{--x:90%}
.nv-x-181{--x:90.5%}
.nv-x-182{--x:91%}
.nv-x-183{--x:91.5%}
.nv-x-184{--x:92%}
.nv-x-185{--x:92.5%}
.nv-x-186{--x:93%}
.nv-x-187{--x:93.5%}
.nv-x-188{--x:94%}
.nv-x-189{--x:94.5%}
.nv-x-190{--x:95%}
.nv-x-191{--x:95.5%}
.nv-x-192{--x:96%}
.nv-x-193{--x:96.5%}
.nv-x-194{--x:97%}
.nv-x-195{--x:97.5%}
.nv-x-196{--x:98%}
.nv-x-197{--x:98.5%}
.nv-x-198{--x:99%}
.nv-x-199{--x:99.5%}
.nv-x-200{--x:100%}
.nv-y-0{--y:0%}
.nv-y-1{--y:0.5%}
.nv-y-2{--y:1%}
.nv-y-3{--y:1.5%}
.nv-y-4{--y:2%}
.nv-y-5{--y:2.5%}
.nv-y-6{--y:3%}
.nv-y-7{--y:3.5%}
.nv-y-8{--y:4%}
.nv-y-9{--y:4.5%}
.nv-y-10{--y:5%}
.nv-y-11{--y:5.5%}
.nv-y-12{--y:6%}
.nv-y-13{--y:6.5%}
.nv-y-14{--y:7%}
.nv-y-15{--y:7.5%}
.nv-y-16{--y:8%}
.nv-y-17{--y:8.5%}
.nv-y-18{--y:9%}
.nv-y-19{--y:9.5%}
.nv-y-20{--y:10%}
.nv-y-21{--y:10.5%}
.nv-y-22{--y:11%}
.nv-y-23{--y:11.5%}
.nv-y-24{--y:12%}
.nv-y-25{--y:12.5%}
.nv-y-26{--y:13%}
.nv-y-27{--y:13.5%}
.nv-y-28{--y:14%}
.nv-y-29{--y:14.5%}
.nv-y-30{--y:15%}
.nv-y-31{--y:15.5%}
.nv-y-32{--y:16%}
.nv-y-33{--y:16.5%}
.nv-y-34{--y:17%}
.nv-y-35{--y:17.5%}
.nv-y-36{--y:18%}
.nv-y-37{--y:18.5%}
.nv-y-38{--y:19%}
.nv-y-39{--y:19.5%}
.nv-y-40{--y:20%}
.nv-y-41{--y:20.5%}
.nv-y-42{--y:21%}
.nv-y-43{--y:21.5%}
.nv-y-44{--y:22%}
.nv-y-45{--y:22.5%}
.nv-y-46{--y:23%}
.nv-y-47{--y:23.5%}
.nv-y-48{--y:24%}
.nv-y-49{--y:24.5%}
.nv-y-50{--y:25%}
.nv-y-51{--y:25.5%}
.nv-y-52{--y:26%}
.nv-y-53{--y:26.5%}
.nv-y-54{--y:27%}
.nv-y-55{--y:27.5%}
.nv-y-56{--y:28%}
.nv-y-57{--y:28.5%}
.nv-y-58{--y:29%}
.nv-y-59{--y:29.5%}
.nv-y-60{--y:30%}
.nv-y-61{--y:30.5%}
.nv-y-62{--y:31%}
.nv-y-63{--y:31.5%}
.nv-y-64{--y:32%}
.nv-y-65{--y:32.5%}
.nv-y-66{--y:33%}
.nv-y-67{--y:33.5%}
.nv-y-68{--y:34%}
.nv-y-69{--y:34.5%}
.nv-y-70{--y:35%}
.nv-y-71{--y:35.5%}
.nv-y-72{--y:36%}
.nv-y-73{--y:36.5%}
.nv-y-74{--y:37%}
.nv-y-75{--y:37.5%}
.nv-y-76{--y:38%}
.nv-y-77{--y:38.5%}
.nv-y-78{--y:39%}
.nv-y-79{--y:39.5%}
.nv-y-80{--y:40%}
.nv-y-81{--y:40.5%}
.nv-y-82{--y:41%}
.nv-y-83{--y:41.5%}
.nv-y-84{--y:42%}
.nv-y-85{--y:42.5%}
.nv-y-86{--y:43%}
.nv-y-87{--y:43.5%}
.nv-y-88{--y:44%}
.nv-y-89{--y:44.5%}
.nv-y-90{--y:45%}
.nv-y-91{--y:45.5%}
.nv-y-92{--y:46%}
.nv-y-93{--y:46.5%}
.nv-y-94{--y:47%}
.nv-y-95{--y:47.5%}
.nv-y-96{--y:48%}
.nv-y-97{--y:48.5%}
.nv-y-98{--y:49%}
.nv-y-99{--y:49.5%}
.nv-y-100{--y:50%}
.nv-y-101{--y:50.5%}
.nv-y-102{--y:51%}
.nv-y-103{--y:51.5%}
.nv-y-104{--y:52%}
.nv-y-105{--y:52.5%}
.nv-y-106{--y:53%}
.nv-y-107{--y:53.5%}
.nv-y-108{--y:54%}
.nv-y-109{--y:54.5%}
.nv-y-110{--y:55%}
.nv-y-111{--y:55.5%}
.nv-y-112{--y:56%}
.nv-y-113{--y:56.5%}
.nv-y-114{--y:57%}
.nv-y-115{--y:57.5%}
.nv-y-116{--y:58%}
.nv-y-117{--y:58.5%}
.nv-y-118{--y:59%}
.nv-y-119{--y:59.5%}
.nv-y-120{--y:60%}
.nv-y-121{--y:60.5%}
.nv-y-122{--y:61%}
.nv-y-123{--y:61.5%}
.nv-y-124{--y:62%}
.nv-y-125{--y:62.5%}
.nv-y-126{--y:63%}
.nv-y-127{--y:63.5%}
.nv-y-128{--y:64%}
.nv-y-129{--y:64.5%}
.nv-y-130{--y:65%}
.nv-y-131{--y:65.5%}
.nv-y-132{--y:66%}
.nv-y-133{--y:66.5%}
.nv-y-134{--y:67%}
.nv-y-135{--y:67.5%}
.nv-y-136{--y:68%}
.nv-y-137{--y:68.5%}
.nv-y-138{--y:69%}
.nv-y-139{--y:69.5%}
.nv-y-140{--y:70%}
.nv-y-141{--y:70.5%}
.nv-y-142{--y:71%}
.nv-y-143{--y:71.5%}
.nv-y-144{--y:72%}
.nv-y-145{--y:72.5%}
.nv-y-146{--y:73%}
.nv-y-147{--y:73.5%}
.nv-y-148{--y:74%}
.nv-y-149{--y:74.5%}
.nv-y-150{--y:75%}
.nv-y-151{--y:75.5%}
.nv-y-152{--y:76%}
.nv-y-153{--y:76.5%}
.nv-y-154{--y:77%}
.nv-y-155{--y:77.5%}
.nv-y-156{--y:78%}
.nv-y-157{--y:78.5%}
.nv-y-158{--y:79%}
.nv-y-159{--y:79.5%}
.nv-y-160{--y:80%}
.nv-y-161{--y:80.5%}
.nv-y-162{--y:81%}
.nv-y-163{--y:81.5%}
.nv-y-164{--y:82%}
.nv-y-165{--y:82.5%}
.nv-y-166{--y:83%}
.nv-y-167{--y:83.5%}
.nv-y-168{--y:84%}
.nv-y-169{--y:84.5%}
.nv-y-170{--y:85%}
.nv-y-171{--y:85.5%}
.nv-y-172{--y:86%}
.nv-y-173{--y:86.5%}
.nv-y-174{--y:87%}
.nv-y-175{--y:87.5%}
.nv-y-176{--y:88%}
.nv-y-177{--y:88.5%}
.nv-y-178{--y:89%}
.nv-y-179{--y:89.5%}
.nv-y-180{--y:90%}
.nv-y-181{--y:90.5%}
.nv-y-182{--y:91%}
.nv-y-183{--y:91.5%}
.nv-y-184{--y:92%}
.nv-y-185{--y:92.5%}
.nv-y-186{--y:93%}
.nv-y-187{--y:93.5%}
.nv-y-188{--y:94%}
.nv-y-189{--y:94.5%}
.nv-y-190{--y:95%}
.nv-y-191{--y:95.5%}
.nv-y-192{--y:96%}
.nv-y-193{--y:96.5%}
.nv-y-194{--y:97%}
.nv-y-195{--y:97.5%}
.nv-y-196{--y:98%}
.nv-y-197{--y:98.5%}
.nv-y-198{--y:99%}
.nv-y-199{--y:99.5%}
.nv-y-200{--y:100%}
.nv-l-0{--l:0}
.nv-l-1{--l:1}
.nv-l-2{--l:2}
.nv-l-3{--l:3}
.nv-l-4{--l:4}
.nv-l-5{--l:5}
.nv-l-6{--l:6}
.nv-l-7{--l:7}
.nv-l-8{--l:8}
.nv-row-0{--row:0}
.nv-row-1{--row:1}
.nv-row-2{--row:2}
.nv-row-3{--row:3}
.nv-row-4{--row:4}
.nv-row-5{--row:5}
.nv-row-6{--row:6}
.nv-row-7{--row:7}
.nv-row-8{--row:8}
.nv-row-9{--row:9}
.nv-row-10{--row:10}
.nv-row-11{--row:11}
.nv-row-12{--row:12}
.nv-row-13{--row:13}
.nv-row-14{--row:14}
.nv-row-15{--row:15}
.nv-row-16{--row:16}
.nv-row-17{--row:17}
.nv-row-18{--row:18}
.nv-row-19{--row:19}
.nv-row-20{--row:20}
.nv-row-21{--row:21}
.nv-row-22{--row:22}
.nv-row-23{--row:23}
.nv-row-24{--row:24}
.nv-row-25{--row:25}
.nv-row-26{--row:26}
.nv-row-27{--row:27}
.nv-row-28{--row:28}
.nv-row-29{--row:29}
.nv-row-30{--row:30}
.nv-row-31{--row:31}
.nv-row-32{--row:32}
.nv-row-33{--row:33}
.nv-row-34{--row:34}
.nv-row-35{--row:35}
.nv-row-36{--row:36}
.nv-row-37{--row:37}
.nv-row-38{--row:38}
.nv-row-39{--row:39}
.nv-row-40{--row:40}
.nv-d-0{--d:0ms}
.nv-d-1{--d:30ms}
.nv-d-2{--d:60ms}
.nv-d-3{--d:90ms}
.nv-d-4{--d:120ms}
.nv-d-5{--d:150ms}
.nv-d-6{--d:180ms}
.nv-d-7{--d:210ms}
.nv-d-8{--d:240ms}
.nv-d-9{--d:270ms}
.nv-d-10{--d:300ms}
.nv-d-11{--d:330ms}
.nv-d-12{--d:360ms}
.nv-d-13{--d:390ms}
.nv-d-14{--d:420ms}
.nv-d-15{--d:450ms}
.nv-d-16{--d:480ms}
.nv-d-17{--d:510ms}
.nv-d-18{--d:540ms}
.nv-d-19{--d:570ms}
.nv-d-20{--d:600ms}
.nv-d-21{--d:630ms}
.nv-d-22{--d:660ms}
.nv-d-23{--d:690ms}
.nv-d-24{--d:720ms}
.nv-d-25{--d:750ms}
.nv-d-26{--d:780ms}
.nv-d-27{--d:810ms}
.nv-d-28{--d:840ms}
.nv-d-29{--d:870ms}
.nv-d-30{--d:900ms}
.nv-d-31{--d:930ms}
.nv-d-32{--d:960ms}
.nv-d-33{--d:990ms}
.nv-d-34{--d:1020ms}
.nv-d-35{--d:1050ms}
.nv-d-36{--d:1080ms}
.nv-d-37{--d:1110ms}
.nv-d-38{--d:1140ms}
.nv-d-39{--d:1170ms}
.nv-d-40{--d:1200ms}
.nv-pl-0{left:0%}
.nv-pl-1{left:0.5%}
.nv-pl-2{left:1%}
.nv-pl-3{left:1.5%}
.nv-pl-4{left:2%}
.nv-pl-5{left:2.5%}
.nv-pl-6{left:3%}
.nv-pl-7{left:3.5%}
.nv-pl-8{left:4%}
.nv-pl-9{left:4.5%}
.nv-pl-10{left:5%}
.nv-pl-11{left:5.5%}
.nv-pl-12{left:6%}
.nv-pl-13{left:6.5%}
.nv-pl-14{left:7%}
.nv-pl-15{left:7.5%}
.nv-pl-16{left:8%}
.nv-pl-17{left:8.5%}
.nv-pl-18{left:9%}
.nv-pl-19{left:9.5%}
.nv-pl-20{left:10%}
.nv-pl-21{left:10.5%}
.nv-pl-22{left:11%}
.nv-pl-23{left:11.5%}
.nv-pl-24{left:12%}
.nv-pl-25{left:12.5%}
.nv-pl-26{left:13%}
.nv-pl-27{left:13.5%}
.nv-pl-28{left:14%}
.nv-pl-29{left:14.5%}
.nv-pl-30{left:15%}
.nv-pl-31{left:15.5%}
.nv-pl-32{left:16%}
.nv-pl-33{left:16.5%}
.nv-pl-34{left:17%}
.nv-pl-35{left:17.5%}
.nv-pl-36{left:18%}
.nv-pl-37{left:18.5%}
.nv-pl-38{left:19%}
.nv-pl-39{left:19.5%}
.nv-pl-40{left:20%}
.nv-pl-41{left:20.5%}
.nv-pl-42{left:21%}
.nv-pl-43{left:21.5%}
.nv-pl-44{left:22%}
.nv-pl-45{left:22.5%}
.nv-pl-46{left:23%}
.nv-pl-47{left:23.5%}
.nv-pl-48{left:24%}
.nv-pl-49{left:24.5%}
.nv-pl-50{left:25%}
.nv-pl-51{left:25.5%}
.nv-pl-52{left:26%}
.nv-pl-53{left:26.5%}
.nv-pl-54{left:27%}
.nv-pl-55{left:27.5%}
.nv-pl-56{left:28%}
.nv-pl-57{left:28.5%}
.nv-pl-58{left:29%}
.nv-pl-59{left:29.5%}
.nv-pl-60{left:30%}
.nv-pl-61{left:30.5%}
.nv-pl-62{left:31%}
.nv-pl-63{left:31.5%}
.nv-pl-64{left:32%}
.nv-pl-65{left:32.5%}
.nv-pl-66{left:33%}
.nv-pl-67{left:33.5%}
.nv-pl-68{left:34%}
.nv-pl-69{left:34.5%}
.nv-pl-70{left:35%}
.nv-pl-71{left:35.5%}
.nv-pl-72{left:36%}
.nv-pl-73{left:36.5%}
.nv-pl-74{left:37%}
.nv-pl-75{left:37.5%}
.nv-pl-76{left:38%}
.nv-pl-77{left:38.5%}
.nv-pl-78{left:39%}
.nv-pl-79{left:39.5%}
.nv-pl-80{left:40%}
.nv-pl-81{left:40.5%}
.nv-pl-82{left:41%}
.nv-pl-83{left:41.5%}
.nv-pl-84{left:42%}
.nv-pl-85{left:42.5%}
.nv-pl-86{left:43%}
.nv-pl-87{left:43.5%}
.nv-pl-88{left:44%}
.nv-pl-89{left:44.5%}
.nv-pl-90{left:45%}
.nv-pl-91{left:45.5%}
.nv-pl-92{left:46%}
.nv-pl-93{left:46.5%}
.nv-pl-94{left:47%}
.nv-pl-95{left:47.5%}
.nv-pl-96{left:48%}
.nv-pl-97{left:48.5%}
.nv-pl-98{left:49%}
.nv-pl-99{left:49.5%}
.nv-pl-100{left:50%}
.nv-pl-101{left:50.5%}
.nv-pl-102{left:51%}
.nv-pl-103{left:51.5%}
.nv-pl-104{left:52%}
.nv-pl-105{left:52.5%}
.nv-pl-106{left:53%}
.nv-pl-107{left:53.5%}
.nv-pl-108{left:54%}
.nv-pl-109{left:54.5%}
.nv-pl-110{left:55%}
.nv-pl-111{left:55.5%}
.nv-pl-112{left:56%}
.nv-pl-113{left:56.5%}
.nv-pl-114{left:57%}
.nv-pl-115{left:57.5%}
.nv-pl-116{left:58%}
.nv-pl-117{left:58.5%}
.nv-pl-118{left:59%}
.nv-pl-119{left:59.5%}
.nv-pl-120{left:60%}
.nv-pl-121{left:60.5%}
.nv-pl-122{left:61%}
.nv-pl-123{left:61.5%}
.nv-pl-124{left:62%}
.nv-pl-125{left:62.5%}
.nv-pl-126{left:63%}
.nv-pl-127{left:63.5%}
.nv-pl-128{left:64%}
.nv-pl-129{left:64.5%}
.nv-pl-130{left:65%}
.nv-pl-131{left:65.5%}
.nv-pl-132{left:66%}
.nv-pl-133{left:66.5%}
.nv-pl-134{left:67%}
.nv-pl-135{left:67.5%}
.nv-pl-136{left:68%}
.nv-pl-137{left:68.5%}
.nv-pl-138{left:69%}
.nv-pl-139{left:69.5%}
.nv-pl-140{left:70%}
.nv-pl-141{left:70.5%}
.nv-pl-142{left:71%}
.nv-pl-143{left:71.5%}
.nv-pl-144{left:72%}
.nv-pl-145{left:72.5%}
.nv-pl-146{left:73%}
.nv-pl-147{left:73.5%}
.nv-pl-148{left:74%}
.nv-pl-149{left:74.5%}
.nv-pl-150{left:75%}
.nv-pl-151{left:75.5%}
.nv-pl-152{left:76%}
.nv-pl-153{left:76.5%}
.nv-pl-154{left:77%}
.nv-pl-155{left:77.5%}
.nv-pl-156{left:78%}
.nv-pl-157{left:78.5%}
.nv-pl-158{left:79%}
.nv-pl-159{left:79.5%}
.nv-pl-160{left:80%}
.nv-pl-161{left:80.5%}
.nv-pl-162{left:81%}
.nv-pl-163{left:81.5%}
.nv-pl-164{left:82%}
.nv-pl-165{left:82.5%}
.nv-pl-166{left:83%}
.nv-pl-167{left:83.5%}
.nv-pl-168{left:84%}
.nv-pl-169{left:84.5%}
.nv-pl-170{left:85%}
.nv-pl-171{left:85.5%}
.nv-pl-172{left:86%}
.nv-pl-173{left:86.5%}
.nv-pl-174{left:87%}
.nv-pl-175{left:87.5%}
.nv-pl-176{left:88%}
.nv-pl-177{left:88.5%}
.nv-pl-178{left:89%}
.nv-pl-179{left:89.5%}
.nv-pl-180{left:90%}
.nv-pl-181{left:90.5%}
.nv-pl-182{left:91%}
.nv-pl-183{left:91.5%}
.nv-pl-184{left:92%}
.nv-pl-185{left:92.5%}
.nv-pl-186{left:93%}
.nv-pl-187{left:93.5%}
.nv-pl-188{left:94%}
.nv-pl-189{left:94.5%}
.nv-pl-190{left:95%}
.nv-pl-191{left:95.5%}
.nv-pl-192{left:96%}
.nv-pl-193{left:96.5%}
.nv-pl-194{left:97%}
.nv-pl-195{left:97.5%}
.nv-pl-196{left:98%}
.nv-pl-197{left:98.5%}
.nv-pl-198{left:99%}
.nv-pl-199{left:99.5%}
.nv-pl-200{left:100%}
.nv-pt-0{top:0%}
.nv-pt-1{top:0.5%}
.nv-pt-2{top:1%}
.nv-pt-3{top:1.5%}
.nv-pt-4{top:2%}
.nv-pt-5{top:2.5%}
.nv-pt-6{top:3%}
.nv-pt-7{top:3.5%}
.nv-pt-8{top:4%}
.nv-pt-9{top:4.5%}
.nv-pt-10{top:5%}
.nv-pt-11{top:5.5%}
.nv-pt-12{top:6%}
.nv-pt-13{top:6.5%}
.nv-pt-14{top:7%}
.nv-pt-15{top:7.5%}
.nv-pt-16{top:8%}
.nv-pt-17{top:8.5%}
.nv-pt-18{top:9%}
.nv-pt-19{top:9.5%}
.nv-pt-20{top:10%}
.nv-pt-21{top:10.5%}
.nv-pt-22{top:11%}
.nv-pt-23{top:11.5%}
.nv-pt-24{top:12%}
.nv-pt-25{top:12.5%}
.nv-pt-26{top:13%}
.nv-pt-27{top:13.5%}
.nv-pt-28{top:14%}
.nv-pt-29{top:14.5%}
.nv-pt-30{top:15%}
.nv-pt-31{top:15.5%}
.nv-pt-32{top:16%}
.nv-pt-33{top:16.5%}
.nv-pt-34{top:17%}
.nv-pt-35{top:17.5%}
.nv-pt-36{top:18%}
.nv-pt-37{top:18.5%}
.nv-pt-38{top:19%}
.nv-pt-39{top:19.5%}
.nv-pt-40{top:20%}
.nv-pt-41{top:20.5%}
.nv-pt-42{top:21%}
.nv-pt-43{top:21.5%}
.nv-pt-44{top:22%}
.nv-pt-45{top:22.5%}
.nv-pt-46{top:23%}
.nv-pt-47{top:23.5%}
.nv-pt-48{top:24%}
.nv-pt-49{top:24.5%}
.nv-pt-50{top:25%}
.nv-pt-51{top:25.5%}
.nv-pt-52{top:26%}
.nv-pt-53{top:26.5%}
.nv-pt-54{top:27%}
.nv-pt-55{top:27.5%}
.nv-pt-56{top:28%}
.nv-pt-57{top:28.5%}
.nv-pt-58{top:29%}
.nv-pt-59{top:29.5%}
.nv-pt-60{top:30%}
.nv-pt-61{top:30.5%}
.nv-pt-62{top:31%}
.nv-pt-63{top:31.5%}
.nv-pt-64{top:32%}
.nv-pt-65{top:32.5%}
.nv-pt-66{top:33%}
.nv-pt-67{top:33.5%}
.nv-pt-68{top:34%}
.nv-pt-69{top:34.5%}
.nv-pt-70{top:35%}
.nv-pt-71{top:35.5%}
.nv-pt-72{top:36%}
.nv-pt-73{top:36.5%}
.nv-pt-74{top:37%}
.nv-pt-75{top:37.5%}
.nv-pt-76{top:38%}
.nv-pt-77{top:38.5%}
.nv-pt-78{top:39%}
.nv-pt-79{top:39.5%}
.nv-pt-80{top:40%}
.nv-pt-81{top:40.5%}
.nv-pt-82{top:41%}
.nv-pt-83{top:41.5%}
.nv-pt-84{top:42%}
.nv-pt-85{top:42.5%}
.nv-pt-86{top:43%}
.nv-pt-87{top:43.5%}
.nv-pt-88{top:44%}
.nv-pt-89{top:44.5%}
.nv-pt-90{top:45%}
.nv-pt-91{top:45.5%}
.nv-pt-92{top:46%}
.nv-pt-93{top:46.5%}
.nv-pt-94{top:47%}
.nv-pt-95{top:47.5%}
.nv-pt-96{top:48%}
.nv-pt-97{top:48.5%}
.nv-pt-98{top:49%}
.nv-pt-99{top:49.5%}
.nv-pt-100{top:50%}
.nv-pt-101{top:50.5%}
.nv-pt-102{top:51%}
.nv-pt-103{top:51.5%}
.nv-pt-104{top:52%}
.nv-pt-105{top:52.5%}
.nv-pt-106{top:53%}
.nv-pt-107{top:53.5%}
.nv-pt-108{top:54%}
.nv-pt-109{top:54.5%}
.nv-pt-110{top:55%}
.nv-pt-111{top:55.5%}
.nv-pt-112{top:56%}
.nv-pt-113{top:56.5%}
.nv-pt-114{top:57%}
.nv-pt-115{top:57.5%}
.nv-pt-116{top:58%}
.nv-pt-117{top:58.5%}
.nv-pt-118{top:59%}
.nv-pt-119{top:59.5%}
.nv-pt-120{top:60%}
.nv-pt-121{top:60.5%}
.nv-pt-122{top:61%}
.nv-pt-123{top:61.5%}
.nv-pt-124{top:62%}
.nv-pt-125{top:62.5%}
.nv-pt-126{top:63%}
.nv-pt-127{top:63.5%}
.nv-pt-128{top:64%}
.nv-pt-129{top:64.5%}
.nv-pt-130{top:65%}
.nv-pt-131{top:65.5%}
.nv-pt-132{top:66%}
.nv-pt-133{top:66.5%}
.nv-pt-134{top:67%}
.nv-pt-135{top:67.5%}
.nv-pt-136{top:68%}
.nv-pt-137{top:68.5%}
.nv-pt-138{top:69%}
.nv-pt-139{top:69.5%}
.nv-pt-140{top:70%}
.nv-pt-141{top:70.5%}
.nv-pt-142{top:71%}
.nv-pt-143{top:71.5%}
.nv-pt-144{top:72%}
.nv-pt-145{top:72.5%}
.nv-pt-146{top:73%}
.nv-pt-147{top:73.5%}
.nv-pt-148{top:74%}
.nv-pt-149{top:74.5%}
.nv-pt-150{top:75%}
.nv-pt-151{top:75.5%}
.nv-pt-152{top:76%}
.nv-pt-153{top:76.5%}
.nv-pt-154{top:77%}
.nv-pt-155{top:77.5%}
.nv-pt-156{top:78%}
.nv-pt-157{top:78.5%}
.nv-pt-158{top:79%}
.nv-pt-159{top:79.5%}
.nv-pt-160{top:80%}
.nv-pt-161{top:80.5%}
.nv-pt-162{top:81%}
.nv-pt-163{top:81.5%}
.nv-pt-164{top:82%}
.nv-pt-165{top:82.5%}
.nv-pt-166{top:83%}
.nv-pt-167{top:83.5%}
.nv-pt-168{top:84%}
.nv-pt-169{top:84.5%}
.nv-pt-170{top:85%}
.nv-pt-171{top:85.5%}
.nv-pt-172{top:86%}
.nv-pt-173{top:86.5%}
.nv-pt-174{top:87%}
.nv-pt-175{top:87.5%}
.nv-pt-176{top:88%}
.nv-pt-177{top:88.5%}
.nv-pt-178{top:89%}
.nv-pt-179{top:89.5%}
.nv-pt-180{top:90%}
.nv-pt-181{top:90.5%}
.nv-pt-182{top:91%}
.nv-pt-183{top:91.5%}
.nv-pt-184{top:92%}
.nv-pt-185{top:92.5%}
.nv-pt-186{top:93%}
.nv-pt-187{top:93.5%}
.nv-pt-188{top:94%}
.nv-pt-189{top:94.5%}
.nv-pt-190{top:95%}
.nv-pt-191{top:95.5%}
.nv-pt-192{top:96%}
.nv-pt-193{top:96.5%}
.nv-pt-194{top:97%}
.nv-pt-195{top:97.5%}
.nv-pt-196{top:98%}
.nv-pt-197{top:98.5%}
.nv-pt-198{top:99%}
.nv-pt-199{top:99.5%}
.nv-pt-200{top:100%}
.nv-pw-0{width:0%}
.nv-pw-1{width:1%}
.nv-pw-2{width:2%}
.nv-pw-3{width:3%}
.nv-pw-4{width:4%}
.nv-pw-5{width:5%}
.nv-pw-6{width:6%}
.nv-pw-7{width:7%}
.nv-pw-8{width:8%}
.nv-pw-9{width:9%}
.nv-pw-10{width:10%}
.nv-pw-11{width:11%}
.nv-pw-12{width:12%}
.nv-pw-13{width:13%}
.nv-pw-14{width:14%}
.nv-pw-15{width:15%}
.nv-pw-16{width:16%}
.nv-pw-17{width:17%}
.nv-pw-18{width:18%}
.nv-pw-19{width:19%}
.nv-pw-20{width:20%}
.nv-pw-21{width:21%}
.nv-pw-22{width:22%}
.nv-pw-23{width:23%}
.nv-pw-24{width:24%}
.nv-pw-25{width:25%}
.nv-pw-26{width:26%}
.nv-pw-27{width:27%}
.nv-pw-28{width:28%}
.nv-pw-29{width:29%}
.nv-pw-30{width:30%}
.nv-pw-31{width:31%}
.nv-pw-32{width:32%}
.nv-pw-33{width:33%}
.nv-pw-34{width:34%}
.nv-pw-35{width:35%}
.nv-pw-36{width:36%}
.nv-pw-37{width:37%}
.nv-pw-38{width:38%}
.nv-pw-39{width:39%}
.nv-pw-40{width:40%}
.nv-pw-41{width:41%}
.nv-pw-42{width:42%}
.nv-pw-43{width:43%}
.nv-pw-44{width:44%}
.nv-pw-45{width:45%}
.nv-pw-46{width:46%}
.nv-pw-47{width:47%}
.nv-pw-48{width:48%}
.nv-pw-49{width:49%}
.nv-pw-50{width:50%}
.nv-pw-51{width:51%}
.nv-pw-52{width:52%}
.nv-pw-53{width:53%}
.nv-pw-54{width:54%}
.nv-pw-55{width:55%}
.nv-pw-56{width:56%}
.nv-pw-57{width:57%}
.nv-pw-58{width:58%}
.nv-pw-59{width:59%}
.nv-pw-60{width:60%}
.nv-pw-61{width:61%}
.nv-pw-62{width:62%}
.nv-pw-63{width:63%}
.nv-pw-64{width:64%}
.nv-pw-65{width:65%}
.nv-pw-66{width:66%}
.nv-pw-67{width:67%}
.nv-pw-68{width:68%}
.nv-pw-69{width:69%}
.nv-pw-70{width:70%}
.nv-pw-71{width:71%}
.nv-pw-72{width:72%}
.nv-pw-73{width:73%}
.nv-pw-74{width:74%}
.nv-pw-75{width:75%}
.nv-pw-76{width:76%}
.nv-pw-77{width:77%}
.nv-pw-78{width:78%}
.nv-pw-79{width:79%}
.nv-pw-80{width:80%}
.nv-pw-81{width:81%}
.nv-pw-82{width:82%}
.nv-pw-83{width:83%}
.nv-pw-84{width:84%}
.nv-pw-85{width:85%}
.nv-pw-86{width:86%}
.nv-pw-87{width:87%}
.nv-pw-88{width:88%}
.nv-pw-89{width:89%}
.nv-pw-90{width:90%}
.nv-pw-91{width:91%}
.nv-pw-92{width:92%}
.nv-pw-93{width:93%}
.nv-pw-94{width:94%}
.nv-pw-95{width:95%}
.nv-pw-96{width:96%}
.nv-pw-97{width:97%}
.nv-pw-98{width:98%}
.nv-pw-99{width:99%}
.nv-pw-100{width:100%}
.nv-h-0{height:0px}
.nv-h-1{height:1px}
.nv-h-2{height:2px}
.nv-h-3{height:3px}
.nv-h-4{height:4px}
.nv-h-5{height:5px}
.nv-h-6{height:6px}
.nv-h-7{height:7px}
.nv-h-8{height:8px}
.nv-h-9{height:9px}
.nv-h-10{height:10px}
.nv-h-11{height:11px}
.nv-h-12{height:12px}
.nv-h-13{height:13px}
.nv-h-14{height:14px}
.nv-h-15{height:15px}
.nv-h-16{height:16px}
.nv-h-17{height:17px}
.nv-h-18{height:18px}
.nv-h-19{height:19px}
.nv-h-20{height:20px}
.nv-h-21{height:21px}
.nv-h-22{height:22px}
.nv-h-23{height:23px}
.nv-h-24{height:24px}
.nv-rn-pve{--c:#a0d8ff}.nv-rn-pvp{--c:#ff6b9d}.nv-rn-mastery{--c:#c9a0ff}.nv-rn-economy{--c:#ffd700}.nv-rn-social{--c:#a0ff9d}.nv-rn-events{--c:#ffb366}
.nv-pcn-0{--pct:0}
.nv-pcn-1{--pct:1}
.nv-pcn-2{--pct:2}
.nv-pcn-3{--pct:3}
.nv-pcn-4{--pct:4}
.nv-pcn-5{--pct:5}
.nv-pcn-6{--pct:6}
.nv-pcn-7{--pct:7}
.nv-pcn-8{--pct:8}
.nv-pcn-9{--pct:9}
.nv-pcn-10{--pct:10}
.nv-pcn-11{--pct:11}
.nv-pcn-12{--pct:12}
.nv-pcn-13{--pct:13}
.nv-pcn-14{--pct:14}
.nv-pcn-15{--pct:15}
.nv-pcn-16{--pct:16}
.nv-pcn-17{--pct:17}
.nv-pcn-18{--pct:18}
.nv-pcn-19{--pct:19}
.nv-pcn-20{--pct:20}
.nv-pcn-21{--pct:21}
.nv-pcn-22{--pct:22}
.nv-pcn-23{--pct:23}
.nv-pcn-24{--pct:24}
.nv-pcn-25{--pct:25}
.nv-pcn-26{--pct:26}
.nv-pcn-27{--pct:27}
.nv-pcn-28{--pct:28}
.nv-pcn-29{--pct:29}
.nv-pcn-30{--pct:30}
.nv-pcn-31{--pct:31}
.nv-pcn-32{--pct:32}
.nv-pcn-33{--pct:33}
.nv-pcn-34{--pct:34}
.nv-pcn-35{--pct:35}
.nv-pcn-36{--pct:36}
.nv-pcn-37{--pct:37}
.nv-pcn-38{--pct:38}
.nv-pcn-39{--pct:39}
.nv-pcn-40{--pct:40}
.nv-pcn-41{--pct:41}
.nv-pcn-42{--pct:42}
.nv-pcn-43{--pct:43}
.nv-pcn-44{--pct:44}
.nv-pcn-45{--pct:45}
.nv-pcn-46{--pct:46}
.nv-pcn-47{--pct:47}
.nv-pcn-48{--pct:48}
.nv-pcn-49{--pct:49}
.nv-pcn-50{--pct:50}
.nv-pcn-51{--pct:51}
.nv-pcn-52{--pct:52}
.nv-pcn-53{--pct:53}
.nv-pcn-54{--pct:54}
.nv-pcn-55{--pct:55}
.nv-pcn-56{--pct:56}
.nv-pcn-57{--pct:57}
.nv-pcn-58{--pct:58}
.nv-pcn-59{--pct:59}
.nv-pcn-60{--pct:60}
.nv-pcn-61{--pct:61}
.nv-pcn-62{--pct:62}
.nv-pcn-63{--pct:63}
.nv-pcn-64{--pct:64}
.nv-pcn-65{--pct:65}
.nv-pcn-66{--pct:66}
.nv-pcn-67{--pct:67}
.nv-pcn-68{--pct:68}
.nv-pcn-69{--pct:69}
.nv-pcn-70{--pct:70}
.nv-pcn-71{--pct:71}
.nv-pcn-72{--pct:72}
.nv-pcn-73{--pct:73}
.nv-pcn-74{--pct:74}
.nv-pcn-75{--pct:75}
.nv-pcn-76{--pct:76}
.nv-pcn-77{--pct:77}
.nv-pcn-78{--pct:78}
.nv-pcn-79{--pct:79}
.nv-pcn-80{--pct:80}
.nv-pcn-81{--pct:81}
.nv-pcn-82{--pct:82}
.nv-pcn-83{--pct:83}
.nv-pcn-84{--pct:84}
.nv-pcn-85{--pct:85}
.nv-pcn-86{--pct:86}
.nv-pcn-87{--pct:87}
.nv-pcn-88{--pct:88}
.nv-pcn-89{--pct:89}
.nv-pcn-90{--pct:90}
.nv-pcn-91{--pct:91}
.nv-pcn-92{--pct:92}
.nv-pcn-93{--pct:93}
.nv-pcn-94{--pct:94}
.nv-pcn-95{--pct:95}
.nv-pcn-96{--pct:96}
.nv-pcn-97{--pct:97}
.nv-pcn-98{--pct:98}
.nv-pcn-99{--pct:99}
.nv-pcn-100{--pct:100}
.nv-dg-0{--deg:0deg}
.nv-dg-1{--deg:0.5deg}
.nv-dg-2{--deg:1deg}
.nv-dg-3{--deg:1.5deg}
.nv-dg-4{--deg:2deg}
.nv-dg-5{--deg:2.5deg}
.nv-dg-6{--deg:3deg}
.nv-dg-7{--deg:3.5deg}
.nv-dg-8{--deg:4deg}
.nv-dg-9{--deg:4.5deg}
.nv-dg-10{--deg:5deg}
.nv-dg-11{--deg:5.5deg}
.nv-dg-12{--deg:6deg}
.nv-dg-13{--deg:6.5deg}
.nv-dg-14{--deg:7deg}
.nv-dg-15{--deg:7.5deg}
.nv-dg-16{--deg:8deg}
.nv-dg-17{--deg:8.5deg}
.nv-dg-18{--deg:9deg}
.nv-dg-19{--deg:9.5deg}
.nv-dg-20{--deg:10deg}
.nv-dg-21{--deg:10.5deg}
.nv-dg-22{--deg:11deg}
.nv-dg-23{--deg:11.5deg}
.nv-dg-24{--deg:12deg}
.nv-dg-25{--deg:12.5deg}
.nv-dg-26{--deg:13deg}
.nv-dg-27{--deg:13.5deg}
.nv-dg-28{--deg:14deg}
.nv-dg-29{--deg:14.5deg}
.nv-dg-30{--deg:15deg}
.nv-dg-31{--deg:15.5deg}
.nv-dg-32{--deg:16deg}
.nv-dg-33{--deg:16.5deg}
.nv-dg-34{--deg:17deg}
.nv-dg-35{--deg:17.5deg}
.nv-dg-36{--deg:18deg}
.nv-dg-37{--deg:18.5deg}
.nv-dg-38{--deg:19deg}
.nv-dg-39{--deg:19.5deg}
.nv-dg-40{--deg:20deg}
.nv-dg-41{--deg:20.5deg}
.nv-dg-42{--deg:21deg}
.nv-dg-43{--deg:21.5deg}
.nv-dg-44{--deg:22deg}
.nv-dg-45{--deg:22.5deg}
.nv-dg-46{--deg:23deg}
.nv-dg-47{--deg:23.5deg}
.nv-dg-48{--deg:24deg}
.nv-dg-49{--deg:24.5deg}
.nv-dg-50{--deg:25deg}
.nv-dg-51{--deg:25.5deg}
.nv-dg-52{--deg:26deg}
.nv-dg-53{--deg:26.5deg}
.nv-dg-54{--deg:27deg}
.nv-dg-55{--deg:27.5deg}
.nv-dg-56{--deg:28deg}
.nv-dg-57{--deg:28.5deg}
.nv-dg-58{--deg:29deg}
.nv-dg-59{--deg:29.5deg}
.nv-dg-60{--deg:30deg}
.nv-dg-61{--deg:30.5deg}
.nv-dg-62{--deg:31deg}
.nv-dg-63{--deg:31.5deg}
.nv-dg-64{--deg:32deg}
.nv-dg-65{--deg:32.5deg}
.nv-dg-66{--deg:33deg}
.nv-dg-67{--deg:33.5deg}
.nv-dg-68{--deg:34deg}
.nv-dg-69{--deg:34.5deg}
.nv-dg-70{--deg:35deg}
.nv-dg-71{--deg:35.5deg}
.nv-dg-72{--deg:36deg}
.nv-dg-73{--deg:36.5deg}
.nv-dg-74{--deg:37deg}
.nv-dg-75{--deg:37.5deg}
.nv-dg-76{--deg:38deg}
.nv-dg-77{--deg:38.5deg}
.nv-dg-78{--deg:39deg}
.nv-dg-79{--deg:39.5deg}
.nv-dg-80{--deg:40deg}
.nv-dg-81{--deg:40.5deg}
.nv-dg-82{--deg:41deg}
.nv-dg-83{--deg:41.5deg}
.nv-dg-84{--deg:42deg}
.nv-dg-85{--deg:42.5deg}
.nv-dg-86{--deg:43deg}
.nv-dg-87{--deg:43.5deg}
.nv-dg-88{--deg:44deg}
.nv-dg-89{--deg:44.5deg}
.nv-dg-90{--deg:45deg}
.nv-dg-91{--deg:45.5deg}
.nv-dg-92{--deg:46deg}
.nv-dg-93{--deg:46.5deg}
.nv-dg-94{--deg:47deg}
.nv-dg-95{--deg:47.5deg}
.nv-dg-96{--deg:48deg}
.nv-dg-97{--deg:48.5deg}
.nv-dg-98{--deg:49deg}
.nv-dg-99{--deg:49.5deg}
.nv-dg-100{--deg:50deg}
.nv-dg-101{--deg:50.5deg}
.nv-dg-102{--deg:51deg}
.nv-dg-103{--deg:51.5deg}
.nv-dg-104{--deg:52deg}
.nv-dg-105{--deg:52.5deg}
.nv-dg-106{--deg:53deg}
.nv-dg-107{--deg:53.5deg}
.nv-dg-108{--deg:54deg}
.nv-dg-109{--deg:54.5deg}
.nv-dg-110{--deg:55deg}
.nv-dg-111{--deg:55.5deg}
.nv-dg-112{--deg:56deg}
.nv-dg-113{--deg:56.5deg}
.nv-dg-114{--deg:57deg}
.nv-dg-115{--deg:57.5deg}
.nv-dg-116{--deg:58deg}
.nv-dg-117{--deg:58.5deg}
.nv-dg-118{--deg:59deg}
.nv-dg-119{--deg:59.5deg}
.nv-dg-120{--deg:60deg}
.nv-dg-121{--deg:60.5deg}
.nv-dg-122{--deg:61deg}
.nv-dg-123{--deg:61.5deg}
.nv-dg-124{--deg:62deg}
.nv-dg-125{--deg:62.5deg}
.nv-dg-126{--deg:63deg}
.nv-dg-127{--deg:63.5deg}
.nv-dg-128{--deg:64deg}
.nv-dg-129{--deg:64.5deg}
.nv-dg-130{--deg:65deg}
.nv-dg-131{--deg:65.5deg}
.nv-dg-132{--deg:66deg}
.nv-dg-133{--deg:66.5deg}
.nv-dg-134{--deg:67deg}
.nv-dg-135{--deg:67.5deg}
.nv-dg-136{--deg:68deg}
.nv-dg-137{--deg:68.5deg}
.nv-dg-138{--deg:69deg}
.nv-dg-139{--deg:69.5deg}
.nv-dg-140{--deg:70deg}
.nv-dg-141{--deg:70.5deg}
.nv-dg-142{--deg:71deg}
.nv-dg-143{--deg:71.5deg}
.nv-dg-144{--deg:72deg}
.nv-dg-145{--deg:72.5deg}
.nv-dg-146{--deg:73deg}
.nv-dg-147{--deg:73.5deg}
.nv-dg-148{--deg:74deg}
.nv-dg-149{--deg:74.5deg}
.nv-dg-150{--deg:75deg}
.nv-dg-151{--deg:75.5deg}
.nv-dg-152{--deg:76deg}
.nv-dg-153{--deg:76.5deg}
.nv-dg-154{--deg:77deg}
.nv-dg-155{--deg:77.5deg}
.nv-dg-156{--deg:78deg}
.nv-dg-157{--deg:78.5deg}
.nv-dg-158{--deg:79deg}
.nv-dg-159{--deg:79.5deg}
.nv-dg-160{--deg:80deg}
.nv-dg-161{--deg:80.5deg}
.nv-dg-162{--deg:81deg}
.nv-dg-163{--deg:81.5deg}
.nv-dg-164{--deg:82deg}
.nv-dg-165{--deg:82.5deg}
.nv-dg-166{--deg:83deg}
.nv-dg-167{--deg:83.5deg}
.nv-dg-168{--deg:84deg}
.nv-dg-169{--deg:84.5deg}
.nv-dg-170{--deg:85deg}
.nv-dg-171{--deg:85.5deg}
.nv-dg-172{--deg:86deg}
.nv-dg-173{--deg:86.5deg}
.nv-dg-174{--deg:87deg}
.nv-dg-175{--deg:87.5deg}
.nv-dg-176{--deg:88deg}
.nv-dg-177{--deg:88.5deg}
.nv-dg-178{--deg:89deg}
.nv-dg-179{--deg:89.5deg}
.nv-dg-180{--deg:90deg}
.nv-dg-181{--deg:90.5deg}
.nv-dg-182{--deg:91deg}
.nv-dg-183{--deg:91.5deg}
.nv-dg-184{--deg:92deg}
.nv-dg-185{--deg:92.5deg}
.nv-dg-186{--deg:93deg}
.nv-dg-187{--deg:93.5deg}
.nv-dg-188{--deg:94deg}
.nv-dg-189{--deg:94.5deg}
.nv-dg-190{--deg:95deg}
.nv-dg-191{--deg:95.5deg}
.nv-dg-192{--deg:96deg}
.nv-dg-193{--deg:96.5deg}
.nv-dg-194{--deg:97deg}
.nv-dg-195{--deg:97.5deg}
.nv-dg-196{--deg:98deg}
.nv-dg-197{--deg:98.5deg}
.nv-dg-198{--deg:99deg}
.nv-dg-199{--deg:99.5deg}
.nv-dg-200{--deg:100deg}
.nv-dg-201{--deg:100.5deg}
.nv-dg-202{--deg:101deg}
.nv-dg-203{--deg:101.5deg}
.nv-dg-204{--deg:102deg}
.nv-dg-205{--deg:102.5deg}
.nv-dg-206{--deg:103deg}
.nv-dg-207{--deg:103.5deg}
.nv-dg-208{--deg:104deg}
.nv-dg-209{--deg:104.5deg}
.nv-dg-210{--deg:105deg}
.nv-dg-211{--deg:105.5deg}
.nv-dg-212{--deg:106deg}
.nv-dg-213{--deg:106.5deg}
.nv-dg-214{--deg:107deg}
.nv-dg-215{--deg:107.5deg}
.nv-dg-216{--deg:108deg}
.nv-dg-217{--deg:108.5deg}
.nv-dg-218{--deg:109deg}
.nv-dg-219{--deg:109.5deg}
.nv-dg-220{--deg:110deg}
.nv-dg-221{--deg:110.5deg}
.nv-dg-222{--deg:111deg}
.nv-dg-223{--deg:111.5deg}
.nv-dg-224{--deg:112deg}
.nv-dg-225{--deg:112.5deg}
.nv-dg-226{--deg:113deg}
.nv-dg-227{--deg:113.5deg}
.nv-dg-228{--deg:114deg}
.nv-dg-229{--deg:114.5deg}
.nv-dg-230{--deg:115deg}
.nv-dg-231{--deg:115.5deg}
.nv-dg-232{--deg:116deg}
.nv-dg-233{--deg:116.5deg}
.nv-dg-234{--deg:117deg}
.nv-dg-235{--deg:117.5deg}
.nv-dg-236{--deg:118deg}
.nv-dg-237{--deg:118.5deg}
.nv-dg-238{--deg:119deg}
.nv-dg-239{--deg:119.5deg}
.nv-dg-240{--deg:120deg}
.nv-dg-241{--deg:120.5deg}
.nv-dg-242{--deg:121deg}
.nv-dg-243{--deg:121.5deg}
.nv-dg-244{--deg:122deg}
.nv-dg-245{--deg:122.5deg}
.nv-dg-246{--deg:123deg}
.nv-dg-247{--deg:123.5deg}
.nv-dg-248{--deg:124deg}
.nv-dg-249{--deg:124.5deg}
.nv-dg-250{--deg:125deg}
.nv-dg-251{--deg:125.5deg}
.nv-dg-252{--deg:126deg}
.nv-dg-253{--deg:126.5deg}
.nv-dg-254{--deg:127deg}
.nv-dg-255{--deg:127.5deg}
.nv-dg-256{--deg:128deg}
.nv-dg-257{--deg:128.5deg}
.nv-dg-258{--deg:129deg}
.nv-dg-259{--deg:129.5deg}
.nv-dg-260{--deg:130deg}
.nv-dg-261{--deg:130.5deg}
.nv-dg-262{--deg:131deg}
.nv-dg-263{--deg:131.5deg}
.nv-dg-264{--deg:132deg}
.nv-dg-265{--deg:132.5deg}
.nv-dg-266{--deg:133deg}
.nv-dg-267{--deg:133.5deg}
.nv-dg-268{--deg:134deg}
.nv-dg-269{--deg:134.5deg}
.nv-dg-270{--deg:135deg}
.nv-dg-271{--deg:135.5deg}
.nv-dg-272{--deg:136deg}
.nv-dg-273{--deg:136.5deg}
.nv-dg-274{--deg:137deg}
.nv-dg-275{--deg:137.5deg}
.nv-dg-276{--deg:138deg}
.nv-dg-277{--deg:138.5deg}
.nv-dg-278{--deg:139deg}
.nv-dg-279{--deg:139.5deg}
.nv-dg-280{--deg:140deg}
.nv-dg-281{--deg:140.5deg}
.nv-dg-282{--deg:141deg}
.nv-dg-283{--deg:141.5deg}
.nv-dg-284{--deg:142deg}
.nv-dg-285{--deg:142.5deg}
.nv-dg-286{--deg:143deg}
.nv-dg-287{--deg:143.5deg}
.nv-dg-288{--deg:144deg}
.nv-dg-289{--deg:144.5deg}
.nv-dg-290{--deg:145deg}
.nv-dg-291{--deg:145.5deg}
.nv-dg-292{--deg:146deg}
.nv-dg-293{--deg:146.5deg}
.nv-dg-294{--deg:147deg}
.nv-dg-295{--deg:147.5deg}
.nv-dg-296{--deg:148deg}
.nv-dg-297{--deg:148.5deg}
.nv-dg-298{--deg:149deg}
.nv-dg-299{--deg:149.5deg}
.nv-dg-300{--deg:150deg}
.nv-dg-301{--deg:150.5deg}
.nv-dg-302{--deg:151deg}
.nv-dg-303{--deg:151.5deg}
.nv-dg-304{--deg:152deg}
.nv-dg-305{--deg:152.5deg}
.nv-dg-306{--deg:153deg}
.nv-dg-307{--deg:153.5deg}
.nv-dg-308{--deg:154deg}
.nv-dg-309{--deg:154.5deg}
.nv-dg-310{--deg:155deg}
.nv-dg-311{--deg:155.5deg}
.nv-dg-312{--deg:156deg}
.nv-dg-313{--deg:156.5deg}
.nv-dg-314{--deg:157deg}
.nv-dg-315{--deg:157.5deg}
.nv-dg-316{--deg:158deg}
.nv-dg-317{--deg:158.5deg}
.nv-dg-318{--deg:159deg}
.nv-dg-319{--deg:159.5deg}
.nv-dg-320{--deg:160deg}
.nv-dg-321{--deg:160.5deg}
.nv-dg-322{--deg:161deg}
.nv-dg-323{--deg:161.5deg}
.nv-dg-324{--deg:162deg}
.nv-dg-325{--deg:162.5deg}
.nv-dg-326{--deg:163deg}
.nv-dg-327{--deg:163.5deg}
.nv-dg-328{--deg:164deg}
.nv-dg-329{--deg:164.5deg}
.nv-dg-330{--deg:165deg}
.nv-dg-331{--deg:165.5deg}
.nv-dg-332{--deg:166deg}
.nv-dg-333{--deg:166.5deg}
.nv-dg-334{--deg:167deg}
.nv-dg-335{--deg:167.5deg}
.nv-dg-336{--deg:168deg}
.nv-dg-337{--deg:168.5deg}
.nv-dg-338{--deg:169deg}
.nv-dg-339{--deg:169.5deg}
.nv-dg-340{--deg:170deg}
.nv-dg-341{--deg:170.5deg}
.nv-dg-342{--deg:171deg}
.nv-dg-343{--deg:171.5deg}
.nv-dg-344{--deg:172deg}
.nv-dg-345{--deg:172.5deg}
.nv-dg-346{--deg:173deg}
.nv-dg-347{--deg:173.5deg}
.nv-dg-348{--deg:174deg}
.nv-dg-349{--deg:174.5deg}
.nv-dg-350{--deg:175deg}
.nv-dg-351{--deg:175.5deg}
.nv-dg-352{--deg:176deg}
.nv-dg-353{--deg:176.5deg}
.nv-dg-354{--deg:177deg}
.nv-dg-355{--deg:177.5deg}
.nv-dg-356{--deg:178deg}
.nv-dg-357{--deg:178.5deg}
.nv-dg-358{--deg:179deg}
.nv-dg-359{--deg:179.5deg}
.nv-dg-360{--deg:180deg}
.nv-dg-361{--deg:180.5deg}
.nv-dg-362{--deg:181deg}
.nv-dg-363{--deg:181.5deg}
.nv-dg-364{--deg:182deg}
.nv-dg-365{--deg:182.5deg}
.nv-dg-366{--deg:183deg}
.nv-dg-367{--deg:183.5deg}
.nv-dg-368{--deg:184deg}
.nv-dg-369{--deg:184.5deg}
.nv-dg-370{--deg:185deg}
.nv-dg-371{--deg:185.5deg}
.nv-dg-372{--deg:186deg}
.nv-dg-373{--deg:186.5deg}
.nv-dg-374{--deg:187deg}
.nv-dg-375{--deg:187.5deg}
.nv-dg-376{--deg:188deg}
.nv-dg-377{--deg:188.5deg}
.nv-dg-378{--deg:189deg}
.nv-dg-379{--deg:189.5deg}
.nv-dg-380{--deg:190deg}
.nv-dg-381{--deg:190.5deg}
.nv-dg-382{--deg:191deg}
.nv-dg-383{--deg:191.5deg}
.nv-dg-384{--deg:192deg}
.nv-dg-385{--deg:192.5deg}
.nv-dg-386{--deg:193deg}
.nv-dg-387{--deg:193.5deg}
.nv-dg-388{--deg:194deg}
.nv-dg-389{--deg:194.5deg}
.nv-dg-390{--deg:195deg}
.nv-dg-391{--deg:195.5deg}
.nv-dg-392{--deg:196deg}
.nv-dg-393{--deg:196.5deg}
.nv-dg-394{--deg:197deg}
.nv-dg-395{--deg:197.5deg}
.nv-dg-396{--deg:198deg}
.nv-dg-397{--deg:198.5deg}
.nv-dg-398{--deg:199deg}
.nv-dg-399{--deg:199.5deg}
.nv-dg-400{--deg:200deg}
.nv-dg-401{--deg:200.5deg}
.nv-dg-402{--deg:201deg}
.nv-dg-403{--deg:201.5deg}
.nv-dg-404{--deg:202deg}
.nv-dg-405{--deg:202.5deg}
.nv-dg-406{--deg:203deg}
.nv-dg-407{--deg:203.5deg}
.nv-dg-408{--deg:204deg}
.nv-dg-409{--deg:204.5deg}
.nv-dg-410{--deg:205deg}
.nv-dg-411{--deg:205.5deg}
.nv-dg-412{--deg:206deg}
.nv-dg-413{--deg:206.5deg}
.nv-dg-414{--deg:207deg}
.nv-dg-415{--deg:207.5deg}
.nv-dg-416{--deg:208deg}
.nv-dg-417{--deg:208.5deg}
.nv-dg-418{--deg:209deg}
.nv-dg-419{--deg:209.5deg}
.nv-dg-420{--deg:210deg}
.nv-dg-421{--deg:210.5deg}
.nv-dg-422{--deg:211deg}
.nv-dg-423{--deg:211.5deg}
.nv-dg-424{--deg:212deg}
.nv-dg-425{--deg:212.5deg}
.nv-dg-426{--deg:213deg}
.nv-dg-427{--deg:213.5deg}
.nv-dg-428{--deg:214deg}
.nv-dg-429{--deg:214.5deg}
.nv-dg-430{--deg:215deg}
.nv-dg-431{--deg:215.5deg}
.nv-dg-432{--deg:216deg}
.nv-dg-433{--deg:216.5deg}
.nv-dg-434{--deg:217deg}
.nv-dg-435{--deg:217.5deg}
.nv-dg-436{--deg:218deg}
.nv-dg-437{--deg:218.5deg}
.nv-dg-438{--deg:219deg}
.nv-dg-439{--deg:219.5deg}
.nv-dg-440{--deg:220deg}
.nv-dg-441{--deg:220.5deg}
.nv-dg-442{--deg:221deg}
.nv-dg-443{--deg:221.5deg}
.nv-dg-444{--deg:222deg}
.nv-dg-445{--deg:222.5deg}
.nv-dg-446{--deg:223deg}
.nv-dg-447{--deg:223.5deg}
.nv-dg-448{--deg:224deg}
.nv-dg-449{--deg:224.5deg}
.nv-dg-450{--deg:225deg}
.nv-dg-451{--deg:225.5deg}
.nv-dg-452{--deg:226deg}
.nv-dg-453{--deg:226.5deg}
.nv-dg-454{--deg:227deg}
.nv-dg-455{--deg:227.5deg}
.nv-dg-456{--deg:228deg}
.nv-dg-457{--deg:228.5deg}
.nv-dg-458{--deg:229deg}
.nv-dg-459{--deg:229.5deg}
.nv-dg-460{--deg:230deg}
.nv-dg-461{--deg:230.5deg}
.nv-dg-462{--deg:231deg}
.nv-dg-463{--deg:231.5deg}
.nv-dg-464{--deg:232deg}
.nv-dg-465{--deg:232.5deg}
.nv-dg-466{--deg:233deg}
.nv-dg-467{--deg:233.5deg}
.nv-dg-468{--deg:234deg}
.nv-dg-469{--deg:234.5deg}
.nv-dg-470{--deg:235deg}
.nv-dg-471{--deg:235.5deg}
.nv-dg-472{--deg:236deg}
.nv-dg-473{--deg:236.5deg}
.nv-dg-474{--deg:237deg}
.nv-dg-475{--deg:237.5deg}
.nv-dg-476{--deg:238deg}
.nv-dg-477{--deg:238.5deg}
.nv-dg-478{--deg:239deg}
.nv-dg-479{--deg:239.5deg}
.nv-dg-480{--deg:240deg}
.nv-dg-481{--deg:240.5deg}
.nv-dg-482{--deg:241deg}
.nv-dg-483{--deg:241.5deg}
.nv-dg-484{--deg:242deg}
.nv-dg-485{--deg:242.5deg}
.nv-dg-486{--deg:243deg}
.nv-dg-487{--deg:243.5deg}
.nv-dg-488{--deg:244deg}
.nv-dg-489{--deg:244.5deg}
.nv-dg-490{--deg:245deg}
.nv-dg-491{--deg:245.5deg}
.nv-dg-492{--deg:246deg}
.nv-dg-493{--deg:246.5deg}
.nv-dg-494{--deg:247deg}
.nv-dg-495{--deg:247.5deg}
.nv-dg-496{--deg:248deg}
.nv-dg-497{--deg:248.5deg}
.nv-dg-498{--deg:249deg}
.nv-dg-499{--deg:249.5deg}
.nv-dg-500{--deg:250deg}
.nv-dg-501{--deg:250.5deg}
.nv-dg-502{--deg:251deg}
.nv-dg-503{--deg:251.5deg}
.nv-dg-504{--deg:252deg}
.nv-dg-505{--deg:252.5deg}
.nv-dg-506{--deg:253deg}
.nv-dg-507{--deg:253.5deg}
.nv-dg-508{--deg:254deg}
.nv-dg-509{--deg:254.5deg}
.nv-dg-510{--deg:255deg}
.nv-dg-511{--deg:255.5deg}
.nv-dg-512{--deg:256deg}
.nv-dg-513{--deg:256.5deg}
.nv-dg-514{--deg:257deg}
.nv-dg-515{--deg:257.5deg}
.nv-dg-516{--deg:258deg}
.nv-dg-517{--deg:258.5deg}
.nv-dg-518{--deg:259deg}
.nv-dg-519{--deg:259.5deg}
.nv-dg-520{--deg:260deg}
.nv-dg-521{--deg:260.5deg}
.nv-dg-522{--deg:261deg}
.nv-dg-523{--deg:261.5deg}
.nv-dg-524{--deg:262deg}
.nv-dg-525{--deg:262.5deg}
.nv-dg-526{--deg:263deg}
.nv-dg-527{--deg:263.5deg}
.nv-dg-528{--deg:264deg}
.nv-dg-529{--deg:264.5deg}
.nv-dg-530{--deg:265deg}
.nv-dg-531{--deg:265.5deg}
.nv-dg-532{--deg:266deg}
.nv-dg-533{--deg:266.5deg}
.nv-dg-534{--deg:267deg}
.nv-dg-535{--deg:267.5deg}
.nv-dg-536{--deg:268deg}
.nv-dg-537{--deg:268.5deg}
.nv-dg-538{--deg:269deg}
.nv-dg-539{--deg:269.5deg}
.nv-dg-540{--deg:270deg}
.nv-dg-541{--deg:270.5deg}
.nv-dg-542{--deg:271deg}
.nv-dg-543{--deg:271.5deg}
.nv-dg-544{--deg:272deg}
.nv-dg-545{--deg:272.5deg}
.nv-dg-546{--deg:273deg}
.nv-dg-547{--deg:273.5deg}
.nv-dg-548{--deg:274deg}
.nv-dg-549{--deg:274.5deg}
.nv-dg-550{--deg:275deg}
.nv-dg-551{--deg:275.5deg}
.nv-dg-552{--deg:276deg}
.nv-dg-553{--deg:276.5deg}
.nv-dg-554{--deg:277deg}
.nv-dg-555{--deg:277.5deg}
.nv-dg-556{--deg:278deg}
.nv-dg-557{--deg:278.5deg}
.nv-dg-558{--deg:279deg}
.nv-dg-559{--deg:279.5deg}
.nv-dg-560{--deg:280deg}
.nv-dg-561{--deg:280.5deg}
.nv-dg-562{--deg:281deg}
.nv-dg-563{--deg:281.5deg}
.nv-dg-564{--deg:282deg}
.nv-dg-565{--deg:282.5deg}
.nv-dg-566{--deg:283deg}
.nv-dg-567{--deg:283.5deg}
.nv-dg-568{--deg:284deg}
.nv-dg-569{--deg:284.5deg}
.nv-dg-570{--deg:285deg}
.nv-dg-571{--deg:285.5deg}
.nv-dg-572{--deg:286deg}
.nv-dg-573{--deg:286.5deg}
.nv-dg-574{--deg:287deg}
.nv-dg-575{--deg:287.5deg}
.nv-dg-576{--deg:288deg}
.nv-dg-577{--deg:288.5deg}
.nv-dg-578{--deg:289deg}
.nv-dg-579{--deg:289.5deg}
.nv-dg-580{--deg:290deg}
.nv-dg-581{--deg:290.5deg}
.nv-dg-582{--deg:291deg}
.nv-dg-583{--deg:291.5deg}
.nv-dg-584{--deg:292deg}
.nv-dg-585{--deg:292.5deg}
.nv-dg-586{--deg:293deg}
.nv-dg-587{--deg:293.5deg}
.nv-dg-588{--deg:294deg}
.nv-dg-589{--deg:294.5deg}
.nv-dg-590{--deg:295deg}
.nv-dg-591{--deg:295.5deg}
.nv-dg-592{--deg:296deg}
.nv-dg-593{--deg:296.5deg}
.nv-dg-594{--deg:297deg}
.nv-dg-595{--deg:297.5deg}
.nv-dg-596{--deg:298deg}
.nv-dg-597{--deg:298.5deg}
.nv-dg-598{--deg:299deg}
.nv-dg-599{--deg:299.5deg}
.nv-dg-600{--deg:300deg}
.nv-dg-601{--deg:300.5deg}
.nv-dg-602{--deg:301deg}
.nv-dg-603{--deg:301.5deg}
.nv-dg-604{--deg:302deg}
.nv-dg-605{--deg:302.5deg}
.nv-dg-606{--deg:303deg}
.nv-dg-607{--deg:303.5deg}
.nv-dg-608{--deg:304deg}
.nv-dg-609{--deg:304.5deg}
.nv-dg-610{--deg:305deg}
.nv-dg-611{--deg:305.5deg}
.nv-dg-612{--deg:306deg}
.nv-dg-613{--deg:306.5deg}
.nv-dg-614{--deg:307deg}
.nv-dg-615{--deg:307.5deg}
.nv-dg-616{--deg:308deg}
.nv-dg-617{--deg:308.5deg}
.nv-dg-618{--deg:309deg}
.nv-dg-619{--deg:309.5deg}
.nv-dg-620{--deg:310deg}
.nv-dg-621{--deg:310.5deg}
.nv-dg-622{--deg:311deg}
.nv-dg-623{--deg:311.5deg}
.nv-dg-624{--deg:312deg}
.nv-dg-625{--deg:312.5deg}
.nv-dg-626{--deg:313deg}
.nv-dg-627{--deg:313.5deg}
.nv-dg-628{--deg:314deg}
.nv-dg-629{--deg:314.5deg}
.nv-dg-630{--deg:315deg}
.nv-dg-631{--deg:315.5deg}
.nv-dg-632{--deg:316deg}
.nv-dg-633{--deg:316.5deg}
.nv-dg-634{--deg:317deg}
.nv-dg-635{--deg:317.5deg}
.nv-dg-636{--deg:318deg}
.nv-dg-637{--deg:318.5deg}
.nv-dg-638{--deg:319deg}
.nv-dg-639{--deg:319.5deg}
.nv-dg-640{--deg:320deg}
.nv-dg-641{--deg:320.5deg}
.nv-dg-642{--deg:321deg}
.nv-dg-643{--deg:321.5deg}
.nv-dg-644{--deg:322deg}
.nv-dg-645{--deg:322.5deg}
.nv-dg-646{--deg:323deg}
.nv-dg-647{--deg:323.5deg}
.nv-dg-648{--deg:324deg}
.nv-dg-649{--deg:324.5deg}
.nv-dg-650{--deg:325deg}
.nv-dg-651{--deg:325.5deg}
.nv-dg-652{--deg:326deg}
.nv-dg-653{--deg:326.5deg}
.nv-dg-654{--deg:327deg}
.nv-dg-655{--deg:327.5deg}
.nv-dg-656{--deg:328deg}
.nv-dg-657{--deg:328.5deg}
.nv-dg-658{--deg:329deg}
.nv-dg-659{--deg:329.5deg}
.nv-dg-660{--deg:330deg}
.nv-dg-661{--deg:330.5deg}
.nv-dg-662{--deg:331deg}
.nv-dg-663{--deg:331.5deg}
.nv-dg-664{--deg:332deg}
.nv-dg-665{--deg:332.5deg}
.nv-dg-666{--deg:333deg}
.nv-dg-667{--deg:333.5deg}
.nv-dg-668{--deg:334deg}
.nv-dg-669{--deg:334.5deg}
.nv-dg-670{--deg:335deg}
.nv-dg-671{--deg:335.5deg}
.nv-dg-672{--deg:336deg}
.nv-dg-673{--deg:336.5deg}
.nv-dg-674{--deg:337deg}
.nv-dg-675{--deg:337.5deg}
.nv-dg-676{--deg:338deg}
.nv-dg-677{--deg:338.5deg}
.nv-dg-678{--deg:339deg}
.nv-dg-679{--deg:339.5deg}
.nv-dg-680{--deg:340deg}
.nv-dg-681{--deg:340.5deg}
.nv-dg-682{--deg:341deg}
.nv-dg-683{--deg:341.5deg}
.nv-dg-684{--deg:342deg}
.nv-dg-685{--deg:342.5deg}
.nv-dg-686{--deg:343deg}
.nv-dg-687{--deg:343.5deg}
.nv-dg-688{--deg:344deg}
.nv-dg-689{--deg:344.5deg}
.nv-dg-690{--deg:345deg}
.nv-dg-691{--deg:345.5deg}
.nv-dg-692{--deg:346deg}
.nv-dg-693{--deg:346.5deg}
.nv-dg-694{--deg:347deg}
.nv-dg-695{--deg:347.5deg}
.nv-dg-696{--deg:348deg}
.nv-dg-697{--deg:348.5deg}
.nv-dg-698{--deg:349deg}
.nv-dg-699{--deg:349.5deg}
.nv-dg-700{--deg:350deg}
.nv-dg-701{--deg:350.5deg}
.nv-dg-702{--deg:351deg}
.nv-dg-703{--deg:351.5deg}
.nv-dg-704{--deg:352deg}
.nv-dg-705{--deg:352.5deg}
.nv-dg-706{--deg:353deg}
.nv-dg-707{--deg:353.5deg}
.nv-dg-708{--deg:354deg}
.nv-dg-709{--deg:354.5deg}
.nv-dg-710{--deg:355deg}
.nv-dg-711{--deg:355.5deg}
.nv-dg-712{--deg:356deg}
.nv-dg-713{--deg:356.5deg}
.nv-dg-714{--deg:357deg}
.nv-dg-715{--deg:357.5deg}
.nv-dg-716{--deg:358deg}
.nv-dg-717{--deg:358.5deg}
.nv-dg-718{--deg:359deg}
.nv-dg-719{--deg:359.5deg}
.nv-dg-720{--deg:360deg}
.nv-ndl-0{animation-delay:-0s}
.nv-ndl-1{animation-delay:-0.1s}
.nv-ndl-2{animation-delay:-0.2s}
.nv-ndl-3{animation-delay:-0.3s}
.nv-ndl-4{animation-delay:-0.4s}
.nv-ndl-5{animation-delay:-0.5s}
.nv-ndl-6{animation-delay:-0.6s}
.nv-ndl-7{animation-delay:-0.7s}
.nv-ndl-8{animation-delay:-0.8s}
.nv-ndl-9{animation-delay:-0.9s}
.nv-ndl-10{animation-delay:-1s}
.nv-ndl-11{animation-delay:-1.1s}
.nv-ndl-12{animation-delay:-1.2s}
.nv-ndl-13{animation-delay:-1.3s}
.nv-ndl-14{animation-delay:-1.4s}
.nv-ndl-15{animation-delay:-1.5s}
.nv-ndl-16{animation-delay:-1.6s}
.nv-ndl-17{animation-delay:-1.7s}
.nv-ndl-18{animation-delay:-1.8s}
.nv-ndl-19{animation-delay:-1.9s}
.nv-ndl-20{animation-delay:-2s}
.nv-ndl-21{animation-delay:-2.1s}
.nv-ndl-22{animation-delay:-2.2s}
.nv-ndl-23{animation-delay:-2.3s}
.nv-ndl-24{animation-delay:-2.4s}
.nv-ndl-25{animation-delay:-2.5s}
.nv-ndl-26{animation-delay:-2.6s}
.nv-ndl-27{animation-delay:-2.7s}
.nv-ndl-28{animation-delay:-2.8s}
.nv-ndl-29{animation-delay:-2.9s}
.nv-ndl-30{animation-delay:-3s}
.nv-ndl-31{animation-delay:-3.1s}
.nv-ndl-32{animation-delay:-3.2s}
.nv-ndl-33{animation-delay:-3.3s}
.nv-ndl-34{animation-delay:-3.4s}
.nv-ndl-35{animation-delay:-3.5s}
.nv-ndl-36{animation-delay:-3.6s}
.nv-ndl-37{animation-delay:-3.7s}
.nv-ndl-38{animation-delay:-3.8s}
.nv-ndl-39{animation-delay:-3.9s}
.nv-ndl-40{animation-delay:-4s}
.nv-ndl-41{animation-delay:-4.1s}
.nv-ndl-42{animation-delay:-4.2s}
.nv-ndl-43{animation-delay:-4.3s}
.nv-ndl-44{animation-delay:-4.4s}
.nv-ndl-45{animation-delay:-4.5s}
.nv-ndl-46{animation-delay:-4.6s}
.nv-ndl-47{animation-delay:-4.7s}
.nv-ndl-48{animation-delay:-4.8s}
.nv-ndl-49{animation-delay:-4.9s}
.nv-ndl-50{animation-delay:-5s}
.nv-ndl-51{animation-delay:-5.1s}
.nv-ndl-52{animation-delay:-5.2s}
.nv-ndl-53{animation-delay:-5.3s}
.nv-ndl-54{animation-delay:-5.4s}
.nv-ndl-55{animation-delay:-5.5s}
.nv-ndl-56{animation-delay:-5.6s}
.nv-ndl-57{animation-delay:-5.7s}
.nv-ndl-58{animation-delay:-5.8s}
.nv-ndl-59{animation-delay:-5.9s}
.nv-ndl-60{animation-delay:-6s}
.nv-ndl-61{animation-delay:-6.1s}
.nv-ndl-62{animation-delay:-6.2s}
.nv-ndl-63{animation-delay:-6.3s}
.nv-ndl-64{animation-delay:-6.4s}
.nv-ndl-65{animation-delay:-6.5s}
.nv-ndl-66{animation-delay:-6.6s}
.nv-ndl-67{animation-delay:-6.7s}
.nv-ndl-68{animation-delay:-6.8s}
.nv-ndl-69{animation-delay:-6.9s}
.nv-ndl-70{animation-delay:-7s}
.nv-ndl-71{animation-delay:-7.1s}
.nv-ndl-72{animation-delay:-7.2s}
.nv-ndl-73{animation-delay:-7.3s}
.nv-ndl-74{animation-delay:-7.4s}
.nv-ndl-75{animation-delay:-7.5s}
.nv-ndl-76{animation-delay:-7.6s}
.nv-ndl-77{animation-delay:-7.7s}
.nv-ndl-78{animation-delay:-7.8s}
.nv-ndl-79{animation-delay:-7.9s}
.nv-ndl-80{animation-delay:-8s}
.nv-ndl-81{animation-delay:-8.1s}
.nv-ndl-82{animation-delay:-8.2s}
.nv-ndl-83{animation-delay:-8.3s}
.nv-ndl-84{animation-delay:-8.4s}
.nv-ndl-85{animation-delay:-8.5s}
.nv-ndl-86{animation-delay:-8.6s}
.nv-ndl-87{animation-delay:-8.7s}
.nv-ndl-88{animation-delay:-8.8s}
.nv-ndl-89{animation-delay:-8.9s}
.nv-ndl-90{animation-delay:-9s}
.nv-ndl-91{animation-delay:-9.1s}
.nv-ndl-92{animation-delay:-9.2s}
.nv-ndl-93{animation-delay:-9.3s}
.nv-ndl-94{animation-delay:-9.4s}
.nv-ndl-95{animation-delay:-9.5s}
.nv-ndl-96{animation-delay:-9.6s}
.nv-ndl-97{animation-delay:-9.7s}
.nv-ndl-98{animation-delay:-9.8s}
.nv-ndl-99{animation-delay:-9.9s}
.nv-ndl-100{animation-delay:-10s}
.nv-ndl-101{animation-delay:-10.1s}
.nv-ndl-102{animation-delay:-10.2s}
.nv-ndl-103{animation-delay:-10.3s}
.nv-ndl-104{animation-delay:-10.4s}
.nv-ndl-105{animation-delay:-10.5s}
.nv-ndl-106{animation-delay:-10.6s}
.nv-ndl-107{animation-delay:-10.7s}
.nv-ndl-108{animation-delay:-10.8s}
.nv-ndl-109{animation-delay:-10.9s}
.nv-ndl-110{animation-delay:-11s}
.nv-ndl-111{animation-delay:-11.1s}
.nv-ndl-112{animation-delay:-11.2s}
.nv-ndl-113{animation-delay:-11.3s}
.nv-ndl-114{animation-delay:-11.4s}
.nv-ndl-115{animation-delay:-11.5s}
.nv-ndl-116{animation-delay:-11.6s}
.nv-ndl-117{animation-delay:-11.7s}
.nv-ndl-118{animation-delay:-11.8s}
.nv-ndl-119{animation-delay:-11.9s}
.nv-ndl-120{animation-delay:-12s}
.nv-ndl-121{animation-delay:-12.1s}
.nv-ndl-122{animation-delay:-12.2s}
.nv-ndl-123{animation-delay:-12.3s}
.nv-ndl-124{animation-delay:-12.4s}
.nv-ndl-125{animation-delay:-12.5s}
.nv-ndl-126{animation-delay:-12.6s}
.nv-ndl-127{animation-delay:-12.7s}
.nv-ndl-128{animation-delay:-12.8s}
.nv-ndl-129{animation-delay:-12.9s}
.nv-ndl-130{animation-delay:-13s}
.nv-ndl-131{animation-delay:-13.1s}
.nv-ndl-132{animation-delay:-13.2s}
.nv-ndl-133{animation-delay:-13.3s}
.nv-ndl-134{animation-delay:-13.4s}
.nv-ndl-135{animation-delay:-13.5s}
.nv-ndl-136{animation-delay:-13.6s}
.nv-ndl-137{animation-delay:-13.7s}
.nv-ndl-138{animation-delay:-13.8s}
.nv-ndl-139{animation-delay:-13.9s}
.nv-ndl-140{animation-delay:-14s}
.nv-ndl-141{animation-delay:-14.1s}
.nv-ndl-142{animation-delay:-14.2s}
.nv-ndl-143{animation-delay:-14.3s}
.nv-ndl-144{animation-delay:-14.4s}
.nv-ndl-145{animation-delay:-14.5s}
.nv-ndl-146{animation-delay:-14.6s}
.nv-ndl-147{animation-delay:-14.7s}
.nv-ndl-148{animation-delay:-14.8s}
.nv-ndl-149{animation-delay:-14.9s}
.nv-ndl-150{animation-delay:-15s}
.nv-ndl-151{animation-delay:-15.1s}
.nv-ndl-152{animation-delay:-15.2s}
.nv-ndl-153{animation-delay:-15.3s}
.nv-ndl-154{animation-delay:-15.4s}
.nv-ndl-155{animation-delay:-15.5s}
.nv-ndl-156{animation-delay:-15.6s}
.nv-ndl-157{animation-delay:-15.7s}
.nv-ndl-158{animation-delay:-15.8s}
.nv-ndl-159{animation-delay:-15.9s}
.nv-ndl-160{animation-delay:-16s}
.nv-ndl-161{animation-delay:-16.1s}
.nv-ndl-162{animation-delay:-16.2s}
.nv-ndl-163{animation-delay:-16.3s}
.nv-ndl-164{animation-delay:-16.4s}
.nv-ndl-165{animation-delay:-16.5s}
.nv-ndl-166{animation-delay:-16.6s}
.nv-ndl-167{animation-delay:-16.7s}
.nv-ndl-168{animation-delay:-16.8s}
.nv-ndl-169{animation-delay:-16.9s}
.nv-ndl-170{animation-delay:-17s}
.nv-ndl-171{animation-delay:-17.1s}
.nv-ndl-172{animation-delay:-17.2s}
.nv-ndl-173{animation-delay:-17.3s}
.nv-ndl-174{animation-delay:-17.4s}
.nv-ndl-175{animation-delay:-17.5s}
.nv-ndl-176{animation-delay:-17.6s}
.nv-ndl-177{animation-delay:-17.7s}
.nv-ndl-178{animation-delay:-17.8s}
.nv-ndl-179{animation-delay:-17.9s}
.nv-ndl-180{animation-delay:-18s}
.nv-ndl-181{animation-delay:-18.1s}
.nv-ndl-182{animation-delay:-18.2s}
.nv-ndl-183{animation-delay:-18.3s}
.nv-ndl-184{animation-delay:-18.4s}
.nv-ndl-185{animation-delay:-18.5s}
.nv-ndl-186{animation-delay:-18.6s}
.nv-ndl-187{animation-delay:-18.7s}
.nv-ndl-188{animation-delay:-18.8s}
.nv-ndl-189{animation-delay:-18.9s}
.nv-ndl-190{animation-delay:-19s}
.nv-ndl-191{animation-delay:-19.1s}
.nv-ndl-192{animation-delay:-19.2s}
.nv-ndl-193{animation-delay:-19.3s}
.nv-ndl-194{animation-delay:-19.4s}
.nv-ndl-195{animation-delay:-19.5s}
.nv-ndl-196{animation-delay:-19.6s}
.nv-ndl-197{animation-delay:-19.7s}
.nv-ndl-198{animation-delay:-19.8s}
.nv-ndl-199{animation-delay:-19.9s}
.nv-ndl-200{animation-delay:-20s}
.nv-ndl-201{animation-delay:-20.1s}
.nv-ndl-202{animation-delay:-20.2s}
.nv-ndl-203{animation-delay:-20.3s}
.nv-ndl-204{animation-delay:-20.4s}
.nv-ndl-205{animation-delay:-20.5s}
.nv-ndl-206{animation-delay:-20.6s}
.nv-ndl-207{animation-delay:-20.7s}
.nv-ndl-208{animation-delay:-20.8s}
.nv-ndl-209{animation-delay:-20.9s}
.nv-ndl-210{animation-delay:-21s}
.nv-ndl-211{animation-delay:-21.1s}
.nv-ndl-212{animation-delay:-21.2s}
.nv-ndl-213{animation-delay:-21.3s}
.nv-ndl-214{animation-delay:-21.4s}
.nv-ndl-215{animation-delay:-21.5s}
.nv-ndl-216{animation-delay:-21.6s}
.nv-ndl-217{animation-delay:-21.7s}
.nv-ndl-218{animation-delay:-21.8s}
.nv-ndl-219{animation-delay:-21.9s}
.nv-ndl-220{animation-delay:-22s}
.nv-ndl-221{animation-delay:-22.1s}
.nv-ndl-222{animation-delay:-22.2s}
.nv-ndl-223{animation-delay:-22.3s}
.nv-ndl-224{animation-delay:-22.4s}
.nv-ndl-225{animation-delay:-22.5s}
.nv-ndl-226{animation-delay:-22.6s}
.nv-ndl-227{animation-delay:-22.7s}
.nv-ndl-228{animation-delay:-22.8s}
.nv-ndl-229{animation-delay:-22.9s}
.nv-ndl-230{animation-delay:-23s}
.nv-ndl-231{animation-delay:-23.1s}
.nv-ndl-232{animation-delay:-23.2s}
.nv-ndl-233{animation-delay:-23.3s}
.nv-ndl-234{animation-delay:-23.4s}
.nv-ndl-235{animation-delay:-23.5s}
.nv-ndl-236{animation-delay:-23.6s}
.nv-ndl-237{animation-delay:-23.7s}
.nv-ndl-238{animation-delay:-23.8s}
.nv-ndl-239{animation-delay:-23.9s}
.nv-ndl-240{animation-delay:-24s}
.nv-ndl-241{animation-delay:-24.1s}
.nv-ndl-242{animation-delay:-24.2s}
.nv-ndl-243{animation-delay:-24.3s}
.nv-ndl-244{animation-delay:-24.4s}
.nv-ndl-245{animation-delay:-24.5s}
.nv-ndl-246{animation-delay:-24.6s}
.nv-ndl-247{animation-delay:-24.7s}
.nv-ndl-248{animation-delay:-24.8s}
.nv-ndl-249{animation-delay:-24.9s}
.nv-ndl-250{animation-delay:-25s}
.nv-ndl-251{animation-delay:-25.1s}
.nv-ndl-252{animation-delay:-25.2s}
.nv-ndl-253{animation-delay:-25.3s}
.nv-ndl-254{animation-delay:-25.4s}
.nv-ndl-255{animation-delay:-25.5s}
.nv-ndl-256{animation-delay:-25.6s}
.nv-ndl-257{animation-delay:-25.7s}
.nv-ndl-258{animation-delay:-25.8s}
.nv-ndl-259{animation-delay:-25.9s}
.nv-ndl-260{animation-delay:-26s}
.nv-ndl-261{animation-delay:-26.1s}
.nv-ndl-262{animation-delay:-26.2s}
.nv-ndl-263{animation-delay:-26.3s}
.nv-ndl-264{animation-delay:-26.4s}
.nv-ndl-265{animation-delay:-26.5s}
.nv-ndl-266{animation-delay:-26.6s}
.nv-ndl-267{animation-delay:-26.7s}
.nv-ndl-268{animation-delay:-26.8s}
.nv-ndl-269{animation-delay:-26.9s}
.nv-ndl-270{animation-delay:-27s}
.nv-ndl-271{animation-delay:-27.1s}
.nv-ndl-272{animation-delay:-27.2s}
.nv-ndl-273{animation-delay:-27.3s}
.nv-ndl-274{animation-delay:-27.4s}
.nv-ndl-275{animation-delay:-27.5s}
.nv-ndl-276{animation-delay:-27.6s}
.nv-ndl-277{animation-delay:-27.7s}
.nv-ndl-278{animation-delay:-27.8s}
.nv-ndl-279{animation-delay:-27.9s}
.nv-ndl-280{animation-delay:-28s}
.nv-ndl-281{animation-delay:-28.1s}
.nv-ndl-282{animation-delay:-28.2s}
.nv-ndl-283{animation-delay:-28.3s}
.nv-ndl-284{animation-delay:-28.4s}
.nv-ndl-285{animation-delay:-28.5s}
.nv-ndl-286{animation-delay:-28.6s}
.nv-ndl-287{animation-delay:-28.7s}
.nv-ndl-288{animation-delay:-28.8s}
.nv-ndl-289{animation-delay:-28.9s}
.nv-ndl-290{animation-delay:-29s}
.nv-ndl-291{animation-delay:-29.1s}
.nv-ndl-292{animation-delay:-29.2s}
.nv-ndl-293{animation-delay:-29.3s}
.nv-ndl-294{animation-delay:-29.4s}
.nv-ndl-295{animation-delay:-29.5s}
.nv-ndl-296{animation-delay:-29.6s}
.nv-ndl-297{animation-delay:-29.7s}
.nv-ndl-298{animation-delay:-29.8s}
.nv-ndl-299{animation-delay:-29.9s}
.nv-ndl-300{animation-delay:-30s}
.nv-ndl-301{animation-delay:-30.1s}
.nv-ndl-302{animation-delay:-30.2s}
.nv-ndl-303{animation-delay:-30.3s}
.nv-ndl-304{animation-delay:-30.4s}
.nv-ndl-305{animation-delay:-30.5s}
.nv-ndl-306{animation-delay:-30.6s}
.nv-ndl-307{animation-delay:-30.7s}
.nv-ndl-308{animation-delay:-30.8s}
.nv-ndl-309{animation-delay:-30.9s}
.nv-ndl-310{animation-delay:-31s}
.nv-ndl-311{animation-delay:-31.1s}
.nv-ndl-312{animation-delay:-31.2s}
.nv-ndl-313{animation-delay:-31.3s}
.nv-ndl-314{animation-delay:-31.4s}
.nv-ndl-315{animation-delay:-31.5s}
.nv-ndl-316{animation-delay:-31.6s}
.nv-ndl-317{animation-delay:-31.7s}
.nv-ndl-318{animation-delay:-31.8s}
.nv-ndl-319{animation-delay:-31.9s}
.nv-ndl-320{animation-delay:-32s}
.nv-ndl-321{animation-delay:-32.1s}
.nv-ndl-322{animation-delay:-32.2s}
.nv-ndl-323{animation-delay:-32.3s}
.nv-ndl-324{animation-delay:-32.4s}
.nv-ndl-325{animation-delay:-32.5s}
.nv-ndl-326{animation-delay:-32.6s}
.nv-ndl-327{animation-delay:-32.7s}
.nv-ndl-328{animation-delay:-32.8s}
.nv-ndl-329{animation-delay:-32.9s}
.nv-ndl-330{animation-delay:-33s}
.nv-ndl-331{animation-delay:-33.1s}
.nv-ndl-332{animation-delay:-33.2s}
.nv-ndl-333{animation-delay:-33.3s}
.nv-ndl-334{animation-delay:-33.4s}
.nv-ndl-335{animation-delay:-33.5s}
.nv-ndl-336{animation-delay:-33.6s}
.nv-ndl-337{animation-delay:-33.7s}
.nv-ndl-338{animation-delay:-33.8s}
.nv-ndl-339{animation-delay:-33.9s}
.nv-ndl-340{animation-delay:-34s}
.nv-ndl-341{animation-delay:-34.1s}
.nv-ndl-342{animation-delay:-34.2s}
.nv-ndl-343{animation-delay:-34.3s}
.nv-ndl-344{animation-delay:-34.4s}
.nv-ndl-345{animation-delay:-34.5s}
.nv-ndl-346{animation-delay:-34.6s}
.nv-ndl-347{animation-delay:-34.7s}
.nv-ndl-348{animation-delay:-34.8s}
.nv-ndl-349{animation-delay:-34.9s}
.nv-ndl-350{animation-delay:-35s}
.nv-ndl-351{animation-delay:-35.1s}
.nv-ndl-352{animation-delay:-35.2s}
.nv-ndl-353{animation-delay:-35.3s}
.nv-ndl-354{animation-delay:-35.4s}
.nv-ndl-355{animation-delay:-35.5s}
.nv-ndl-356{animation-delay:-35.6s}
.nv-ndl-357{animation-delay:-35.7s}
.nv-ndl-358{animation-delay:-35.8s}
.nv-ndl-359{animation-delay:-35.9s}
.nv-ndl-360{animation-delay:-36s}
.nv-ndl-361{animation-delay:-36.1s}
.nv-ndl-362{animation-delay:-36.2s}
.nv-ndl-363{animation-delay:-36.3s}
.nv-ndl-364{animation-delay:-36.4s}
.nv-ndl-365{animation-delay:-36.5s}
.nv-ndl-366{animation-delay:-36.6s}
.nv-ndl-367{animation-delay:-36.7s}
.nv-ndl-368{animation-delay:-36.8s}
.nv-ndl-369{animation-delay:-36.9s}
.nv-ndl-370{animation-delay:-37s}
.nv-ndl-371{animation-delay:-37.1s}
.nv-ndl-372{animation-delay:-37.2s}
.nv-ndl-373{animation-delay:-37.3s}
.nv-ndl-374{animation-delay:-37.4s}
.nv-ndl-375{animation-delay:-37.5s}
.nv-ndl-376{animation-delay:-37.6s}
.nv-ndl-377{animation-delay:-37.7s}
.nv-ndl-378{animation-delay:-37.8s}
.nv-ndl-379{animation-delay:-37.9s}
.nv-ndl-380{animation-delay:-38s}
.nv-ndl-381{animation-delay:-38.1s}
.nv-ndl-382{animation-delay:-38.2s}
.nv-ndl-383{animation-delay:-38.3s}
.nv-ndl-384{animation-delay:-38.4s}
.nv-ndl-385{animation-delay:-38.5s}
.nv-ndl-386{animation-delay:-38.6s}
.nv-ndl-387{animation-delay:-38.7s}
.nv-ndl-388{animation-delay:-38.8s}
.nv-ndl-389{animation-delay:-38.9s}
.nv-ndl-390{animation-delay:-39s}
.nv-ndl-391{animation-delay:-39.1s}
.nv-ndl-392{animation-delay:-39.2s}
.nv-ndl-393{animation-delay:-39.3s}
.nv-ndl-394{animation-delay:-39.4s}
.nv-ndl-395{animation-delay:-39.5s}
.nv-ndl-396{animation-delay:-39.6s}
.nv-ndl-397{animation-delay:-39.7s}
.nv-ndl-398{animation-delay:-39.8s}
.nv-ndl-399{animation-delay:-39.9s}
.nv-ndl-400{animation-delay:-40s}
.nv-adu-0{animation-duration:0s}
.nv-adu-1{animation-duration:1s}
.nv-adu-2{animation-duration:2s}
.nv-adu-3{animation-duration:3s}
.nv-adu-4{animation-duration:4s}
.nv-adu-5{animation-duration:5s}
.nv-adu-6{animation-duration:6s}
.nv-adu-7{animation-duration:7s}
.nv-adu-8{animation-duration:8s}
.nv-adu-9{animation-duration:9s}
.nv-adu-10{animation-duration:10s}
.nv-adu-11{animation-duration:11s}
.nv-adu-12{animation-duration:12s}
.nv-adu-13{animation-duration:13s}
.nv-adu-14{animation-duration:14s}
.nv-adu-15{animation-duration:15s}
.nv-adu-16{animation-duration:16s}
.nv-adu-17{animation-duration:17s}
.nv-adu-18{animation-duration:18s}
.nv-adu-19{animation-duration:19s}
.nv-adu-20{animation-duration:20s}
.nv-adu-21{animation-duration:21s}
.nv-adu-22{animation-duration:22s}
.nv-adu-23{animation-duration:23s}
.nv-adu-24{animation-duration:24s}
.nv-adu-25{animation-duration:25s}
.nv-adu-26{animation-duration:26s}
.nv-adu-27{animation-duration:27s}
.nv-adu-28{animation-duration:28s}
.nv-adu-29{animation-duration:29s}
.nv-adu-30{animation-duration:30s}
.nv-adu-31{animation-duration:31s}
.nv-adu-32{animation-duration:32s}
.nv-adu-33{animation-duration:33s}
.nv-adu-34{animation-duration:34s}
.nv-adu-35{animation-duration:35s}
.nv-adu-36{animation-duration:36s}
.nv-adu-37{animation-duration:37s}
.nv-adu-38{animation-duration:38s}
.nv-adu-39{animation-duration:39s}
.nv-adu-40{animation-duration:40s}
.nv-adu-41{animation-duration:41s}
.nv-adu-42{animation-duration:42s}
.nv-adu-43{animation-duration:43s}
.nv-adu-44{animation-duration:44s}
.nv-adu-45{animation-duration:45s}
.nv-adu-46{animation-duration:46s}
.nv-adu-47{animation-duration:47s}
.nv-adu-48{animation-duration:48s}
.nv-adu-49{animation-duration:49s}
.nv-adu-50{animation-duration:50s}
.nv-adu-51{animation-duration:51s}
.nv-adu-52{animation-duration:52s}
.nv-adu-53{animation-duration:53s}
.nv-adu-54{animation-duration:54s}
.nv-adu-55{animation-duration:55s}
.nv-adu-56{animation-duration:56s}
.nv-adu-57{animation-duration:57s}
.nv-adu-58{animation-duration:58s}
.nv-adu-59{animation-duration:59s}
.nv-adu-60{animation-duration:60s}
.nv-hue-0{--fb-h:0}
.nv-hue-1{--fb-h:1}
.nv-hue-2{--fb-h:2}
.nv-hue-3{--fb-h:3}
.nv-hue-4{--fb-h:4}
.nv-hue-5{--fb-h:5}
.nv-hue-6{--fb-h:6}
.nv-hue-7{--fb-h:7}
.nv-hue-8{--fb-h:8}
.nv-hue-9{--fb-h:9}
.nv-hue-10{--fb-h:10}
.nv-hue-11{--fb-h:11}
.nv-hue-12{--fb-h:12}
.nv-hue-13{--fb-h:13}
.nv-hue-14{--fb-h:14}
.nv-hue-15{--fb-h:15}
.nv-hue-16{--fb-h:16}
.nv-hue-17{--fb-h:17}
.nv-hue-18{--fb-h:18}
.nv-hue-19{--fb-h:19}
.nv-hue-20{--fb-h:20}
.nv-hue-21{--fb-h:21}
.nv-hue-22{--fb-h:22}
.nv-hue-23{--fb-h:23}
.nv-hue-24{--fb-h:24}
.nv-hue-25{--fb-h:25}
.nv-hue-26{--fb-h:26}
.nv-hue-27{--fb-h:27}
.nv-hue-28{--fb-h:28}
.nv-hue-29{--fb-h:29}
.nv-hue-30{--fb-h:30}
.nv-hue-31{--fb-h:31}
.nv-hue-32{--fb-h:32}
.nv-hue-33{--fb-h:33}
.nv-hue-34{--fb-h:34}
.nv-hue-35{--fb-h:35}
.nv-hue-36{--fb-h:36}
.nv-hue-37{--fb-h:37}
.nv-hue-38{--fb-h:38}
.nv-hue-39{--fb-h:39}
.nv-hue-40{--fb-h:40}
.nv-hue-41{--fb-h:41}
.nv-hue-42{--fb-h:42}
.nv-hue-43{--fb-h:43}
.nv-hue-44{--fb-h:44}
.nv-hue-45{--fb-h:45}
.nv-hue-46{--fb-h:46}
.nv-hue-47{--fb-h:47}
.nv-hue-48{--fb-h:48}
.nv-hue-49{--fb-h:49}
.nv-hue-50{--fb-h:50}
.nv-hue-51{--fb-h:51}
.nv-hue-52{--fb-h:52}
.nv-hue-53{--fb-h:53}
.nv-hue-54{--fb-h:54}
.nv-hue-55{--fb-h:55}
.nv-hue-56{--fb-h:56}
.nv-hue-57{--fb-h:57}
.nv-hue-58{--fb-h:58}
.nv-hue-59{--fb-h:59}
.nv-hue-60{--fb-h:60}
.nv-hue-61{--fb-h:61}
.nv-hue-62{--fb-h:62}
.nv-hue-63{--fb-h:63}
.nv-hue-64{--fb-h:64}
.nv-hue-65{--fb-h:65}
.nv-hue-66{--fb-h:66}
.nv-hue-67{--fb-h:67}
.nv-hue-68{--fb-h:68}
.nv-hue-69{--fb-h:69}
.nv-hue-70{--fb-h:70}
.nv-hue-71{--fb-h:71}
.nv-hue-72{--fb-h:72}
.nv-hue-73{--fb-h:73}
.nv-hue-74{--fb-h:74}
.nv-hue-75{--fb-h:75}
.nv-hue-76{--fb-h:76}
.nv-hue-77{--fb-h:77}
.nv-hue-78{--fb-h:78}
.nv-hue-79{--fb-h:79}
.nv-hue-80{--fb-h:80}
.nv-hue-81{--fb-h:81}
.nv-hue-82{--fb-h:82}
.nv-hue-83{--fb-h:83}
.nv-hue-84{--fb-h:84}
.nv-hue-85{--fb-h:85}
.nv-hue-86{--fb-h:86}
.nv-hue-87{--fb-h:87}
.nv-hue-88{--fb-h:88}
.nv-hue-89{--fb-h:89}
.nv-hue-90{--fb-h:90}
.nv-hue-91{--fb-h:91}
.nv-hue-92{--fb-h:92}
.nv-hue-93{--fb-h:93}
.nv-hue-94{--fb-h:94}
.nv-hue-95{--fb-h:95}
.nv-hue-96{--fb-h:96}
.nv-hue-97{--fb-h:97}
.nv-hue-98{--fb-h:98}
.nv-hue-99{--fb-h:99}
.nv-hue-100{--fb-h:100}
.nv-hue-101{--fb-h:101}
.nv-hue-102{--fb-h:102}
.nv-hue-103{--fb-h:103}
.nv-hue-104{--fb-h:104}
.nv-hue-105{--fb-h:105}
.nv-hue-106{--fb-h:106}
.nv-hue-107{--fb-h:107}
.nv-hue-108{--fb-h:108}
.nv-hue-109{--fb-h:109}
.nv-hue-110{--fb-h:110}
.nv-hue-111{--fb-h:111}
.nv-hue-112{--fb-h:112}
.nv-hue-113{--fb-h:113}
.nv-hue-114{--fb-h:114}
.nv-hue-115{--fb-h:115}
.nv-hue-116{--fb-h:116}
.nv-hue-117{--fb-h:117}
.nv-hue-118{--fb-h:118}
.nv-hue-119{--fb-h:119}
.nv-hue-120{--fb-h:120}
.nv-hue-121{--fb-h:121}
.nv-hue-122{--fb-h:122}
.nv-hue-123{--fb-h:123}
.nv-hue-124{--fb-h:124}
.nv-hue-125{--fb-h:125}
.nv-hue-126{--fb-h:126}
.nv-hue-127{--fb-h:127}
.nv-hue-128{--fb-h:128}
.nv-hue-129{--fb-h:129}
.nv-hue-130{--fb-h:130}
.nv-hue-131{--fb-h:131}
.nv-hue-132{--fb-h:132}
.nv-hue-133{--fb-h:133}
.nv-hue-134{--fb-h:134}
.nv-hue-135{--fb-h:135}
.nv-hue-136{--fb-h:136}
.nv-hue-137{--fb-h:137}
.nv-hue-138{--fb-h:138}
.nv-hue-139{--fb-h:139}
.nv-hue-140{--fb-h:140}
.nv-hue-141{--fb-h:141}
.nv-hue-142{--fb-h:142}
.nv-hue-143{--fb-h:143}
.nv-hue-144{--fb-h:144}
.nv-hue-145{--fb-h:145}
.nv-hue-146{--fb-h:146}
.nv-hue-147{--fb-h:147}
.nv-hue-148{--fb-h:148}
.nv-hue-149{--fb-h:149}
.nv-hue-150{--fb-h:150}
.nv-hue-151{--fb-h:151}
.nv-hue-152{--fb-h:152}
.nv-hue-153{--fb-h:153}
.nv-hue-154{--fb-h:154}
.nv-hue-155{--fb-h:155}
.nv-hue-156{--fb-h:156}
.nv-hue-157{--fb-h:157}
.nv-hue-158{--fb-h:158}
.nv-hue-159{--fb-h:159}
.nv-hue-160{--fb-h:160}
.nv-hue-161{--fb-h:161}
.nv-hue-162{--fb-h:162}
.nv-hue-163{--fb-h:163}
.nv-hue-164{--fb-h:164}
.nv-hue-165{--fb-h:165}
.nv-hue-166{--fb-h:166}
.nv-hue-167{--fb-h:167}
.nv-hue-168{--fb-h:168}
.nv-hue-169{--fb-h:169}
.nv-hue-170{--fb-h:170}
.nv-hue-171{--fb-h:171}
.nv-hue-172{--fb-h:172}
.nv-hue-173{--fb-h:173}
.nv-hue-174{--fb-h:174}
.nv-hue-175{--fb-h:175}
.nv-hue-176{--fb-h:176}
.nv-hue-177{--fb-h:177}
.nv-hue-178{--fb-h:178}
.nv-hue-179{--fb-h:179}
.nv-hue-180{--fb-h:180}
.nv-hue-181{--fb-h:181}
.nv-hue-182{--fb-h:182}
.nv-hue-183{--fb-h:183}
.nv-hue-184{--fb-h:184}
.nv-hue-185{--fb-h:185}
.nv-hue-186{--fb-h:186}
.nv-hue-187{--fb-h:187}
.nv-hue-188{--fb-h:188}
.nv-hue-189{--fb-h:189}
.nv-hue-190{--fb-h:190}
.nv-hue-191{--fb-h:191}
.nv-hue-192{--fb-h:192}
.nv-hue-193{--fb-h:193}
.nv-hue-194{--fb-h:194}
.nv-hue-195{--fb-h:195}
.nv-hue-196{--fb-h:196}
.nv-hue-197{--fb-h:197}
.nv-hue-198{--fb-h:198}
.nv-hue-199{--fb-h:199}
.nv-hue-200{--fb-h:200}
.nv-hue-201{--fb-h:201}
.nv-hue-202{--fb-h:202}
.nv-hue-203{--fb-h:203}
.nv-hue-204{--fb-h:204}
.nv-hue-205{--fb-h:205}
.nv-hue-206{--fb-h:206}
.nv-hue-207{--fb-h:207}
.nv-hue-208{--fb-h:208}
.nv-hue-209{--fb-h:209}
.nv-hue-210{--fb-h:210}
.nv-hue-211{--fb-h:211}
.nv-hue-212{--fb-h:212}
.nv-hue-213{--fb-h:213}
.nv-hue-214{--fb-h:214}
.nv-hue-215{--fb-h:215}
.nv-hue-216{--fb-h:216}
.nv-hue-217{--fb-h:217}
.nv-hue-218{--fb-h:218}
.nv-hue-219{--fb-h:219}
.nv-hue-220{--fb-h:220}
.nv-hue-221{--fb-h:221}
.nv-hue-222{--fb-h:222}
.nv-hue-223{--fb-h:223}
.nv-hue-224{--fb-h:224}
.nv-hue-225{--fb-h:225}
.nv-hue-226{--fb-h:226}
.nv-hue-227{--fb-h:227}
.nv-hue-228{--fb-h:228}
.nv-hue-229{--fb-h:229}
.nv-hue-230{--fb-h:230}
.nv-hue-231{--fb-h:231}
.nv-hue-232{--fb-h:232}
.nv-hue-233{--fb-h:233}
.nv-hue-234{--fb-h:234}
.nv-hue-235{--fb-h:235}
.nv-hue-236{--fb-h:236}
.nv-hue-237{--fb-h:237}
.nv-hue-238{--fb-h:238}
.nv-hue-239{--fb-h:239}
.nv-hue-240{--fb-h:240}
.nv-hue-241{--fb-h:241}
.nv-hue-242{--fb-h:242}
.nv-hue-243{--fb-h:243}
.nv-hue-244{--fb-h:244}
.nv-hue-245{--fb-h:245}
.nv-hue-246{--fb-h:246}
.nv-hue-247{--fb-h:247}
.nv-hue-248{--fb-h:248}
.nv-hue-249{--fb-h:249}
.nv-hue-250{--fb-h:250}
.nv-hue-251{--fb-h:251}
.nv-hue-252{--fb-h:252}
.nv-hue-253{--fb-h:253}
.nv-hue-254{--fb-h:254}
.nv-hue-255{--fb-h:255}
.nv-hue-256{--fb-h:256}
.nv-hue-257{--fb-h:257}
.nv-hue-258{--fb-h:258}
.nv-hue-259{--fb-h:259}
.nv-hue-260{--fb-h:260}
.nv-hue-261{--fb-h:261}
.nv-hue-262{--fb-h:262}
.nv-hue-263{--fb-h:263}
.nv-hue-264{--fb-h:264}
.nv-hue-265{--fb-h:265}
.nv-hue-266{--fb-h:266}
.nv-hue-267{--fb-h:267}
.nv-hue-268{--fb-h:268}
.nv-hue-269{--fb-h:269}
.nv-hue-270{--fb-h:270}
.nv-hue-271{--fb-h:271}
.nv-hue-272{--fb-h:272}
.nv-hue-273{--fb-h:273}
.nv-hue-274{--fb-h:274}
.nv-hue-275{--fb-h:275}
.nv-hue-276{--fb-h:276}
.nv-hue-277{--fb-h:277}
.nv-hue-278{--fb-h:278}
.nv-hue-279{--fb-h:279}
.nv-hue-280{--fb-h:280}
.nv-hue-281{--fb-h:281}
.nv-hue-282{--fb-h:282}
.nv-hue-283{--fb-h:283}
.nv-hue-284{--fb-h:284}
.nv-hue-285{--fb-h:285}
.nv-hue-286{--fb-h:286}
.nv-hue-287{--fb-h:287}
.nv-hue-288{--fb-h:288}
.nv-hue-289{--fb-h:289}
.nv-hue-290{--fb-h:290}
.nv-hue-291{--fb-h:291}
.nv-hue-292{--fb-h:292}
.nv-hue-293{--fb-h:293}
.nv-hue-294{--fb-h:294}
.nv-hue-295{--fb-h:295}
.nv-hue-296{--fb-h:296}
.nv-hue-297{--fb-h:297}
.nv-hue-298{--fb-h:298}
.nv-hue-299{--fb-h:299}
.nv-hue-300{--fb-h:300}
.nv-hue-301{--fb-h:301}
.nv-hue-302{--fb-h:302}
.nv-hue-303{--fb-h:303}
.nv-hue-304{--fb-h:304}
.nv-hue-305{--fb-h:305}
.nv-hue-306{--fb-h:306}
.nv-hue-307{--fb-h:307}
.nv-hue-308{--fb-h:308}
.nv-hue-309{--fb-h:309}
.nv-hue-310{--fb-h:310}
.nv-hue-311{--fb-h:311}
.nv-hue-312{--fb-h:312}
.nv-hue-313{--fb-h:313}
.nv-hue-314{--fb-h:314}
.nv-hue-315{--fb-h:315}
.nv-hue-316{--fb-h:316}
.nv-hue-317{--fb-h:317}
.nv-hue-318{--fb-h:318}
.nv-hue-319{--fb-h:319}
.nv-hue-320{--fb-h:320}
.nv-hue-321{--fb-h:321}
.nv-hue-322{--fb-h:322}
.nv-hue-323{--fb-h:323}
.nv-hue-324{--fb-h:324}
.nv-hue-325{--fb-h:325}
.nv-hue-326{--fb-h:326}
.nv-hue-327{--fb-h:327}
.nv-hue-328{--fb-h:328}
.nv-hue-329{--fb-h:329}
.nv-hue-330{--fb-h:330}
.nv-hue-331{--fb-h:331}
.nv-hue-332{--fb-h:332}
.nv-hue-333{--fb-h:333}
.nv-hue-334{--fb-h:334}
.nv-hue-335{--fb-h:335}
.nv-hue-336{--fb-h:336}
.nv-hue-337{--fb-h:337}
.nv-hue-338{--fb-h:338}
.nv-hue-339{--fb-h:339}
.nv-hue-340{--fb-h:340}
.nv-hue-341{--fb-h:341}
.nv-hue-342{--fb-h:342}
.nv-hue-343{--fb-h:343}
.nv-hue-344{--fb-h:344}
.nv-hue-345{--fb-h:345}
.nv-hue-346{--fb-h:346}
.nv-hue-347{--fb-h:347}
.nv-hue-348{--fb-h:348}
.nv-hue-349{--fb-h:349}
.nv-hue-350{--fb-h:350}
.nv-hue-351{--fb-h:351}
.nv-hue-352{--fb-h:352}
.nv-hue-353{--fb-h:353}
.nv-hue-354{--fb-h:354}
.nv-hue-355{--fb-h:355}
.nv-hue-356{--fb-h:356}
.nv-hue-357{--fb-h:357}
.nv-hue-358{--fb-h:358}
.nv-hue-359{--fb-h:359}
.nv-ali-0{--nv-m-alidade:0}
.nv-ali-1{--nv-m-alidade:1}
.nv-ali-2{--nv-m-alidade:2}
.nv-ali-3{--nv-m-alidade:3}
.nv-ali-4{--nv-m-alidade:4}
.nv-ali-5{--nv-m-alidade:5}
.nv-ali-6{--nv-m-alidade:6}
.nv-ali-7{--nv-m-alidade:7}
.nv-ali-8{--nv-m-alidade:8}
.nv-ali-9{--nv-m-alidade:9}
.nv-ali-10{--nv-m-alidade:10}
.nv-ali-11{--nv-m-alidade:11}
.nv-ali-12{--nv-m-alidade:12}
.nv-ali-13{--nv-m-alidade:13}
.nv-ali-14{--nv-m-alidade:14}
.nv-ali-15{--nv-m-alidade:15}
.nv-ali-16{--nv-m-alidade:16}
.nv-ali-17{--nv-m-alidade:17}
.nv-ali-18{--nv-m-alidade:18}
.nv-ali-19{--nv-m-alidade:19}
.nv-ali-20{--nv-m-alidade:20}
.nv-ali-21{--nv-m-alidade:21}
.nv-ali-22{--nv-m-alidade:22}
.nv-ali-23{--nv-m-alidade:23}
.nv-ali-24{--nv-m-alidade:24}
.nv-ord-0{order:0}
.nv-ord-1{order:1}
.nv-ord-2{order:2}
.nv-ord-3{order:3}
.nv-ord-4{order:4}
.nv-ord-5{order:5}
.nv-ord-6{order:6}
.nv-ord-7{order:7}
.nv-ord-8{order:8}
.nv-ord-9{order:9}
.nv-ord-10{order:10}
.nv-ord-11{order:11}
.nv-ord-12{order:12}
.nv-ord-13{order:13}
.nv-ord-14{order:14}
.nv-ord-15{order:15}
.nv-ord-16{order:16}
.nv-ord-17{order:17}
.nv-ord-18{order:18}
.nv-ord-19{order:19}
.nv-ord-20{order:20}
.nv-ord-21{order:21}
.nv-ord-22{order:22}
.nv-ord-23{order:23}
.nv-ord-24{order:24}
.nv-ord-25{order:25}
.nv-ord-26{order:26}
.nv-ord-27{order:27}
.nv-ord-28{order:28}
.nv-ord-29{order:29}
.nv-ord-30{order:30}
.nv-ord-31{order:31}
.nv-ord-32{order:32}
.nv-ord-33{order:33}
.nv-ord-34{order:34}
.nv-ord-35{order:35}
.nv-ord-36{order:36}
.nv-ord-37{order:37}
.nv-ord-38{order:38}
.nv-ord-39{order:39}
.nv-ord-40{order:40}
.nv-ord-41{order:41}
.nv-ord-42{order:42}
.nv-ord-43{order:43}
.nv-ord-44{order:44}
.nv-ord-45{order:45}
.nv-ord-46{order:46}
.nv-ord-47{order:47}
.nv-ord-48{order:48}
.nv-ord-49{order:49}
.nv-ord-50{order:50}
.nv-ord-51{order:51}
.nv-ord-52{order:52}
.nv-ord-53{order:53}
.nv-ord-54{order:54}
.nv-ord-55{order:55}
.nv-ord-56{order:56}
.nv-ord-57{order:57}
.nv-ord-58{order:58}
.nv-ord-59{order:59}
.nv-ord-60{order:60}
.nv-ord-61{order:61}
.nv-ord-62{order:62}
.nv-ord-63{order:63}
.nv-ord-64{order:64}
.nv-ord-65{order:65}
.nv-ord-66{order:66}
.nv-ord-67{order:67}
.nv-ord-68{order:68}
.nv-ord-69{order:69}
.nv-ord-70{order:70}
.nv-ord-71{order:71}
.nv-ord-72{order:72}
.nv-ord-73{order:73}
.nv-ord-74{order:74}
.nv-ord-75{order:75}
.nv-ord-76{order:76}
.nv-ord-77{order:77}
.nv-ord-78{order:78}
.nv-ord-79{order:79}
.nv-ord-80{order:80}
.nv-ord-81{order:81}
.nv-ord-82{order:82}
.nv-ord-83{order:83}
.nv-ord-84{order:84}
.nv-ord-85{order:85}
.nv-ord-86{order:86}
.nv-ord-87{order:87}
.nv-ord-88{order:88}
.nv-ord-89{order:89}
.nv-ord-90{order:90}
.nv-ord-91{order:91}
.nv-ord-92{order:92}
.nv-ord-93{order:93}
.nv-ord-94{order:94}
.nv-ord-95{order:95}
.nv-ord-96{order:96}
.nv-ord-97{order:97}
.nv-ord-98{order:98}
.nv-ord-99{order:99}
.nv-ord-100{order:100}
.nv-gx-0{--gx:0%}
.nv-gx-1{--gx:0.5%}
.nv-gx-2{--gx:1%}
.nv-gx-3{--gx:1.5%}
.nv-gx-4{--gx:2%}
.nv-gx-5{--gx:2.5%}
.nv-gx-6{--gx:3%}
.nv-gx-7{--gx:3.5%}
.nv-gx-8{--gx:4%}
.nv-gx-9{--gx:4.5%}
.nv-gx-10{--gx:5%}
.nv-gx-11{--gx:5.5%}
.nv-gx-12{--gx:6%}
.nv-gx-13{--gx:6.5%}
.nv-gx-14{--gx:7%}
.nv-gx-15{--gx:7.5%}
.nv-gx-16{--gx:8%}
.nv-gx-17{--gx:8.5%}
.nv-gx-18{--gx:9%}
.nv-gx-19{--gx:9.5%}
.nv-gx-20{--gx:10%}
.nv-gx-21{--gx:10.5%}
.nv-gx-22{--gx:11%}
.nv-gx-23{--gx:11.5%}
.nv-gx-24{--gx:12%}
.nv-gx-25{--gx:12.5%}
.nv-gx-26{--gx:13%}
.nv-gx-27{--gx:13.5%}
.nv-gx-28{--gx:14%}
.nv-gx-29{--gx:14.5%}
.nv-gx-30{--gx:15%}
.nv-gx-31{--gx:15.5%}
.nv-gx-32{--gx:16%}
.nv-gx-33{--gx:16.5%}
.nv-gx-34{--gx:17%}
.nv-gx-35{--gx:17.5%}
.nv-gx-36{--gx:18%}
.nv-gx-37{--gx:18.5%}
.nv-gx-38{--gx:19%}
.nv-gx-39{--gx:19.5%}
.nv-gx-40{--gx:20%}
.nv-gx-41{--gx:20.5%}
.nv-gx-42{--gx:21%}
.nv-gx-43{--gx:21.5%}
.nv-gx-44{--gx:22%}
.nv-gx-45{--gx:22.5%}
.nv-gx-46{--gx:23%}
.nv-gx-47{--gx:23.5%}
.nv-gx-48{--gx:24%}
.nv-gx-49{--gx:24.5%}
.nv-gx-50{--gx:25%}
.nv-gx-51{--gx:25.5%}
.nv-gx-52{--gx:26%}
.nv-gx-53{--gx:26.5%}
.nv-gx-54{--gx:27%}
.nv-gx-55{--gx:27.5%}
.nv-gx-56{--gx:28%}
.nv-gx-57{--gx:28.5%}
.nv-gx-58{--gx:29%}
.nv-gx-59{--gx:29.5%}
.nv-gx-60{--gx:30%}
.nv-gx-61{--gx:30.5%}
.nv-gx-62{--gx:31%}
.nv-gx-63{--gx:31.5%}
.nv-gx-64{--gx:32%}
.nv-gx-65{--gx:32.5%}
.nv-gx-66{--gx:33%}
.nv-gx-67{--gx:33.5%}
.nv-gx-68{--gx:34%}
.nv-gx-69{--gx:34.5%}
.nv-gx-70{--gx:35%}
.nv-gx-71{--gx:35.5%}
.nv-gx-72{--gx:36%}
.nv-gx-73{--gx:36.5%}
.nv-gx-74{--gx:37%}
.nv-gx-75{--gx:37.5%}
.nv-gx-76{--gx:38%}
.nv-gx-77{--gx:38.5%}
.nv-gx-78{--gx:39%}
.nv-gx-79{--gx:39.5%}
.nv-gx-80{--gx:40%}
.nv-gx-81{--gx:40.5%}
.nv-gx-82{--gx:41%}
.nv-gx-83{--gx:41.5%}
.nv-gx-84{--gx:42%}
.nv-gx-85{--gx:42.5%}
.nv-gx-86{--gx:43%}
.nv-gx-87{--gx:43.5%}
.nv-gx-88{--gx:44%}
.nv-gx-89{--gx:44.5%}
.nv-gx-90{--gx:45%}
.nv-gx-91{--gx:45.5%}
.nv-gx-92{--gx:46%}
.nv-gx-93{--gx:46.5%}
.nv-gx-94{--gx:47%}
.nv-gx-95{--gx:47.5%}
.nv-gx-96{--gx:48%}
.nv-gx-97{--gx:48.5%}
.nv-gx-98{--gx:49%}
.nv-gx-99{--gx:49.5%}
.nv-gx-100{--gx:50%}
.nv-gx-101{--gx:50.5%}
.nv-gx-102{--gx:51%}
.nv-gx-103{--gx:51.5%}
.nv-gx-104{--gx:52%}
.nv-gx-105{--gx:52.5%}
.nv-gx-106{--gx:53%}
.nv-gx-107{--gx:53.5%}
.nv-gx-108{--gx:54%}
.nv-gx-109{--gx:54.5%}
.nv-gx-110{--gx:55%}
.nv-gx-111{--gx:55.5%}
.nv-gx-112{--gx:56%}
.nv-gx-113{--gx:56.5%}
.nv-gx-114{--gx:57%}
.nv-gx-115{--gx:57.5%}
.nv-gx-116{--gx:58%}
.nv-gx-117{--gx:58.5%}
.nv-gx-118{--gx:59%}
.nv-gx-119{--gx:59.5%}
.nv-gx-120{--gx:60%}
.nv-gx-121{--gx:60.5%}
.nv-gx-122{--gx:61%}
.nv-gx-123{--gx:61.5%}
.nv-gx-124{--gx:62%}
.nv-gx-125{--gx:62.5%}
.nv-gx-126{--gx:63%}
.nv-gx-127{--gx:63.5%}
.nv-gx-128{--gx:64%}
.nv-gx-129{--gx:64.5%}
.nv-gx-130{--gx:65%}
.nv-gx-131{--gx:65.5%}
.nv-gx-132{--gx:66%}
.nv-gx-133{--gx:66.5%}
.nv-gx-134{--gx:67%}
.nv-gx-135{--gx:67.5%}
.nv-gx-136{--gx:68%}
.nv-gx-137{--gx:68.5%}
.nv-gx-138{--gx:69%}
.nv-gx-139{--gx:69.5%}
.nv-gx-140{--gx:70%}
.nv-gx-141{--gx:70.5%}
.nv-gx-142{--gx:71%}
.nv-gx-143{--gx:71.5%}
.nv-gx-144{--gx:72%}
.nv-gx-145{--gx:72.5%}
.nv-gx-146{--gx:73%}
.nv-gx-147{--gx:73.5%}
.nv-gx-148{--gx:74%}
.nv-gx-149{--gx:74.5%}
.nv-gx-150{--gx:75%}
.nv-gx-151{--gx:75.5%}
.nv-gx-152{--gx:76%}
.nv-gx-153{--gx:76.5%}
.nv-gx-154{--gx:77%}
.nv-gx-155{--gx:77.5%}
.nv-gx-156{--gx:78%}
.nv-gx-157{--gx:78.5%}
.nv-gx-158{--gx:79%}
.nv-gx-159{--gx:79.5%}
.nv-gx-160{--gx:80%}
.nv-gx-161{--gx:80.5%}
.nv-gx-162{--gx:81%}
.nv-gx-163{--gx:81.5%}
.nv-gx-164{--gx:82%}
.nv-gx-165{--gx:82.5%}
.nv-gx-166{--gx:83%}
.nv-gx-167{--gx:83.5%}
.nv-gx-168{--gx:84%}
.nv-gx-169{--gx:84.5%}
.nv-gx-170{--gx:85%}
.nv-gx-171{--gx:85.5%}
.nv-gx-172{--gx:86%}
.nv-gx-173{--gx:86.5%}
.nv-gx-174{--gx:87%}
.nv-gx-175{--gx:87.5%}
.nv-gx-176{--gx:88%}
.nv-gx-177{--gx:88.5%}
.nv-gx-178{--gx:89%}
.nv-gx-179{--gx:89.5%}
.nv-gx-180{--gx:90%}
.nv-gx-181{--gx:90.5%}
.nv-gx-182{--gx:91%}
.nv-gx-183{--gx:91.5%}
.nv-gx-184{--gx:92%}
.nv-gx-185{--gx:92.5%}
.nv-gx-186{--gx:93%}
.nv-gx-187{--gx:93.5%}
.nv-gx-188{--gx:94%}
.nv-gx-189{--gx:94.5%}
.nv-gx-190{--gx:95%}
.nv-gx-191{--gx:95.5%}
.nv-gx-192{--gx:96%}
.nv-gx-193{--gx:96.5%}
.nv-gx-194{--gx:97%}
.nv-gx-195{--gx:97.5%}
.nv-gx-196{--gx:98%}
.nv-gx-197{--gx:98.5%}
.nv-gx-198{--gx:99%}
.nv-gx-199{--gx:99.5%}
.nv-gx-200{--gx:100%}
.nv-gy-0{--gy:0px}
.nv-gy-1{--gy:1px}
.nv-gy-2{--gy:2px}
.nv-gy-3{--gy:3px}
.nv-gy-4{--gy:4px}
.nv-gy-5{--gy:5px}
.nv-gy-6{--gy:6px}
.nv-gy-7{--gy:7px}
.nv-gy-8{--gy:8px}
.nv-gy-9{--gy:9px}
.nv-gy-10{--gy:10px}
.nv-gy-11{--gy:11px}
.nv-gy-12{--gy:12px}
.nv-gy-13{--gy:13px}
.nv-gy-14{--gy:14px}
.nv-gy-15{--gy:15px}
.nv-gy-16{--gy:16px}
.nv-gy-17{--gy:17px}
.nv-gy-18{--gy:18px}
.nv-gy-19{--gy:19px}
.nv-gy-20{--gy:20px}
.nv-gy-21{--gy:21px}
.nv-gy-22{--gy:22px}
.nv-gy-23{--gy:23px}
.nv-gy-24{--gy:24px}
.nv-gy-25{--gy:25px}
.nv-gy-26{--gy:26px}
.nv-gy-27{--gy:27px}
.nv-gy-28{--gy:28px}
.nv-gy-29{--gy:29px}
.nv-gy-30{--gy:30px}
.nv-gy-31{--gy:31px}
.nv-gy-32{--gy:32px}
.nv-gy-33{--gy:33px}
.nv-gy-34{--gy:34px}
.nv-gy-35{--gy:35px}
.nv-gy-36{--gy:36px}
.nv-gy-37{--gy:37px}
.nv-gy-38{--gy:38px}
.nv-gy-39{--gy:39px}
.nv-gy-40{--gy:40px}
.nv-sw-0{--sw:4.6s}
.nv-sw-1{--sw:4.9s}
.nv-sw-2{--sw:5.2s}
.nv-sw-3{--sw:5.5s}
.nv-sw-4{--sw:5.8s}
.nv-sw-5{--sw:6.1s}
.nv-sw-6{--sw:6.4s}
.nv-sw-7{--sw:6.7s}
.nv-sw-8{--sw:7s}
.nv-sw-9{--sw:7.3s}
.nv-sw-10{--sw:7.6s}
.nv-sw-11{--sw:7.9s}
.nv-sw-12{--sw:8.2s}
.nv-sw-13{--sw:8.5s}
.nv-sw-14{--sw:8.8s}
.nv-sw-15{--sw:9.1s}
.nv-sw-16{--sw:9.4s}
.nv-sw-17{--sw:9.7s}
.nv-sw-18{--sw:10s}
.nv-sw-19{--sw:10.3s}
.nv-sw-20{--sw:10.6s}
.nv-sw-21{--sw:10.9s}
.nv-sw-22{--sw:11.2s}
.nv-sw-23{--sw:11.5s}
.nv-sw-24{--sw:11.8s}
.nv-dl-0{--dl:0s}
.nv-dl-1{--dl:0.18s}
.nv-dl-2{--dl:0.36s}
.nv-dl-3{--dl:0.54s}
.nv-dl-4{--dl:0.72s}
.nv-dl-5{--dl:0.9s}
.nv-dl-6{--dl:1.08s}
.nv-dl-7{--dl:1.26s}
.nv-dl-8{--dl:1.44s}
.nv-dl-9{--dl:1.62s}
.nv-dl-10{--dl:1.8s}
.nv-dl-11{--dl:1.98s}
.nv-dl-12{--dl:2.16s}
.nv-dl-13{--dl:2.34s}
.nv-dl-14{--dl:2.52s}
.nv-dl-15{--dl:2.7s}
.nv-dl-16{--dl:2.88s}
.nv-dl-17{--dl:3.06s}
.nv-dl-18{--dl:3.24s}
.nv-dl-19{--dl:3.42s}
.nv-dl-20{--dl:3.6s}
.nv-dl-21{--dl:3.78s}
.nv-dl-22{--dl:3.96s}
.nv-dl-23{--dl:4.14s}
.nv-dl-24{--dl:4.32s}
.nv-rn-x{--c:var(--gold-bright)}
.nv-obs-pod.r1{--pc:#ffd700}.nv-obs-pod.r2{--pc:#c0c0c0}.nv-obs-pod.r3{--pc:#cd7f32}.nv-obs-pod.is-unclaimed{--pc:var(--muted2)}
}

/* _base/studio.css */
@layer pages{
/* Regalia Studio token editor (NVMC > Regalia, WD-8). Page chrome only; the preview inside is made of kit components. */
.nvk-studio { display: flex; flex-direction: column; gap: var(--space-5); padding: var(--space-5); background: var(--ui-bg); color: var(--ui-fg); border-radius: var(--radius-lg); font-family: var(--body); font-size: 15px; line-height: 22px; text-align: left; }
.nvk-studio__tabs { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.nvk-studio__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--space-5); align-items: start; }
@media (max-width: 980px) { .nvk-studio__grid { grid-template-columns: minmax(0, 1fr); } }
.nvk-studio__form { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.nvk-studio__group { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; border: 0; min-width: 0; }
.nvk-studio__legend { margin: 0 0 var(--space-1); padding: 0; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-studio__row { display: grid; grid-template-columns: 44px minmax(0, 1fr) 110px; gap: var(--space-3); align-items: center; min-height: 44px; }
.nvk-studio__swatch { width: 44px; height: 44px; padding: 0; cursor: pointer; }   /* a colour well: the Control supplies border, radius and surface */
.nvk-studio__name { display: flex; flex-direction: column; min-width: 0; }
.nvk-studio__name b { font-weight: 600; }
.nvk-studio__name small { font-size: 12px; line-height: 16px; color: var(--ui-fg-3); }
.nvk-studio__hex { width: 100%; font-family: ui-monospace, monospace; font-size: 14px; }
.nvk-studio__num { width: 100%; }
.nvk-studio__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.nvk-studio__stage { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-4); background: var(--ui-bg); color: var(--ui-fg); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); font-family: var(--body); min-width: 0; }
.nvk-studio__sticky { position: sticky; top: var(--space-3); min-width: 0; }
.nvk-studio__cap { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-studio__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.nvk-studio__btns { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.nvk-studio__one { display: inline; margin: 0; }
}

/* _base/tap.css */
@layer pages{
/* Phone tap targets (owner, 2026-10-19): every control a thumb has to hit is at least 44px tall on a phone.
 * The Cockpit walk (tests/nvmc/cockpit_walk.harness.mjs) lists any control under 40px; these are the ones it found.
 * Only the height (and a little padding) changes; the look of each control stays its own. */
@media (max-width: 760px) {
	/* a radio or checkbox is tapped through its label: the label is the target */
	main label:has(> input[type="checkbox"]), main label:has(> input[type="radio"]),
	.nvk-daybreak .d-tu-toggle + label { display: inline-flex; align-items: center; gap: var(--space-2); min-height: 44px; }

	/* links and buttons that sit on their own line */
	.nv-cp4-navitem > a, .nv-cp-policy-form a, .nv-dl-link, .nv-blb-ladder-up, .nv-orc-skip,
	.nv-sky-focus-card .go, .nv-obs-chip.is-link, .nv-sky-more-btn, .nv-cp-arrange-toggle,
	.nv-cwb-roletabs button, .nv-cwb-mini,
	.nvk-daybreak .d-bz-sb__sum { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; }

	/* the Season's chapter bar and its timeline zoom slider */
	.nv-ssn-bar-in a { min-height: 44px; box-sizing: border-box; }
	.nv-ssn-zoomin { min-height: 44px; }
}
}

/* _base/wording.css */
@layer pages{
/* Audit fixes C "Wording and follow-ups" (owner 2026-10-21). Page rules for the wording items and the owner follow-ups; each block names its item.
   Tokens only; motion stays transform/opacity. */

/* Polish 20: the Cockpit guide titles ("New here? Start with this", "How to use this") open with a monochrome kit icon instead of an emoji. */
.nv-guide-ico { display: inline-flex; vertical-align: -3px; margin-right: var(--space-2); color: var(--ui-link); }

/* Polish 23: flux.css (still loaded) sets every h3 in capitals, so the set families on Sets ("THE LONG ROAD") and the Cockpit section heads on
   Trophies ("YOUR STARTER SET") shouted while every other page heading is title case. The kit heading classes keep the words as written. */
.nvk-daybreak h3.d-h2, .nvk-daybreak h3.d-h3, .nvk-daybreak h3.nv-cp-h3 { text-transform: none; }

/* Owner follow-up 5 (2026-10-21): the Devil Fruit orchard on a phone (cp-devilfruit and the public devilfruit pages). The chart is view-only
   at 600px and under (nv-orchard.js also makes it inert): its orbs are smaller than a fingertip, and the Registry's rows under it (50px,
   nirvana.css) open each fruit. A one-line pointer to the list sits under the chart; at desktop it is hidden and the chart is unchanged. */
.nv-orc-phonehint { display: none; }
@media (max-width: 600px) {
  .nv-orc .nv-orc-canvas .nv-orc-orb, .nv-orc .nv-orc-canvas .nv-orc-bl { pointer-events: none; }
  .nv-orc .nv-orc-phonehint { display: block; margin: var(--space-2) 0 0; color: var(--ui-fg-2, var(--muted)); font-size: 14px; line-height: 20px; }
  .nv-orc .nv-orc-phonehint a { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; color: var(--ui-link, inherit); }
}
}

/* _gallery/gallery.css */
@layer pages{
/* The owner's UI Kit gallery (?module=nvmc&panel=uikit). Page chrome only; components are styled by their own CSS. */
.nvk-gallery { display: flex; flex-direction: column; gap: var(--space-6); padding: var(--space-5); background: var(--ui-bg); color: var(--ui-fg); border-radius: var(--radius-lg); font-family: var(--body); }
.nvk-gallery__bar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--space-4); }
.nvk-gallery__bar .nvk-field { min-width: 240px; }
.nvk-gallery__group { display: flex; flex-direction: column; gap: var(--space-5); }
.nvk-gallery__group-title { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-gallery__cells { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: var(--space-4); align-items: start; }
.nvk-gallery__cell { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; min-width: 0; padding: var(--space-3); background: var(--ui-surface-2); border: 1px dashed var(--ui-line-strong); border-radius: var(--radius-md); }
.nvk-gallery__cap { font-size: 12px; font-weight: 700; color: var(--ui-fg-3); }
.nvk-gallery__stage { min-width: 0; }
.nvk-gallery__code summary { cursor: pointer; font-size: 12px; color: var(--ui-link); }
.nvk-gallery__code pre { margin: var(--space-2) 0 0; padding: var(--space-3); overflow-x: auto; font-size: 12px; line-height: 18px; background: var(--ui-sunken); color: var(--ui-fg); border-radius: var(--radius-sm); }
}

/* AccountCard */
@layer components{
.nvk-account { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; color: var(--ui-fg); }
.nvk-account__who { display: flex; align-items: center; gap: var(--space-3); min-width: 0; }
.nvk-account__id { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.nvk-account__name { margin: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-family: var(--disp); font-size: 18px; font-weight: 600; line-height: 24px; }
.nvk-account__bal { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-2); padding: var(--space-3); text-align: center;
  background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.nvk-account__ballabel { margin: 0; font-size: 14px; color: var(--ui-fg-2); }
.nvk-account__balvalue { margin: 0; display: flex; align-items: center; justify-content: center; gap: var(--space-2); font-family: var(--disp); font-size: 22px; font-weight: 600; line-height: 28px; font-variant-numeric: tabular-nums; }
/* the small tag under the balance (owner 2026-10-21: an all-Hardcore account reads "Hardcore: no web spending"); token styling, AA on every look */
.nvk-account__note { align-self: center; margin: 0; padding: 2px var(--space-2); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg-2); font-size: 12px; font-weight: 600; line-height: 18px; }
}

/* AppShell */
@layer components{
.nvk-skip { position: absolute; left: var(--space-3); top: -100px; z-index: 100; padding: var(--space-2) var(--space-4); border-radius: var(--radius-pill); background: var(--ui-cta); color: var(--ui-cta-fg); font-weight: 700; text-decoration: none; }
.nvk-skip:focus { top: var(--space-3); }
.nvk-app { --_side: 252px; position: relative; display: grid; grid-template-columns: var(--_side) minmax(0, 1fr); min-height: 100vh; background: var(--ui-bg); color: var(--ui-fg); font-family: var(--body); transition: grid-template-columns var(--t-spring) var(--ease-spring); }
.nvk-app__side { display: flex; flex-direction: column; justify-content: space-between; gap: var(--space-5); min-width: 0; padding: var(--space-4) var(--space-4) var(--space-5);
  background: var(--ui-surface); border-right: 1px solid var(--ui-line); position: sticky; top: 0; align-self: start; height: 100vh; overflow-y: auto; }
.nvk-app__sidebody { display: flex; flex-direction: column; gap: var(--space-5); }
.nvk-app__sidefoot { display: flex; flex-direction: column; gap: var(--space-3); padding-top: var(--space-4); border-top: 1px solid var(--ui-line); font-size: 12px; line-height: 18px; color: var(--ui-fg-3); }
.nvk-app__main { display: flex; flex-direction: column; min-width: 0; }
.nvk-topbar { position: relative; z-index: 50; display: flex; align-items: center; gap: var(--space-3); min-height: 72px; padding: 0 var(--space-5); background: var(--ui-surface); border-bottom: 1px solid var(--ui-line); }
.nvk-topbar__menu { flex: none; min-width: 44px; display: none; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 0 0 -10px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ui-fg); cursor: pointer; box-shadow: none; }
.nvk-topbar__rail { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 0 0 -10px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ui-fg); cursor: pointer; box-shadow: none; transition: background var(--t-spring-fast) var(--ease-spring), transform var(--t-spring-fast) var(--ease-spring); }
.nvk-topbar__rail:hover { background: var(--ui-sunken); }
.nvk-topbar__rail:active { transform: scale(.92); }
.nvk-topbar__rail:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-topbar__brand { display: inline-flex; align-items: center; text-decoration: none; color: var(--ui-fg); font-family: var(--disp); font-weight: 700; font-size: 20px; }
.nvk-topbar__logo { display: block; height: 44px; width: auto; }
.nvk-topbar__spacer { display: flex; justify-content: center; flex: 1 1 auto; min-width: 0; }
.nvk-topbar__actions { display: flex; align-items: center; gap: var(--space-2); }
.nvk-app__content { min-width: 0; padding: var(--space-5); display: flex; flex-direction: column; gap: var(--space-5); width: 100%; max-width: 1280px; margin: 0 auto; }
/* Audit fixes D7 (owner 2026-10-22): the left menu is sticky (top 0, one window tall, its own scroll when it is taller than the window), so
 * it stays in view while a long page scrolls. Its column is also painted the full height of the page (the menu surface and its rule line),
 * so a full-page capture or a print never shows the menu ending at one window's height with blank page below it. */
@media (min-width: 861px) {
  .nvk-app { background: linear-gradient(90deg, var(--ui-surface) calc(var(--_side) - 1px), var(--ui-line) calc(var(--_side) - 1px), var(--ui-line) var(--_side), var(--ui-bg) var(--_side)); }
  .nvk-app__side { overscroll-behavior: contain; scrollbar-width: thin; }
}
/* Icon rail (owner, 2026-10-19): the round button left of the logo folds the menu to its icons and springs it back.
 * The labels stay in the page (accessible names) and fade out while the column narrows; the nav's own CSS reads .is-rail. */
.nvk-app.is-rail { --_side: 72px; }
.nvk-app__side { transition: padding var(--t-spring) var(--ease-spring); }
.nvk-app.is-rail .nvk-app__side { padding-inline: 12px; overflow-x: hidden; z-index: 60; }   /* above the page: a section's flyout opens over it */
.nvk-app.is-rail .nvk-app__sidefoot, .nvk-app.is-rail .nvk-account__id, .nvk-app.is-rail .nvk-account__bal { display: none; }
.nvk-app.is-rail .nvk-account__who { justify-content: center; }
@media (max-width: 860px) {
  .nvk-topbar__rail { display: none; }
  .nvk-app, .nvk-app.is-rail { grid-template-columns: minmax(0, 1fr); }
  .nvk-app.is-rail .nvk-app__side { padding: var(--space-4) var(--space-4) var(--space-5); overflow-x: visible; }
  .nvk-app.is-rail .nvk-app__sidefoot, .nvk-app.is-rail .nvk-account__bal { display: flex; }
  .nvk-app.is-rail .nvk-account__id { display: flex; }
  .nvk-app.is-rail .nvk-account__who { justify-content: flex-start; }
  .nvk-app__side { position: fixed; z-index: 60; inset: 0 auto 0 0; width: min(86vw, 300px); height: 100%; transform: translateX(-102%); transition: transform var(--t-med) var(--ease-rune); box-shadow: var(--shadow-lg); }
  .nvk-app__side.is-open { transform: none; }
  .nvk-topbar { padding: 0 var(--space-4); min-height: 64px; }
  .nvk-topbar__menu { display: inline-flex; }
  .nvk-app__content { padding: var(--space-4); gap: var(--space-4); }
}
/* phone: the Rune Island takes the logo's place; its card spans the bar inside the page gutter */
@media (max-width: 760px) {
  .nvk-topbar--island { gap: var(--space-2); }
  .nvk-topbar--island .nvk-topbar__brand, .nvk-topbar--island .nvk-chip { display: none; }
  .nvk-topbar--island .nvk-island__card { left: var(--space-3); right: var(--space-3); }
}
}

/* ApproveSheet */
@layer components{
.nvk-approve { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-5) var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); text-align: center; }
.nvk-approve__title { margin: 0; font-size: 16px; line-height: 1.4; font-weight: 700; color: var(--ui-fg); }
.nvk-approve__num { margin: 0; font-size: 56px; line-height: 1; font-weight: 800; letter-spacing: .04em; color: var(--ui-fg); }
.nvk-approve__line { margin: 0; font-size: 14px; line-height: 1.5; color: var(--ui-fg-2); max-width: 36ch; }
.nvk-approve__actions:empty { display: none; }
}

/* AscentTrack */
@layer components{
/* AscentTrack (owner-picked Option B 'Island ascent' of 'NirvanaRO Commerce and Property', 2026-10-19): a climb as a track of island stops. */
.nvk-ascent { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nvk-ascent__lab { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-ascent__foot { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-ascent__list { display: flex; gap: 4px; margin: 0; padding: 4px 0 0; list-style: none; min-width: 0; }
.nvk-ascent__stop { position: relative; flex: 1 1 0; display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; text-align: center; }
/* the path: each stop draws the piece from the stop before it, filled once this stop is reached */
.nvk-ascent__stop + .nvk-ascent__stop::before { content: ""; position: absolute; z-index: 0; top: 24px; right: calc(50% + 22px); width: calc(100% - 40px); height: 4px; border-radius: var(--radius-pill); background: var(--ui-line-strong); }
.nvk-ascent__stop.nvk-ascent--done::before { background: var(--ui-brand); }
.nvk-ascent__stop.nvk-ascent--here::before { background: linear-gradient(90deg, var(--ui-brand), var(--ui-island-gold)); }
.nvk-ascent__d { position: relative; z-index: 1; display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; width: 44px; height: 44px; margin-top: 4px; border-radius: var(--radius-pill); background: var(--ui-surface); border: 3px solid var(--ui-line-strong); color: var(--ui-fg-2); font: 700 14px/1 var(--disp); font-variant-numeric: tabular-nums; }
.nvk-ascent--done .nvk-ascent__d { background: var(--ui-brand); border-color: var(--ui-brand); color: var(--ui-brand-fg); }
.nvk-ascent--here .nvk-ascent__d { width: 52px; height: 52px; margin-top: 0; background: var(--ui-island); border: 5px solid var(--ui-island-gold); color: var(--ui-island-gold); box-shadow: var(--shadow-island); }
.nvk-ascent__t { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.nvk-ascent__title { font: 700 14px/18px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-ascent__sub { font: 400 12px/16px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.nvk-ascent__you { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); border: 1px solid var(--ui-island-line); font: 700 12px/16px var(--body); white-space: nowrap; }
@media (max-width: 760px) {
  .nvk-ascent__list { flex-direction: column; gap: 6px; }
  .nvk-ascent__stop { flex: none; flex-direction: row; align-items: center; gap: 12px; min-height: 52px; text-align: left; }
  .nvk-ascent__stop + .nvk-ascent__stop::before { top: auto; bottom: calc(50% + 22px); right: auto; left: 24px; width: 4px; height: calc(100% - 38px); }
  .nvk-ascent__stop.nvk-ascent--here::before { background: linear-gradient(180deg, var(--ui-brand), var(--ui-island-gold)); }
  .nvk-ascent__d { flex: none; margin: 0 4px; }
  .nvk-ascent--here .nvk-ascent__d { margin: 0; }
  .nvk-ascent__t { flex-direction: row; flex-wrap: wrap; align-items: center; gap: 4px 10px; }
  .nvk-ascent__title { font-size: 15px; line-height: 20px; }
  .nvk-ascent__sub { font-size: 14px; line-height: 20px; }
}
}

/* AuctionTile */
@layer components{
/* AuctionTile (owner-picked Option A 'Island market' of 'NirvanaRO Bazaar', 2026-10-19): one live auction as a dark island card. */
.nvk-auctile { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 12px 12px 16px; border-radius: 32px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); text-align: center; min-width: 0; transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-auctile:hover { transform: translateY(-4px); }
.nvk-auctile__art { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 16 / 11; border-radius: 22px; background: var(--ui-island-2); border: 1px solid var(--ui-island-line); }
.nvk-auctile__img { width: 34%; height: auto; image-rendering: pixelated; }
.nvk-auctile__ini { font: 700 40px/1 var(--disp); color: var(--ui-island-fg-2); }
.nvk-auctile__tags { display: flex; justify-content: space-between; align-items: center; gap: 6px; width: 100%; margin-top: 4px; }
.nvk-auctile__left { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 10px; border-radius: var(--radius-pill); background: var(--ui-island-2); font: 700 12px/1 var(--body); }
.nvk-auctile__left::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--ui-island-gold); animation: nvk-auctile-tick 1.6s ease-in-out infinite; }
.nvk-auctile__tag { height: 26px; padding: 0 10px; border-radius: var(--radius-pill); display: inline-flex; align-items: center; background: var(--ui-brand-tint); color: var(--ui-link); font: 700 12px/1 var(--body); }
.nvk-auctile__tag--ok { background: color-mix(in srgb, var(--ui-ok) 22%, var(--ui-surface)); color: color-mix(in srgb, var(--ui-ok) 60%, var(--ui-fg)); }
.nvk-auctile__title { margin: 4px 0 0; padding: 0; border: 0; font: 700 17px/22px var(--disp); color: var(--ui-island-fg); }
.nvk-auctile__lab, .nvk-auctile__sub { font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-auctile__price { font: 700 22px/28px var(--disp); color: var(--ui-island-gold); }
.nvk-auctile__go { display: inline-flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; margin-top: 8px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 14px/1 var(--body); text-decoration: none; }
.nvk-auctile__go:focus-visible { outline: 3px solid var(--ui-island-fg); outline-offset: 2px; }
@keyframes nvk-auctile-tick { 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .nvk-auctile { transition: none; } .nvk-auctile__left::before { animation: none; } }
}

/* AuthSheet */
@layer components{
.nvk-auth { display: flex; flex-direction: column; gap: var(--space-4); }
.nvk-auth__doors { display: flex; flex-direction: column; gap: var(--space-2); }
.nvk-auth__doors:empty, .nvk-auth__form:empty, .nvk-auth__foot:empty { display: none; }
.nvk-auth__or { display: flex; align-items: center; gap: var(--space-3); margin: 0; font-size: 13px; line-height: 1.4; color: var(--ui-fg-3); }
.nvk-auth__or::before, .nvk-auth__or::after { content: ""; flex: 1 1 auto; border-top: 1px solid var(--ui-line); }
.nvk-auth__foot { display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-4); font-size: 13px; line-height: 1.4; }
}

/* Avatar */
@layer components{
.nvk-avatar { --_s: 40px; display: inline-flex; align-items: center; justify-content: center; flex: none; width: var(--_s); height: var(--_s);
  border-radius: 50%; overflow: hidden; background: color-mix(in srgb, var(--ui-brand) 18%, var(--ui-surface)); color: var(--ui-link);
  font-family: var(--disp); font-weight: 700; font-size: calc(var(--_s) * .42); line-height: 1; }
.nvk-avatar--sm { --_s: 28px; }
.nvk-avatar--lg { --_s: 56px; }
.nvk-avatar--xl { --_s: 96px; }
.nvk-avatar__img { display: block; width: 100%; height: 100%; object-fit: cover; }
}

/* BackToTop */
@layer components{
/* The bottom-right corner holds up to three floats: the Sage launcher (legacy, themes/nirvana/footer.php), the Discord bubble
   (FloatingChat, public shell only) and this button. In the kit shells they stack upward from the corner one gap apart, so none
   covers another: the Sage sits in the corner, --nvk-corner-under is the room it takes, and the public shell's float column
   (chat over this button) or this button alone starts above it.
   Edge tabs (audit fixes B, owner 2026-10-21: "the Sage orb never covers content"): the Sage and this button are tabs fastened to the
   right edge of the window, --nvk-edge-w wide. That is the page's own side gutter plus a card's inner padding, so a tab never sits on a
   control or a line of text at any width; each stays a 48 x 32 (44 x 32) tap target and slides out a little on hover (transform only). */
:root { --nvk-corner-under: 0px; --nvk-edge-w: 32px; }
@media (max-width: 600px) { :root { --nvk-edge-w: 28px; } }   /* a phone card ends 28px from the edge in the Cockpit stage: the tab sits beside it, not on it */
:root:has(#nv-sage-launcher) { --nvk-corner-under: calc(48px + var(--space-2)); }
body:has(> .nvk-public) #nv-sage-launcher, body:has(> .nvk-app) #nv-sage-launcher, body:has(> .nvk-pubnav) #nv-sage-launcher {
  right: 0; bottom: var(--space-4); width: var(--nvk-edge-w); height: 48px; padding: 0 0 0 8px; box-sizing: border-box; justify-content: flex-start;
  border-radius: 24px 0 0 24px; font-size: 18px; transition: transform var(--t-fast) var(--ease-rune); }
body:has(> .nvk-public) #nv-sage-launcher:hover, body:has(> .nvk-app) #nv-sage-launcher:hover, body:has(> .nvk-pubnav) #nv-sage-launcher:hover { transform: translateX(-4px); }
body:has(> .nvk-public) #nv-sage-launcher .nv-sage-badge, body:has(> .nvk-app) #nv-sage-launcher .nv-sage-badge, body:has(> .nvk-pubnav) #nv-sage-launcher .nv-sage-badge { right: auto; left: -6px; }
body:has(> .nvk-public) #nv-sage-panel, body:has(> .nvk-app) #nv-sage-panel, body:has(> .nvk-pubnav) #nv-sage-panel { right: var(--space-4); bottom: calc(var(--space-4) + var(--nvk-corner-under)); }
.nvk-totop { position: fixed; right: 0; bottom: calc(var(--space-4) + var(--nvk-corner-under)); z-index: 45; display: inline-flex; align-items: center; justify-content: center; width: var(--nvk-edge-w); height: 44px; margin: 0; padding: 0 0 0 4px; box-sizing: border-box; font: inherit;
  border: 0; border-radius: 22px 0 0 22px; background: var(--ui-brand-deep); color: #fff; cursor: pointer; box-shadow: var(--shadow-md); opacity: 0; pointer-events: none; transition: opacity var(--t-fast); }
.nvk-totop.is-visible { opacity: 1; pointer-events: auto; }
@media (prefers-reduced-motion: reduce) { body:has(> .nvk-public) #nv-sage-launcher, body:has(> .nvk-app) #nv-sage-launcher, body:has(> .nvk-pubnav) #nv-sage-launcher { transition: none; } }
}

/* BalanceIsland */
@layer components{
/* BalanceIsland (owner pick A 'Tier ascent' of 'NirvanaRO Cockpit Patron', 2026-10-21): the Wallet's dark balance island. */
.nvk-balisle { display: flex; flex-direction: column; gap: 12px; min-width: 0; box-sizing: border-box; margin: 0; padding: 20px; border: 1px solid var(--ui-island-line); border-radius: var(--radius-lg); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-balisle__lab { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-balisle__l { display: flex; flex-direction: column; gap: 8px; margin: 0; padding: 0; }
.nvk-balisle__i { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; min-width: 0; }
.nvk-balisle__v { order: 1; margin: 0; font: 800 32px/1 var(--disp); color: var(--ui-island-fg); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.nvk-balisle__u { order: 2; margin: 0; font: 600 14px/20px var(--body); color: var(--ui-island-fg-2); }
.nvk-balisle__p { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-island-fg-2); }
.nvk-balisle__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-balisle .nvk-btn--ghost { --_bg: transparent; --_bd: var(--ui-island-fg-2); --_fg: var(--ui-island-fg); }
}

/* BentoHero */
@layer components{
/* BentoHero (owner-picked Option A 'Island bento' of 'NirvanaRO Account Pages', 2026-10-19): the dark hero and the white side card. */
.nvk-bento { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
.nvk-bento--side { grid-template-columns: minmax(0, 1.9fr) minmax(280px, 1fr); }
.nvk-bento__hero { position: relative; overflow: hidden; display: flex; align-items: center; gap: var(--space-5); min-width: 0; padding: 32px; border-radius: 40px; background: radial-gradient(120% 140% at 12% 0, var(--ui-island-2) 0, var(--ui-island) 62%); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-bento__stars { position: absolute; inset: 0; pointer-events: none; opacity: .55; background: radial-gradient(2px 2px at 12% 20%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 70% 12%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 88% 60%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 44% 86%, var(--ui-island-fg), transparent); }
.nvk-bento__media { position: relative; flex: none; display: flex; align-items: center; justify-content: center; }
.nvk-bento__media:empty { display: none; }
.nvk-bento__av { display: inline-flex; align-items: center; justify-content: center; width: 112px; height: 112px; border-radius: var(--radius-pill); background: linear-gradient(135deg, var(--ui-brand-hi), var(--ui-island-gold)); color: var(--ui-island); font: 700 36px/1 var(--disp); box-shadow: 0 0 0 6px color-mix(in srgb, var(--ui-island-fg) 10%, transparent); }
.nvk-bento__t { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-width: 0; }
.nvk-bento__e { display: flex; align-items: center; gap: 10px; margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-brand-hi); }
.nvk-bento__logo { width: 40px; height: 40px; }
.nvk-bento__title { margin: 0; padding: 0; border: 0; font: 700 48px/54px var(--disp); color: var(--ui-island-fg); -webkit-text-fill-color: currentColor; overflow-wrap: anywhere; }
.nvk-bento__title.nvk-cls { color: var(--cls-d, var(--ui-island-fg)); }
.nvk-bento__sub { margin: 0; font: 400 16px/24px var(--body); color: var(--ui-island-fg-2); }
.nvk-bento__chips, .nvk-bento__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-bento__chips:empty, .nvk-bento__acts:empty { display: none; }
.nvk-bento__acts { margin-top: 6px; }
.nvk-bento__chips .nvk-chip { background: color-mix(in srgb, var(--ui-island-fg) 10%, transparent); color: var(--ui-island-fg); }
.nvk-bento__side { display: flex; flex-direction: column; gap: 6px; min-width: 0; padding: 26px 22px; border-radius: 40px; background: var(--ui-surface); box-shadow: var(--shadow-lg); }
.nvk-bento__se { margin: 0; font: 700 11px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-bento__st { margin: 0 0 8px; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-bento__rows { display: flex; flex-direction: column; gap: 8px; }
@media (max-width: 1000px) { .nvk-bento--side { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) {
  .nvk-bento__hero { flex-direction: column; text-align: center; padding: 26px 20px; border-radius: 32px; }
  .nvk-bento__t { align-items: center; }
  .nvk-bento__chips, .nvk-bento__acts { justify-content: center; }
  .nvk-bento__title { font-size: 34px; line-height: 40px; }
  .nvk-bento__av { width: 88px; height: 88px; font-size: 28px; }
}
.nvk-bento__acts .nvk-btn--soft, .nvk-bento__acts .nvk-btn--ghost { background: color-mix(in srgb, var(--ui-island-fg) 10%, transparent); color: var(--ui-island-fg); box-shadow: inset 0 0 0 1px var(--ui-island-line); }
.nvk-bento__acts .nvk-btn--soft:hover, .nvk-bento__acts .nvk-btn--ghost:hover { background: color-mix(in srgb, var(--ui-island-fg) 18%, transparent); }
}

/* BoardSwitch */
@layer components{
/* BoardSwitch (owner-picked Option A of 'NirvanaRO Rankings', 2026-10-19): an island pill of board links. */
.nvk-boards { display: flex; justify-content: center; max-width: 100%; }
.nvk-boards__track { display: inline-flex; gap: 4px; max-width: 100%; padding: 5px; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: var(--shadow-island); overflow-x: auto; scrollbar-width: none; }
.nvk-boards__track::-webkit-scrollbar { display: none; }
.nvk-boards__item { flex: none; display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: var(--radius-pill); color: var(--ui-island-fg-2); font: 600 15px/1 var(--body); text-decoration: none; white-space: nowrap; transition: background var(--t-spring-fast) var(--ease-spring), color var(--t-spring-fast) var(--ease-spring); }
.nvk-boards__item:hover { color: var(--ui-island-fg); }
.nvk-boards__item.is-active { background: var(--ui-island-fg); color: var(--ui-island); }
.nvk-boards__item:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
}

/* BrandLogo */
@layer components{
/* GENERATED by tools/design/brand/brand.py -- do not edit by hand (geometry, keyframes and timing of the animated logo). */
.nvk-brandlogo--wordmark.nvk-brandlogo--sm{height:52px}.nvk-brandlogo--wordmark.nvk-brandlogo--md{width:220px}.nvk-brandlogo--wordmark.nvk-brandlogo--hero{width:min(clamp(240px, 34vw, 440px), calc(26vh * 1.6))}.nvk-brandlogo--emblem.nvk-brandlogo--sm{width:40px}.nvk-brandlogo--emblem.nvk-brandlogo--md{width:132px}.nvk-brandlogo--emblem.nvk-brandlogo--hero{width:clamp(200px, 30vw, 360px)}
.nvk-brandlogo{--nvk-bl-pop:var(--ease-pop);position:relative;display:inline-block;flex:none;vertical-align:middle;line-height:0;margin:0;padding:0;border:0;direction:ltr;-webkit-tap-highlight-color:transparent}
@supports not (animation-timing-function: linear(0, 1)){.nvk-brandlogo{--nvk-bl-pop:var(--ease-pop-fallback)}}
.nvk-brandlogo__p{position:absolute;display:block;margin:0;padding:0;border:0}.nvk-brandlogo__w{left:0;top:0;width:100%;height:100%}.nvk-brandlogo__a{background-repeat:no-repeat}.nvk-brandlogo__m{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.nvk-brandlogo__cdk{border-radius:50%;overflow:hidden}
.nvk-brandlogo--wordmark .nvk-brandlogo__a{background-image:url(../../img/brand/nirvana-wordmark-b-parts.svg)}.nvk-brandlogo--wordmark .nvk-brandlogo__m{-webkit-mask-image:url(../../img/brand/nirvana-wordmark-b-parts.svg);mask-image:url(../../img/brand/nirvana-wordmark-b-parts.svg)}
.nvk-brandlogo--emblem .nvk-brandlogo__a{background-image:url(../../img/brand/nirvana-emblem-c-parts.svg)}.nvk-brandlogo--emblem .nvk-brandlogo__m{-webkit-mask-image:url(../../img/brand/nirvana-emblem-c-parts.svg);mask-image:url(../../img/brand/nirvana-emblem-c-parts.svg)}
.nvk-brandlogo__bl0,.nvk-brandlogo__bl1,.nvk-brandlogo__bl2,.nvk-brandlogo__bl3,.nvk-brandlogo__bl4,.nvk-brandlogo__bl5,.nvk-brandlogo__bl6,.nvk-brandlogo__bp0,.nvk-brandlogo__bp1,.nvk-brandlogo__bp2,.nvk-brandlogo__bp3,.nvk-brandlogo__bp4,.nvk-brandlogo__bp5,.nvk-brandlogo__bp6,.nvk-brandlogo__bp7,.nvk-brandlogo__bp8,.nvk-brandlogo__bp9,.nvk-brandlogo__cl0,.nvk-brandlogo__cl1,.nvk-brandlogo__cl2,.nvk-brandlogo__cl3,.nvk-brandlogo__cl4,.nvk-brandlogo__cl5,.nvk-brandlogo__cl6,.nvk-brandlogo__cp0,.nvk-brandlogo__cp1,.nvk-brandlogo__cp2,.nvk-brandlogo__cp3,.nvk-brandlogo__cp4,.nvk-brandlogo__cp5,.nvk-brandlogo__cp6,.nvk-brandlogo__cp7,.nvk-brandlogo__cp8,.nvk-brandlogo__cp9{opacity:0}
.nvk-brandlogo__bfx{transform-origin:50.625% 38.0328%}
.nvk-brandlogo__bld{transform-origin:51.6872% 57.1401%}
.nvk-brandlogo__bwloi{transform-origin:38.9055% 37.5071%}
.nvk-brandlogo__bwlo{transform-origin:38.9055% 37.5071%}
.nvk-brandlogo__bwl{left:26.1458%;top:24.4262%;width:14.1667%;height:20.3279%;background-size:1020.5882% 901.6129%;background-position:83.0671% 81.6901%;transform-origin:90.0679% 64.3496%}
.nvk-brandlogo__bwroi{transform-origin:62.1085% 34.3124%}
.nvk-brandlogo__bwro{transform-origin:62.1085% 34.3124%}
.nvk-brandlogo__bwr{left:60.9375%;top:19.1803%;width:12.9167%;height:21.9672%;background-size:1119.3548% 834.3284%;background-position:71.9937% 82.5203%;transform-origin:9.0658% 68.8847%}
.nvk-brandlogo__bjl{transform-origin:51.6872% 57.1401%}
.nvk-brandlogo__bbd{left:35.7292%;top:17.2131%;width:30.4167%;height:41.6393%;background-size:475.3425% 440.1575%;background-position:26.8248% 0%;transform-origin:52.4648% 95.8877%}
.nvk-brandlogo__bha{transform-origin:49.6539% 10.7836%}
.nvk-brandlogo__bhb{transform-origin:49.6539% 10.7836%}
.nvk-brandlogo__bhg{left:38.8542%;top:2.7869%;width:21.4583%;height:16.0656%;background-size:673.7864% 1140.8163%;background-position:100% 79.6078%}
.nvk-brandlogo__bhr{left:41.3542%;top:4.7541%;width:16.6667%;height:12.1311%;background-size:867.5% 1510.8108%;background-position:45.4397% 95.0192%}
.nvk-brandlogo__bhm{left:41.7708%;top:5.4098%;width:15.8333%;height:10.8197%;-webkit-mask-size:913.1579% 1693.9394%;mask-size:913.1579% 1693.9394%;-webkit-mask-position:58.5761% 94.2966%;mask-position:58.5761% 94.2966%}
.nvk-brandlogo__bgl{left:-30.2632%;top:3.0303%;width:28.9474%;height:139.3939%;background-size:3154.5455% 1215.2174%;background-position:37.7976% 96.6862%}
.nvk-brandlogo__bl0{left:-0.5208%;top:50.6557%;width:22.2917%;height:38.6885%}
.nvk-brandlogo__bl0a{left:0%;top:0%;width:100%;height:100%;background-size:648.5981% 473.7288%;background-position:83.3049% 35.3741%;transform-origin:50.1778% 70.7627%}
.nvk-brandlogo__bl1{left:16.1458%;top:48.6885%;width:12.9167%;height:37.377%}
.nvk-brandlogo__bl1a{left:0%;top:0%;width:100%;height:100%;background-size:1119.3548% 490.3509%;background-position:87.5% 64.2697%;transform-origin:40.1607% 71.4912%}
.nvk-brandlogo__bl2{left:21.3542%;top:50.6557%;width:21.6667%;height:38.0328%}
.nvk-brandlogo__bl2a{left:0%;top:0%;width:100%;height:100%;background-size:667.3077% 481.8966%;background-position:18.6441% 64.5598%;transform-origin:47.2694% 71.1207%}
.nvk-brandlogo__bl3{left:36.7708%;top:48.0328%;width:22.5%;height:37.7049%}
.nvk-brandlogo__bl3a{left:0%;top:0%;width:100%;height:100%;background-size:642.5926% 486.087%;background-position:56.314% 64.4144%;transform-origin:40.62% 71.7391%}
.nvk-brandlogo__bl4{left:49.0625%;top:50.6557%;width:22.7083%;height:37.7049%}
.nvk-brandlogo__bl4a{left:0%;top:0%;width:100%;height:100%;background-size:636.6972% 486.087%;background-position:75.3846% 64.4144%;transform-origin:49.2019% 70.8696%}
.nvk-brandlogo__bl5{left:64.4792%;top:48.6885%;width:22.9167%;height:38.0328%}
.nvk-brandlogo__bl5a{left:0%;top:0%;width:100%;height:100%;background-size:630.9091% 481.8966%;background-position:37.1575% 64.5598%;transform-origin:45.0725% 71.1207%}
.nvk-brandlogo__bl6{left:78.4375%;top:51.3115%;width:22.2917%;height:38.3607%}
.nvk-brandlogo__bl6a{left:0%;top:0%;width:100%;height:100%;background-size:648.5981% 477.7778%;background-position:0% 64.7059%;transform-origin:48.3086% 69.6581%}
.nvk-brandlogo__bwd{left:-0.5208%;top:48.0328%;width:101.25%;height:41.6393%;background-size:142.7984% 440.1575%;background-position:0% 36.1111%}
.nvk-brandlogo__bgm{left:3.0208%;top:50.9836%;width:94.1667%;height:28.5246%;-webkit-mask-size:153.5398% 642.5287%;mask-size:153.5398% 642.5287%;-webkit-mask-position:0% 86.0169%;mask-position:0% 86.0169%}
.nvk-brandlogo__bgb{left:-65.9292%;top:-42.5287%;width:31.8584%;height:175.8621%;background-size:481.9444% 365.3595%;background-position:0% 0%}
.nvk-brandlogo__bpl{left:23.8542%;top:84.4262%;width:52.2917%;height:15.4098%;background-size:276.494% 1189.3617%;background-position:0% 96.875%}
.nvk-brandlogo__bs0i{left:12.6042%;top:19.8361%;width:6.0417%;height:9.5082%}
.nvk-brandlogo__bs0{left:0%;top:0%;width:100%;height:100%;background-size:2393.1034% 1927.5862%;background-position:71.7293% 93.5849%}
.nvk-brandlogo__bs1i{left:21.9792%;top:37.8689%;width:3.9583%;height:6.2295%}
.nvk-brandlogo__bs1{left:0%;top:0%;width:100%;height:100%;background-size:3652.6316% 2942.1053%;background-position:75.4074% 91.8519%}
.nvk-brandlogo__bs2i{left:80.9375%;top:22.459%;width:6.875%;height:10.8197%}
.nvk-brandlogo__bs2{left:0%;top:0%;width:100%;height:100%;background-size:2103.0303% 1693.9394%;background-position:66.7171% 94.2966%}
.nvk-brandlogo__bs3i{left:93.8542%;top:87.0492%;width:3.9583%;height:6.2295%}
.nvk-brandlogo__bs3{left:0%;top:0%;width:100%;height:100%;background-size:3652.6316% 2942.1053%;background-position:78.6667% 91.8519%}
.nvk-brandlogo__bs4i{left:3.4375%;top:87.377%;width:3.5417%;height:5.5738%}
.nvk-brandlogo__bs4{left:0%;top:0%;width:100%;height:100%;background-size:4082.3529% 3288.2353%;background-position:84.9335% 91.5129%}
.nvk-brandlogo__bs5i{left:7.8125%;top:45.4098%;width:2.7083%;height:4.2623%}
.nvk-brandlogo__bs5{left:0%;top:0%;width:100%;height:100%;background-size:5338.4615% 4300%;background-position:0% 100%}
.nvk-brandlogo__bs6i{left:76.1458%;top:44.0984%;width:2.2917%;height:3.6066%}
.nvk-brandlogo__bs6{left:0%;top:0%;width:100%;height:100%;background-size:6309.0909% 5081.8182%;background-position:11.713% 99.635%}
.nvk-brandlogo__bp0{left:48.8542%;top:38.1967%;width:3.5417%;height:5.5738%;background-size:4082.3529% 3288.2353%;background-position:87.8877% 91.5129%}
.nvk-brandlogo__bp1{left:49.2708%;top:38.8525%;width:2.7083%;height:4.2623%;background-size:5338.4615% 4300%;background-position:2.3495% 100%}
.nvk-brandlogo__bp2{left:49.2708%;top:38.8525%;width:2.7083%;height:4.2623%;background-size:5338.4615% 4300%;background-position:4.699% 100%}
.nvk-brandlogo__bp3{left:49.2708%;top:38.8525%;width:2.7083%;height:4.2623%;background-size:5338.4615% 4300%;background-position:7.0485% 100%}
.nvk-brandlogo__bp4{left:49.0625%;top:38.5246%;width:3.125%;height:4.918%;background-size:4626.6667% 3726.6667%;background-position:93.5199% 91.1765%}
.nvk-brandlogo__bp5{left:48.6458%;top:37.8689%;width:3.9583%;height:6.2295%;background-size:3652.6316% 2942.1053%;background-position:81.9259% 91.8519%}
.nvk-brandlogo__bp6{left:49.0625%;top:38.5246%;width:3.125%;height:4.918%;background-size:4626.6667% 3726.6667%;background-position:96.1708% 91.1765%}
.nvk-brandlogo__bp7{left:48.8542%;top:38.1967%;width:3.5417%;height:5.5738%;background-size:4082.3529% 3288.2353%;background-position:90.8419% 91.5129%}
.nvk-brandlogo__bp8{left:49.2708%;top:38.8525%;width:2.7083%;height:4.2623%;background-size:5338.4615% 4300%;background-position:9.3979% 100%}
.nvk-brandlogo__bp9{left:49.0625%;top:38.5246%;width:3.125%;height:4.918%;background-size:4626.6667% 3726.6667%;background-position:98.8218% 91.1765%}
.nvk-brandlogo__ccr{transform-origin:50% 47.3684%}
.nvk-brandlogo__cbs{left:14.3023%;top:7.5%;width:71.3953%;height:81.5789%;background-size:222.4756% 348.0645%;background-position:0% 0%}
.nvk-brandlogo__cdk{left:20.5814%;top:14.0789%;width:58.8372%;height:66.5789%;background-size:269.9605% 426.4822%;background-position:0% 37.8935%}
.nvk-brandlogo__crsi{left:-9.8814%;top:-15.8103%;width:119.7628%;height:119.7628%;transform-origin:50% 50%}
.nvk-brandlogo__crs{left:0%;top:0%;width:100%;height:100%;background-size:225.4125% 356.1056%;background-position:81.5789% 0%;transform-origin:50% 50%}
.nvk-brandlogo__csn{left:25.6917%;top:19.7628%;width:48.6166%;height:48.6166%;background-size:555.2846% 877.2358%;background-position:75.5357% 32.7406%;opacity:.7}
.nvk-brandlogo__cc1i{left:-20.9486%;top:69.9605%;width:142.6877%;height:30.83%}
.nvk-brandlogo__cc1{left:0%;top:0%;width:100%;height:100%;background-size:189.1967% 1383.3333%;background-position:0% 76.4236%}
.nvk-brandlogo__cc2i{left:-21.7391%;top:77.8656%;width:139.9209%;height:30.4348%}
.nvk-brandlogo__cc2{left:0%;top:0%;width:100%;height:100%;background-size:192.9379% 1401.2987%;background-position:0% 84.4311%}
.nvk-brandlogo__cpfi{left:7.1146%;top:25.6917%;width:88.1423%;height:19.7628%;transform-origin:48.6547% 123%}
.nvk-brandlogo__cpf{left:0%;top:0%;width:100%;height:100%;background-size:306.278% 2158%;background-position:0% 96.8902%;transform-origin:48.6547% 123%}
.nvk-brandlogo__crm{left:18.4884%;top:10.6579%;width:60.4651%;height:23.6842%;background-size:262.6923% 1198.8889%;background-position:0% 67.9474%}
.nvk-brandlogo__cfx{transform-origin:50% 53.9474%}
.nvk-brandlogo__cld{transform-origin:51.0658% 71.1947%}
.nvk-brandlogo__cwloi{transform-origin:34.7108% 54.3869%}
.nvk-brandlogo__cwlo{transform-origin:34.7108% 54.3869%}
.nvk-brandlogo__cwl{left:12.907%;top:40.9211%;width:24.186%;height:22.6316%;background-size:656.7308% 1254.6512%;background-position:45.4231% 67.6737%;transform-origin:90.1503% 59.5001%}
.nvk-brandlogo__cwroi{transform-origin:65.1945% 51.9748%}
.nvk-brandlogo__cwro{transform-origin:65.1945% 51.9748%}
.nvk-brandlogo__cwr{left:63.1395%;top:36.1842%;width:23.0233%;height:24.2105%;background-size:689.899% 1172.8261%;background-position:69.863% 57.6494%;transform-origin:8.9255% 65.2219%}
.nvk-brandlogo__cjl{transform-origin:51.0658% 71.1947%}
.nvk-brandlogo__cbd{left:31.2791%;top:35.1316%;width:38.1395%;height:37.3684%;background-size:416.4634% 759.8592%;background-position:49.3256% 33.4045%;transform-origin:51.8799% 96.507%}
.nvk-brandlogo__cha{transform-origin:48.9011% 25.1482%}
.nvk-brandlogo__chb{transform-origin:48.9011% 25.1482%}
.nvk-brandlogo__chg{left:35.4651%;top:18.0263%;width:26.9767%;height:14.2105%;background-size:588.7931% 1998.1481%;background-position:77.7778% 90.3415%}
.nvk-brandlogo__chr{left:38.4884%;top:19.8684%;width:20.9302%;height:10.5263%;background-size:758.8889% 2697.5%;background-position:85.1602% 95.9577%}
.nvk-brandlogo__chm{left:38.9535%;top:20.3947%;width:19.7674%;height:9.4737%;-webkit-mask-size:803.5294% 2997.2222%;mask-size:803.5294% 2997.2222%;-webkit-mask-position:100% 95.5896%;mask-position:100% 95.5896%}
.nvk-brandlogo__cgl{left:-30.5882%;top:0%;width:29.4118%;height:144.4444%;background-size:2732% 2075%;background-position:85.1064% 90.1655%}
.nvk-brandlogo__cbn{left:2.907%;top:71.4474%;width:94.186%;height:26.3158%;background-size:168.642% 1079%;background-position:0% 58.1205%}
.nvk-brandlogo__cl0{left:16.3953%;top:75.1316%;width:14.6512%;height:17.8947%}
.nvk-brandlogo__cl0a{left:0%;top:0%;width:100%;height:100%;background-size:1084.127% 1586.7647%;background-position:0% 91.5925%;transform-origin:48.8498% 69.1397%}
.nvk-brandlogo__cl1{left:27.093%;top:74.8684%;width:8.1395%;height:17.3684%}
.nvk-brandlogo__cl1a{left:0%;top:0%;width:100%;height:100%;background-size:1951.4286% 1634.8485%;background-position:20.9877% 91.4116%;transform-origin:49.6484% 70.1342%}
.nvk-brandlogo__cl2{left:31.7442%;top:74.6053%;width:14.186%;height:17.3684%}
.nvk-brandlogo__cl2a{left:0%;top:0%;width:100%;height:100%;background-size:1119.6721% 1634.8485%;background-position:27.9743% 91.4116%;transform-origin:45.6903% 69.9949%}
.nvk-brandlogo__cl3{left:40.3488%;top:74.6053%;width:14.8837%;height:17.1053%}
.nvk-brandlogo__cl3a{left:0%;top:0%;width:100%;height:100%;background-size:1067.1875% 1660%;background-position:60.42% 91.3215%;transform-origin:47.5067% 70.0515%}
.nvk-brandlogo__cl4{left:49.6512%;top:74.6053%;width:15.3488%;height:17.3684%}
.nvk-brandlogo__cl4a{left:0%;top:0%;width:100%;height:100%;background-size:1034.8485% 1634.8485%;background-position:38.5737% 91.4116%;transform-origin:46.8602% 69.296%}
.nvk-brandlogo__cl5{left:59.8837%;top:74.8684%;width:14.8837%;height:17.3684%}
.nvk-brandlogo__cl5a{left:0%;top:0%;width:100%;height:100%;background-size:1067.1875% 1634.8485%;background-position:49.5961% 91.4116%;transform-origin:46.3043% 69.5669%}
.nvk-brandlogo__cl6{left:69.4186%;top:75.3947%;width:15.5814%;height:17.6316%}
.nvk-brandlogo__cl6a{left:0%;top:0%;width:100%;height:100%;background-size:1019.403% 1610.4478%;background-position:10.7143% 91.502%;transform-origin:46.7788% 68.7827%}
.nvk-brandlogo__cwd{left:16.3953%;top:74.6053%;width:68.6047%;height:18.4211%;background-size:231.5254% 1541.4286%;background-position:92.0103% 83.8454%}
.nvk-brandlogo__cgm{left:18.0233%;top:75.9211%;width:64.186%;height:12.6316%;-webkit-mask-size:247.4638% 2247.9167%;mask-size:247.4638% 2247.9167%;-webkit-mask-position:55.5283% 96.7022%;mask-position:55.5283% 96.7022%}
.nvk-brandlogo__cgb{left:-103.6232%;top:-33.3333%;width:25.3623%;height:168.75%;background-size:975.7143% 1332.0988%;background-position:60.3589% 67.3347%}
.nvk-brandlogo__cs0i{left:8.2558%;top:10.6579%;width:6.7442%;height:7.6316%}
.nvk-brandlogo__cs0{left:0%;top:0%;width:100%;height:100%;background-size:2355.1724% 3720.6897%;background-position:0% 100%}
.nvk-brandlogo__cs1i{left:87.093%;top:16.9737%;width:4.8837%;height:5.5263%}
.nvk-brandlogo__cs1{left:0%;top:0%;width:100%;height:100%;background-size:3252.381% 5138.0952%;background-position:9.0634% 99.2439%}
.nvk-brandlogo__cs2i{left:4.7674%;top:60.9211%;width:3.9535%;height:4.4737%}
.nvk-brandlogo__cs2{left:0%;top:0%;width:100%;height:100%;background-size:4017.6471% 6347.0588%;background-position:22.5225% 98.8701%}
.nvk-brandlogo__cs3i{left:89.6512%;top:51.9737%;width:5.814%;height:6.5789%}
.nvk-brandlogo__cs3{left:0%;top:0%;width:100%;height:100%;background-size:2732% 4316%;background-position:4.8632% 99.6205%}
.nvk-brandlogo__cp0{left:47.7907%;top:39.6053%;width:4.4186%;height:5%;background-size:3594.7368% 5678.9474%;background-position:12.6506% 99.0566%}
.nvk-brandlogo__cp1{left:48.4884%;top:40.3947%;width:3.0233%;height:3.4211%;background-size:5253.8462% 8300%;background-position:37.3134% 98.4991%}
.nvk-brandlogo__cp2{left:48.4884%;top:40.3947%;width:3.0233%;height:3.4211%;background-size:5253.8462% 8300%;background-position:39.7015% 98.4991%}
.nvk-brandlogo__cp3{left:47.7907%;top:39.6053%;width:4.4186%;height:5%;background-size:3594.7368% 5678.9474%;background-position:15.9639% 99.0566%}
.nvk-brandlogo__cp4{left:48.0233%;top:39.8684%;width:3.9535%;height:4.4737%;background-size:4017.6471% 6347.0588%;background-position:25.5255% 98.8701%}
.nvk-brandlogo__cp5{left:48.0233%;top:39.8684%;width:3.9535%;height:4.4737%;background-size:4017.6471% 6347.0588%;background-position:28.5285% 98.8701%}
.nvk-brandlogo__cp6{left:48.4884%;top:40.3947%;width:3.0233%;height:3.4211%;background-size:5253.8462% 8300%;background-position:42.0896% 98.4991%}
.nvk-brandlogo__cp7{left:48.0233%;top:39.8684%;width:3.9535%;height:4.4737%;background-size:4017.6471% 6347.0588%;background-position:31.5315% 98.8701%}
.nvk-brandlogo__cp8{left:48.0233%;top:40.1316%;width:3.9535%;height:3.9474%;background-size:4017.6471% 7193.3333%;background-position:34.5345% 98.6842%}
.nvk-brandlogo__cp9{left:47.7907%;top:39.6053%;width:4.4186%;height:5%;background-size:3594.7368% 5678.9474%;background-position:19.2771% 99.0566%}
.nvk-brandlogo--wordmark.nvk-brandlogo--sm{aspect-ratio:972/530}.nvk-brandlogo--wordmark.nvk-brandlogo--sm .nvk-brandlogo__cv{left:0.5144%;top:-3.2075%;width:98.7654%;height:115.0943%}
.nvk-brandlogo--wordmark.nvk-brandlogo--md{aspect-ratio:972/592}.nvk-brandlogo--wordmark.nvk-brandlogo--md .nvk-brandlogo__cv{left:0.5144%;top:-2.8716%;width:98.7654%;height:103.0405%}
.nvk-brandlogo--wordmark.nvk-brandlogo--hero{aspect-ratio:972/592}.nvk-brandlogo--wordmark.nvk-brandlogo--hero .nvk-brandlogo__cv{left:0.5144%;top:-2.8716%;width:98.7654%;height:103.0405%}
.nvk-brandlogo--emblem.nvk-brandlogo--sm{aspect-ratio:726/726}.nvk-brandlogo--emblem.nvk-brandlogo--sm .nvk-brandlogo__cv{left:-9.2287%;top:1.5152%;width:118.4573%;height:104.6832%}
.nvk-brandlogo--emblem.nvk-brandlogo--md{aspect-ratio:810/716}.nvk-brandlogo--emblem.nvk-brandlogo--md .nvk-brandlogo__cv{left:-3.0864%;top:-3.7709%;width:106.1728%;height:106.1453%}
.nvk-brandlogo--emblem.nvk-brandlogo--hero{aspect-ratio:810/716}.nvk-brandlogo--emblem.nvk-brandlogo--hero .nvk-brandlogo__cv{left:-3.0864%;top:-3.7709%;width:106.1728%;height:106.1453%}
.nvk-brandlogo--wordmark .nvk-brandlogo__cv{transform-origin:50% 98.3607%}
.nvk-brandlogo--emblem .nvk-brandlogo__cv{transform-origin:50% 63.1579%}
.nvk-brandlogo--sm .nvk-brandlogo__bp0,.nvk-brandlogo--sm .nvk-brandlogo__bp1,.nvk-brandlogo--sm .nvk-brandlogo__bp2,.nvk-brandlogo--sm .nvk-brandlogo__bp3,.nvk-brandlogo--sm .nvk-brandlogo__bp4,.nvk-brandlogo--sm .nvk-brandlogo__bp5,.nvk-brandlogo--sm .nvk-brandlogo__bp6,.nvk-brandlogo--sm .nvk-brandlogo__bp7,.nvk-brandlogo--sm .nvk-brandlogo__bp8,.nvk-brandlogo--sm .nvk-brandlogo__bp9,.nvk-brandlogo--sm .nvk-brandlogo__bpl,.nvk-brandlogo--sm .nvk-brandlogo__bs0i,.nvk-brandlogo--sm .nvk-brandlogo__bs1i,.nvk-brandlogo--sm .nvk-brandlogo__bs2i,.nvk-brandlogo--sm .nvk-brandlogo__bs3i,.nvk-brandlogo--sm .nvk-brandlogo__bs4i,.nvk-brandlogo--sm .nvk-brandlogo__bs5i,.nvk-brandlogo--sm .nvk-brandlogo__bs6i,.nvk-brandlogo--sm .nvk-brandlogo__cbn,.nvk-brandlogo--sm .nvk-brandlogo__cgm,.nvk-brandlogo--sm .nvk-brandlogo__cl0,.nvk-brandlogo--sm .nvk-brandlogo__cl1,.nvk-brandlogo--sm .nvk-brandlogo__cl2,.nvk-brandlogo--sm .nvk-brandlogo__cl3,.nvk-brandlogo--sm .nvk-brandlogo__cl4,.nvk-brandlogo--sm .nvk-brandlogo__cl5,.nvk-brandlogo--sm .nvk-brandlogo__cl6,.nvk-brandlogo--sm .nvk-brandlogo__cp0,.nvk-brandlogo--sm .nvk-brandlogo__cp1,.nvk-brandlogo--sm .nvk-brandlogo__cp2,.nvk-brandlogo--sm .nvk-brandlogo__cp3,.nvk-brandlogo--sm .nvk-brandlogo__cp4,.nvk-brandlogo--sm .nvk-brandlogo__cp5,.nvk-brandlogo--sm .nvk-brandlogo__cp6,.nvk-brandlogo--sm .nvk-brandlogo__cp7,.nvk-brandlogo--sm .nvk-brandlogo__cp8,.nvk-brandlogo--sm .nvk-brandlogo__cp9,.nvk-brandlogo--sm .nvk-brandlogo__crm,.nvk-brandlogo--sm .nvk-brandlogo__cs0i,.nvk-brandlogo--sm .nvk-brandlogo__cs1i,.nvk-brandlogo--sm .nvk-brandlogo__cs2i,.nvk-brandlogo--sm .nvk-brandlogo__cs3i,.nvk-brandlogo--sm .nvk-brandlogo__cwd{display:none}
@keyframes nvbl-230620{0%{transform:translate(-58.0076%,7.9869%) rotate(-34deg) scale(0.5,0.5);opacity:0}12%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-a1eb4b{0%{transform:translate(-4.4849%,-80.6754%)}100%{transform:none}}
@keyframes nvbl-a59da5{0%{transform:none;animation-timing-function:cubic-bezier(.61,1,.88,1)}25%{transform:translate(-0.0472%,-0.8492%);animation-timing-function:cubic-bezier(.37,0,.63,1)}75%{transform:translate(0.0472%,0.8492%);animation-timing-function:cubic-bezier(.12,0,.39,0)}100%{transform:none}}
@keyframes nvbl-21bb5e{0%{transform:none}16%{transform:scale(1.24,0.74)}40%{transform:scale(0.9,1.13)}62%{transform:scale(1.05,0.96)}82%{transform:scale(0.985,1.015)}100%{transform:none}}
@keyframes nvbl-55474c{0%{transform:rotate(-62deg) scale(0.3,0.3)}100%{transform:none}}
@keyframes nvbl-c628a6{0%{transform:none}38%{transform:rotate(15deg)}72%{transform:rotate(-7deg)}100%{transform:none}}
@keyframes nvbl-0401f3{0%{transform:rotate(62deg) scale(0.3,0.3)}100%{transform:none}}
@keyframes nvbl-eee62e{0%{transform:none}38%{transform:rotate(-15deg)}72%{transform:rotate(7deg)}100%{transform:none}}
@keyframes nvbl-fabebe{0%{transform:none;animation-timing-function:cubic-bezier(.61,1,.88,1)}25%{transform:scale(0.985,1.016);animation-timing-function:cubic-bezier(.37,0,.63,1)}75%{transform:scale(1.03,0.968);animation-timing-function:cubic-bezier(.12,0,.39,0)}100%{transform:none}}
@keyframes nvbl-0f5a90{0%{transform:translate(-3.6013%,-35.7835%);opacity:0;animation-timing-function:cubic-bezier(.5,0,1,.6)}10%{transform:none;opacity:1}44%{transform:none;opacity:1;animation-timing-function:cubic-bezier(.22,1,.36,1)}60%{transform:translate(-0.6355%,-6.3147%);opacity:1;animation-timing-function:cubic-bezier(.5,0,1,.6)}76%{transform:none;opacity:1;animation-timing-function:cubic-bezier(.22,1,.36,1)}86%{transform:translate(-0.1695%,-1.6839%);opacity:1;animation-timing-function:cubic-bezier(.5,0,1,.6)}100%{transform:none;opacity:1}}
@keyframes nvbl-a8752c{0%{transform:none}50%{transform:translate(-0.1059%,-1.0525%) rotate(3deg)}100%{transform:none}}
@keyframes nvbl-607870{0%{opacity:1}50%{opacity:0.55}100%{opacity:1}}
@keyframes nvbl-32c0be{0%{transform:none;opacity:0}3%{transform:translate(40.8544%,-3.0947%);opacity:1}17%{transform:translate(373.5258%,-28.2942%);opacity:1}20%{transform:translate(455.2345%,-34.4836%);opacity:0}100%{transform:translate(455.2345%,-34.4836%);opacity:0}}
@keyframes nvbl-709895{0%{opacity:1}100%{opacity:0.999}}
@keyframes nvbl-2fac45{0%{transform:translate(-4.9014%,63.5593%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-58ae7e{0%{transform:translate(-8.4589%,65.7895%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-dcd1f6{0%{transform:translate(-5.0428%,64.6552%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-ecfcc0{0%{transform:translate(-4.856%,65.2174%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-8800cc{0%{transform:translate(-4.8115%,65.2174%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-d791f5{0%{transform:translate(-4.7677%,64.6552%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-571d28{0%{transform:translate(-4.9014%,64.1026%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-6f73a0{0%{opacity:0}100%{opacity:0.001}}
@keyframes nvbl-adf75c{0%{transform:none}24%{transform:translate(625.4167%,0%)}100%{transform:translate(625.4167%,0%)}}
@keyframes nvbl-3bbc4e{0%{transform:scale(0,0);opacity:0}25%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-be77de{0%{transform:rotate(-120deg) scale(0,0);opacity:0}30%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-50b455{0%{transform:none;opacity:1}50%{transform:rotate(30deg) scale(0.5,0.5);opacity:0.5}100%{transform:none;opacity:1}}
@keyframes nvbl-3c6716{0%{transform:translate(52.7451%,-4.5522%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(537.931%,-46.4261%) rotate(120deg);opacity:0}}
@keyframes nvbl-ce6e18{0%{transform:translate(55.2867%,41.6686%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(623.2412%,469.7261%) rotate(120deg);opacity:0}}
@keyframes nvbl-ef5495{0%{transform:translate(35.6048%,59.3734%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(413.467%,689.4835%) rotate(120deg);opacity:0}}
@keyframes nvbl-079f0f{0%{transform:translate(-18.9508%,66.5865%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-257.3268%,904.1591%) rotate(120deg);opacity:0}}
@keyframes nvbl-c80dfc{0%{transform:translate(-50.6418%,32.1778%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-718.2519%,456.3771%) rotate(120deg);opacity:0}}
@keyframes nvbl-b22d90{0%{transform:translate(-46.0913%,-10.9254%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-446.0416%,-105.7287%) rotate(120deg);opacity:0}}
@keyframes nvbl-6216df{0%{transform:translate(-53.9097%,-26.3391%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-540.8975%,-264.2709%) rotate(120deg);opacity:0}}
@keyframes nvbl-ba9200{0%{transform:translate(-23.9851%,-47.1962%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-296.2747%,-582.9887%) rotate(120deg);opacity:0}}
@keyframes nvbl-7f6eb6{0%{transform:translate(22.9238%,-65.3253%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(223.6992%,-637.4701%) rotate(120deg);opacity:0}}
@keyframes nvbl-cfa030{0%{transform:translate(51.4576%,-30.8563%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(596.0032%,-357.3904%) rotate(120deg);opacity:0}}
@keyframes nvbl-e51340{0%{transform:rotate(-30deg) scale(0.15,0.15);opacity:0}20%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-9c8bdd{0%{transform:rotate(-140deg);opacity:0}100%{transform:none;opacity:1}}
@keyframes nvbl-a98ac8{0%{transform:none}100%{transform:rotate(360deg)}}
@keyframes nvbl-a6a4ae{0%{opacity:0.7}50%{opacity:1}100%{opacity:0.7}}
@keyframes nvbl-d050d4{0%{transform:translate(-33.241%,0%);opacity:0}100%{transform:none;opacity:1}}
@keyframes nvbl-7e9f72{0%{transform:none}50%{transform:translate(2.2161%,0%)}100%{transform:none}}
@keyframes nvbl-736046{0%{transform:translate(33.8983%,0%);opacity:0}100%{transform:none;opacity:1}}
@keyframes nvbl-ca7dc7{0%{transform:none}50%{transform:translate(-1.9774%,0%)}100%{transform:none}}
@keyframes nvbl-fb7f0d{0%{transform:translate(0%,-50%) scale(0.6,0.6);opacity:0}100%{transform:none;opacity:1}}
@keyframes nvbl-742631{0%{transform:none}50%{transform:translate(2.2422%,-4%)}100%{transform:none}}
@keyframes nvbl-0e3d18{0%{transform:translate(-72.8222%,5.7623%) rotate(-34deg) scale(0.5,0.5);opacity:0}12%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-e6896b{0%{transform:translate(-4.5001%,-72.8222%)}100%{transform:none}}
@keyframes nvbl-39cd4a{0%{transform:none;animation-timing-function:cubic-bezier(.61,1,.88,1)}25%{transform:translate(-0.0474%,-0.7665%);animation-timing-function:cubic-bezier(.37,0,.63,1)}75%{transform:translate(0.0474%,0.7665%);animation-timing-function:cubic-bezier(.12,0,.39,0)}100%{transform:none}}
@keyframes nvbl-378fee{0%{transform:translate(-4.0166%,-32.3401%);opacity:0;animation-timing-function:cubic-bezier(.5,0,1,.6)}10%{transform:none;opacity:1}44%{transform:none;opacity:1;animation-timing-function:cubic-bezier(.22,1,.36,1)}60%{transform:translate(-0.7088%,-5.7071%);opacity:1;animation-timing-function:cubic-bezier(.5,0,1,.6)}76%{transform:none;opacity:1;animation-timing-function:cubic-bezier(.22,1,.36,1)}86%{transform:translate(-0.189%,-1.5219%);opacity:1;animation-timing-function:cubic-bezier(.5,0,1,.6)}100%{transform:none;opacity:1}}
@keyframes nvbl-300f2e{0%{transform:none}50%{transform:translate(-0.1181%,-0.9512%) rotate(3deg)}100%{transform:none}}
@keyframes nvbl-4abd3f{0%{transform:none;opacity:0}3%{transform:translate(40.4822%,-2.7353%);opacity:1}17%{transform:translate(370.1226%,-25.0083%);opacity:1}20%{transform:translate(451.0869%,-30.4789%);opacity:0}100%{transform:translate(451.0869%,-30.4789%);opacity:0}}
@keyframes nvbl-107218{0%{transform:scale(0,0.5);opacity:0}20%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-d61576{0%{transform:translate(0%,110.2941%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-918dde{0%{transform:translate(0%,113.6364%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-f4a882{0%{transform:translate(0%,115.3846%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-a4b92f{0%{transform:translate(0%,111.9403%) rotate(-14deg) scale(0.2,0.2);opacity:0}22%{transform:none;opacity:1}100%{transform:none;opacity:1}}
@keyframes nvbl-04ec42{0%{transform:none}24%{transform:translate(1030.3906%,0%)}100%{transform:translate(1030.3906%,0%)}}
@keyframes nvbl-15dff5{0%{transform:translate(47.3556%,-1.1022%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(752.3679%,-17.5121%) rotate(120deg);opacity:0}}
@keyframes nvbl-f7050d{0%{transform:translate(55.8525%,40.9072%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(895.9318%,656.1927%) rotate(120deg);opacity:0}}
@keyframes nvbl-a1da36{0%{transform:translate(17.174%,67.0668%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(295.1047%,1152.4222%) rotate(120deg);opacity:0}}
@keyframes nvbl-db5a5c{0%{transform:translate(-5.3941%,47.0603%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-93.1875%,813.0043%) rotate(120deg);opacity:0}}
@keyframes nvbl-2af1fb{0%{transform:translate(-48.9118%,20.2585%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-887.1393%,367.4395%) rotate(120deg);opacity:0}}
@keyframes nvbl-5a6a7a{0%{transform:translate(-52.2013%,8.82%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-671.367%,113.4347%) rotate(120deg);opacity:0}}
@keyframes nvbl-cebc2e{0%{transform:translate(-61.5053%,-31.7804%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-868.5725%,-448.7997%) rotate(120deg);opacity:0}}
@keyframes nvbl-72ef5c{0%{transform:translate(-17.8159%,-49.8534%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(-311.0284%,-870.3373%) rotate(120deg);opacity:0}}
@keyframes nvbl-fd2c0f{0%{transform:translate(16.3541%,-57.0654%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(269.1573%,-939.1861%) rotate(120deg);opacity:0}}
@keyframes nvbl-355d6c{0%{transform:translate(43.8989%,-17.7948%) scale(0.35,0.35);opacity:0}8%{transform:none;opacity:1}55%{transform:none;opacity:1}100%{transform:translate(803.7621%,-325.8124%) rotate(120deg);opacity:0}}
@media (prefers-reduced-motion: no-preference){:where(html:not([data-motion="off"])) .nvk-brandlogo__bfl{animation-name:nvbl-a59da5;animation-duration:4s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bwlo{animation-name:nvbl-c628a6;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bwro{animation-name:nvbl-eee62e;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bjl{animation-name:nvbl-fabebe;animation-duration:4s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bhb{animation-name:nvbl-a8752c;animation-duration:4s;animation-timing-function:ease-in-out;animation-delay:0.5s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bhg{animation-name:nvbl-607870;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:0.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bgl{animation-name:nvbl-32c0be;animation-duration:5s;animation-timing-function:linear;animation-delay:0.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bgb{animation-name:nvbl-adf75c;animation-duration:6s;animation-timing-function:cubic-bezier(.45,0,.35,1);animation-delay:0.8s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bs0{animation-name:nvbl-50b455;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-delay:0.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bs1{animation-name:nvbl-50b455;animation-duration:2.1s;animation-timing-function:ease-in-out;animation-delay:1.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bs2{animation-name:nvbl-50b455;animation-duration:2.8s;animation-timing-function:ease-in-out;animation-delay:0.8s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bs3{animation-name:nvbl-50b455;animation-duration:2.2s;animation-timing-function:ease-in-out;animation-delay:1.7s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bs4{animation-name:nvbl-50b455;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:0.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bs5{animation-name:nvbl-50b455;animation-duration:1.9s;animation-timing-function:ease-in-out;animation-delay:1.4s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__bs6{animation-name:nvbl-50b455;animation-duration:2.3s;animation-timing-function:ease-in-out;animation-delay:1s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__crs{animation-name:nvbl-a98ac8;animation-duration:60s;animation-timing-function:linear;animation-delay:-0.45s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__csn{animation-name:nvbl-a6a4ae;animation-duration:5s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cc1{animation-name:nvbl-7e9f72;animation-duration:8s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:-0.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cc2{animation-name:nvbl-ca7dc7;animation-duration:10s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:-0.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cpf{animation-name:nvbl-742631;animation-duration:7s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:-0.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cfl{animation-name:nvbl-39cd4a;animation-duration:4s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cwlo{animation-name:nvbl-c628a6;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cwro{animation-name:nvbl-eee62e;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cjl{animation-name:nvbl-fabebe;animation-duration:4s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__chb{animation-name:nvbl-300f2e;animation-duration:4s;animation-timing-function:ease-in-out;animation-delay:0.5s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__chg{animation-name:nvbl-607870;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:0.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cgl{animation-name:nvbl-4abd3f;animation-duration:5s;animation-timing-function:linear;animation-delay:0.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cgb{animation-name:nvbl-04ec42;animation-duration:6s;animation-timing-function:cubic-bezier(.45,0,.35,1);animation-delay:0.8s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cs0{animation-name:nvbl-50b455;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-delay:0.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cs1{animation-name:nvbl-50b455;animation-duration:2.1s;animation-timing-function:ease-in-out;animation-delay:1.1s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cs2{animation-name:nvbl-50b455;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"])) .nvk-brandlogo__cs3{animation-name:nvbl-50b455;animation-duration:2.9s;animation-timing-function:ease-in-out;animation-delay:0.7s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bfx{animation-name:nvbl-230620;animation-duration:0.62s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.3s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bfy{animation-name:nvbl-a1eb4b;animation-duration:0.62s;animation-timing-function:cubic-bezier(.55,0,.9,.5);animation-delay:0.3s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bfl{animation-name:nvbl-a59da5;animation-duration:4s;animation-timing-function:linear;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bld{animation-name:nvbl-21bb5e;animation-duration:0.6s;animation-timing-function:ease-in-out;animation-delay:0.9s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bwloi{animation-name:nvbl-55474c;animation-duration:0.5s;animation-timing-function:var(--nvk-bl-pop);animation-delay:0.95s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bwlo{animation-name:nvbl-c628a6;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bwroi{animation-name:nvbl-0401f3;animation-duration:0.5s;animation-timing-function:var(--nvk-bl-pop);animation-delay:0.95s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bwro{animation-name:nvbl-eee62e;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bjl{animation-name:nvbl-fabebe;animation-duration:4s;animation-timing-function:linear;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bha{animation-name:nvbl-0f5a90;animation-duration:0.75s;animation-timing-function:linear;animation-delay:0.98s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bhb{animation-name:nvbl-a8752c;animation-duration:4s;animation-timing-function:ease-in-out;animation-delay:2.1s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bhg{animation-name:nvbl-607870;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:1.8s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bgl{animation-name:nvbl-32c0be;animation-duration:5s;animation-timing-function:linear;animation-delay:2.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl0{animation-name:nvbl-709895;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl0a{animation-name:nvbl-2fac45;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.14s + 0 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl1{animation-name:nvbl-709895;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl1a{animation-name:nvbl-58ae7e;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.14s + 1 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl2{animation-name:nvbl-709895;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl2a{animation-name:nvbl-dcd1f6;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.14s + 2 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl3{animation-name:nvbl-709895;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl3a{animation-name:nvbl-ecfcc0;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.14s + 3 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl4{animation-name:nvbl-709895;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl4a{animation-name:nvbl-8800cc;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.14s + 4 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl5{animation-name:nvbl-709895;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl5a{animation-name:nvbl-d791f5;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.14s + 5 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl6{animation-name:nvbl-709895;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bl6a{animation-name:nvbl-571d28;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.14s + 6 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bwd{animation-name:nvbl-6f73a0;animation-duration:1s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bgb{animation-name:nvbl-adf75c;animation-duration:6s;animation-timing-function:cubic-bezier(.45,0,.35,1);animation-delay:2.4s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bpl{animation-name:nvbl-3bbc4e;animation-duration:0.7s;animation-timing-function:var(--nvk-bl-pop);animation-delay:0.02s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs0i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.02s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs0{animation-name:nvbl-50b455;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-delay:1.9s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs1i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.23s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs1{animation-name:nvbl-50b455;animation-duration:2.1s;animation-timing-function:ease-in-out;animation-delay:2.8s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs2i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.09s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs2{animation-name:nvbl-50b455;animation-duration:2.8s;animation-timing-function:ease-in-out;animation-delay:2.4s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs3i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.3s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs3{animation-name:nvbl-50b455;animation-duration:2.2s;animation-timing-function:ease-in-out;animation-delay:3.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs4i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.37s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs4{animation-name:nvbl-50b455;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:2.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs5i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.16s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs5{animation-name:nvbl-50b455;animation-duration:1.9s;animation-timing-function:ease-in-out;animation-delay:3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs6i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.44s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bs6{animation-name:nvbl-50b455;animation-duration:2.3s;animation-timing-function:ease-in-out;animation-delay:2.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp0{animation-name:nvbl-3c6716;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.926s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp1{animation-name:nvbl-ce6e18;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.961s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp2{animation-name:nvbl-ef5495;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.927s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp3{animation-name:nvbl-079f0f;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.938s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp4{animation-name:nvbl-c80dfc;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.952s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp5{animation-name:nvbl-b22d90;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.943s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp6{animation-name:nvbl-6216df;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.985s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp7{animation-name:nvbl-ba9200;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.95s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp8{animation-name:nvbl-7f6eb6;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.936s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__bp9{animation-name:nvbl-cfa030;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.967s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__ccr{animation-name:nvbl-e51340;animation-duration:0.8s;animation-timing-function:var(--nvk-bl-pop);animation-delay:0s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__crsi{animation-name:nvbl-9c8bdd;animation-duration:1s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.15s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__crs{animation-name:nvbl-a98ac8;animation-duration:60s;animation-timing-function:linear;animation-delay:1.15s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__csn{animation-name:nvbl-a6a4ae;animation-duration:5s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cc1i{animation-name:nvbl-d050d4;animation-duration:0.95s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.25s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cc1{animation-name:nvbl-7e9f72;animation-duration:8s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:1.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cc2i{animation-name:nvbl-736046;animation-duration:0.95s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.34s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cc2{animation-name:nvbl-ca7dc7;animation-duration:10s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:1.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cpfi{animation-name:nvbl-fb7f0d;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.45s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cpf{animation-name:nvbl-742631;animation-duration:7s;animation-timing-function:cubic-bezier(.37,0,.63,1);animation-delay:1.4s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cfx{animation-name:nvbl-0e3d18;animation-duration:0.62s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.3s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cfy{animation-name:nvbl-e6896b;animation-duration:0.62s;animation-timing-function:cubic-bezier(.55,0,.9,.5);animation-delay:0.3s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cfl{animation-name:nvbl-39cd4a;animation-duration:4s;animation-timing-function:linear;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cld{animation-name:nvbl-21bb5e;animation-duration:0.6s;animation-timing-function:ease-in-out;animation-delay:0.9s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cwloi{animation-name:nvbl-55474c;animation-duration:0.5s;animation-timing-function:var(--nvk-bl-pop);animation-delay:0.95s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cwlo{animation-name:nvbl-c628a6;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cwroi{animation-name:nvbl-0401f3;animation-duration:0.5s;animation-timing-function:var(--nvk-bl-pop);animation-delay:0.95s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cwro{animation-name:nvbl-eee62e;animation-duration:1.2s;animation-timing-function:ease-in-out;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cjl{animation-name:nvbl-fabebe;animation-duration:4s;animation-timing-function:linear;animation-delay:1.6s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cha{animation-name:nvbl-378fee;animation-duration:0.75s;animation-timing-function:linear;animation-delay:0.98s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__chb{animation-name:nvbl-300f2e;animation-duration:4s;animation-timing-function:ease-in-out;animation-delay:2.1s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__chg{animation-name:nvbl-607870;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:1.8s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cgl{animation-name:nvbl-4abd3f;animation-duration:5s;animation-timing-function:linear;animation-delay:2.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cbn{animation-name:nvbl-107218;animation-duration:0.7s;animation-timing-function:var(--nvk-bl-pop);animation-delay:0.4s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl0{animation-name:nvbl-709895;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl0a{animation-name:nvbl-d61576;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.52s + 0 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl1{animation-name:nvbl-709895;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl1a{animation-name:nvbl-918dde;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.52s + 1 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl2{animation-name:nvbl-709895;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl2a{animation-name:nvbl-918dde;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.52s + 2 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl3{animation-name:nvbl-709895;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl3a{animation-name:nvbl-f4a882;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.52s + 3 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl4{animation-name:nvbl-709895;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl4a{animation-name:nvbl-918dde;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.52s + 4 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl5{animation-name:nvbl-709895;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl5a{animation-name:nvbl-918dde;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.52s + 5 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl6{animation-name:nvbl-709895;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cl6a{animation-name:nvbl-a4b92f;animation-duration:0.62s;animation-timing-function:var(--nvk-bl-pop);animation-delay:calc(0.52s + 6 * var(--t-stagger, 40ms));animation-iteration-count:1;animation-fill-mode:backwards}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cwd{animation-name:nvbl-6f73a0;animation-duration:1.38s;animation-timing-function:linear;animation-delay:0s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cgb{animation-name:nvbl-04ec42;animation-duration:6s;animation-timing-function:cubic-bezier(.45,0,.35,1);animation-delay:2.4s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs0i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.02s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs0{animation-name:nvbl-50b455;animation-duration:2.4s;animation-timing-function:ease-in-out;animation-delay:1.9s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs1i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.09s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs1{animation-name:nvbl-50b455;animation-duration:2.1s;animation-timing-function:ease-in-out;animation-delay:2.7s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs2i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.16s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs2{animation-name:nvbl-50b455;animation-duration:2.6s;animation-timing-function:ease-in-out;animation-delay:3.2s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs3i{animation-name:nvbl-be77de;animation-duration:0.6s;animation-timing-function:var(--nvk-bl-pop);animation-delay:1.23s;animation-iteration-count:1;animation-fill-mode:both}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cs3{animation-name:nvbl-50b455;animation-duration:2.9s;animation-timing-function:ease-in-out;animation-delay:2.3s;animation-iteration-count:infinite;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp0{animation-name:nvbl-15dff5;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.957s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp1{animation-name:nvbl-f7050d;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.961s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp2{animation-name:nvbl-a1da36;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.944s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp3{animation-name:nvbl-db5a5c;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.923s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp4{animation-name:nvbl-2af1fb;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.969s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp5{animation-name:nvbl-5a6a7a;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.925s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp6{animation-name:nvbl-cebc2e;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.957s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp7{animation-name:nvbl-72ef5c;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.971s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp8{animation-name:nvbl-fd2c0f;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.942s;animation-iteration-count:1;animation-fill-mode:none}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro .nvk-brandlogo__cp9{animation-name:nvbl-355d6c;animation-duration:0.8s;animation-timing-function:cubic-bezier(.22,1,.36,1);animation-delay:0.977s;animation-iteration-count:1;animation-fill-mode:none}.nvk-brandlogo:not(.is-paused) :is(.nvk-brandlogo__bfl,.nvk-brandlogo__bwlo,.nvk-brandlogo__bwro,.nvk-brandlogo__bjl,.nvk-brandlogo__bhb,.nvk-brandlogo__bgl,.nvk-brandlogo__bgb,.nvk-brandlogo__bs0,.nvk-brandlogo__bs1,.nvk-brandlogo__bs2,.nvk-brandlogo__bs3,.nvk-brandlogo__bs4,.nvk-brandlogo__bs5,.nvk-brandlogo__bs6,.nvk-brandlogo__crs,.nvk-brandlogo__cc1,.nvk-brandlogo__cc2,.nvk-brandlogo__cpf,.nvk-brandlogo__cfl,.nvk-brandlogo__cwlo,.nvk-brandlogo__cwro,.nvk-brandlogo__cjl,.nvk-brandlogo__chb,.nvk-brandlogo__cgl,.nvk-brandlogo__cgb,.nvk-brandlogo__cs0,.nvk-brandlogo__cs1,.nvk-brandlogo__cs2,.nvk-brandlogo__cs3){will-change:transform}.nvk-brandlogo:not(.is-paused) :is(.nvk-brandlogo__bhg,.nvk-brandlogo__csn,.nvk-brandlogo__chg){will-change:opacity}:where(html:not([data-motion="off"]):not([data-nv-brand-seen])) .nvk-brandlogo--intro:not(.is-settled) :is(.nvk-brandlogo__bfx,.nvk-brandlogo__bfy,.nvk-brandlogo__bld,.nvk-brandlogo__bwloi,.nvk-brandlogo__bwroi,.nvk-brandlogo__bha,.nvk-brandlogo__bl0,.nvk-brandlogo__bl0a,.nvk-brandlogo__bl1,.nvk-brandlogo__bl1a,.nvk-brandlogo__bl2,.nvk-brandlogo__bl2a,.nvk-brandlogo__bl3,.nvk-brandlogo__bl3a,.nvk-brandlogo__bl4,.nvk-brandlogo__bl4a,.nvk-brandlogo__bl5,.nvk-brandlogo__bl5a,.nvk-brandlogo__bl6,.nvk-brandlogo__bl6a,.nvk-brandlogo__bwd,.nvk-brandlogo__bpl,.nvk-brandlogo__bs0i,.nvk-brandlogo__bs1i,.nvk-brandlogo__bs2i,.nvk-brandlogo__bs3i,.nvk-brandlogo__bs4i,.nvk-brandlogo__bs5i,.nvk-brandlogo__bs6i,.nvk-brandlogo__bp0,.nvk-brandlogo__bp1,.nvk-brandlogo__bp2,.nvk-brandlogo__bp3,.nvk-brandlogo__bp4,.nvk-brandlogo__bp5,.nvk-brandlogo__bp6,.nvk-brandlogo__bp7,.nvk-brandlogo__bp8,.nvk-brandlogo__bp9,.nvk-brandlogo__ccr,.nvk-brandlogo__crsi,.nvk-brandlogo__cc1i,.nvk-brandlogo__cc2i,.nvk-brandlogo__cpfi,.nvk-brandlogo__cfx,.nvk-brandlogo__cfy,.nvk-brandlogo__cld,.nvk-brandlogo__cwloi,.nvk-brandlogo__cwroi,.nvk-brandlogo__cha,.nvk-brandlogo__cbn,.nvk-brandlogo__cl0,.nvk-brandlogo__cl0a,.nvk-brandlogo__cl1,.nvk-brandlogo__cl1a,.nvk-brandlogo__cl2,.nvk-brandlogo__cl2a,.nvk-brandlogo__cl3,.nvk-brandlogo__cl3a,.nvk-brandlogo__cl4,.nvk-brandlogo__cl4a,.nvk-brandlogo__cl5,.nvk-brandlogo__cl5a,.nvk-brandlogo__cl6,.nvk-brandlogo__cl6a,.nvk-brandlogo__cwd,.nvk-brandlogo__cs0i,.nvk-brandlogo__cs1i,.nvk-brandlogo__cs2i,.nvk-brandlogo__cs3i,.nvk-brandlogo__cp0,.nvk-brandlogo__cp1,.nvk-brandlogo__cp2,.nvk-brandlogo__cp3,.nvk-brandlogo__cp4,.nvk-brandlogo__cp5,.nvk-brandlogo__cp6,.nvk-brandlogo__cp7,.nvk-brandlogo__cp8,.nvk-brandlogo__cp9){will-change:transform,opacity}.nvk-brandlogo.is-paused .nvk-brandlogo__p{animation-play-state:paused}}
}

/* Button */
@layer components{
.nvk-btn { --_bg: var(--ui-brand); --_fg: var(--ui-brand-fg); --_bd: transparent;
  display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2);
  min-height: 44px; padding: 0 var(--space-4); margin: 0;
  border: 1px solid var(--_bd); border-radius: var(--radius-pill); background: var(--_bg); color: var(--_fg);
  font-family: var(--body); font-size: 14px; font-weight: 700; line-height: 1; letter-spacing: 0; text-transform: none; text-decoration: none; white-space: nowrap;
  cursor: pointer; box-shadow: none; transition: filter var(--t-fast), box-shadow var(--t-fast), transform var(--t-spring-fast) var(--ease-spring); }
.nvk-btn:hover { filter: brightness(1.08); }
/* Rune Motion A10: a press squishes it a little, at once; letting go springs it back */
.nvk-btn:active { transform: scale(.96); transition-duration: var(--t-fast), var(--t-fast), 60ms; }
.nvk-btn--sm { min-height: 36px; padding: 0 var(--space-3); font-size: 13px; }
@media (max-width: 600px), (pointer: coarse) { .nvk-btn--sm { min-height: 44px; } }
.nvk-btn--lg { min-height: 52px; padding: 0 var(--space-5); font-size: 16px; }
.nvk-btn--block { display: flex; width: 100%; }
.nvk-btn--cta { --_bg: var(--ui-cta); --_fg: var(--ui-cta-fg); }
.nvk-btn--soft { --_bg: color-mix(in srgb, var(--ui-brand) 14%, transparent); --_fg: color-mix(in srgb, var(--ui-link) 75%, var(--ui-fg)); }
.nvk-btn--ghost { --_bg: transparent; --_fg: var(--ui-fg); --_bd: var(--ui-line-strong); }
.nvk-btn--danger { --_bg: var(--ui-danger); --_fg: var(--ui-bg); }
.nvk-btn:disabled, .nvk-btn[aria-disabled="true"] { opacity: .5; cursor: not-allowed; pointer-events: none; }
.nvk-btn__label { min-width: 0; }
}

/* CallStrip */
@layer components{
/* CallStrip (owner-picked Option A 'Island Rail' of 'NirvanaRO Cockpit Stations', 2026-10-19): The Call under every station header. */
.nvk-callstrip { display: flex; align-items: center; gap: 18px; margin: var(--space-4) 0 0; padding: 14px; border: 2px solid color-mix(in srgb, var(--ui-fg) 88%, transparent); border-radius: 36px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; min-width: 0; }
.nvk-callstrip__seal { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 24px/1 var(--disp); animation: nvk-callstrip-pulse 2.6s ease-in-out infinite; }
.nvk-callstrip__t { flex: 1 1 auto; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nvk-callstrip__eye { margin: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font: 700 12px/18px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-callstrip__word { display: inline-flex; align-items: center; height: 24px; padding: 0 10px; border-radius: var(--radius-pill); background: var(--ui-brand-tint); color: var(--ui-link); font: 700 12px/1 var(--body); letter-spacing: .02em; text-transform: none; }
.nvk-callstrip--gold .nvk-callstrip__word { background: var(--ui-cta); color: var(--ui-cta-fg); }
.nvk-callstrip--ok .nvk-callstrip__word { background: color-mix(in srgb, var(--ui-ok) 16%, transparent); color: color-mix(in srgb, var(--ui-ok) 70%, var(--ui-fg)); }
.nvk-callstrip--bad .nvk-callstrip__word { background: color-mix(in srgb, var(--ui-danger) 16%, transparent); color: color-mix(in srgb, var(--ui-danger) 70%, var(--ui-fg)); }
.nvk-callstrip--neutral .nvk-callstrip__word { background: var(--ui-sunken); color: var(--ui-fg-2); }
.nvk-callstrip__title { margin: 0; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); text-wrap: balance; }
.nvk-callstrip__why { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-callstrip__then { display: flex; flex-wrap: wrap; gap: 6px 14px; font: 600 14px/20px var(--body); }
.nvk-callstrip__then > span:first-child { font: 700 11px/20px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-callstrip__go { flex: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.nvk-callstrip__go:empty, .nvk-callstrip__then:empty { display: none; }
@media (max-width: 760px) { .nvk-callstrip__then { align-items: center; gap: 0 14px; } .nvk-callstrip__then a { display: inline-flex; align-items: center; min-height: 44px; } }
.nvk-callstrip__verb { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 0 22px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); font: 700 15px/1 var(--body); text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-callstrip__verb:hover { transform: translateY(-2px); }
.nvk-callstrip__verb:active { transform: scale(.96); }
.nvk-callstrip__verb:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.nvk-callstrip__arrow { color: var(--ui-island-gold); }
@keyframes nvk-callstrip-pulse { 0%, 100% { scale: 1; } 50% { scale: 1.06; } }
@media (prefers-reduced-motion: reduce) { .nvk-callstrip__seal { animation: none; } .nvk-callstrip__verb { transition: none; } }
@media (max-width: 860px) {
  .nvk-callstrip { flex-direction: column; align-items: stretch; padding: 18px; border-radius: 30px; }
  .nvk-callstrip__seal { width: 52px; height: 52px; }
  .nvk-callstrip__go { justify-content: stretch; }
  .nvk-callstrip__verb { flex: 1 1 auto; }
}
}

/* Callout */
@layer components{
.nvk-callout { --_c: var(--ui-link); display: flex; gap: var(--space-3); align-items: flex-start; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  background: color-mix(in srgb, var(--_c) 10%, var(--ui-surface)); border: 1px solid color-mix(in srgb, var(--_c) 30%, transparent); color: var(--ui-fg); font-size: 14px; line-height: 20px; }
.nvk-callout > .nvk-icon { color: var(--_c); margin-top: 1px; }
.nvk-callout--ok { --_c: var(--ui-ok); }
.nvk-callout--warn { --_c: var(--ui-warn); }
.nvk-callout--danger { --_c: var(--ui-danger); }
.nvk-callout__body { min-width: 0; }
.nvk-callout__body > p { margin: 0; }
.nvk-callout__title { font-weight: 700; margin: 0 0 2px; }
}

/* CapStops */
@layer components{
/* CapStops (owner pick A 'Tier ascent' of 'NirvanaRO Cockpit Patron', 2026-10-21): owned / cap of an unlock as numbered stops. */
.nvk-capstops { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.nvk-capstops__lab { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-capstops__row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; min-width: 0; }
.nvk-capstops__s { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--radius-pill); background: var(--ui-sunken); color: var(--ui-fg-2); font: 700 12px/1 var(--body); font-variant-numeric: tabular-nums; }
.nvk-capstops--done { background: var(--ui-island); color: var(--ui-island-gold); }
.nvk-capstops--next { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); box-shadow: 0 0 0 3px var(--ui-surface), 0 0 0 5px var(--ui-island); }
}

/* CapsuleRow */
@layer components{
/* CapsuleRow (owner-picked Option 2, 2026-10-18): island capsules that spring in one after another. */
.nvk-capsules { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: var(--space-4); }
.nvk-capsule { display: flex; align-items: center; gap: 12px; min-width: 0; padding: 14px 16px 14px 14px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring); }
a.nvk-capsule:hover { transform: translateY(-4px); }
a.nvk-capsule:active { transform: scale(.96); }
a.nvk-capsule:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.nvk-capsule__g { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 18px/1 var(--disp); }
.nvk-capsule__t { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.nvk-capsule__t span { font: 400 12px/14px var(--body); color: var(--ui-island-fg-2); }
.nvk-capsule__t b { font: 700 20px/22px var(--disp); overflow-wrap: break-word; }   /* audit fixes B: a whole word ("Unranked") never splits mid-letter */
/* hot: something running now (the Bazaar's Friday Market), the capsule turns gold */
.nvk-capsule--hot { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-capsule--hot .nvk-capsule__g { background: var(--ui-island); color: var(--ui-island-gold); }
.nvk-capsule--hot .nvk-capsule__t span { color: var(--ui-island-gold-fg); }
/* The entrance only with motion on (2026-10-22, One left menu follow-ups): the start state used to sit in the base rule, so a look that turns
   animation off for reduced motion (the Anime sheet) left each capsule invisible at four tenths of its size. Without motion it is simply there. */
@media (prefers-reduced-motion: no-preference) {
  .nvk-capsule { opacity: 0; transform: scale(.4); animation: nvk-capsule-in var(--t-spring) var(--ease-spring) forwards; }
  .nvk-capsule:nth-child(2) { animation-delay: 60ms; }
  .nvk-capsule:nth-child(3) { animation-delay: 120ms; }
  .nvk-capsule:nth-child(4) { animation-delay: 180ms; }
}
@keyframes nvk-capsule-in { to { opacity: 1; transform: scale(1); } }
@media (max-width: 980px) { .nvk-capsules { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-3); } }
@media (max-width: 560px) { .nvk-capsule { padding: 10px 14px 10px 10px; gap: 10px; } .nvk-capsule__g { width: 38px; height: 38px; } .nvk-capsule__t b { font-size: 17px; } }
}

/* Card */
@layer components{
.nvk-card { --_pad: var(--space-4); display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; padding: var(--_pad);
  background: var(--ui-surface); color: var(--ui-fg); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.nvk-card--plain { box-shadow: none; }
.nvk-card--sunken { background: var(--ui-sunken); border-color: transparent; box-shadow: none; border-radius: var(--radius-md); }
.nvk-card--hero { background: var(--ui-brand); color: var(--ui-brand-fg); border-color: transparent; box-shadow: var(--shadow-md); }
.nvk-card--pad-none { --_pad: 0; }
.nvk-card--pad-sm { --_pad: var(--space-3); }
.nvk-card--pad-lg { --_pad: var(--space-5); }
.nvk-card__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.nvk-card__titles { min-width: 0; }
.nvk-card__eyebrow { margin: 0 0 2px; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-card--hero .nvk-card__eyebrow { color: inherit; opacity: 1; }   /* audit fixes B: was .8, 3.5:1 on the brand hero */
.nvk-card__title { margin: 0; font-family: var(--disp); font-size: 18px; font-weight: 600; line-height: 26px; color: inherit; text-transform: none; letter-spacing: 0; }
.nvk-card--hero .nvk-card__title { font-size: 28px; line-height: 36px; font-weight: 700; }
.nvk-card__actions { display: flex; gap: var(--space-2); flex: none; }
.nvk-card__body { min-width: 0; font-size: 15px; line-height: 22px; }
.nvk-card__body > :first-child { margin-top: 0; }
.nvk-card__body > :last-child { margin-bottom: 0; }
.nvk-card__foot { padding-top: var(--space-3); border-top: 1px solid var(--ui-line); font-size: 13px; }
.nvk-card--hero .nvk-card__foot { border-color: color-mix(in srgb, currentColor 25%, transparent); }
}

/* Chip */
@layer components{
.nvk-chip { --_bg: var(--ui-sunken); --_fg: var(--ui-fg-2);
  display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: var(--radius-pill);
  background: var(--_bg); color: var(--_fg); font-family: var(--body); font-size: 12px; font-weight: 700; line-height: 16px; white-space: nowrap; }
.nvk-chip--brand { --_bg: var(--ui-brand); --_fg: var(--ui-brand-fg); }
.nvk-chip--ok { --_bg: color-mix(in srgb, var(--ui-ok) 16%, transparent); --_fg: color-mix(in srgb, var(--ui-ok) 70%, var(--ui-fg)); }
.nvk-chip--warn { --_bg: color-mix(in srgb, var(--ui-warn) 18%, transparent); --_fg: color-mix(in srgb, var(--ui-warn) 70%, var(--ui-fg)); }
.nvk-chip--danger { --_bg: color-mix(in srgb, var(--ui-danger) 16%, transparent); --_fg: color-mix(in srgb, var(--ui-danger) 70%, var(--ui-fg)); }
.nvk-chip--cta { --_bg: var(--ui-cta); --_fg: var(--ui-cta-fg); }
.nvk-chip__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; flex: none; }
/* audit fixes B (2026-10-21): a tone chip on a dark island panel (.nvk-on-dark, e.g. the Mirror) mixes its hue into the light island ink;
   the light-surface mix (hue + --ui-fg) read 2.4:1 there. */
.nvk-on-dark .nvk-chip--ok { --_bg: color-mix(in srgb, var(--ui-ok) 24%, transparent); --_fg: color-mix(in srgb, var(--ui-ok) 40%, var(--ui-island-fg)); }
.nvk-on-dark .nvk-chip--warn { --_bg: color-mix(in srgb, var(--ui-warn) 26%, transparent); --_fg: color-mix(in srgb, var(--ui-warn) 40%, var(--ui-island-fg)); }
.nvk-on-dark .nvk-chip--danger { --_bg: color-mix(in srgb, var(--ui-danger) 24%, transparent); --_fg: color-mix(in srgb, var(--ui-danger) 40%, var(--ui-island-fg)); }
}

/* ClimbList */
@layer components{
/* ClimbList (owner-picked Option B 'Island ascent' of 'NirvanaRO Commerce and Property', 2026-10-19): a ladder of climbers with segmented bars. */
.nvk-climb { display: flex; flex-direction: column; gap: 4px; margin: 0; padding: 0; list-style: none; min-width: 0; }
.nvk-climb__it { margin: 0; padding: 0; min-width: 0; }
.nvk-climb__row { display: grid; grid-template-columns: 44px minmax(140px, 220px) minmax(0, 1fr) minmax(96px, auto); gap: 14px; align-items: center; min-height: 64px; padding: 8px 12px; border-radius: 20px; color: var(--ui-fg); text-decoration: none; box-sizing: border-box; }
.nvk-climb__row--nobar { grid-template-columns: 44px minmax(0, 1fr) minmax(96px, auto); }
a.nvk-climb__row:hover { background: var(--ui-surface-2); }
a.nvk-climb__row:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.is-me > .nvk-climb__row { background: var(--ui-brand-tint); }
.nvk-climb__rk { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg); font: 700 15px/1 var(--disp); font-variant-numeric: tabular-nums; }
.is-me .nvk-climb__rk { background: var(--ui-island); color: var(--ui-island-gold); }
.nvk-climb__who { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.nvk-climb__t { font: 700 16px/22px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
a.nvk-climb__row .nvk-climb__t { color: var(--ui-link); }
.nvk-climb__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.nvk-climb__sub { font: 400 13px/18px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-climb__bar { display: flex; gap: 3px; min-width: 0; }
.nvk-climb__c { flex: 1 1 0; height: 14px; border-radius: 4px; background: var(--ui-sunken); box-shadow: inset 0 0 0 1px var(--ui-line); }
.nvk-climb__c--f { background: var(--ui-brand); box-shadow: none; }
.nvk-climb__bar--max .nvk-climb__c--f { background: var(--ui-ok); }
.nvk-climb__v { display: flex; flex-direction: column; text-align: right; font: 700 15px/20px var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.nvk-climb__note { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
@media (max-width: 760px) {
  .nvk-climb__row, .nvk-climb__row--nobar { grid-template-columns: 44px minmax(0, 1fr); gap: 8px 12px; padding: 10px; }
  .nvk-climb__bar { grid-column: 2; }
  .nvk-climb__v { grid-column: 2; flex-direction: row; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; text-align: left; }
}
}

/* CloudLadder */
@layer components{
/* CloudLadder (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): steps as layers of sky. */
.nvk-cloudl { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.nvk-cloudl__it { display: grid; grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; gap: var(--space-3); padding: var(--space-3) var(--space-4); border-radius: var(--radius-md); background: var(--ui-surface); border: 1px solid var(--ui-line); }
.nvk-cloudl__n { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ui-sky-2); color: var(--ui-sky-fg); font: 700 17px/1 var(--disp); }
.nvk-cloudl__b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-cloudl__t { font: 700 16px/22px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-cloudl__x { font: 400 13px/18px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-cloudl__b .nvk-meter-row { margin-top: 6px; }
.nvk-cloudl__r { padding: 4px 12px; border-radius: var(--radius-pill); background: var(--ui-capsule); color: var(--ui-capsule-fg); font: 700 13px/18px var(--disp); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nvk-cloudl--done .nvk-cloudl__n { background: var(--ui-brand); color: var(--ui-brand-fg); }
.nvk-cloudl--now { border: 2px solid var(--ui-brand); box-shadow: 0 0 0 6px var(--ui-brand-tint), var(--shadow-sm); }
.nvk-cloudl--top { background: linear-gradient(90deg, color-mix(in srgb, var(--ui-tier-legendary) 22%, var(--ui-surface)), var(--ui-surface)); }
.nvk-cloudl--top .nvk-cloudl__n { background: var(--ui-cta); color: var(--ui-cta-fg); }
@media (max-width: 520px) { .nvk-cloudl__it { grid-template-columns: 40px minmax(0, 1fr); } .nvk-cloudl__n { width: 40px; height: 40px; } .nvk-cloudl__r { grid-column: 2; justify-self: start; } }
}

/* ContentsRail */
@layer components{
/* ContentsRail (owner-picked Option 1 'Contents rail' of 'NirvanaRO Help Pages', 2026-10-19): the reading pages' contents. */
.nvk-contents { position: sticky; top: calc(var(--nvk-bar-stick, 0px) + 20px); max-height: calc(100vh - 40px); overflow: auto; scrollbar-width: thin; }
.nvk-contents__fold { display: flex; flex-direction: column; gap: var(--space-3); }
.nvk-contents__sum { display: none; }
.nvk-contents__grp { padding: 14px 10px; border-radius: 28px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-contents__k { margin: 0 0 8px 12px; font: 700 11px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-contents__list, .nvk-contents__sub { margin: 0; padding: 0; list-style: none; }
.nvk-contents__list { display: flex; flex-direction: column; gap: 2px; }
.nvk-contents__a { display: flex; align-items: center; gap: 10px; min-height: 44px; padding: 6px 12px 6px 8px; border-radius: var(--radius-pill); color: var(--ui-fg); text-decoration: none; transition: background .2s, transform var(--t-spring-fast) var(--ease-spring); }
.nvk-contents__a:hover { background: var(--ui-surface-2); transform: translateX(3px); }
.nvk-contents__a:focus-visible, .nvk-contents__c:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-contents__n { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 4px; border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg-2); font: 700 11px/1 var(--disp); box-sizing: border-box; }
.nvk-contents__l { display: flex; flex-direction: column; min-width: 0; }
.nvk-contents__l b { font: 600 14px/18px var(--body); }
.nvk-contents__s { font: 400 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-contents__item.is-on > .nvk-contents__a { background: var(--ui-island); color: var(--ui-island-fg); }
.nvk-contents__item.is-on > .nvk-contents__a .nvk-contents__n { background: var(--ui-island-2); color: var(--ui-island-gold); }
.nvk-contents__item.is-on > .nvk-contents__a .nvk-contents__s { color: var(--ui-island-fg-2); }
.nvk-contents__sub { display: none; margin: 4px 0 6px 22px; padding-left: 12px; border-left: 2px solid var(--ui-line); }
.nvk-contents__item.is-on > .nvk-contents__sub { display: flex; flex-direction: column; gap: 2px; }
.nvk-contents__c { display: flex; align-items: center; min-height: 44px; padding: 4px 12px; border-radius: var(--radius-pill); color: var(--ui-fg-2); font: 500 13px/17px var(--body); text-decoration: none; }
.nvk-contents__c:hover { background: var(--ui-surface-2); }
.nvk-contents__c[aria-current="true"] { background: var(--ui-brand-tint); color: var(--ui-link); font-weight: 700; }
@media (prefers-reduced-motion: reduce) { .nvk-contents__a { transition: none; } }
@media (max-width: 900px) {
  .nvk-contents { position: static; max-height: none; overflow: visible; }
  .nvk-contents__sum { display: flex; align-items: center; justify-content: space-between; min-height: 52px; padding: 0 22px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); font: 700 15px/1 var(--body); cursor: pointer; list-style: none; box-shadow: var(--shadow-island); }
  .nvk-contents__sum::-webkit-details-marker { display: none; }
  .nvk-contents__sum::after { content: "▾"; color: var(--ui-island-gold); }
  .nvk-contents__fold[open] > .nvk-contents__sum::after { content: "▴"; }
  .nvk-contents__sum:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
}
/* side: 'On this page' on the right of a reading page (One left menu, owner 2026-10-22): one compact card, 32px rows on a desktop, the same one-line fold on a phone */
.nvk-contents--side .nvk-contents__fold { gap: 0; }
.nvk-contents--side .nvk-contents__grp { padding: 12px 8px; border-radius: var(--radius-lg); }
.nvk-contents--side .nvk-contents__grp + .nvk-contents__grp { margin-top: var(--space-2); }
.nvk-contents--side .nvk-contents__k { margin: 0 0 4px 10px; }
.nvk-contents--side .nvk-contents__a { min-height: 32px; gap: 8px; padding: 4px 10px 4px 6px; border-radius: var(--radius-sm); }
.nvk-contents--side .nvk-contents__a:hover { transform: none; }
.nvk-contents--side .nvk-contents__n { min-width: 26px; height: 22px; font-size: 10.5px; }
.nvk-contents--side .nvk-contents__l b { font-size: 13.5px; font-weight: 500; }
.nvk-contents--side .nvk-contents__item.is-on > .nvk-contents__a { background: var(--ui-brand-tint); color: var(--ui-link); }
.nvk-contents--side .nvk-contents__item.is-on > .nvk-contents__a b { font-weight: 700; }
.nvk-contents--side .nvk-contents__item.is-on > .nvk-contents__a .nvk-contents__n { background: var(--ui-island); color: var(--ui-island-gold); }
.nvk-contents--side .nvk-contents__sub { margin: 2px 0 4px 18px; padding-left: 8px; border-left-width: 1px; }
.nvk-contents--side .nvk-contents__c { min-height: 30px; padding: 2px 10px; border-radius: var(--radius-sm); font-size: 12.5px; }
@media (max-width: 900px) {
  .nvk-contents--side .nvk-contents__a, .nvk-contents--side .nvk-contents__c { min-height: 44px; }
  .nvk-contents--side .nvk-contents__fold[open] { padding-bottom: var(--space-2); }
}
}

/* Control */
@layer components{
/* a bare control: it stays where the page put it (inline in a row, a table cell, a flex strip) instead of filling a field column */
.nvk-field__control.nvk-ctl { display: inline-block; width: auto; max-width: 100%; min-width: 0; vertical-align: middle; }
textarea.nvk-field__control.nvk-ctl { display: block; width: 100%; }
.nvk-ctl__tick { width: 18px; height: 18px; margin: 0; accent-color: var(--ui-brand); vertical-align: middle; }
}

/* DayCard */
@layer components{
/* DayCard (owner-picked Option 2, 2026-10-18): who, what is owed, the next call, what is running. */
.nvk-daycard { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-5); border-radius: 40px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; min-width: 0; }
.nvk-daycard__who { display: flex; align-items: center; gap: var(--space-3); }
.nvk-daycard__av { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: var(--radius-pill); background: linear-gradient(135deg, var(--ui-brand), var(--ui-island-gold)); color: var(--ui-island); font: 700 26px/1 var(--disp); }
.nvk-daycard__id { min-width: 0; }
.nvk-daycard__eyebrow { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-link); }
.nvk-daycard__title { margin: 0; padding: 0; border: 0; font: 700 24px/28px var(--disp); color: var(--ui-fg); text-wrap: balance; }
.nvk-daycard__sub { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-daycard__owed { display: flex; align-items: center; gap: var(--space-3); padding: 10px 10px 10px 18px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); }
.nvk-daycard__owedtxt { display: flex; flex-direction: column; min-width: 0; font: 400 13px/18px var(--body); color: var(--ui-island-fg-2); }
.nvk-daycard__owedtxt b { font: 700 15px/20px var(--disp); color: var(--ui-island-fg); }
.nvk-daycard__claim { flex: none; margin-left: auto; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 18px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 15px/1 var(--body); text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-daycard__claim:hover { transform: translateY(-2px); }
.nvk-daycard__claim:active { transform: scale(.95); }
.nvk-daycard__claim:focus-visible, .nvk-daycard__call:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.nvk-daycard__call { display: flex; flex-direction: column; gap: 2px; padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); color: var(--ui-fg); text-decoration: none; font: 400 14px/20px var(--body); }
a.nvk-daycard__call:hover { background: var(--ui-surface-2); }
.nvk-daycard__call b { font: 700 18px/24px var(--disp); }
.nvk-daycard__call span { color: var(--ui-fg-2); }
.nvk-daycard__call .nvk-daycard__lab { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-daycard__run { margin: 0; font: 400 13px/20px var(--body); color: var(--ui-fg-2); }
}

/* DenDen */
@layer components{
/* DenDen (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): the Den Den Mushi broadcast in the Rune Island capsule. */
.nvk-denden { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-3); padding: 10px 12px 10px 10px; border-radius: 28px; background: var(--ui-capsule); color: var(--ui-capsule-fg); box-shadow: 0 10px 28px color-mix(in srgb, var(--ui-capsule) 30%, transparent); }
.nvk-denden__snail { display: grid; place-items: center; flex: 0 0 auto; width: 40px; height: 40px; border-radius: 50%; background: color-mix(in srgb, var(--ui-capsule-fg) 12%, var(--ui-capsule)); }
.nvk-denden__snail svg { width: 26px; height: 26px; }
.nvk-denden__shell { fill: var(--ui-cta); }
.nvk-denden__curl { fill: none; stroke: var(--ui-cta-fg); stroke-width: 2; }
.nvk-denden__body { stroke: var(--ui-brand-hi); stroke-width: 3; stroke-linecap: round; }
.nvk-denden__eye { fill: var(--ui-brand-hi); }
.nvk-denden__txt { display: flex; flex-direction: column; flex: 1 1 220px; min-width: 0; }
.nvk-denden__t { font: 700 14px/20px var(--body); }
.nvk-denden__l { font: 400 13px/18px var(--body); color: var(--ui-capsule-fg-2); overflow-wrap: anywhere; }
.nvk-denden__live { display: inline-flex; align-items: center; gap: 6px; font: 700 14px/20px var(--disp); }
.nvk-denden__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--ui-tier-uncommon); animation: nvk-denden-pulse 1.8s ease-in-out infinite; }
.nvk-denden__acts { display: flex; flex-wrap: wrap; gap: var(--space-2); }
@keyframes nvk-denden-pulse { 50% { box-shadow: 0 0 0 6px color-mix(in srgb, var(--ui-tier-uncommon) 0%, transparent); } 0%, 100% { box-shadow: 0 0 0 2px color-mix(in srgb, var(--ui-tier-uncommon) 40%, transparent); } }
@media (prefers-reduced-motion: reduce) { .nvk-denden__dot { animation: none; } }
}

/* DeviceCard */
@layer components{
.nvk-device { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-3) var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nvk-device__head { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }
.nvk-device__label { font-weight: 600; font-size: 14px; line-height: 1.4; color: var(--ui-fg); }
.nvk-device__this { font-size: 12px; line-height: 1.4; padding: 2px 8px; border-radius: var(--radius-pill); background: var(--ui-ok); color: var(--ui-surface); }
.nvk-device__meta { margin: 0; font-size: 13px; line-height: 1.4; color: var(--ui-fg-3); }
.nvk-device__actions:empty { display: none; }
}

/* Dialog */
@layer components{
.nvk-dialog { padding: 0; border: 0; background: transparent; color: var(--ui-fg); max-width: min(560px, calc(100vw - 2 * var(--space-4))); width: 100%; }
.nvk-dialog::backdrop { background: rgba(10, 12, 30, .55); }
.nvk-dialog__panel { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-5); background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.nvk-dialog__head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-3); }
.nvk-dialog__title { margin: 0; font-family: var(--disp); font-size: 20px; font-weight: 600; line-height: 28px; color: inherit; text-transform: none; letter-spacing: 0; }
.nvk-dialog__close { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; margin: -8px -8px 0 0; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--ui-fg-2); cursor: pointer; box-shadow: none; }
.nvk-dialog__close:hover { background: var(--ui-sunken); }
.nvk-dialog__body { font-size: 15px; line-height: 22px; }
.nvk-dialog__body > :first-child { margin-top: 0; }
.nvk-dialog__body > :last-child { margin-bottom: 0; }
.nvk-dialog__foot { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: var(--space-2); padding-top: var(--space-3); border-top: 1px solid var(--ui-line); }
.nvk-dialog[open] { display: block; }
/* Rune Motion A1: the panel grows out of the button that opened it and shrinks back into it (js/nv-ui.js); the backdrop fades. A closed dialog
   stays drawn (display and overlay, allow-discrete) for as long as the shrink takes, its panel faded out underneath the motion. */
.nvk-dialog { transition: display var(--t-spring-fast) allow-discrete, overlay var(--t-spring-fast) allow-discrete; }
.nvk-dialog:not([open]) > .nvk-dialog__panel { opacity: 0; }
.nvk-dialog::backdrop { transition: opacity var(--t-swap) var(--ease-rune), display var(--t-spring-fast) allow-discrete, overlay var(--t-spring-fast) allow-discrete; }
.nvk-dialog:not([open])::backdrop { opacity: 0; }
@starting-style { .nvk-dialog[open]::backdrop { opacity: 0; } }
}

/* Disclosure */
@layer components{
.nvk-disclosure { border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); color: var(--ui-fg); min-width: 0; }
.nvk-disclosure__summary { min-height: 44px; cursor: pointer; padding: var(--space-2) var(--space-3); font-weight: 600; font-size: 14px; line-height: 22px; list-style-position: inside; }
.nvk-disclosure__summary:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-disclosure__hint { font-weight: 400; color: var(--ui-fg-3); margin-left: var(--space-1); }
.nvk-disclosure__body { padding: var(--space-2) var(--space-3) var(--space-3); border-top: 1px solid var(--ui-line); min-width: 0; }
/* Rune Motion A10: the body opens and closes on the firm spring where the browser can animate a height to auto (the details' content box);
   elsewhere it simply shows and hides */
@supports (interpolate-size: allow-keywords) and selector(::details-content) {
  .nvk-disclosure { interpolate-size: allow-keywords; }
  .nvk-disclosure::details-content { height: 0; overflow: clip; overflow-clip-margin: var(--space-1); transition: height var(--t-spring-fast) var(--ease-spring-firm), content-visibility var(--t-spring-fast) allow-discrete; }
  .nvk-disclosure[open]::details-content { height: auto; }
}
@supports not selector(::details-content) { .nvk-disclosure:not([open]) > .nvk-disclosure__body { display: none; } }
.nvk-disclosure--plain, .nvk-disclosure--plain > .nvk-disclosure__summary { all: revert-layer; }
}

/* DollCore */
@layer components{
/* DollCore (owner pick B 'Paper doll', Cockpit Character, 2026-10-21): the middle of a doll that is a number -- a dark island disc with the value
   and a word, the rank chip and a caption under it. */
.nvk-dcore { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); min-width: 0; margin: 0; text-align: center; }
.nvk-dcore__disc { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; box-sizing: border-box; width: 120px; height: 120px; margin: 0; padding: var(--space-2); border-radius: 50%; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-md), inset 0 0 0 2px var(--ui-island-gold); }
.nvk-dcore--lg .nvk-dcore__disc { width: 160px; height: 160px; }
.nvk-dcore__v { margin: 0; font: 700 28px/1 var(--disp); color: var(--ui-island-gold); font-variant-numeric: tabular-nums; }
.nvk-dcore--lg .nvk-dcore__v { font-size: 44px; }
.nvk-dcore__k { margin: 0; font: 600 13px/18px var(--body); color: var(--ui-island-fg-2); }
.nvk-dcore__disc img { display: block; max-width: 70%; max-height: 70%; width: auto; height: auto; margin: 0; border: 0; }
.nvk-dcore__cap { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
}

/* DollSlot */
@layer components{
/* DollSlot (owner pick B 'Paper doll', Cockpit Character, 2026-10-21): one slot around the class art. The icon square, a refine badge on its
   corner, the name and the slot under it; the right column mirrors. Muted text is --ui-fg-2, never opacity. */
.nvk-dslot { display: flex; align-items: center; gap: var(--space-3); min-width: 0; min-height: 64px; box-sizing: border-box; margin: 0; padding: var(--space-2) var(--space-3); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface-2); color: var(--ui-fg); text-align: left; }
.nvk-dslot--r { flex-direction: row-reverse; text-align: right; }
.nvk-dslot__ic { position: relative; display: grid; place-items: center; flex: none; width: 44px; height: 44px; margin: 0; border-radius: var(--radius-sm); background: var(--ui-sunken); color: var(--ui-fg-2); font: 700 12px/1 var(--disp); }
.nvk-dslot__ic img { display: block; max-width: 36px; max-height: 36px; width: auto; height: auto; margin: 0; border: 0; image-rendering: pixelated; }
.nvk-dslot__ini { margin: 0; font: 700 13px/1 var(--disp); color: var(--ui-fg-2); }
.nvk-dslot__badge { position: absolute; right: -6px; bottom: -6px; margin: 0; padding: 1px 5px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 11px/14px var(--disp); font-style: normal; font-variant-numeric: tabular-nums; }
.nvk-dslot--r .nvk-dslot__badge { right: auto; left: -6px; }
.nvk-dslot__t { display: flex; flex-direction: column; min-width: 0; margin: 0; }
.nvk-dslot__n { margin: 0; font: 700 14px/20px var(--body); color: var(--nvk-dslot-n, var(--ui-fg)); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nvk-dslot__l { margin: 0; font: 400 12px/16px var(--body); color: var(--nvk-dslot-l, var(--ui-fg-2)); }
.nvk-dslot--empty { border-style: dashed; background: transparent; }
.nvk-dslot--empty .nvk-dslot__n { color: var(--nvk-dslot-n, var(--ui-fg-2)); font-weight: 600; }
.nvk-dslot--sky { border-color: var(--ui-sky-2); background: var(--ui-cloud); color: var(--ui-sky-fg); }
.nvk-dslot--sky .nvk-dslot__n { color: var(--nvk-dslot-n, var(--ui-sky-fg)); }
.nvk-dslot--sky .nvk-dslot__l { color: var(--nvk-dslot-l, var(--ui-sky-fg-2)); }
.nvk-dslot--sky .nvk-dslot__ic { background: var(--ui-sky-2); color: var(--ui-sky-fg); }
.nvk-dslot--sky .nvk-dslot__ini { color: var(--ui-sky-fg); }
.nvk-dslot--locked { border-style: dashed; background: transparent; }
.nvk-dslot--locked .nvk-dslot__n { color: var(--nvk-dslot-n, var(--ui-fg-2)); }
.nvk-dslot--lit { border-color: var(--ui-brand); box-shadow: inset 0 0 0 1px var(--ui-brand); }
}

/* DutyDock */
@layer components{
/* DutyDock (owner-picked Option B 'Island mirror' of 'NirvanaRO Automation Circle', 2026-10-20): the three duty licences under an
   Automation station header. White capsules, a ring with the time left, a lapsed one red. Scrolls inside itself on a phone. */
.nvk-ddock { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: var(--space-3) 0 0; min-width: 0; }
.nvk-ddock__p { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 6px 18px 6px 6px; border: 0; border-radius: var(--radius-pill); background: var(--ui-surface); box-shadow: var(--shadow-sm), inset 0 0 0 1px var(--ui-line); color: var(--ui-fg); text-decoration: none; box-sizing: border-box;
  transition: transform var(--t-spring-fast) var(--ease-spring), box-shadow var(--t-fast); }
.nvk-ddock__p:hover { transform: translateY(-2px); box-shadow: var(--shadow-md), inset 0 0 0 1px var(--ui-line-strong); color: var(--ui-fg); }
.nvk-ddock__p:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-ddock__p.is-cur { box-shadow: var(--shadow-sm), inset 0 0 0 2px var(--ui-fg); }
.nvk-ddock__r { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 4px solid var(--ui-brand); border-radius: var(--radius-pill); box-sizing: border-box; font: 700 11px/1 var(--disp); color: var(--ui-link); }
.nvk-ddock__t { display: flex; flex-direction: column; min-width: 0; }
.nvk-ddock__n { margin: 0; font: 700 14px/18px var(--body); color: var(--ui-fg); white-space: nowrap; }
.nvk-ddock__l { margin: 0; font: 500 12px/16px var(--body); color: var(--ui-fg-2); white-space: nowrap; }
.nvk-ddock__p.is-off .nvk-ddock__r { border-color: color-mix(in srgb, var(--ui-danger) 45%, var(--ui-surface)); color: color-mix(in srgb, var(--ui-danger) 75%, var(--ui-fg)); }
.nvk-ddock__p.is-off .nvk-ddock__l { font-weight: 700; color: color-mix(in srgb, var(--ui-danger) 75%, var(--ui-fg)); }
.nvk-ddock__note { margin: 0; padding: 0 6px; font: 500 13px/18px var(--body); color: var(--ui-fg-2); }
@media (prefers-reduced-motion: reduce) { .nvk-ddock__p { transition: none; } .nvk-ddock__p:hover { transform: none; } }
@media (max-width: 760px) {
  .nvk-ddock { flex-wrap: nowrap; overflow-x: auto; padding: 2px 2px 6px; scrollbar-width: none; }
  .nvk-ddock::-webkit-scrollbar { display: none; }
  .nvk-ddock__p { flex: none; min-height: 48px; padding-right: 14px; }
  .nvk-ddock__r { width: 38px; height: 38px; }
  .nvk-ddock__note { flex: none; white-space: nowrap; }
}
}

/* Empty */
@layer components{
.nvk-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-6) var(--space-4); text-align: center; color: var(--ui-fg-2);
  border: 1px dashed var(--ui-line-strong); border-radius: var(--radius-lg); }
.nvk-empty > .nvk-icon { color: var(--ui-fg-3); }
.nvk-empty__title { margin: 0; font-family: var(--disp); font-size: 18px; font-weight: 600; color: var(--ui-fg); }
.nvk-empty__text { margin: 0; max-width: 40ch; font-size: 14px; line-height: 20px; }
.nvk-empty__action { margin-top: var(--space-2); }
}

/* FeatureCard */
@layer components{
.nvk-feature { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: var(--ui-surface); color: var(--ui-fg); border: 1px solid var(--ui-line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.nvk-feature__media { position: relative; aspect-ratio: 16 / 9; background: var(--ui-sunken); overflow: hidden; }
.nvk-feature__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nvk-feature__media > .nvk-chip { position: absolute; top: var(--space-3); left: var(--space-3); }
.nvk-feature__body { display: flex; flex-direction: column; gap: var(--space-3); padding: var(--space-4); }
.nvk-feature__date { margin: 0; display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ui-fg-3); }
.nvk-feature__who { display: flex; align-items: flex-start; gap: var(--space-2); }
.nvk-feature__who > .nvk-icon { color: var(--ui-ok); margin-top: 3px; }
.nvk-feature__author { margin: 0; font-size: 16px; font-weight: 700; line-height: 22px; color: var(--ui-link); }
.nvk-feature__title { margin: 0; font-size: 12px; line-height: 18px; color: var(--ui-fg-3); }
.nvk-feature__foot { display: flex; align-items: center; justify-content: space-between; gap: var(--space-2); }
.nvk-feature__meta { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ui-fg-2); }
}

/* Field */
@layer components{
.nvk-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; color: var(--ui-fg); }
.nvk-field__label { font-size: 13px; font-weight: 700; line-height: 18px; color: var(--ui-fg-2); }
.nvk-field__req { color: var(--ui-danger); }
.nvk-field__control { display: block; width: 100%; min-height: 44px; padding: 10px var(--space-3); margin: 0; font-family: var(--body); font-size: 16px; line-height: 22px;
  color: var(--ui-fg); background: var(--ui-surface); border: 1px solid var(--ui-line-strong); border-radius: var(--radius-sm); box-shadow: none; text-transform: none; letter-spacing: 0; }
textarea.nvk-field__control { min-height: 96px; resize: vertical; }
.nvk-field__control::placeholder { color: var(--ui-fg-3); opacity: 1; }
.nvk-field__control:focus { outline: 2px solid var(--ui-focus); outline-offset: 1px; border-color: var(--ui-focus); }
.nvk-field--error .nvk-field__control { border-color: var(--ui-danger); }
.nvk-field__note { margin: 0; font-size: 13px; line-height: 18px; color: var(--ui-fg-3); }
.nvk-field__note--error { color: var(--ui-danger); font-weight: 600; }
}

/* FloatingChat */
@layer components{
.nvk-chat { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: var(--space-3) var(--space-4); border: 3px solid #fff; border-radius: var(--radius-lg);
  background: var(--ui-brand); color: #fff; font-family: var(--disp); font-weight: 700; font-size: 16px; line-height: 20px; text-decoration: none; box-shadow: var(--shadow-lg); }
.nvk-chat:hover { filter: brightness(1.08); }
.nvk-chat__label { display: inline-block; }
.nvk-chat__count { font-family: var(--body); font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; opacity: .95; }
}

/* FollowBand */
@layer components{
.nvk-follow { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-6) var(--space-4); text-align: center; background: var(--ui-brand-deep); color: #fff; }
.nvk-follow__title { margin: 0; font-family: var(--disp); font-size: 36px; font-weight: 700; line-height: 44px; color: inherit; text-transform: uppercase; letter-spacing: .02em; }
.nvk-follow__text { margin: 0; font-size: 16px; line-height: 24px; text-transform: uppercase; opacity: .92; }
.nvk-follow__row { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-4); margin-top: var(--space-4); }
.nvk-follow__btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-width: 200px; min-height: 52px; padding: 0 var(--space-5); border: 3px solid #fff; border-radius: var(--radius-pill);
  background: var(--ui-brand); color: #fff; font-family: var(--disp); font-size: 18px; font-weight: 700; text-transform: uppercase; text-decoration: none; box-shadow: var(--shadow-md); }
.nvk-follow__btn:hover { filter: brightness(1.1); }
@media (max-width: 600px) { .nvk-follow__title { font-size: 28px; line-height: 36px; } .nvk-follow__btn { width: 100%; } }
}

/* FormSheet */
@layer components{
/* FormSheet (owner-picked Option B 'Island sheet' of 'NirvanaRO Sign-in and Forms', 2026-10-19): the Rune Island grown into a dark lid over one white sheet. */
.nvk-fsheet { --_w: 600px; --_lid: 520px; display: flex; justify-content: center; width: 100%; margin: 0 auto; box-sizing: border-box; min-width: 0; }
.nvk-fsheet--wide { --_w: 880px; --_lid: 640px; }
.nvk-fsheet--rail { display: grid; grid-template-columns: 272px minmax(0, 1fr); gap: 28px; align-items: start; max-width: calc(var(--_w) + 300px); }
.nvk-fsheet__rail { position: sticky; top: calc(var(--nvk-bar-stick, 0px) + 20px); min-width: 0; }
.nvk-fsheet__rail .nvk-contents { position: static; }
.nvk-fsheet__col { display: flex; flex-direction: column; align-items: center; width: 100%; max-width: var(--_w); min-width: 0; margin: 0 auto; }
.nvk-fsheet__lid { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 10px; width: min(100%, var(--_lid)); padding: 10px 22px 10px 10px; border-radius: 36px; background: var(--ui-island); color: var(--ui-island-fg); border: 1px solid var(--ui-island-line); box-shadow: var(--shadow-island); box-sizing: border-box; transform-origin: 50% 0; animation: nvk-fsheet-grow var(--t-slow) var(--ease-spring) both; }
.nvk-fsheet__top { display: flex; align-items: center; gap: 14px; min-width: 0; }
.nvk-fsheet__n { flex: none; display: inline-flex; align-items: center; justify-content: center; min-width: 48px; height: 48px; padding: 0 8px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 17px/1 var(--disp); box-sizing: border-box; }
.nvk-fsheet__t { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; padding: 4px 0; }
.nvk-fsheet__e { margin: 0; font: 700 11px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-island-gold); }
.nvk-fsheet .nvk-fsheet__h { margin: 0; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-island-fg); text-wrap: balance; overflow-wrap: anywhere; }
.nvk-fsheet__s { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-island-fg-2); overflow-wrap: anywhere; }
.nvk-fsheet__pill { flex: none; display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); font: 600 13px/1 var(--body); white-space: nowrap; }
.nvk-fsheet__pill i { width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--ui-island-fg-2); }
.nvk-fsheet__pill--ok i { background: var(--ui-island-live); }
.nvk-fsheet__pill--warn i { background: var(--ui-island-gold); }
.nvk-fsheet__dots { flex: none; display: inline-flex; gap: 6px; padding-right: 2px; }
.nvk-fsheet__dot { display: block; width: 10px; height: 10px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 24%, transparent); transition: width var(--t-spring) var(--ease-spring); }
.nvk-fsheet__dot.is-done { background: var(--ui-island-live); }
.nvk-fsheet__dot.is-on { width: 26px; background: var(--ui-island-gold); }
.nvk-fsheet__x { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.nvk-fsheet__body { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 20px; width: 100%; margin-top: -28px; padding: 52px 36px 32px; border-radius: 40px; background: var(--ui-surface); color: var(--ui-fg); box-shadow: var(--shadow-lg); box-sizing: border-box; min-width: 0; animation: nvk-fsheet-drop var(--t-slow) var(--ease-spring) both; animation-delay: 90ms; }
.nvk-fsheet__foot { width: 100%; margin-top: 28px; min-width: 0; }
@keyframes nvk-fsheet-grow { from { transform: scale(.6, .7); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes nvk-fsheet-drop { from { transform: translateY(-20px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .nvk-fsheet__lid, .nvk-fsheet__body { animation: none; } .nvk-fsheet__dot { transition: none; } }
@media (max-width: 900px) {
  .nvk-fsheet--rail { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .nvk-fsheet__rail { position: static; }
}
@media (max-width: 560px) {
  .nvk-fsheet__lid { width: 100%; border-radius: 28px; padding: 10px 14px 10px 10px; }
  .nvk-fsheet__top { flex-wrap: wrap; }
  .nvk-fsheet__pill { order: 3; }
  .nvk-fsheet__body { padding: 44px 18px 24px; border-radius: 30px; }
}
.nvk-fsheet__t:first-child { padding-left: 14px; }
}

/* FruitIsle */
@layer components{
/* FruitIsle (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): a fruit floating on its own cloud island. */
.nvk-isle { --nvk-isle-body: var(--ui-df-paramecia); --nvk-isle-hi: var(--ui-df-paramecia-hi); display: flex; flex-direction: column; align-items: center; gap: 6px; min-width: 0; margin: 0; padding: var(--space-4) var(--space-3); border-radius: var(--radius-lg); background: linear-gradient(180deg, var(--ui-sky-3), var(--sk-onsky-end, var(--ui-surface)) var(--sk-onsky-stop, 62%)); border: 1px solid var(--ui-line); box-shadow: var(--shadow-sm); color: var(--sk-onsky-fg, var(--ui-fg)); text-align: center; text-decoration: none; transition: transform var(--t-spring-fast) var(--ease-spring-fallback), box-shadow var(--t-fast) var(--ease-rune); }
a.nvk-isle:hover { transform: translateY(-6px); box-shadow: var(--shadow-md); color: var(--sk-onsky-fg, var(--ui-fg)); }
a.nvk-isle:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-isle[aria-current="page"] { box-shadow: 0 0 0 2px var(--ui-brand), var(--shadow-sm); }
.nvk-isle--logia { --nvk-isle-body: var(--ui-df-logia); --nvk-isle-hi: var(--ui-df-logia-hi); }
.nvk-isle--zoan { --nvk-isle-body: var(--ui-df-zoan); --nvk-isle-hi: var(--ui-df-zoan-hi); }
.nvk-isle__sky { position: relative; display: grid; place-items: center; width: 100%; height: 104px; }
.nvk-isle__cloud { position: absolute; left: 50%; bottom: 4px; width: 116px; height: 28px; border-radius: 999px; background: var(--ui-cloud); transform: translateX(-50%); box-shadow: 0 6px 14px color-mix(in srgb, var(--ui-brand) 14%, transparent), -26px -8px 0 -4px var(--ui-cloud), 26px -6px 0 -6px var(--ui-cloud); }
.nvk-isle__rock { position: absolute; left: 50%; bottom: -8px; width: 66px; height: 20px; border-radius: 4px; background: linear-gradient(180deg, var(--ui-line-strong), var(--ui-fg-3)); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); transform: translateX(-50%); opacity: .7; }
.nvk-isle__fruit { position: relative; z-index: 1; width: 64px; height: 70px; margin-bottom: 18px; animation: nvk-isle-bob 4.6s ease-in-out infinite; }
li:nth-child(4n+2) > .nvk-isle .nvk-isle__fruit { animation-delay: -1.4s; }
li:nth-child(4n+3) > .nvk-isle .nvk-isle__fruit { animation-delay: -2.6s; }
li:nth-child(4n+4) > .nvk-isle .nvk-isle__fruit { animation-delay: -3.3s; }
.nvk-isle__shade { fill: color-mix(in srgb, var(--ui-fg) 12%, transparent); }
.nvk-isle__body { fill: var(--nvk-isle-body); }
.nvk-isle__swirl { fill: none; stroke: var(--ui-df-swirl); stroke-width: 2.6; stroke-linecap: round; }
.nvk-isle__stem { fill: none; stroke: var(--ui-fg-2); stroke-width: 4; stroke-linecap: round; }
.nvk-isle__leaf { fill: var(--ui-df-leaf); }
.nvk-isle__shine { fill: var(--nvk-isle-hi); opacity: .8; }
.nvk-isle__mark { position: absolute; top: 0; right: 0; z-index: 2; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--ui-capsule); color: var(--ui-capsule-fg); font: 700 11px/16px var(--body); white-space: nowrap; }
.nvk-isle__txt { display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.nvk-isle__name { margin: 0; font: 700 16px/22px var(--disp); color: var(--sk-onsky-fg, var(--ui-fg)); overflow-wrap: anywhere; }
.nvk-isle__type { font: 600 12px/16px var(--body); letter-spacing: .06em; text-transform: uppercase; color: var(--sk-onsky-fg-2, var(--ui-fg-2)); }
.nvk-isle__line { font: 400 13px/18px var(--body); color: var(--sk-onsky-fg-2, var(--ui-fg-2)); overflow-wrap: anywhere; }
.nvk-isle--lg { padding: 0; border: 0; background: none; box-shadow: none; }
.nvk-isle--lg .nvk-isle__sky { width: 240px; max-width: 70vw; height: 230px; }
.nvk-isle--lg .nvk-isle__fruit { width: 160px; height: 174px; margin-bottom: 30px; }
.nvk-isle--lg .nvk-isle__cloud { width: 210px; height: 44px; bottom: 8px; box-shadow: 0 10px 22px color-mix(in srgb, var(--ui-brand) 16%, transparent), -46px -14px 0 -6px var(--ui-cloud), 46px -10px 0 -8px var(--ui-cloud); }
.nvk-isle--lg .nvk-isle__rock { width: 110px; height: 34px; bottom: -10px; }
@keyframes nvk-isle-bob { 50% { transform: translateY(-8px); } }
@media (prefers-reduced-motion: reduce) { .nvk-isle, a.nvk-isle:hover { transition: none; transform: none; } .nvk-isle__fruit { animation: none; } }
}

/* HandleCard */
@layer components{
.nvk-handlecard { display: flex; flex-direction: column; gap: var(--space-1); padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
.nvk-handlecard__label { font-size: 12px; line-height: 1.4; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-handlecard__full { margin: 0; font-size: 24px; line-height: 1.2; font-weight: 700; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-handlecard.is-empty .nvk-handlecard__full { font-size: 16px; font-weight: 500; color: var(--ui-fg-2); }
.nvk-handlecard__note { margin: 0; font-size: 13px; line-height: 1.5; color: var(--ui-fg-2); }
.nvk-handlecard__actions:empty { display: none; }
}

/* HcBadge */
@layer components{
/* HcBadge (owner pick 'Iron Warden', 2026-10-20): the glyph and the word on a Frost Oath night pill, the same in every look. */
.nvk-hcb { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; margin: 0; padding: 2px 10px 2px 3px; border-radius: var(--radius-pill); background: var(--ui-hc-living-2); box-shadow: inset 0 0 0 1px var(--ui-hc-line-ice); color: var(--ui-hc-ice); font: 700 12px/16px var(--body); white-space: nowrap; vertical-align: middle; }
.nvk-hcb__g { display: block; width: 20px; height: 20px; margin: 0; border: 0; }
.nvk-hcb__t { margin: 0; }
.nvk-hcb__s { margin: 0; padding-left: 6px; border-left: 1px solid var(--ui-hc-line); color: var(--ui-hc-fg-2); font-weight: 600; }
.nvk-hcb .nvk-icon { color: var(--ui-hc-bronze); }
.nvk-hcb--ash { background: var(--ui-hc-fallen-2); box-shadow: inset 0 0 0 1px var(--ui-hc-line-ash); color: var(--ui-hc-bronze); }
}

/* HealthBoard */
@layer components{
/* HealthBoard (owner-picked direction C 'Storyboard' of 'NirvanaRO Atelier v4', 2026-10-31): Review & start as a scoreboard. */
.nvk-health { display: flex; flex-direction: column; gap: 12px; padding: 20px; border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); box-sizing: border-box; min-width: 0; }
.nvk-health__top { display: flex; align-items: center; gap: 16px; }
.nvk-health__score { display: flex; align-items: baseline; gap: 2px; flex: 0 0 auto; padding: 8px 16px; border-radius: var(--radius-pill); background: var(--ui-ok); color: var(--ui-brand-fg); }
.nvk-health--close .nvk-health__score { background: var(--ui-brand); }
.nvk-health--work .nvk-health__score { background: var(--ui-warn); color: var(--ui-fg); }
.nvk-health__num { font: 700 32px/36px var(--disp); font-variant-numeric: tabular-nums; }
.nvk-health__of { font: 600 14px/18px var(--body); }
.nvk-health__titles { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-health__h { margin: 0; font: 700 20px/26px var(--disp); color: var(--ui-fg); }
.nvk-health__grade { font: 500 14px/18px var(--body); color: var(--ui-fg-2); }
.nvk-health__bar { width: 100%; }
.nvk-health__rows { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.nvk-health__row { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 6px 0; border-top: 1px solid var(--ui-line); }
.nvk-health__row:first-child { border-top: 0; }
.nvk-health__label { font: 400 14px/20px var(--body); color: var(--ui-fg); overflow-wrap: anywhere; }
a.nvk-health__label { color: var(--ui-link); text-decoration: none; }
a.nvk-health__label:hover { text-decoration: underline; }
a.nvk-health__label:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; border-radius: 4px; }
.nvk-health__pts { flex: 0 0 auto; font: 700 13px/18px var(--body); font-variant-numeric: tabular-nums; color: var(--ui-ok); }
.nvk-health__row--warn .nvk-health__pts { color: var(--ui-fg-2); }
.nvk-health__row--danger .nvk-health__pts { color: var(--ui-danger); }
.nvk-health__actions { display: flex; flex-wrap: wrap; gap: 8px; }
}

/* Hero */
@layer components{
.nvk-hero { --_bg: var(--ui-brand); --_fg: var(--ui-brand-fg); display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); padding: var(--space-6) var(--space-5);
  border-radius: var(--radius-lg); background: var(--_bg); color: var(--_fg); box-shadow: var(--shadow-md); }
.nvk-hero--night { --_bg: var(--ui-brand-deep); }
.nvk-hero--soft { --_bg: var(--ui-surface-2); --_fg: var(--ui-fg); box-shadow: none; border: 1px solid var(--ui-line); }
.nvk-hero__eyebrow { margin: 0; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.nvk-hero__title { margin: 0; font-family: var(--disp); font-size: 36px; font-weight: 700; line-height: 44px; color: inherit; text-transform: none; letter-spacing: 0; }
.nvk-hero__text { margin: 0; max-width: 62ch; font-size: 16px; line-height: 26px; }
.nvk-hero__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-2); }
@media (max-width: 600px) { .nvk-hero { padding: var(--space-5) var(--space-4); } .nvk-hero__title { font-size: 28px; line-height: 36px; } }
}

/* HomeSeason */
@layer components{
/* HomeSeason (owner-picked Option 2, 2026-10-18): the season island on Home. Only transform and opacity animate. */
.nvk-homeseason { position: relative; overflow: hidden; display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: var(--space-6); align-items: center; padding: var(--space-6); border-radius: 40px; color: var(--ui-island-fg); background: radial-gradient(120% 120% at 15% 0, color-mix(in srgb, var(--ui-brand) 38%, var(--ui-island)) 0, var(--ui-island) 62%); box-shadow: var(--shadow-island); box-sizing: border-box; }
.nvk-homeseason__stars { position: absolute; inset: 0; pointer-events: none; opacity: .7; background: radial-gradient(2px 2px at 12% 20%, var(--ui-island-fg), transparent), radial-gradient(2px 2px at 70% 12%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 88% 60%, var(--ui-island-fg), transparent), radial-gradient(1.5px 1.5px at 40% 85%, var(--ui-island-fg), transparent); }
.nvk-homeseason__dial { position: relative; width: 220px; height: 220px; justify-self: center; }
.nvk-homeseason__ring { position: absolute; inset: 0; width: 100%; height: 100%; animation: nvk-homeseason-in 900ms var(--ease-spring-firm) both; }
.nvk-homeseason__g1 { stop-color: var(--ui-brand); }
.nvk-homeseason__g2 { stop-color: var(--ui-island-gold); }
.nvk-homeseason__track, .nvk-homeseason__arc { fill: none; stroke-width: 12; stroke-linecap: round; }
.nvk-homeseason__track { stroke: var(--ui-island-line); }
.nvk-homeseason__arc { stroke: url(#nvk-hs-grad); }
.nvk-homeseason__dialtxt { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; text-align: center; }
.nvk-homeseason__dk { font: 700 11px/16px var(--body); letter-spacing: .2em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-homeseason__dn { font: 700 46px/50px var(--disp); }
.nvk-homeseason__dt { font: 600 16px/22px var(--disp); }
.nvk-homeseason__dc { font: 700 10px/14px var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-homeseason__main { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-2); min-width: 0; }
.nvk-homeseason__logo { display: block; min-height: 0; margin: 0 0 var(--space-2); }
.nvk-homeseason__eyebrow { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-homeseason__name { margin: 0; padding: 0; border: 0; font: 700 44px/48px var(--disp); color: var(--ui-island-fg); }
.nvk-homeseason__lede { margin: 0; max-width: 56ch; font: 400 15px/24px var(--body); color: var(--ui-island-fg-2); }
.nvk-homeseason__chips { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-2); }
.nvk-homeseason__chip { height: 32px; padding: 0 14px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); font: 600 13px/32px var(--body); }
.nvk-homeseason__pass { width: 100%; max-width: 420px; margin-top: var(--space-3); display: flex; flex-direction: column; gap: var(--space-1); color: var(--ui-island-fg); }
.nvk-homeseason__pass .nvk-meter-row__text { color: var(--ui-island-fg); }
.nvk-homeseason__pass .nvk-meter-row__num { color: var(--ui-island-fg-2); }
.nvk-homeseason__pass .nvk-meter { background: var(--ui-island-2); }
.nvk-homeseason__pass .nvk-meter::-webkit-progress-bar { background: var(--ui-island-2); border-radius: var(--radius-pill); }
.nvk-homeseason__pass .nvk-meter::-webkit-progress-value { background: var(--ui-island-gold); border-radius: var(--radius-pill); }
.nvk-homeseason__pass .nvk-meter::-moz-progress-bar { background: var(--ui-island-gold); border-radius: var(--radius-pill); }
.nvk-homeseason__plink { display: inline-flex; align-items: center; min-height: 44px; font: 600 14px/20px var(--body); color: var(--ui-island-gold); text-decoration: none; }
.nvk-homeseason__plink:hover { text-decoration: underline; }
.nvk-homeseason__plink:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; border-radius: var(--radius-sm); }
@keyframes nvk-homeseason-in { from { opacity: 0; transform: rotate(-50deg) scale(.86); } to { opacity: 1; transform: none; } }
@media (max-width: 980px) {
  .nvk-homeseason { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; padding: var(--space-6) var(--space-5); }
  .nvk-homeseason__main { align-items: center; }
  .nvk-homeseason__chips { justify-content: center; }
  .nvk-homeseason__name { font-size: 36px; line-height: 40px; }
}
}

/* Icon */
@layer components{
.nvk-icon { display: inline-block; flex: none; width: 20px; height: 20px; vertical-align: middle; background-color: currentColor;
  -webkit-mask: var(--nvk-icon) center / contain no-repeat; mask: var(--nvk-icon) center / contain no-repeat; }
.nvk-icon--sm { width: 16px; height: 16px; }
.nvk-icon--lg { width: 28px; height: 28px; }

.nvk-icon--check { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012.5l4.5%204.5L19%207.5%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--check-circle { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%279%27%2F%3E%3Cpath%20d%3D%27M8%2012.5l3%203%205-6%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--arrow-right { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2012h14M13%206l6%206-6%206%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--arrow-up { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2019V5M6%2011l6-6%206%206%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--chevron-right { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%205l7%207-7%207%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--chevron-down { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%209l7%207%207-7%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--close { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%206l12%2012M18%206L6%2018%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--plus { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%205v14M5%2012h14%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--search { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2711%27%20cy%3D%2711%27%20r%3D%276%27%2F%3E%3Cpath%20d%3D%27M20%2020l-4.2-4.2%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--gem { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%203h12l4%206-10%2012L2%209z%27%2F%3E%3Cpath%20d%3D%27M2%209h20M9%203l-2%206%205%2012%205-12-2-6%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--star { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l2.7%205.6%206.1.9-4.4%204.3%201%206.1L12%2017l-5.4%202.9%201-6.1L3.2%209.5l6.1-.9z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--trophy { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M8%204h8v5a4%204%200%200%201-8%200zM8%206H5v2a3%203%200%200%200%203%203M16%206h3v2a3%203%200%200%201-3%203M12%2013v4M8%2020h8M10%2017h4%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--download { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%204v11M7%2010l5%205%205-5M5%2020h14%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--thumbs-up { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%2011v9H4v-9zM7%2011l4-7c1.5%200%202.5%201%202.2%202.6L12.7%209H19a2%202%200%200%201%202%202.3l-1.2%207A2%202%200%200%201%2017.8%2020H7%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--cog { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%273%27%2F%3E%3Cpath%20d%3D%27M12%203v2M12%2019v2M3%2012h2M19%2012h2M5.6%205.6L7%207M17%2017l1.4%201.4M5.6%2018.4L7%2017M17%207l1.4-1.4%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--wallet { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%207h14a2%202%200%200%201%202%202v9a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h11M16%2014h2%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--basket { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%209h16l-1.5%209a2%202%200%200%201-2%201.7H7.5a2%202%200%200%201-2-1.7zM9%209l3-5%203%205%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--clock { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%279%27%2F%3E%3Cpath%20d%3D%27M12%207v5l3%202%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--bell { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M6%2016v-5a6%206%200%200%201%2012%200v5l1.5%202h-15zM10%2020a2%202%200%200%200%204%200%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--calendar { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%205h14a1%201%200%200%201%201%201v13a1%201%200%200%201-1%201H5a1%201%200%200%201-1-1V6a1%201%200%200%201%201-1zM4%2010h16M8%203v4M16%203v4%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--user { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%278%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27M4%2021a8%208%200%200%201%2016%200%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--users { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%279%27%20cy%3D%278%27%20r%3D%273.5%27%2F%3E%3Cpath%20d%3D%27M2.5%2020a6.5%206.5%200%200%201%2013%200M16%204.6a3.5%203.5%200%200%201%200%206.8M18%2014a6%206%200%200%201%203.5%206%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--shield { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l8%203v6c0%205-3.5%208-8%209-4.5-1-8-4-8-9V6z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--play { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%204.5v15l12-7.5z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--external { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%204h6v6M20%204l-9%209M18%2014v5a1%201%200%200%201-1%201H5a1%201%200%200%201-1-1V7a1%201%200%200%201%201-1h5%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--info { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%279%27%2F%3E%3Cpath%20d%3D%27M12%2011v6M12%207.5v.01%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--warn { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%204l9.5%2016h-19zM12%2010v5M12%2017.5v.01%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--menu { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%206h16M4%2012h16M4%2018h16%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--moon { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M20%2014.5A8%208%200%201%201%209.5%204%206.5%206.5%200%200%200%2020%2014.5z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--sun { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%274%27%2F%3E%3Cpath%20d%3D%27M12%202v2M12%2020v2M2%2012h2M20%2012h2M4.9%204.9l1.4%201.4M17.7%2017.7l1.4%201.4M4.9%2019.1l1.4-1.4M17.7%206.3l1.4-1.4%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--home { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%2011l8-7%208%207v8a1%201%200%200%201-1%201h-4v-6h-6v6H5a1%201%200%200%201-1-1z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--video { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M4%206h11a1%201%200%200%201%201%201v10a1%201%200%200%201-1%201H4a1%201%200%200%201-1-1V7a1%201%200%200%201%201-1zM16%2010l5-3v10l-5-3%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--book { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%204h10a3%203%200%200%201%203%203v13H8a3%203%200%200%201-3-3zM5%2017a3%203%200%200%201%203-3h10%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--activity { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%2012h4l3-8%204%2016%203-8h4%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--logout { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M10%204H6a1%201%200%200%200-1%201v14a1%201%200%200%200%201%201h4M15%208l4%204-4%204M19%2012H9%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--layers { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l9%204.5-9%204.5-9-4.5zM3%2012l9%204.5%209-4.5M3%2016.5l9%204.5%209-4.5%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--swords { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%204h6v6L9%2021l-3-3zM10%204H4v6l4%204M3%2021l3-3M21%2021l-3-3%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--crown { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%208l4%204%205-7%205%207%204-4-2%2011H5z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--flame { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203c1%204%206%206%206%2011a6%206%200%200%201-12%200c0-3%202-5%203-6%200%202%201%203%202%203%200-3%200-5%201-8z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--mask { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M3%206c3%201%206%201%209%200%203%201%206%201%209%200v5c0%205-4%209-9%209s-9-4-9-9zM7%2011h3M14%2011h3%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--infinity { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%209a3%203%200%201%200%200%206c3%200%207-6%2010-6a3%203%200%201%201%200%206c-3%200-7-6-10-6z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--spark { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%203l2%206%206%202-6%202-2%206-2-6-6-2%206-2z%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--target { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%279%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%275%27%2F%3E%3Ccircle%20cx%3D%2712%27%20cy%3D%2712%27%20r%3D%271%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--flag { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M5%2021V4M5%204h11l-2%204%202%204H5%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--hammer { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M14%204l6%206-3%203-6-6zM11%2010l-7%207%203%203%207-7%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--cap { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M2%209l10-5%2010%205-10%205zM6%2011v5c3%202%209%202%2012%200v-5%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--map { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M9%204L3%206v14l6-2%206%202%206-2V4l-6%202zM9%204v14M15%206v14%27%2F%3E%3C%2Fsvg%3E"); }
.nvk-icon--scroll { --nvk-icon: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%23000%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M7%204h11a2%202%200%200%201%202%202v1h-4M7%204a2%202%200%200%200-2%202v12a2%202%200%200%200%202%202h9a2%202%200%200%200%202-2V7M9%209h6M9%2013h6%27%2F%3E%3C%2Fsvg%3E"); }
}

/* Island */
@layer components{
/* Rune Island (Claude Design canvas "NirvanaRO Floating Nav", boards "Rune Island: every state", "in the bar" and "phone", 2026-10-17): the black
   pill in the middle of the top bar. 40px of black inside a 44px target (a transparent 2px border), the card drops 12px under the pill (400px,
   radius 28px), full bar width on a phone. Near-black in every look (--ui-island*).
   Motion (owner 2026-10-17 "move like the Dynamic Island"; nv-ui.js drives it with the Web Animations API, these rules are its parts): the pill
   springs to each item's size (t-spring, ease-spring) while the old content blurs up and out (__was) and the new blurs in from below, staggered;
   opening grows one black surface (__shape) out of the pill into the card, closing shrinks it back (t-spring-fast, ease-spring-firm); an alert
   grows the same way into the alert box; the bubble buds off the pill through a goo filter; countdown digits roll (__roll). Reduced motion:
   none of it, a 120 ms fade at most. */
.nvk-island { --_tone: var(--ui-island-fg-2); --_detail: var(--ui-island-fg-2); position: relative; display: flex; justify-content: center; min-width: 0; max-width: 100%; font-family: var(--body); color: var(--ui-island-fg); }
.nvk-island__row { position: relative; z-index: 2; display: flex; align-items: center; gap: 4px; min-width: 0; max-width: 100%; }
.nvk-island__row.is-goo { filter: url(#nvk-island-goo); }

/* tones: one custom property per element (pill, bubble, card, row) */
.nvk-island--live { --_tone: var(--ui-island-live); --_detail: var(--ui-island-fg-2); }
.nvk-island--boss, .nvk-island--urgent { --_tone: var(--ui-island-boss); --_detail: var(--ui-island-boss); }
.nvk-island--gold { --_tone: var(--ui-island-gold); --_detail: var(--ui-island-gold); }
.nvk-island--blue { --_tone: var(--ui-island-blue); --_detail: var(--ui-island-fg-2); }
.nvk-island--info { --_tone: var(--ui-island-fg-2); --_detail: var(--ui-island-fg-2); }

.nvk-island__pill, .nvk-island__bubble { display: inline-flex; align-items: center; flex-shrink: 1; min-width: 0; height: 44px; margin: 0; box-sizing: border-box;
  border: 2px solid transparent; border-radius: var(--radius-pill); background: var(--ui-island); background-clip: padding-box; color: var(--ui-island-fg);
  box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island); font-family: var(--body); font-size: 14px; line-height: 1; font-weight: 600; letter-spacing: 0; text-transform: none;
  white-space: nowrap; cursor: pointer; transition: transform var(--t-spring) var(--ease-spring-fallback), border-color var(--t-fast) var(--ease-rune); }
@supports (transition-timing-function: linear(0, 1)) { .nvk-island__pill, .nvk-island__bubble { transition: transform var(--t-spring) var(--ease-spring), border-color var(--t-fast) var(--ease-rune); } }
.nvk-island__pill { position: relative; z-index: 1; gap: 10px; max-width: 100%; padding: 0 14px 0 10px; overflow: hidden; }
/* press: a quick squeeze that springs back; on a mouse a 1px lift */
.nvk-island__pill:active, .nvk-island__bubble:active { transform: scale(.96); transition-duration: var(--t-fast); }
@media (hover: hover) and (pointer: fine) { .nvk-island__pill:hover:not(:active), .nvk-island__bubble:hover:not(:active) { transform: translateY(-1px); } }
/* the item that is leaving: laid over the new one at the pill's left edge, in its own tone, blurred up and away by the script */
.nvk-island__was { position: absolute; top: 0; bottom: 0; left: 0; display: inline-flex; align-items: center; gap: inherit; padding: inherit; box-sizing: border-box; pointer-events: none; }
.nvk-island__was > .nvk-icon { width: 18px; height: 18px; color: var(--_tone); }
.nvk-island__pill.is-sizing > * { flex-shrink: 0; }
.nvk-island__pill.is-sizing > .nvk-island__title, .nvk-island__pill.is-sizing > .nvk-island__short { text-overflow: clip; }
.nvk-island__pill:hover, .nvk-island__bubble:hover { background: var(--ui-island); color: var(--ui-island-fg); }
.nvk-island__pill > .nvk-icon, .nvk-island__bubble > .nvk-icon { width: 18px; height: 18px; color: var(--_tone); }
.nvk-island__bubble { position: relative; z-index: 0; justify-content: center; flex-shrink: 0; width: 44px; padding: 0; color: var(--_tone); }
.nvk-island__pill:focus-visible, .nvk-island__bubble:focus-visible, .nvk-island__cta:focus-visible, .nvk-island__item:focus-visible, .nvk-island__ghost:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
/* the urgent notice: a red ring hugging the black, stays while the notice is live */
.nvk-island__pill.nvk-island--urgent { border-color: var(--ui-island-boss); animation: nvk-island-breathe var(--t-breathe) ease-in-out infinite; }
@keyframes nvk-island-breathe {
  0%, 100% { box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island), 0 0 0 0 color-mix(in srgb, var(--ui-island-boss) 0%, transparent); }
  50% { box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island), 0 0 0 4px color-mix(in srgb, var(--ui-island-boss) 34%, transparent); } }
/* one ring of the item's colour when an alert settles back into the pill (and on the alert box while it shows) */
.nvk-island__pill.is-ping { animation: nvk-island-ping 1100ms var(--ease-rune) 1; }
@keyframes nvk-island-ping {
  from { box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island), 0 0 0 0 color-mix(in srgb, var(--_tone) 60%, transparent); }
  to { box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island), 0 0 0 10px color-mix(in srgb, var(--_tone) 0%, transparent); } }
/* live items: the dot breathes a soft ring, an icon breathes its light */
.nvk-island__pill.is-live > .nvk-island__dot { position: relative; }
.nvk-island__pill.is-live > .nvk-island__dot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; background: var(--_tone); animation: nvk-island-live var(--t-breathe) var(--ease-rune) infinite; }
.nvk-island__pill.is-live > .nvk-icon { animation: nvk-island-glow var(--t-breathe) ease-in-out infinite; }
@keyframes nvk-island-live { 0% { opacity: .55; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(2.6); } }
@keyframes nvk-island-glow { 0%, 100% { opacity: 1; } 50% { opacity: .62; } }

.nvk-island__dot { flex-shrink: 0; width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--_tone); }
.nvk-island__title { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.nvk-island__short { display: none; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.nvk-island__detail { flex-shrink: 0; font-weight: 500; font-variant-numeric: tabular-nums; color: var(--_detail, var(--ui-island-fg-2)); }
/* a countdown digit that changed: clipped to its own cell, the old digit (data-was, above) rolls up and out as the new one rolls in */
.nvk-island__ch { display: inline-block; clip-path: inset(-1px -2px); }
.nvk-island__roll { display: inline-block; position: relative; }
.nvk-island__roll::before { content: attr(data-was); position: absolute; left: 0; bottom: 100%; }
.nvk-island__bar { display: inline-block; flex-shrink: 0; width: 56px; height: 6px; border-radius: var(--radius-pill); background: var(--ui-island-2); overflow: hidden; }
.nvk-island__bar--lg { display: block; width: auto; height: 8px; }
.nvk-island__fill { display: block; width: 0; height: 100%; border-radius: var(--radius-pill); background: var(--_tone); }

/* alert: grows out of the pill for about four seconds (nv-ui.js adds is-alert), then settles back */
.nvk-island__alert { position: absolute; top: -10px; left: 50%; z-index: 4; display: none; align-items: center; gap: 14px; width: 340px; max-width: calc(100vw - 2 * var(--space-4)); box-sizing: border-box; padding: 16px 18px;
  border-radius: 28px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island); transform: translateX(-50%); transform-origin: 50% 0; pointer-events: none; }
.nvk-island.is-alert .nvk-island__alert, .nvk-island__alert.is-leaving { display: flex; }
.nvk-island.is-alert .nvk-island__alert.is-rung::after { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; animation: nvk-island-ring 1200ms var(--ease-rune) 2; }
@keyframes nvk-island-ring { from { box-shadow: 0 0 0 0 color-mix(in srgb, var(--_tone) 55%, transparent); } to { box-shadow: 0 0 0 14px color-mix(in srgb, var(--_tone) 0%, transparent); } }
.nvk-island__badge { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--_tone); }
.nvk-island__badge > .nvk-icon { width: 22px; height: 22px; }
.nvk-island__badge--lg { width: 48px; height: 48px; border-radius: 16px; }
.nvk-island__badge--lg > .nvk-icon { width: 24px; height: 24px; }
.nvk-island__alert-text, .nvk-island__htext { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.nvk-island__alert-t { font-family: var(--disp); font-size: 16px; line-height: 22px; font-weight: 600; }
.nvk-island__alert-l { font-size: 13px; line-height: 18px; font-weight: 400; color: var(--ui-island-fg-2); }

/* the one black surface that grows out of the pill into the card or the alert and back (nv-ui.js sizes and moves it; it is only there
   while it moves). Under the bar's row, so it comes out from under the pill; over it for the alert, which covers the pill. While it moves,
   the card or alert box it stands for is see-through (is-morph) and only its contents show, fading in once the shape is most of the way. */
.nvk-island__shape { position: absolute; top: 0; left: 0; z-index: 1; display: none; width: 0; height: 0; border-radius: var(--radius-pill); background: var(--ui-island);
  box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island); pointer-events: none; transform-origin: 0 0; will-change: transform, width, height; }
.nvk-island__shape.is-on { display: block; }
.nvk-island__shape.is-over { z-index: 3; }
.nvk-island__card.is-morph, .nvk-island__alert.is-morph { background: transparent; box-shadow: none; }
/* the closing card: a copy left behind (inert) while the real one is already hidden, so the page and screen readers are closed at once */
.nvk-island__card.is-ghost { pointer-events: none; overflow: hidden; }
.nvk-island__goo { position: absolute; width: 0; height: 0; overflow: hidden; }

/* the card */
.nvk-island__card { position: absolute; top: calc(100% + 12px); left: 50%; z-index: 4; display: flex; flex-direction: column; gap: 12px; width: 400px; max-width: calc(100vw - 2 * var(--space-4)); box-sizing: border-box; padding: 18px;
  border-radius: 28px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: inset 0 0 0 1px var(--ui-island-line), var(--shadow-island); max-height: calc(100vh - 120px); max-height: calc(100dvh - 120px); overflow-y: auto; overscroll-behavior: contain;
  transform: translateX(-50%); text-align: left; }
.nvk-island__card[hidden] { display: none; }
/* without script the card opens while the island has the focus (nv-ui.js adds is-js and drives it with the hidden attribute) */
.nvk-island:not(.is-js):focus-within .nvk-island__card { display: flex; }
.nvk-island__head { display: flex; align-items: flex-start; gap: 14px; }
.nvk-island__ctitle { font-family: var(--disp); font-size: 18px; line-height: 24px; font-weight: 700; }
.nvk-island__line { font-size: 14px; line-height: 20px; font-weight: 400; color: var(--ui-island-fg-2); }
.nvk-island__cdetail { padding-top: 4px; font-size: 13px; line-height: 16px; }
.nvk-island__cta { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 var(--space-4); border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg);
  font-size: 15px; line-height: 1; font-weight: 700; text-decoration: none; }
.nvk-island__cta:hover { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); text-decoration: underline; }
.nvk-island__ghost { display: flex; align-items: center; justify-content: center; width: 100%; min-height: 44px; margin: 0; padding: 0 var(--space-4); box-sizing: border-box; border: 1px solid var(--ui-island-2); border-radius: var(--radius-pill);
  background: transparent; color: var(--ui-island-fg); font-family: var(--body); font-size: 14px; line-height: 1; font-weight: 600; letter-spacing: 0; text-transform: none; cursor: pointer; box-shadow: none; }
.nvk-island__ghost:hover { background: var(--ui-island-2); color: var(--ui-island-fg); }
.nvk-island__ghost[hidden] { display: none; }
.nvk-island__more { display: flex; flex-direction: column; gap: 8px; padding-top: 12px; border-top: 1px solid var(--ui-island-2); }
.nvk-island__also { margin: 0; font-size: 11px; line-height: 16px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-island__item { display: flex; align-items: center; gap: 10px; width: 100%; min-height: 44px; margin: 0; padding: 0 12px; box-sizing: border-box; border: 0; border-radius: 12px; background: var(--ui-island-2); color: var(--ui-island-fg);
  font-family: var(--body); font-size: 14px; line-height: 1.2; font-weight: 600; letter-spacing: 0; text-transform: none; text-align: left; text-decoration: none; cursor: pointer; box-shadow: none; }
.nvk-island__item:hover { background: var(--ui-island-2); color: var(--ui-island-fg); text-decoration: underline; }
.nvk-island__item-t { flex: 1 1 auto; min-width: 0; }
.nvk-island__item .nvk-island__detail { font-size: 13px; }

/* phone: the island takes the wordmark's place, shows the short label, and the card spans the bar */
@media (max-width: 760px) {
  .nvk-island { position: static; }
  .nvk-island__pill { gap: 8px; padding: 0 12px 0 10px; }
  .nvk-island__pill.has-short > .nvk-island__title, .nvk-island__was.has-short > .nvk-island__title { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .nvk-island__pill.has-short > .nvk-island__short, .nvk-island__was.has-short > .nvk-island__short { display: inline; }
  .nvk-island__pill .nvk-island__bar { display: none; }
  .nvk-island__card { left: 0; right: 0; width: auto; max-width: none; transform: none; }
  .nvk-island__alert { top: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .nvk-island__pill, .nvk-island__bubble { transition: none; }
  .nvk-island__pill:active, .nvk-island__bubble:active, .nvk-island__pill:hover, .nvk-island__bubble:hover { transform: none; }
  .nvk-island__pill.nvk-island--urgent, .nvk-island__pill.is-ping, .nvk-island__pill.is-live > .nvk-icon, .nvk-island__pill.is-live > .nvk-island__dot::after, .nvk-island.is-alert .nvk-island__alert.is-rung::after { animation: none; }
}
:root[data-motion="off"] .nvk-island__pill, :root[data-motion="off"] .nvk-island__bubble { transition: none; }
:root[data-motion="off"] .nvk-island__pill.nvk-island--urgent, :root[data-motion="off"] .nvk-island__pill.is-live > .nvk-icon, :root[data-motion="off"] .nvk-island__pill.is-live > .nvk-island__dot::after { animation: none; }
}

/* IslandRail */
@layer components{
/* IslandRail (owner-picked Option B 'Island ascent' of 'NirvanaRO Commerce and Property', 2026-10-19): the dark side rail of an ascent page. */
.nvk-irail { display: flex; flex-direction: column; gap: 16px; padding: 22px; border-radius: 32px; background: var(--ui-island); color: var(--ui-island-fg); border: 1px solid var(--ui-island-line); box-shadow: var(--shadow-island); box-sizing: border-box; min-width: 0; }
.nvk-irail__sec { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.nvk-irail__sec + .nvk-irail__sec { padding-top: 16px; border-top: 1px solid color-mix(in srgb, var(--ui-island-fg) 16%, transparent); }
.nvk-irail__lab { margin: 0; padding: 0; border: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-irail__big { margin: 0; font: 700 28px/32px var(--disp); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-irail__text { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-island-fg-2); overflow-wrap: anywhere; }
.nvk-irail__rows { display: flex; flex-direction: column; margin: 0; }
.nvk-irail__row { display: flex; justify-content: space-between; align-items: center; gap: 10px; min-height: 40px; padding: 4px 0; }
.nvk-irail__k { display: flex; flex-direction: column; min-width: 0; font: 600 15px/20px var(--body); color: var(--ui-island-fg); overflow-wrap: anywhere; }
.nvk-irail__sub { font: 400 13px/18px var(--body); color: var(--ui-island-fg-2); }
.nvk-irail__v { margin: 0; flex: none; max-width: 55%; text-align: right; font: 700 15px/20px var(--disp); color: var(--ui-island-fg); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.nvk-irail__pill { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: var(--radius-pill); font: 700 13px/16px var(--body); }
.nvk-irail--ok { background: var(--ui-island-live); color: var(--ui-island); }
.nvk-irail--bad { background: var(--ui-island-boss); color: var(--ui-island); }
.nvk-irail--gold { background: var(--ui-island-gold); color: var(--ui-island-gold-fg); }
.nvk-irail--dim { background: color-mix(in srgb, var(--ui-island-fg) 14%, transparent); color: var(--ui-island-fg); }
.nvk-irail__chip { align-self: flex-start; display: inline-flex; align-items: center; min-height: 32px; margin: 0; padding: 4px 14px; border-radius: 16px; background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 13px/18px var(--body); overflow-wrap: anywhere; box-sizing: border-box; }
.nvk-irail__chip--dim { background: color-mix(in srgb, var(--ui-island-fg) 14%, transparent); color: var(--ui-island-fg); }
.nvk-irail__foot { display: flex; flex-direction: column; gap: 8px; }
.nvk-irail__foot a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 14%, transparent); color: var(--ui-island-fg); font: 700 14px/18px var(--body); text-decoration: none; }
.nvk-irail__foot a:hover { background: color-mix(in srgb, var(--ui-island-fg) 22%, transparent); }
.nvk-irail__foot a:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
@media (max-width: 760px) { .nvk-irail { border-radius: 28px; padding: 18px; } }
}

/* ItemIcon */
@layer components{
.nvk-item { --_s: 44px; display: inline-flex; align-items: center; justify-content: center; flex: none; width: var(--_s); height: var(--_s); overflow: hidden;
  background: var(--ui-sunken); border: 1px solid var(--ui-line); border-radius: var(--radius-sm); color: var(--ui-fg-2); font-family: var(--disp); font-weight: 700; font-size: calc(var(--_s) * .4); }
.nvk-item--sm { --_s: 32px; }
.nvk-item--lg { --_s: 64px; }
.nvk-item__img { display: block; width: 100%; height: 100%; object-fit: contain; image-rendering: pixelated; }
}

/* Ledger */
@layer components{
/* Ledger (owner-picked Option B 'Plaque rail' of 'NirvanaRO Halls', 2026-10-19): history as a timeline of cards on a line. */
.nvk-ledger { position: relative; display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0 0 0 36px; list-style: none; }
.nvk-ledger::before { content: ""; position: absolute; left: 15px; top: 10px; bottom: 10px; width: 2px; background: var(--ui-line-strong); }
.nvk-ledger__it { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px 16px; margin: 0; padding: 16px 20px; border-radius: 24px; background: var(--ui-surface); box-shadow: var(--shadow-sm); }
.nvk-ledger__it::before { content: ""; position: absolute; left: -28px; top: 22px; width: 16px; height: 16px; border: 3px solid var(--ui-line-strong); border-radius: var(--radius-pill); background: var(--ui-surface); box-sizing: border-box; }
.nvk-ledger__it.is-now::before { border-color: var(--ui-island); background: var(--ui-island-gold); }
.nvk-ledger__b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-ledger__w { font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-ledger__t { font: 700 18px/24px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-ledger__s { font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-ledger__q { font: italic 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-ledger__m { display: flex; flex-wrap: wrap; gap: 2px 14px; font: 500 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-ledger__c { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.nvk-ledger__chip { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border: 1px solid var(--ui-line); border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg-2); font: 600 13px/1 var(--body); white-space: nowrap; }
@media (max-width: 760px) {
  .nvk-ledger { padding-left: 30px; gap: 12px; }
  .nvk-ledger::before { left: 11px; }
  .nvk-ledger__it { grid-template-columns: minmax(0, 1fr); padding: 14px 16px; border-radius: 22px; }
  .nvk-ledger__it::before { left: -26px; top: 18px; width: 14px; height: 14px; }
  .nvk-ledger__c { justify-content: flex-start; }
  .nvk-ledger__t { font-size: 17px; line-height: 22px; }
}
}

/* LegendCard */
@layer components{
/* LegendCard (Flagship Ratings L1, 2026-10-26): the player's banner. One frame colour (--_f) by the season peak tier, from the tier tokens
   (Soldier uncommon, Champion rare, Warlord mythical, Sovereign legendary, Nirvana island gold, Apex bright gold); the numbers in a row,
   the Combat Power radar beside them, stacked on a phone. */
.nvk-legend { --_f: var(--ui-line); position: relative; display: flex; flex-direction: column; gap: 14px; min-width: 0; box-sizing: border-box; margin: 0; padding: 18px; border: 2px solid var(--_f); border-radius: var(--radius-lg); background: linear-gradient(160deg, color-mix(in srgb, var(--_f) 14%, var(--ui-surface)), var(--ui-surface) 60%); color: var(--ui-fg); box-shadow: var(--shadow-sm); }
.nvk-legend--recruit { --_f: var(--ui-tier-common); }
.nvk-legend--soldier { --_f: var(--ui-tier-uncommon); }
.nvk-legend--champion { --_f: var(--ui-tier-rare); }
.nvk-legend--warlord { --_f: var(--ui-tier-mythical); }
.nvk-legend--sovereign { --_f: var(--ui-tier-legendary); }
.nvk-legend--nirvana { --_f: var(--ui-island-gold); box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-island-gold) 30%, transparent); }
.nvk-legend--apex { --_f: var(--gold-bright); box-shadow: 0 0 0 3px color-mix(in srgb, var(--gold-bright) 35%, transparent), 0 0 18px color-mix(in srgb, var(--gold-bright) 30%, transparent); }
.nvk-legend__head { display: flex; align-items: center; gap: 12px; min-width: 0; }
.nvk-legend__crest { flex: none; display: grid; place-items: center; width: 48px; height: 48px; }
.nvk-legend__crest img, .nvk-legend__crest svg { max-width: 100%; max-height: 100%; }
.nvk-legend__who { flex: 1 1 auto; min-width: 0; }
.nvk-legend__name { margin: 0; font: 800 20px/26px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-legend__sub, .nvk-legend__guild { margin: 0; font: 500 13px/18px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-legend__frame { flex: none; display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border-radius: var(--radius-pill); border: 1px solid var(--_f); background: color-mix(in srgb, var(--_f) 18%, var(--ui-surface)); color: var(--ui-fg); font: 700 12px/16px var(--body); max-width: 50%; overflow-wrap: anywhere; }
.nvk-legend__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.nvk-legend__body { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; }
.nvk-legend__nums { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 0; }
.nvk-legend__num { min-width: 0; padding: 10px 12px; border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-legend__num dt { font: 600 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-legend__num dd { display: flex; flex-direction: column; gap: 2px; margin: 4px 0 0; min-width: 0; }
.nvk-legend__num b { font: 800 20px/24px var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.nvk-legend__num--valor b { font-size: 16px; line-height: 22px; }
.nvk-legend__num b.nvk-legend__none { font: 600 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-legend__num span { font: 500 12px/16px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-legend__radar { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0; }
.nvk-legend__chart { display: block; width: 132px; height: 132px; overflow: visible; }
.nvk-legend__grid { fill: var(--ui-sunken); stroke: var(--ui-line); stroke-width: 1; }
.nvk-legend__ref { fill: none; stroke: var(--ui-line-strong); stroke-width: 1; stroke-dasharray: 3 3; }
.nvk-legend__axis { stroke: var(--ui-line); stroke-width: 1; }
.nvk-legend__shape { fill: color-mix(in srgb, var(--_f) 35%, transparent); stroke: var(--_f); stroke-width: 2; stroke-linejoin: round; }
.nvk-legend--none .nvk-legend__shape { fill: color-mix(in srgb, var(--ui-brand) 25%, transparent); stroke: var(--ui-brand); }
.nvk-legend__parts { display: grid; grid-template-columns: repeat(2, auto); gap: 2px 12px; font: 600 12px/16px var(--body); color: var(--ui-fg-2); font-variant-numeric: tabular-nums; }
@media (max-width: 640px) {
  .nvk-legend__body { grid-template-columns: minmax(0, 1fr); }
  .nvk-legend__nums { grid-template-columns: minmax(0, 1fr); }
  .nvk-legend__frame { max-width: none; }
  .nvk-legend__head { flex-wrap: wrap; }
}
}

/* LinkRow */
@layer components{
.nvk-linkrow { display: flex; align-items: center; gap: var(--space-3); min-height: 52px; padding: 0 var(--space-4); text-decoration: none; color: var(--ui-link); font-size: 14px; font-weight: 500;
  background: var(--ui-surface); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); box-shadow: var(--shadow-sm); transition: box-shadow var(--t-fast), transform var(--t-fast); }
.nvk-linkrow:hover { box-shadow: var(--shadow-md); transform: translateY(-1px); }
.nvk-linkrow__label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nvk-linkrow__meta { flex: none; font-size: 12px; color: var(--ui-fg-3); }
.nvk-linkrow > .nvk-icon:last-child { color: var(--ui-fg-3); }
}

/* Meter */
@layer components{
.nvk-meter-row { display: flex; flex-direction: column; gap: 6px; font-size: 13px; color: var(--ui-fg-2); }
.nvk-meter-row__text { display: flex; justify-content: space-between; gap: var(--space-2); }
.nvk-meter-row__num { font-variant-numeric: tabular-nums; color: var(--ui-fg); font-weight: 700; }
.nvk-meter { --_c: var(--ui-brand); appearance: none; -webkit-appearance: none; display: block; width: 100%; height: 10px; border: 0; border-radius: 999px; overflow: hidden; background: var(--ui-sunken); color: var(--_c); }
.nvk-meter::-webkit-progress-bar { background: var(--ui-sunken); border-radius: 999px; }
.nvk-meter::-webkit-progress-value { background: var(--_c); border-radius: 999px; }
.nvk-meter::-moz-progress-bar { background: var(--_c); border-radius: 999px; }
.nvk-meter--ok { --_c: var(--ui-ok); }
.nvk-meter--warn { --_c: var(--ui-warn); }
.nvk-meter--danger { --_c: var(--ui-danger); }
}

/* Mirror */
@layer components{
/* Mirror (owner-picked Option B 'Island mirror' of 'NirvanaRO Automation Circle', 2026-10-20): the dark island beside a station's
   controls that draws what the character will do. The island colour in both looks; text on it uses the island tokens. */
.nvk-mirror { display: flex; flex-direction: column; gap: 14px; min-width: 0; margin: 0; padding: 20px; border-radius: 32px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island), inset 0 0 0 1px var(--ui-island-line); box-sizing: border-box; }
.nvk-mirror__eye { display: flex; align-items: center; gap: 10px; min-height: 16px; }
.nvk-mirror__eye:empty { display: none; }
.nvk-mirror__live { flex: none; width: 10px; height: 10px; border-radius: var(--radius-pill); background: var(--ui-island-live); box-shadow: 0 0 0 5px color-mix(in srgb, var(--ui-island-live) 20%, transparent); animation: nvk-mirror-pulse 2.4s ease-in-out infinite; }
.nvk-mirror__e { margin: 0; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-mirror__tag { margin-left: auto; display: inline-flex; align-items: center; height: 22px; padding: 0 10px; border-radius: var(--radius-pill); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); font: 700 11px/1 var(--body); letter-spacing: .04em; white-space: nowrap; }
.nvk-mirror__h { margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-island-fg); }
.nvk-mirror__body { display: flex; flex-direction: column; gap: 12px; min-width: 0; font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-mirror__body p { margin: 0; color: var(--ui-island-fg-2); font: 400 13px/19px var(--body); }
.nvk-mirror__body a { color: var(--ui-island-blue); }
.nvk-mirror__foot { display: flex; flex-direction: column; gap: 10px; padding-top: 14px; border-top: 1px solid var(--ui-island-line); font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-mirror__foot p { margin: 0; color: var(--ui-island-fg-2); }
.nvk-mirror__foot a { color: var(--ui-island-blue); }
@keyframes nvk-mirror-pulse { 50% { box-shadow: 0 0 0 9px color-mix(in srgb, var(--ui-island-live) 6%, transparent); } }
@media (prefers-reduced-motion: reduce) { .nvk-mirror__live { animation: none; } }
}

/* MirrorSplit */
@layer components{
/* MirrorSplit (owner-picked Option B 'Island mirror' of 'NirvanaRO Automation Circle', 2026-10-20): controls left, the Mirror right and
   sticky; under 1100px the mirror stacks under the controls. */
.nvk-msplit { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 18px; align-items: start; margin: var(--space-5) 0 0; min-width: 0; }
.nvk-msplit--wide { grid-template-columns: minmax(0, 1fr) 340px; }
.nvk-msplit__main { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.nvk-msplit__side { position: sticky; top: 90px; display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.nvk-msplit--flow .nvk-msplit__side { position: static; }
.nvk-msplit:not(:has(.nvk-msplit__side)) { grid-template-columns: minmax(0, 1fr); }
@media (max-width: 1100px) { .nvk-msplit, .nvk-msplit--wide { grid-template-columns: minmax(0, 1fr); } .nvk-msplit__side { position: static; } }
}

/* NavConsole */
@layer components{
/* NavConsole (owner pick B 'Control room' of 'NirvanaRO Cockpit Realm and Index', 2026-10-21): the Navigator's dark search console. Island
   tokens only; the search field and the filter are the caller's (styled here when they sit inside). */
.nvk-ncon { display: flex; flex-direction: column; gap: 14px; min-width: 0; margin: 0; padding: 20px; border-radius: var(--radius-lg); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island), inset 0 0 0 1px var(--ui-island-line); box-sizing: border-box; }
.nvk-ncon__top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 4px 16px; min-width: 0; }
.nvk-ncon__h { margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-island-fg); }
.nvk-ncon__note { margin: 0; font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-ncon__note code, .nvk-ncon__status code { font: 600 12px/18px monospace; padding: 1px 6px; border-radius: var(--radius-sm); background: var(--ui-island-2); color: var(--ui-island-fg); }
.nvk-ncon__ctl { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 12px; min-width: 0; }
.nvk-ncon__jump { display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.nvk-ncon__j { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-fg); font: 700 14px/1 var(--body); text-decoration: none; }
.nvk-ncon__j:hover { box-shadow: inset 0 0 0 1px var(--ui-island-fg-2); }
.nvk-ncon__j:focus-visible { outline: 2px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-ncon__jn { font: 600 12px/1 var(--body); color: var(--ui-island-fg-2); }
.nvk-ncon__j--on { background: var(--ui-surface); color: var(--ui-fg); }
.nvk-ncon__j--on .nvk-ncon__jn { color: var(--ui-fg-2); }
.nvk-ncon__j[hidden] { display: none; }
.nvk-ncon__status { margin: 0; min-height: 19px; font: 400 13px/19px var(--body); color: var(--ui-island-fg-2); }
.nvk-ncon__status:empty { display: none; }
}

/* NavRow */
@layer components{
/* NavRow (owner pick B 'Control room' of 'NirvanaRO Cockpit Realm and Index', 2026-10-21): one dense Navigator result. One line when the list
   is wide enough (a container query on the list, which the page sets as container nvk-nlist), stacked otherwise. */
.nvk-nrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "name pin" "chips pin" "how how" "links links" "blurb blurb"; gap: 2px 12px; align-items: center; min-width: 0; padding: 10px 0; border-bottom: 1px solid var(--ui-line); font: 400 14px/20px var(--body); color: var(--ui-fg); }
.nvk-nrow[hidden] { display: none; }
.nvk-nrow__name { grid-area: name; min-width: 0; font: 700 15px/20px var(--body); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-nrow__chips { grid-area: chips; display: flex; flex-wrap: wrap; gap: 6px; min-width: 0; }
.nvk-nrow__how { grid-area: how; min-width: 0; color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-nrow__how:empty, .nvk-nrow__links:empty { display: none; }
.nvk-nrow__how code { font: 600 13px/18px monospace; padding: 1px 6px; border-radius: var(--radius-sm); background: var(--ui-sunken); color: var(--ui-fg); }
.nvk-nrow__links { grid-area: links; display: flex; flex-wrap: wrap; gap: 0 14px; min-width: 0; }
.nvk-nrow__links a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 48px; color: var(--ui-link); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.nvk-nrow__links a:hover { color: var(--ui-fg); }
.nvk-nrow__pin { grid-area: pin; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 72px; padding: 0 14px; border: 0; border-radius: var(--radius-pill); background: transparent; box-shadow: inset 0 0 0 1px var(--ui-line-strong); color: var(--ui-fg); font: 700 13px/1 var(--body); cursor: pointer; }
.nvk-nrow__pin:hover { box-shadow: inset 0 0 0 1px var(--ui-fg-2); }
.nvk-nrow__pin:focus-visible { outline: 2px solid var(--ui-link); outline-offset: 2px; }
.nvk-nrow__pin.is-pinned { background: var(--ui-island); color: var(--ui-island-fg); box-shadow: none; }
.nvk-nrow__blurb { grid-area: blurb; margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
@container nvk-nlist (min-width: 760px) {
  .nvk-nrow { grid-template-columns: minmax(0, 1.2fr) auto minmax(0, 1fr) auto auto; grid-template-areas: "name chips how links pin" "blurb blurb blurb blurb blurb"; }
  .nvk-nrow__blurb { margin-top: -2px; }
}
}

/* NextStep */
@layer components{
/* NextStep (owner-picked Option B 'Island ascent' of 'NirvanaRO Commerce and Property', 2026-10-19): the dark next-step strip. */
.nvk-nextstep { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 16px; margin: 0; padding: 12px 12px 12px 24px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); border: 1px solid var(--ui-island-line); box-shadow: var(--shadow-island); box-sizing: border-box; min-width: 0; }
.nvk-nextstep__dot { flex: none; width: 10px; height: 10px; border-radius: var(--radius-pill); background: var(--ui-island-gold); }
.nvk-nextstep__p { flex: 1 1 320px; margin: 0; font: 500 15px/22px var(--body); color: var(--ui-island-fg-2); min-width: 0; overflow-wrap: anywhere; }
.nvk-nextstep__p b { color: var(--ui-island-fg); font-weight: 700; }
.nvk-nextstep__a { flex: none; display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 18px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 14%, transparent); color: var(--ui-island-fg); font: 700 14px/18px var(--body); text-decoration: none; }
.nvk-nextstep__a:hover { background: color-mix(in srgb, var(--ui-island-fg) 22%, transparent); }
.nvk-nextstep__a:focus-visible { outline: 3px solid var(--ui-island-gold); outline-offset: 2px; }
.nvk-nextstep__acts { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 760px) {
  .nvk-nextstep { border-radius: 28px; padding: 16px 18px; align-items: flex-start; }
  .nvk-nextstep__dot { margin-top: 6px; }
  .nvk-nextstep__p { flex-basis: calc(100% - 30px); }
  .nvk-nextstep__a, .nvk-nextstep__acts { flex: 1 1 100%; }
}
}

/* NowNext */
@layer components{
/* NowNext (owner-picked Option B 'Island stage' of 'NirvanaRO Play Pages', 2026-10-19): the play page timeline, right of the stage. */
.nvk-nownext { display: flex; flex-direction: column; gap: 10px; padding: 20px; border-radius: 32px; background: var(--ui-surface); box-shadow: var(--shadow-lg); box-sizing: border-box; min-width: 0; }
.nvk-nownext__h { margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); color: var(--ui-fg); }
.nvk-nownext__list { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.nvk-nownext__it { display: grid; grid-template-columns: 14px minmax(0, 1fr) auto; gap: 12px; align-items: start; padding: 10px 4px; border-top: 1px solid var(--ui-line); }
.nvk-nownext__it:first-child { border-top: 0; }
.nvk-nownext__dot { width: 12px; height: 12px; margin-top: 4px; border-radius: var(--radius-pill); background: var(--ui-line-strong); }
.nvk-nownext--soon .nvk-nownext__dot { background: var(--ui-brand); }
.nvk-nownext--live .nvk-nownext__dot { background: var(--ui-danger); box-shadow: 0 0 0 4px color-mix(in srgb, var(--ui-danger) 20%, transparent); animation: nvk-nownext-pulse 2.4s ease-in-out infinite; }
.nvk-nownext__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-nownext__t { font: 700 15px/20px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
a.nvk-nownext__t { display: inline-flex; align-items: center; min-height: 44px; margin: -12px 0; color: var(--ui-link); text-decoration: none; }
a.nvk-nownext__t:hover { text-decoration: underline; }
a.nvk-nownext__t:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; border-radius: 6px; }
.nvk-nownext__sub { font: 400 13px/18px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-nownext__when { font: 700 13px/20px var(--body); color: var(--ui-fg); white-space: nowrap; font-variant-numeric: tabular-nums; }
@keyframes nvk-nownext-pulse { 0%, 100% { scale: 1; } 50% { scale: 1.2; } }
@media (prefers-reduced-motion: reduce) { .nvk-nownext--live .nvk-nownext__dot { animation: none; } }
}

/* OathCrest */
@layer components{
/* OathCrest (owner pick 'Iron Warden', 2026-10-20): the still picture, with the live canvas or the loop video laid over it. */
.nvk-oathc { --nvk-oathc: 160px; position: relative; display: inline-grid; place-items: center; flex: 0 0 auto; width: var(--nvk-oathc); height: var(--nvk-oathc); margin: 0; isolation: isolate; }
.nvk-oathc--xs { --nvk-oathc: 48px; }
.nvk-oathc--sm { --nvk-oathc: 104px; }
.nvk-oathc--lg { --nvk-oathc: 220px; }
.nvk-oathc--hero { --nvk-oathc: 240px; }
.nvk-oathc__still, .nvk-oathc__cv, .nvk-oathc__vid { grid-area: 1 / 1; display: block; width: 100%; height: 100%; margin: 0; border: 0; object-fit: contain; }
.nvk-oathc__cv { opacity: 0; transition: opacity var(--t-slow, 400ms) var(--ease-rune, ease); }
.nvk-oathc.is-live .nvk-oathc__cv { opacity: 1; }
.nvk-oathc.is-live .nvk-oathc__still { visibility: hidden; }
.nvk-oathc__vid { border-radius: 50%; }
@media (max-width: 600px) { .nvk-oathc--hero { --nvk-oathc: 180px; } .nvk-oathc--lg { --nvk-oathc: 180px; } }
@media (prefers-reduced-motion: reduce) { .nvk-oathc__vid, .nvk-oathc__cv { display: none; } .nvk-oathc.is-live .nvk-oathc__still { visibility: visible; } }
}

/* PageHeader */
@layer components{
.nvk-pagehead { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); margin: 0 0 var(--space-4); color: var(--ui-fg); }
.nvk-pagehead__titles { min-width: 0; }
.nvk-pagehead__eyebrow { margin: 0 0 2px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ui-link); }
.nvk-pagehead__title { margin: 0; font-family: var(--disp); font-size: 32px; font-weight: 700; line-height: 40px; color: inherit; text-transform: none; letter-spacing: 0; }
.nvk-pagehead__sub { margin: 4px 0 0; font-size: 15px; line-height: 22px; color: var(--ui-fg-2); }
.nvk-pagehead__actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
@media (max-width: 600px) { .nvk-pagehead__title { font-size: 26px; line-height: 34px; } }
}

/* Pagination */
@layer components{
.nvk-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--space-1); }
.nvk-page { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 0 var(--space-3); border-radius: var(--radius-pill);
  font-family: var(--body); font-size: 14px; font-weight: 700; text-decoration: none; color: var(--ui-fg); background: transparent; }
a.nvk-page:hover { background: var(--ui-sunken); color: var(--ui-link); }
.nvk-page.is-current { background: var(--ui-brand); color: var(--ui-brand-fg); }
.nvk-page.is-gap { color: var(--ui-fg-3); min-width: 24px; padding: 0; }
.nvk-page--edge { color: var(--ui-link); }
}

/* Panel */
@layer components{
.nvk-panel { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; color: var(--ui-fg); }
.nvk-panel__head { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-3); padding-bottom: var(--space-2); border-bottom: 1px solid var(--ui-line); }
.nvk-panel__titles { min-width: 0; }
.nvk-panel__title { margin: 0; font-family: var(--disp); font-size: 20px; font-weight: 600; line-height: 28px; color: inherit; text-transform: none; letter-spacing: 0; }
.nvk-panel__hint { margin: 2px 0 0; font-size: 13px; line-height: 20px; color: var(--ui-fg-3); }
.nvk-panel__actions { display: flex; gap: var(--space-2); flex: none; font-size: 14px; }
.nvk-panel__body { min-width: 0; }
.nvk-panel[hidden] { display: none; }
.nvk-panel--art { position: relative; overflow: hidden; }
.nvk-panel__art { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; opacity: .16; pointer-events: none; -webkit-mask-image: linear-gradient(180deg, currentColor, transparent 85%); mask-image: linear-gradient(180deg, currentColor, transparent 85%); }
.nvk-panel--art > :not(.nvk-panel__art) { position: relative; }
}

/* PersonCard */
@layer components{
.nvk-person { display: flex; align-items: center; gap: var(--space-4); min-width: 0; color: var(--ui-fg); }
.nvk-person__text { min-width: 0; }
.nvk-person__name { margin: 0; display: flex; align-items: center; gap: 6px; font-size: 16px; font-weight: 700; line-height: 22px; color: var(--ui-link); }
.nvk-person__name .nvk-icon { color: var(--ui-ok); }
.nvk-person__role { margin: 0; font-size: 13px; line-height: 20px; color: var(--ui-fg-3); }
}

/* Plaque */
@layer components{
/* Plaque (owner-picked Option B 'Plaque rail' of 'NirvanaRO Halls', 2026-10-19): the picture banner of a hall with the dark plaque over its lower edge. */
.nvk-plaque { position: relative; display: flex; flex-direction: column; min-width: 0; }
.nvk-plaque__ban { position: relative; height: 340px; border-radius: 40px; overflow: hidden; background: linear-gradient(180deg, var(--ui-brand-tint) 0, var(--ui-surface-2) 100%); box-shadow: var(--shadow-lg); }
.nvk-plaque__img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; animation: nvk-plaque-kb 1600ms cubic-bezier(.2, .7, .2, 1) both; }
.nvk-plaque--top .nvk-plaque__img { object-position: 50% 22%; }
.nvk-plaque--low .nvk-plaque__img { object-position: 50% 72%; }
.nvk-plaque--right .nvk-plaque__img { object-position: 70% 20%; }
.nvk-plaque--contain .nvk-plaque__img { object-fit: contain; object-position: 82% 30%; padding: 16px 24px 96px; box-sizing: border-box; }
.nvk-plaque__p { position: relative; scroll-margin-top: 90px; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px; margin: -110px 28px 0; padding: 26px 28px; border: 1px solid var(--ui-island-line); border-radius: 32px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); animation: nvk-plaque-up 680ms cubic-bezier(.34, 1.3, .64, 1) both; }
.nvk-plaque--bare .nvk-plaque__p { margin: 0; }
.nvk-plaque__t { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.nvk-plaque__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--ui-island-blue); }
.nvk-plaque__h { margin: 0; padding: 0; border: 0; font: 700 48px/52px var(--disp); color: var(--ui-island-fg); text-wrap: balance; overflow-wrap: anywhere; }
.nvk-plaque__s { margin: 0; max-width: 68ch; font: 400 16px/24px var(--body); color: var(--ui-island-fg-2); }
.nvk-plaque__acts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 8px; }
.nvk-plaque__nums { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.nvk-plaque__num { display: flex; flex-direction: column; justify-content: center; min-width: 88px; min-height: 64px; padding: 10px 16px; border-radius: 22px; background: var(--ui-island-2); box-sizing: border-box; }
.nvk-plaque__k { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-fg-2); }
.nvk-plaque__v { font: 700 26px/30px var(--disp); color: var(--ui-island-fg); font-variant-numeric: tabular-nums; }
.nvk-plaque__num--ok .nvk-plaque__v { color: var(--ui-island-live); }
.nvk-plaque__num--bad .nvk-plaque__v { color: var(--ui-island-boss); }
.nvk-plaque__aside { min-width: 0; max-width: 380px; }
.nvk-plaque__aside img { display: block; max-width: 100%; height: auto; }   /* audit fixes B: the 404 art ran 68px off the page on the Anime look, which has no global img reset */
@keyframes nvk-plaque-kb { from { transform: scale(1.08); } to { transform: none; } }
@keyframes nvk-plaque-up { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .nvk-plaque__img, .nvk-plaque__p { animation: none; } }
@media (max-width: 1100px) { .nvk-plaque__p { grid-template-columns: minmax(0, 1fr); } .nvk-plaque__aside { max-width: none; } }
@media (max-width: 760px) {
  .nvk-plaque__ban { height: 220px; border-radius: 32px; }
  .nvk-plaque--contain .nvk-plaque__img { padding: 8px 8px 60px; object-position: 50% 20%; }
  .nvk-plaque__p { margin: -60px 10px 0; padding: 20px; border-radius: 28px; gap: 14px; }
  .nvk-plaque__h { font-size: 34px; line-height: 38px; }
  .nvk-plaque__s { font-size: 15px; line-height: 23px; }
  .nvk-plaque__num { flex: 1 1 0; min-width: 0; padding: 8px 12px; }
  .nvk-plaque__v { font-size: 22px; line-height: 26px; }
}
/* ghost and soft buttons on the plaque read on the dark island */
.nvk-plaque__p .nvk-btn--ghost, .nvk-plaque__p .nvk-btn--soft { --_bg: color-mix(in srgb, var(--ui-island-fg) 12%, transparent); --_fg: var(--ui-island-fg); --_bd: color-mix(in srgb, var(--ui-island-fg) 26%, transparent); }
}

/* PlaqueCard */
@layer components{
/* PlaqueCard (owner-picked Option B 'Plaque rail' of 'NirvanaRO Halls', 2026-10-19): an engraved record card, white with an inner engraved line. */
.nvk-pcard { min-width: 0; padding: 6px; border-radius: 28px; background: var(--ui-surface); box-shadow: var(--shadow-sm); box-sizing: border-box; scroll-margin-top: 90px; }
.nvk-pcard__in { display: flex; flex-direction: column; gap: 10px; height: 100%; min-width: 0; padding: 20px; border: 1px solid var(--ui-line-strong); border-radius: 23px; box-sizing: border-box; }
.nvk-pcard__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.nvk-pcard__e { margin: 0; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-pcard__mark { margin-left: auto; font: 700 26px/1 var(--disp); color: var(--ui-fg-3); font-variant-numeric: tabular-nums; }
.nvk-pcard__h { margin: 0; padding: 0; border: 0; font: 700 20px/26px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
h2.nvk-pcard__h { font-size: 22px; line-height: 28px; }
.nvk-pcard__sub { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-pcard__v { margin: 0; font: 700 30px/34px var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.nvk-pcard__note { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-pcard__body { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.nvk-pcard--center .nvk-pcard__in { align-items: center; text-align: center; justify-content: center; gap: 4px; }
.nvk-pcard--center .nvk-pcard__top { justify-content: center; }
.nvk-pcard--wanted .nvk-pcard__e { display: inline-flex; align-items: center; min-height: 28px; padding: 0 12px; border: 1px solid color-mix(in srgb, var(--ui-danger) 45%, transparent); border-radius: 10px; color: var(--ui-danger); letter-spacing: .14em; }
.nvk-pcard--wanted .nvk-pcard__sub { font-style: italic; }
.nvk-pcard--gold .nvk-pcard__v, .nvk-pcard--wanted .nvk-pcard__v { color: var(--ui-warn); }
.nvk-pcard--ok .nvk-pcard__v { color: var(--ui-ok); }
.nvk-pcard--bad .nvk-pcard__v { color: var(--ui-danger); }
@media (max-width: 760px) { .nvk-pcard__in { padding: 16px; } .nvk-pcard__v { font-size: 24px; line-height: 28px; } }
}

/* PlayStrip */
@layer components{
/* PlayStrip (owner-picked Option B 'Island stage' of 'NirvanaRO Play Pages', 2026-10-19): the slim title island of every play page. */
.nvk-pstrip { display: flex; align-items: center; flex-wrap: wrap; gap: 12px 16px; margin: 0; padding: 10px 12px 10px 10px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); box-sizing: border-box; min-width: 0; }
.nvk-pstrip__med { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 60px; height: 60px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); }
.nvk-pstrip__t { flex: 1 1 260px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-pstrip__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-island-blue); }
.nvk-pstrip__title { margin: 0; padding: 0; border: 0; font: 700 28px/32px var(--disp); color: var(--ui-island-fg); text-wrap: balance; }
.nvk-pstrip__sub { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-island-fg-2); }
.nvk-pstrip__nums { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 0 auto; padding: 0; list-style: none; }
.nvk-pstrip__num { display: flex; flex-direction: column; justify-content: center; min-height: 44px; padding: 6px 16px; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-island-fg) 9%, transparent); }
.nvk-pstrip__k { font: 400 12px/16px var(--body); color: var(--ui-island-fg-2); }
.nvk-pstrip__v { font: 700 18px/22px var(--disp); color: var(--ui-island-fg); font-variant-numeric: tabular-nums; }
.nvk-pstrip__acts { display: flex; flex-wrap: wrap; gap: 8px; }
.nvk-pstrip__acts:empty { display: none; }
@media (max-width: 760px) {
  .nvk-pstrip { border-radius: 32px; padding: 16px; }
  .nvk-pstrip__med { width: 48px; height: 48px; }
  .nvk-pstrip__title { font-size: 24px; line-height: 28px; }
  .nvk-pstrip__nums { margin-left: 0; flex-basis: 100%; }
  .nvk-pstrip__acts { flex-basis: 100%; }
}
}

/* ProviderRow */
@layer components{
/* ProviderRow: the sign-in sheet's door styles (d-fs-door, _base/sheet.css) do the drawing; this only keeps the link unstyled by prose rules. */
.nvk-provider { text-decoration: none; }
}

/* PublicNav */
@layer components{
/* The floating top bar (Claude Design canvas "NirvanaRO Floating Nav", 2026-10-17): a translucent pill that sticks 16px under the top edge
   (12px on a phone, plus the safe-area inset), the layout max wide. Every button is a 44px pill; motion is t-fast with ease-rune. */
.nvk-pubnav { position: sticky; top: calc(var(--space-4) + env(safe-area-inset-top, 0px)); z-index: 60; margin-top: var(--space-4); padding: 0 var(--space-4); font-family: var(--body); color: var(--ui-fg); }
.nvk-pubnav__bar { position: relative; display: flex; align-items: center; gap: var(--space-2); max-width: 1220px; height: 64px; margin: 0 auto; padding: 0 10px 0 14px; box-sizing: border-box;
  border-radius: var(--radius-pill); border: 1px solid var(--ui-line); background: color-mix(in srgb, var(--ui-surface) 86%, transparent); box-shadow: var(--shadow-lg);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
.nvk-pubnav__brand { display: inline-flex; align-items: center; gap: 10px; flex-shrink: 0; min-height: 44px; padding-right: var(--space-3); border-radius: var(--radius-pill); color: var(--ui-fg); text-decoration: none; }
.nvk-pubnav__brand:hover { color: var(--ui-fg); }
.nvk-pubnav__logo { display: block; width: 40px; height: 40px; border-radius: var(--radius-pill); }
.nvk-pubnav__name { font-family: var(--disp); font-size: 19px; line-height: 1; font-weight: 700; letter-spacing: .02em; }
/* the animated logo (brandLogo): the B wordmark in the bar, the C emblem on a phone (one of the two is shown, so the home link has one name) */
.nvk-pubnav__brand .nvk-brandlogo--emblem { display: none; }

/* section links */
.nvk-pubnav__links { display: flex; align-items: center; gap: 2px; flex: 1 1 auto; }
.nvk-pubnav__sec { position: relative; }
.nvk-pubnav__link { display: inline-flex; align-items: center; gap: 6px; height: 44px; margin: 0; padding: 0 var(--space-4); border: 0; border-radius: var(--radius-pill); background: transparent; color: var(--ui-fg-2);
  font-family: var(--body); font-size: 15px; line-height: 1; font-weight: 600; letter-spacing: 0; text-transform: none; text-decoration: none; cursor: pointer; box-shadow: none;
  transition: background-color var(--t-fast) var(--ease-rune), color var(--t-fast) var(--ease-rune); }
.nvk-pubnav__link:hover { background: var(--ui-surface-2); color: var(--ui-fg); text-decoration: none; }
.nvk-pubnav__link[aria-expanded="true"] { background: var(--ui-sunken); color: var(--ui-fg); }
.nvk-pubnav__link.is-current { background: var(--ui-brand-tint); color: var(--ui-link); font-weight: 700; }
.nvk-pubnav__chev { display: inline-flex; transition: transform var(--t-fast) var(--ease-rune); }
.nvk-pubnav__link[aria-expanded="true"] .nvk-pubnav__chev { transform: rotate(180deg); }
.nvk-pubnav__dot { flex-shrink: 0; width: 6px; height: 6px; border-radius: var(--radius-pill); background: var(--ui-brand); }

/* dropdown panel: two columns of rows */
.nvk-pubnav__panel { position: absolute; top: calc(100% + 20px); left: 0; z-index: 2; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px; width: 560px; max-width: calc(100vw - 2 * var(--space-4)); box-sizing: border-box; padding: var(--space-3);
  border-radius: var(--radius-lg); border: 1px solid var(--ui-line); background: var(--ui-surface); box-shadow: var(--shadow-lg); }
.nvk-pubnav__panel[hidden], .nvk-pubnav__sheet[hidden] { display: none; }
/* Rune Motion A3: a menu that just closed fades out as an inert copy over the bar (js/nv-ui.js) */
.nvk-pubnav__panel.is-ghost, .nvk-pubnav__sheet.is-ghost { pointer-events: none; }
/* the panel's note line (the live season on World): spans both columns, quiet text, a link to its page */
.nvk-pubnav__note { grid-column: 1 / -1; display: flex; align-items: center; gap: var(--space-2); min-height: 44px; margin: 0 0 4px; padding: 0 14px; box-sizing: border-box; border-bottom: 1px solid var(--ui-line); font-size: 13px; line-height: 20px; font-weight: 600; color: var(--ui-fg-2); text-decoration: none; }
a.nvk-pubnav__note { border-radius: var(--radius-md) var(--radius-md) 0 0; }
a.nvk-pubnav__note:hover { background: var(--ui-surface-2); color: var(--ui-fg); text-decoration: underline; }
a.nvk-pubnav__note:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-pubnav__note--menu { margin: 0 0 2px; padding: 0 var(--space-3); border-bottom: 0; }
.nvk-pubnav__live { flex-shrink: 0; width: 8px; height: 8px; border-radius: var(--radius-pill); background: var(--ui-ok); }
.nvk-pubnav__row { display: flex; flex-direction: column; gap: 2px; min-height: 44px; padding: var(--space-3) 14px; border-radius: var(--radius-md); color: var(--ui-fg); text-decoration: none; transition: background-color var(--t-fast) var(--ease-rune); }
.nvk-pubnav__row:hover { background: var(--ui-surface-2); color: var(--ui-fg); text-decoration: none; }
.nvk-pubnav__row.is-current { background: var(--ui-brand-tint); color: var(--ui-link); }
.nvk-pubnav__row-t { font-size: 15px; line-height: 22px; font-weight: 600; }
.nvk-pubnav__row-d { font-size: 13px; line-height: 20px; font-weight: 400; color: var(--ui-fg-3); }
.nvk-pubnav__row.is-current .nvk-pubnav__row-d { color: var(--ui-fg-2); }

/* the Rune Island in the middle (Island, canvas "Rune Island in the bar", 2026-10-17): it takes the room between the links and the actions and
   gives way first (its pill ellipsises); on a phone it takes the wordmark's place */
.nvk-pubnav__mid { display: flex; justify-content: center; flex: 0 1 auto; min-width: 0; margin: 0 auto; }
.nvk-pubnav__bar--island .nvk-pubnav__links { flex: 0 0 auto; }
.nvk-pubnav__bar--island .nvk-pubnav__end { margin-left: 0; }
.nvk-pubnav__sheet-cta { display: none; }

/* right side: look switch, sign-in or account actions, phone menu button */
.nvk-pubnav__end { display: flex; align-items: center; gap: var(--space-2); margin-left: auto; }
.nvk-pubnav__round { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; margin: 0; padding: 0; font: inherit; border-radius: var(--radius-pill); border: 1px solid var(--ui-line);
  background: var(--ui-surface); color: var(--ui-fg-2); cursor: pointer; box-shadow: none; transition: background-color var(--t-fast) var(--ease-rune), color var(--t-fast) var(--ease-rune); }
.nvk-pubnav__sun, .nvk-pubnav__to-light, [data-theme="daybreak-dark"] .nvk-pubnav__moon, [data-theme="daybreak-dark"] .nvk-pubnav__to-dark { display: none; }
[data-theme="daybreak-dark"] .nvk-pubnav__sun { display: inline-flex; }
[data-theme="daybreak-dark"] .nvk-pubnav__to-light { display: inline; }
.nvk-pubnav__moon { display: inline-flex; }
.nvk-pubnav__menubtn { display: none; border: 0; background: var(--ui-brand-deep); color: var(--ui-brand-fg); }
[data-theme="daybreak-dark"] .nvk-pubnav__menubtn { color: var(--ui-fg); }
@media (hover: hover) {
  .nvk-pubnav__round:hover { background: var(--ui-surface-2); color: var(--ui-fg); }
  .nvk-pubnav__menubtn:hover { background: var(--ui-brand); color: var(--ui-brand-fg); }
  [data-theme="daybreak-dark"] .nvk-pubnav__menubtn:hover { background: var(--ui-brand-hi); color: var(--ui-brand-fg); }
}
.nvk-pubnav__burger, .nvk-pubnav__x { display: inline-flex; }
.nvk-pubnav__x, .nvk-pubnav__menubtn[aria-expanded="true"] .nvk-pubnav__burger { display: none; }
.nvk-pubnav__menubtn[aria-expanded="true"] .nvk-pubnav__x { display: inline-flex; }

.nvk-pubnav__pill { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); flex-shrink: 0; height: 44px; box-sizing: border-box; padding: 0 18px; border: 1px solid transparent; border-radius: var(--radius-pill);
  font-family: var(--body); font-size: 15px; line-height: 1; font-weight: 600; letter-spacing: 0; text-transform: none; text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color var(--t-fast) var(--ease-rune), border-color var(--t-fast) var(--ease-rune), box-shadow var(--t-fast) var(--ease-rune), color var(--t-fast) var(--ease-rune); }
.nvk-pubnav__pill:hover { text-decoration: none; }
.nvk-pubnav__pill--ghost { border-color: var(--ui-line-strong); background: var(--ui-surface); color: var(--ui-fg); }
.nvk-pubnav__pill--ghost:hover { border-color: var(--ui-fg); background: var(--ui-surface-2); color: var(--ui-fg); }
.nvk-pubnav__pill--cta { padding: 0 20px; background: var(--ui-cta); color: var(--ui-cta-fg); font-weight: 700; box-shadow: 0 2px 0 color-mix(in srgb, var(--ui-cta-fg) 18%, transparent); }
.nvk-pubnav__pill--cta:hover { background: var(--ui-cta-hover); color: var(--ui-cta-fg); box-shadow: 0 4px 12px color-mix(in srgb, var(--ui-cta) 45%, transparent); }
.nvk-pubnav__pill--brand { background: var(--ui-brand); color: var(--ui-brand-fg); font-weight: 700; }
.nvk-pubnav__pill--brand:hover { background: var(--ui-brand-deep); color: var(--ui-brand-fg); }
[data-theme="daybreak-dark"] .nvk-pubnav__pill--brand:hover { background: var(--ui-brand-hi); }
.nvk-pubnav__topup { padding: 0 var(--space-4) 0 var(--space-3); }
.nvk-pubnav__bal { font-variant-numeric: tabular-nums; }
/* the small tag beside Top up (owner 2026-10-21: an all-Hardcore account reads "Hardcore: no web spending"); token styling, one line, folded on a phone */
.nvk-pubnav__tag { display: inline-flex; align-items: center; min-height: 28px; padding: 0 var(--space-2); border: 1px solid var(--ui-line); border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg-2); font-size: 12px; font-weight: 600; line-height: 16px; white-space: nowrap; }
@media (max-width: 600px) { .nvk-pubnav__tag { display: none; } }
.nvk-pubnav__sep { width: 1px; height: 18px; background: color-mix(in srgb, var(--ui-brand-fg) 40%, transparent); }
.nvk-pubnav__pill--chip { gap: 10px; padding: 0 var(--space-4) 0 4px; border-color: var(--ui-line); background: var(--ui-surface); color: var(--ui-fg); }
.nvk-pubnav__pill--chip:hover { background: var(--ui-surface-2); color: var(--ui-fg); }
.nvk-pubnav__av { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: var(--radius-pill); background: var(--ui-sunken); color: var(--ui-brand-deep); font-family: var(--disp); font-size: 14px; font-weight: 700; line-height: 1; }
[data-theme="daybreak-dark"] .nvk-pubnav__av { color: var(--ui-link); }

.nvk-pubnav__link:focus-visible, .nvk-pubnav__row:focus-visible, .nvk-pubnav__round:focus-visible, .nvk-pubnav__pill:focus-visible, .nvk-pubnav__brand:focus-visible, .nvk-pubnav__item:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }

/* the menu card under the bar (phone and narrow windows) */
.nvk-pubnav__sheet { position: absolute; top: calc(100% + var(--space-3)); left: var(--space-4); right: var(--space-4); z-index: 2; display: flex; flex-direction: column; gap: 2px; max-height: calc(100vh - 110px); max-height: calc(100dvh - 110px); overflow-y: auto; box-sizing: border-box;
  padding: 10px; border-radius: 20px; border: 1px solid var(--ui-line); background: var(--ui-surface); box-shadow: var(--shadow-lg); }
.nvk-pubnav__group { display: flex; flex-direction: column; gap: 2px; }
.nvk-pubnav__group-t { margin: 0; padding: var(--space-3) var(--space-3) 4px; font-size: 12px; line-height: 16px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-pubnav__group:first-child .nvk-pubnav__group-t { padding-top: var(--space-2); }
.nvk-pubnav__item { display: flex; align-items: center; gap: var(--space-2); min-height: 44px; padding: 0 var(--space-3); border-radius: var(--radius-md); color: var(--ui-fg); font-size: 15px; line-height: 1.2; font-weight: 600; text-decoration: none; }
.nvk-pubnav__item:hover { background: var(--ui-surface-2); color: var(--ui-fg); text-decoration: none; }
.nvk-pubnav__item.is-current { background: var(--ui-brand-tint); color: var(--ui-link); font-weight: 700; }
.nvk-pubnav__sheet-end { display: flex; gap: var(--space-2); padding: var(--space-3) 4px 4px; }
.nvk-pubnav__grow { flex: 1 1 0; }

/* Anime Sky (owner 2026-10-17: the floating bar on every Anime page). The look's ui-* roles are dark glass for its cards; over the painted sky the bar
   keeps the Anime light glass instead: white pill, ink text, ink brand pills, amber you-are-here tint, the Anime gold call to action. Tokens only. */
[data-theme="anime"] .nvk-pubnav { --ui-surface: var(--sk-white); --ui-surface-2: rgba(var(--sk-blue-0f1b3d-rgb), .07); --ui-sunken: rgba(var(--sk-blue-0f1b3d-rgb), .12);
  --ui-fg: var(--ink); --ui-fg-2: var(--ink-soft); --ui-fg-3: var(--sk-blue-4b5f78); --ui-line: rgba(var(--sk-blue-0f1b3d-rgb), .1); --ui-line-strong: var(--ink);
  --ui-brand: var(--ink); --ui-brand-hi: var(--ink-soft); --ui-brand-deep: var(--ink); --ui-brand-fg: var(--sk-white); --ui-brand-tint: rgba(var(--sk-orange-e9b949-rgb), .22);
  --ui-link: var(--ink); --ui-focus: var(--ink); }

@media (max-width: 1040px) {
  .nvk-pubnav__links { display: none; }
  .nvk-pubnav__menubtn { display: inline-flex; }
}
@media (min-width: 1041px) { .nvk-pubnav__sheet { display: none; } }
/* with the island in the middle the links fold into the menu a little sooner, so the pill keeps its room */
@media (max-width: 1180px) {
  .nvk-pubnav__bar--island .nvk-pubnav__links { display: none; }
  .nvk-pubnav__bar--island .nvk-pubnav__menubtn { display: inline-flex; }
}
@media (min-width: 1041px) and (max-width: 1180px) { .nvk-pubnav__bar--island ~ .nvk-pubnav__sheet:not([hidden]) { display: flex; } }
@media (max-width: 760px) {
  .nvk-pubnav { top: calc(var(--space-3) + env(safe-area-inset-top, 0px)); margin-top: var(--space-3); padding: 0 var(--space-3); }
  .nvk-pubnav__bar { height: 60px; padding: 0 var(--space-2) 0 10px; }
  .nvk-pubnav__brand { gap: var(--space-2); padding-right: 0; }
  .nvk-pubnav__logo { width: 36px; height: 36px; }
  .nvk-pubnav__name { font-size: 17px; }
  .nvk-pubnav__brand .nvk-brandlogo--wordmark { display: none; }
  .nvk-pubnav__brand .nvk-brandlogo--emblem { display: inline-block; }
  .nvk-pubnav__end > .nvk-pubnav__look, .nvk-pubnav__wide { display: none; }
  .nvk-pubnav__pill { padding: 0 var(--space-4); font-size: 14px; }
  .nvk-pubnav__sheet { left: var(--space-3); right: var(--space-3); }
  .nvk-pubnav__bar--island .nvk-pubnav__end > .nvk-pubnav__pill { display: none; }
  /* the wordmark gives way to the island but stays the home link's name for screen readers */
  .nvk-pubnav__bar--island .nvk-pubnav__name { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
  .nvk-pubnav__bar--island .nvk-pubnav__brand { justify-content: center; width: 44px; }
  .nvk-pubnav__bar--island ~ .nvk-pubnav__sheet .nvk-pubnav__sheet-cta { display: inline-flex; }
}
@media (max-width: 359px) { .nvk-pubnav__name { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .nvk-pubnav__link, .nvk-pubnav__chev, .nvk-pubnav__row, .nvk-pubnav__round, .nvk-pubnav__pill { transition: none; }
}
}

/* PublicShell */
@layer components{
.nvk-public { position: relative; min-height: 100vh; display: flex; flex-direction: column; color: var(--ui-fg); font-family: var(--body);
  --_cloud: rgba(255, 255, 255, .85); --_haze: #fff;
  background: var(--nvk-sky-image, radial-gradient(ellipse 60% 22% at 12% 24%, var(--_cloud), transparent 70%), radial-gradient(ellipse 50% 18% at 86% 14%, var(--_cloud), transparent 70%),
    linear-gradient(180deg, color-mix(in srgb, var(--ui-brand) 38%, var(--_haze)) 0, color-mix(in srgb, var(--ui-brand) 12%, var(--_haze)) 360px, var(--ui-bg) 760px)) no-repeat top / cover; background-color: var(--ui-bg); }
/* Daybreak Night: the same sky after dark. The clouds are a faint wash of the text colour and the blue fades into the night
   background instead of white, so the content stands on a dark backdrop (a painted --nvk-sky-image still replaces it). */
[data-theme="daybreak-dark"] .nvk-public { --_cloud: color-mix(in srgb, var(--ui-fg) 7%, transparent); --_haze: var(--ui-bg); }
.nvk-public__main { flex: 1 1 auto; width: 100%; max-width: 1100px; margin: 0 auto; padding: var(--space-5) var(--space-4) var(--space-7); }
.nvk-public__main:not(.nvk-public__main--framed) { max-width: none; padding: 0; }
.nvk-public__panel { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-4); background: color-mix(in srgb, var(--ui-surface-2) 92%, transparent); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); }
/* The Discord bubble and the back-to-top button share one column in the corner (the button under the bubble), above the Sage
   launcher (--nvk-corner-under, BackToTop.css), so neither ever covers the other at any width. */
.nvk-public__float { position: fixed; right: 0; bottom: calc(var(--space-4) + var(--nvk-corner-under, 0px)); z-index: 40; display: flex; flex-direction: column; align-items: flex-end; gap: var(--space-3); }
.nvk-public__float > .nvk-totop { position: static; }
.nvk-public__float > .nvk-chat { margin-right: var(--space-4); }   /* the to-top under it is an edge tab (BackToTop.css); the bubble keeps its corner inset */
@media (max-width: 600px) { .nvk-public__main { padding: var(--space-4) var(--space-3) var(--space-6); } }
/* The floating PublicNav is position: sticky. The legacy sheets set body { overflow-x: hidden }, which makes body a scroll container that never
   scrolls, so a sticky bar would scroll away with the page; clip cuts the overflow the same way without making a scroll container (html keeps hidden).
   The second selector is the Anime Sky legacy chrome, whose bar sits straight in body (themes/nirvana/header.php, owner 2026-10-17). The third is the
   signed-in AppShell, whose side menu is sticky too: under hidden it scrolled away and left an empty column (owner 2026-10-19: keep it in view everywhere). */
body:has(> .nvk-public), body:has(> .nvk-pubnav), body:has(> .nvk-app) { overflow-x: clip; }
/* --nvk-bar-stick: where a page's own sticky bars and rails stop, just under the floating bar (its 16px / 12px float + 64px / 60px + an 8px gap).
   The legacy sheets read it with their old value as the fallback (cockpit.css .nvcp-bar, nirvana.css, season.css), so a page without the bar is unchanged.
   It is set on the root, so the viewport's scroll-padding can use it too: a keyboard focus that scrolls the page, an #anchor jump and
   scrollIntoView all stop with the target below the bar instead of under it (axe target-size "partially obscured" by the bar). */
:root:has(> body > .nvk-public), :root:has(> body > .nvk-pubnav) { --nvk-bar-stick: calc(64px + var(--space-4) + var(--space-2)); scroll-padding-top: var(--nvk-bar-stick); }
@media (max-width: 760px) { :root:has(> body > .nvk-public), :root:has(> body > .nvk-pubnav) { --nvk-bar-stick: calc(60px + var(--space-3) + var(--space-2)); } }
}

/* RankCard */
@layer components{
.nvk-rank { display: flex; align-items: center; gap: var(--space-4); min-width: 0; padding: var(--space-4); background: var(--ui-surface); color: var(--ui-fg);
  border: 1px solid var(--ui-line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.nvk-rank__fig { position: relative; flex: none; }
.nvk-rank__badge { position: absolute; right: -6px; bottom: -4px; min-width: 24px; padding: 1px 6px; border-radius: var(--radius-pill); background: var(--ui-danger); color: var(--ui-bg); font-size: 11px; font-weight: 700; line-height: 16px; text-align: center; }
.nvk-rank__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; font-size: 14px; line-height: 20px; }
.nvk-rank__top { margin: 0; display: flex; align-items: center; gap: 6px; font-weight: 700; color: var(--ui-link); }
.nvk-rank__top .nvk-icon { color: var(--ui-ok); }
.nvk-rank__line { margin: 0; overflow-wrap: anywhere; }
.nvk-rank__k { color: var(--ui-fg-3); }
}

/* RankList */
@layer components{
/* RankList (owner-picked Option A, 2026-10-19): capsule rows that spring in one after another. */
.nvk-ranklist { --rk-cols: 3; display: flex; flex-direction: column; gap: var(--space-2); }
.nvk-ranklist--c1 { --rk-cols: 1; } .nvk-ranklist--c2 { --rk-cols: 2; } .nvk-ranklist--c4 { --rk-cols: 4; } .nvk-ranklist--c5 { --rk-cols: 5; }
.nvk-ranklist__head, .nvk-ranklist__row { display: grid; grid-template-columns: 52px 52px minmax(0, 2fr) repeat(var(--rk-cols), minmax(0, 1fr)); gap: var(--space-3); align-items: center; }
.nvk-ranklist__head { padding: 0 24px 0 8px; font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-ranklist__rows { display: flex; flex-direction: column; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }
.nvk-ranklist__row { margin: 0; padding: 6px 24px 6px 6px; border-radius: var(--radius-pill); background: var(--ui-surface); box-shadow: var(--shadow-sm); color: var(--ui-fg); font: 500 15px/20px var(--body); list-style: none; transition: transform var(--t-spring-fast) var(--ease-spring); }
.nvk-ranklist__row:hover { transform: translateY(-3px); }
.nvk-ranklist__row.is-me { background: var(--ui-brand-tint); box-shadow: 0 0 0 2px var(--ui-brand); }
.nvk-ranklist__row[hidden] { display: none; }
.nvk-ranklist__rk { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-gold); font: 700 17px/1 var(--disp); }
.nvk-ranklist__pic { display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; }
.nvk-ranklist__pic .nvk-anim { --w: 52px; --h: 52px; }
.nvk-ranklist__img { display: block; max-width: 52px; max-height: 52px; object-fit: contain; }
.nvk-ranklist__logo { display: block; width: 48px; height: 48px; }
.nvk-ranklist__who { display: flex; flex-direction: column; min-width: 0; }
.nvk-ranklist__name { font: 700 17px/22px var(--disp); text-decoration: none; overflow-wrap: anywhere; }
a.nvk-ranklist__name:hover { text-decoration: underline; }
a.nvk-ranklist__name:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; border-radius: var(--radius-sm); }
.nvk-ranklist__you { font: 600 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-ranklist__sub { font: 600 13px/18px var(--body); }
.nvk-ranklist__cell { min-width: 0; overflow-wrap: anywhere; }
.nvk-ranklist__k { display: none; }
/* The entrance only with motion on (2026-10-22, One left menu follow-ups): the start state used to sit in the base rule, so a look that turns
   animation off for reduced motion (the Anime sheet) left every row invisible. Without motion it is simply there. */
@media (prefers-reduced-motion: no-preference) {
  .nvk-ranklist__row { opacity: 0; transform: translateY(14px); animation: nvk-ranklist-in var(--t-spring) var(--ease-spring) forwards; }
  .nvk-ranklist__row:nth-child(2) { animation-delay: 40ms; } .nvk-ranklist__row:nth-child(3) { animation-delay: 80ms; } .nvk-ranklist__row:nth-child(4) { animation-delay: 120ms; }
  .nvk-ranklist__row:nth-child(5) { animation-delay: 160ms; } .nvk-ranklist__row:nth-child(n+6) { animation-delay: 200ms; }
  .nvk-ranklist__row.is-flash { animation: nvk-ranklist-flash 1200ms var(--ease-spring) 1; }
}
@keyframes nvk-ranklist-in { to { opacity: 1; transform: none; } }
@keyframes nvk-ranklist-flash { 0% { transform: scale(1); } 30% { transform: scale(1.02); } 100% { transform: none; } }
@media (max-width: 860px) {
  .nvk-ranklist__head { display: none; }
  .nvk-ranklist__row { grid-template-columns: 46px 48px minmax(0, 1fr); row-gap: 0; border-radius: 26px; padding: 8px 16px 8px 6px; }
  .nvk-ranklist__rk, .nvk-ranklist__pic { grid-row: 1 / span 4; align-self: start; }
  .nvk-ranklist__cell { grid-column: 3; display: flex; gap: 6px; font: 500 13px/18px var(--body); color: var(--ui-fg-2); }
  .nvk-ranklist__k { display: inline; color: var(--ui-fg-3); }
}
/* Oath hub H3: the Hardcore badge under the name (kit HcBadge in the per-item `badge` slot). */
.nvk-ranklist__hc { display: flex; margin: 2px 0 0; line-height: 0; }
}

/* RankPodium */
@layer components{
/* RankPodium (owner-picked Option A, 2026-10-19): the top three on island capsules. Only transform and opacity animate. */
.nvk-podium { display: grid; grid-template-columns: 1fr 1.15fr 1fr; gap: var(--space-4); align-items: end; margin: 0; padding: 0; list-style: none; }
.nvk-podium__card { display: flex; flex-direction: column; align-items: center; gap: 6px; margin: 0; padding: var(--space-5) var(--space-4); border-radius: 36px; background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island); text-align: center; list-style: none; }
.nvk-podium__card--p1 { padding-top: var(--space-6); padding-bottom: var(--space-6); background: var(--ui-island-gold); color: var(--ui-island-gold-fg); box-shadow: var(--shadow-lg); }
.nvk-podium__medal { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 22px/1 var(--disp); }
.nvk-podium__card--p1 .nvk-podium__medal { width: 64px; height: 64px; background: var(--ui-island-gold-fg); font-size: 28px; }
.nvk-podium__pic { display: flex; align-items: flex-end; justify-content: center; width: 128px; height: 128px; }
.nvk-podium__img { display: block; max-width: 128px; max-height: 128px; object-fit: contain; image-rendering: auto; }
.nvk-podium__logo { display: block; width: 104px; height: 104px; }
.nvk-podium__name { margin-top: 4px; font: 700 22px/26px var(--disp); text-decoration: none; overflow-wrap: anywhere; }
a.nvk-podium__name:hover { text-decoration: underline; }
a.nvk-podium__name:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; border-radius: var(--radius-sm); }
.nvk-podium__card--p1 .nvk-podium__name, .nvk-podium__card--p1 .nvk-podium__sub { color: var(--ui-island-gold-fg); }
.nvk-podium__sub { font: 600 14px/20px var(--body); }
.nvk-podium__stat { margin-top: 4px; font: 700 28px/32px var(--disp); }
.nvk-podium__sl { font: 700 11px/16px var(--body); letter-spacing: .1em; text-transform: uppercase; opacity: .8; }
/* The entrance only with motion on (2026-10-22, One left menu follow-ups): the start state used to sit in the base rule, so a look that turns
   animation off for reduced motion (the Anime sheet) left the three cards invisible and shrunk. Without motion it is simply there. */
@media (prefers-reduced-motion: no-preference) {
  .nvk-podium__card { opacity: 0; transform: translateY(24px) scale(.94); animation: nvk-podium-in var(--t-spring) var(--ease-spring) forwards; }
  .nvk-podium__card--p1 { animation-delay: 80ms; }
  .nvk-podium__card--p3 { animation-delay: 160ms; }
}
@keyframes nvk-podium-in { to { opacity: 1; transform: none; } }
@media (max-width: 860px) {
  .nvk-podium { grid-template-columns: minmax(0, 1fr); gap: var(--space-3); }
  .nvk-podium__card--p1 { order: -1; }
  .nvk-podium__card, .nvk-podium__card--p1 { display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; grid-template-rows: auto auto; column-gap: var(--space-3); align-items: center; padding: var(--space-3) var(--space-4) var(--space-3) var(--space-3); border-radius: 28px; text-align: left; }
  .nvk-podium__medal, .nvk-podium__card--p1 .nvk-podium__medal { grid-row: 1 / 3; width: 44px; height: 44px; font-size: 19px; }
  .nvk-podium__pic { grid-row: 1 / 3; width: 64px; height: 64px; }
  .nvk-podium__img { max-width: 64px; max-height: 64px; } .nvk-podium__logo { width: 60px; height: 60px; }
  .nvk-podium__name { margin: 0; font-size: 18px; line-height: 22px; } .nvk-podium__sub { grid-column: 3; }
  .nvk-podium__stat { grid-column: 4; grid-row: 1; margin: 0; font-size: 20px; line-height: 24px; text-align: right; } .nvk-podium__sl { grid-column: 4; grid-row: 2; text-align: right; }
}
/* an animated HD sprite strip (nv-ui.js data-nv-anim sets --f frames, --w/--h the frame size, --d the duration): a window over the strip */
.nvk-anim { position: relative; display: block; width: var(--w, 96px); height: var(--h, 128px); max-width: 100%; overflow: hidden; }
.nvk-anim__strip { position: absolute; left: 0; top: 0; display: block; height: 100%; width: auto; max-width: none; }
/* Oath hub H3: the Hardcore badge under the name (kit HcBadge in the per-item `badge` slot). */
.nvk-podium__hc { display: flex; justify-content: center; margin: 0; line-height: 0; }
}

/* SeasonChapters */
@layer components{
/* SeasonChapters (owner-picked Option B 'Island Now Rail', 2026-10-20): the chapter road, an island bar of anchor links along one long scroll. */
.nvk-chapters { padding: 6px; border-radius: var(--radius-pill); background: var(--ui-island); box-shadow: var(--shadow-island), inset 0 0 0 1px var(--ui-island-line); box-sizing: border-box; max-width: 100%; }
.nvk-chapters__list { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 6px; margin: 0; padding: 0; list-style: none; }
.nvk-chapters__a { display: flex; min-width: 0; align-items: center; gap: 10px; min-height: 52px; padding: 0 16px 0 6px; border-radius: var(--radius-pill); color: var(--ui-island-fg-2); text-decoration: none; box-sizing: border-box; transition: background var(--t-spring-fast) var(--ease-spring), color var(--t-spring-fast) var(--ease-spring); }
.nvk-chapters__a:hover { color: var(--ui-island-fg); background: var(--ui-island-2); }
.nvk-chapters__a:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 2px; }
.nvk-chapters__n { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 15px/1 var(--disp); }
.nvk-chapters__l { display: flex; flex-direction: column; min-width: 0; }
.nvk-chapters__l b { color: var(--ui-island-fg); font: 700 15px/20px var(--disp); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvk-chapters__l small { font: 500 12px/16px var(--body); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nvk-chapters__a[aria-current="true"] { background: var(--ui-island-fg); color: var(--ui-island-2); }
.nvk-chapters__a[aria-current="true"] b { color: var(--ui-island); }
.nvk-chapters__a[aria-current="true"] .nvk-chapters__n { background: var(--ui-island); }
@media (max-width: 760px) {
	.nvk-chapters { padding: 5px; }
	.nvk-chapters__list { gap: 4px; }
	.nvk-chapters__a { justify-content: center; min-height: 44px; padding: 0 10px; }
	.nvk-chapters__n, .nvk-chapters__l small { display: none; }
	.nvk-chapters__l b { font-size: 14px; }
}
@media (prefers-reduced-motion: reduce) { .nvk-chapters__a { transition: none; } }
}

/* SecurityRing */
@layer components{
.nvk-ring { display: inline-flex; flex-direction: column; align-items: center; gap: var(--space-2); }
.nvk-ring__num { display: inline-flex; align-items: center; justify-content: center; width: 88px; height: 88px; border-radius: 50%; border: 8px solid var(--ui-line); font-size: 20px; font-weight: 700; line-height: 1; color: var(--ui-fg); }
.nvk-ring.is-full .nvk-ring__num { border-color: var(--ui-ok); }
.nvk-ring__bar { width: 104px; height: 8px; accent-color: var(--ui-ok); }
}

/* ShelfTile */
@layer components{
/* ShelfTile (owner-picked Option A 'Island market' of 'NirvanaRO Bazaar', 2026-10-19): one shelf item as a white tile. */
.nvk-shelftile { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 10px 10px 16px; border-radius: 28px; background: var(--ui-surface); box-shadow: var(--shadow-sm); color: var(--ui-fg); text-align: center; text-decoration: none; min-width: 0; transition: transform var(--t-spring-fast) var(--ease-spring), box-shadow .2s; }
.nvk-shelftile:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
.nvk-shelftile:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.nvk-shelftile__art { display: flex; align-items: center; justify-content: center; width: 100%; aspect-ratio: 1; margin-bottom: 6px; border-radius: 20px; background: var(--ui-surface-2); }
.nvk-shelftile__img { width: 50%; height: auto; image-rendering: pixelated; }
.nvk-shelftile__ini { font: 700 40px/1 var(--disp); color: var(--ui-fg-3); }
.nvk-shelftile__name { font: 700 15px/20px var(--disp); overflow-wrap: anywhere; }
.nvk-shelftile__meta { font: 400 12px/16px var(--body); color: var(--ui-fg-3); }
.nvk-shelftile__price { font: 700 14px/18px var(--body); color: var(--ui-fg); }
.nvk-shelftile[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .nvk-shelftile { transition: none; } }
}

/* ShipLog */
@layer components{
/* ShipLog (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): the log as a white board with sky-dotted rows. */
.nvk-log { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; margin: 0; padding: var(--space-5) var(--space-6); border-radius: var(--radius-lg); background: var(--ui-surface); color: var(--ui-fg); border: 1px solid var(--ui-line); box-shadow: var(--shadow-sm); box-sizing: border-box; scroll-margin-top: 90px; }
.nvk-log__head { display: flex; flex-direction: column; gap: 4px; }
.nvk-log__h { margin: 0; padding: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); }
.nvk-log__s { margin: 0; font: 400 15px/22px var(--body); color: var(--ui-fg-2); }
.nvk-log__rows { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.nvk-log__row { display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; align-items: center; gap: var(--space-4); margin: 0; padding: var(--space-3) var(--space-3); border-top: 1px solid var(--ui-line); }
.nvk-log__row:first-child { border-top: 0; }
.nvk-log__row:not(:has(.nvk-log__w)) { grid-template-columns: minmax(0, 1fr) auto; }
.nvk-log__row.is-now { border-radius: var(--radius-md); background: var(--ui-sky-3); border-top-color: transparent; box-shadow: inset 0 0 0 2px var(--ui-brand); }
.nvk-log__row.is-now + .nvk-log__row { border-top-color: transparent; }
.nvk-log__w { display: inline-flex; align-items: center; gap: 8px; font: 600 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-log__w::before { content: ""; flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; background: var(--ui-sky); box-shadow: 0 0 0 3px var(--ui-sky-3); }
.nvk-log__b { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.nvk-log__t { margin: 0; font: 700 17px/22px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-log__x { font: 400 14px/20px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-log__end { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-2); }
.nvk-log__a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-4); border-radius: var(--radius-pill); background: var(--ui-brand); color: var(--ui-brand-fg); font: 700 14px/1 var(--body); text-decoration: none; }
.nvk-log__a:hover { background: var(--ui-brand-hi); color: var(--ui-brand-fg); }
@media (max-width: 760px) {
  .nvk-log { padding: var(--space-4); }
  .nvk-log__row, .nvk-log__row:not(:has(.nvk-log__w)) { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .nvk-log__end { justify-content: flex-start; }
}
}

/* SidebarNav */
@layer components{
/* The one left menu (owner pick 2026-10-22, canvas 'NirvanaRO One Menu': A's accordion, B's live badges). Sections (details) open one at a time;
 * folders are the second level; the current row is lit with a dot; badges are live words. Desktop rows 32px, phone drawer rows 44px. */
.nvk-sidenav { display: flex; flex-direction: column; gap: var(--space-2); color: var(--ui-fg); font-family: var(--body); min-width: 0; }
.nvk-sidenav ul { list-style: none; margin: 0; padding: 0; }
.nvk-sidenav summary { list-style: none; cursor: pointer; }
.nvk-sidenav summary::-webkit-details-marker { display: none; }

/* search */
.nvk-sidenav__find { display: flex; align-items: center; gap: var(--space-2); height: 40px; margin: 0 0 var(--space-1); padding: 0 var(--space-2) 0 var(--space-3); border: 1px solid var(--ui-line-strong);
  border-radius: var(--radius-sm); background: var(--ui-surface); color: var(--ui-fg-2); cursor: text; }
.nvk-sidenav__find:focus-within { border-color: var(--ui-focus); }
.nvk-sidenav__q { flex: 1; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0; background: transparent; box-shadow: none; outline: none; font: inherit; font-size: 14px; line-height: 20px; color: var(--ui-fg); border-radius: 4px; }
.nvk-sidenav__q:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-sidenav__q::placeholder { color: var(--ui-fg-2); }
.nvk-sidenav__q::-webkit-search-cancel-button { cursor: pointer; }
.nvk-sidenav__kbd { flex: none; margin: 0; padding: 1px 6px; border: 1px solid var(--ui-line-strong); border-radius: 6px; background: var(--ui-surface-2); font: inherit; font-size: 11px; font-weight: 700; line-height: 16px; color: var(--ui-fg-2); }
.nvk-sidenav__none { margin: 0; padding: var(--space-2) var(--space-3); font-size: 13px; line-height: 18px; color: var(--ui-fg-2); }

/* sections */
.nvk-sidenav__groups { display: flex; flex-direction: column; gap: 2px; }
.nvk-sidenav__sec { position: relative; display: flex; align-items: center; gap: var(--space-3); min-height: 36px; padding: 0 var(--space-2) 0 var(--space-3); border-radius: var(--radius-md);
  font-size: 14px; font-weight: 600; line-height: 20px; color: var(--ui-fg); }
.nvk-sidenav__sec > .nvk-icon { flex: none; color: var(--ui-fg-2); }
.nvk-sidenav__group.is-here > .nvk-sidenav__sec > .nvk-icon { color: var(--ui-link); }
.nvk-sidenav__sec:hover, .nvk-sidenav__circ:hover { background: var(--ui-sunken); }
.nvk-sidenav__group[open] > .nvk-sidenav__sec { background: var(--ui-surface-2); }
.nvk-sidenav__sec:focus-visible, .nvk-sidenav__circ:focus-visible, .nvk-sidenav__item:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: -1px; }
.nvk-sidenav__chev { display: inline-flex; margin-left: auto; color: var(--ui-fg-3); transition: transform var(--t-fast) var(--ease-rune); }
.nvk-sidenav__group[open] > .nvk-sidenav__sec > .nvk-sidenav__chev, .nvk-sidenav__fold[open] > .nvk-sidenav__circ > .nvk-sidenav__chev { transform: rotate(90deg); }
.nvk-sidenav__pip { flex: none; width: 8px; height: 8px; margin-left: auto; border-radius: 50%; background: var(--ui-brand); }
.nvk-sidenav__pip + .nvk-sidenav__chev { margin-left: var(--space-1); }
.nvk-sidenav__pip--owed { background: var(--ui-cta); box-shadow: 0 0 0 1px var(--ui-cta-fg); }
.nvk-sidenav__pip--live { background: var(--ui-ok); }
.nvk-sidenav__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nvk-sidenav__list { display: flex; flex-direction: column; gap: 1px; padding: 2px 0 var(--space-2); }

/* the second level: folders (Cockpit circles, Halls shelves, Mission Control decks) */
.nvk-sidenav__fold { margin-left: var(--space-2); }
.nvk-sidenav__circ { display: flex; align-items: center; gap: var(--space-2); min-height: 30px; padding: 0 var(--space-2) 0 var(--space-3); border-radius: var(--radius-sm);
  font-size: 13px; font-weight: 600; line-height: 18px; color: var(--ui-fg-2); }
.nvk-sidenav__fold.is-here > .nvk-sidenav__circ { color: var(--ui-fg); }
.nvk-sidenav__num { flex: none; display: inline-grid; place-items: center; min-width: 24px; height: 20px; padding: 0 5px; border-radius: var(--radius-pill); background: var(--ui-sunken);
  font-size: 10.5px; font-weight: 700; line-height: 1; color: var(--ui-fg-2); }
.nvk-sidenav__fold.is-here > .nvk-sidenav__circ > .nvk-sidenav__num, .nvk-sidenav__item.is-active > .nvk-sidenav__num { background: var(--ui-island); color: var(--ui-island-gold); }
.nvk-sidenav__tree { display: flex; flex-direction: column; gap: 1px; margin: 0 0 var(--space-1) 22px; padding-left: var(--space-2); border-left: 1px solid var(--ui-line); }

/* rows */
.nvk-sidenav__item { position: relative; display: flex; align-items: center; gap: var(--space-2); min-height: 32px; padding: 0 var(--space-2) 0 var(--space-6); border-radius: var(--radius-sm);
  font-size: 13.5px; font-weight: 500; line-height: 18px; text-decoration: none; color: var(--ui-fg-2); }
.nvk-sidenav__tree .nvk-sidenav__item { padding-left: var(--space-4); }
.nvk-sidenav__item:hover { background: var(--ui-sunken); color: var(--ui-fg); }
.nvk-sidenav__item.is-active { background: var(--ui-brand-tint); color: var(--ui-link); font-weight: 700; }
.nvk-sidenav__dot { position: absolute; left: var(--space-3); top: 50%; width: 6px; height: 6px; margin-top: -3px; border-radius: 50%; background: transparent; }
.nvk-sidenav__tree .nvk-sidenav__dot { left: 5px; }
.nvk-sidenav__item.is-active .nvk-sidenav__dot { background: var(--ui-brand); }
.nvk-sidenav__badge { flex: none; margin-left: auto; padding: 1px 8px; border-radius: var(--radius-pill); font-size: 11px; font-weight: 700; line-height: 16px; white-space: nowrap;
  background: var(--ui-sunken); color: var(--ui-fg-2); }
.nvk-sidenav__badge--owed { background: var(--ui-cta); color: var(--ui-cta-fg); }
.nvk-sidenav__badge--new { background: var(--ui-brand); color: var(--ui-brand-fg); }
.nvk-sidenav__badge--live { background: transparent; color: var(--ui-ok); box-shadow: inset 0 0 0 1px currentColor; }
.nvk-sidenav__badge--warn { background: transparent; color: var(--ui-danger); box-shadow: inset 0 0 0 1px currentColor; }
.nvk-sidenav [hidden] { display: none; }

/* searching: every section and folder with a hit is open (nv-ui.js lifts the one-open rule while a word is typed) */
.nvk-sidenav.is-searching .nvk-sidenav__chev { visibility: hidden; }
.nvk-sidenav__item.is-first { background: var(--ui-surface-2); color: var(--ui-fg); }

/* motion */
.nvk-sidenav__item, .nvk-sidenav__sec, .nvk-sidenav__find { transition: padding var(--t-spring) var(--ease-spring), opacity var(--t-spring-fast) var(--ease-spring); }
.nvk-sidenav__label { transition: opacity var(--t-spring-fast) var(--ease-spring); }

/* phone drawer: 44px rows */
@media (max-width: 860px) {
  .nvk-sidenav__find { height: 48px; }
  .nvk-sidenav__q { font-size: 16px; }
  .nvk-sidenav__kbd { display: none; }
  .nvk-sidenav__sec, .nvk-sidenav__circ, .nvk-sidenav__item { min-height: 44px; font-size: 15px; }
  .nvk-sidenav__badge { font-size: 12px; }
}

/* the AppShell icon rail (.nvk-app.is-rail, desktop only): each section is its icon; the hovered or focused one opens beside the rail as a flyout */
@media (min-width: 861px) {
  .nvk-app.is-rail .nvk-sidenav__find { justify-content: center; width: 44px; height: 44px; margin: 0 auto var(--space-1); padding: 0; border-color: transparent; background: transparent; cursor: pointer; }
  .nvk-app.is-rail .nvk-sidenav__find:hover { background: var(--ui-sunken); }
  .nvk-app.is-rail .nvk-sidenav__q, .nvk-app.is-rail .nvk-sidenav__kbd, .nvk-app.is-rail .nvk-sidenav__none { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip-path: inset(50%); opacity: 0; }
  .nvk-app.is-rail .nvk-sidenav__sec { justify-content: center; gap: 0; min-height: 44px; padding: 0; }
  .nvk-app.is-rail .nvk-sidenav__sec > .nvk-sidenav__label { width: 0; opacity: 0; }
  .nvk-app.is-rail .nvk-sidenav__sec > .nvk-sidenav__chev { display: none; }
  .nvk-app.is-rail .nvk-sidenav__sec > .nvk-sidenav__pip { position: absolute; top: 6px; right: 8px; margin: 0; box-shadow: 0 0 0 2px var(--ui-surface); }
  .nvk-app.is-rail .nvk-sidenav__group.is-here > .nvk-sidenav__sec { background: var(--ui-brand-tint); }
  .nvk-app.is-rail .nvk-sidenav__group[open] > .nvk-sidenav__sec { background: transparent; }
  .nvk-app.is-rail .nvk-sidenav__group.is-here[open] > .nvk-sidenav__sec { background: var(--ui-brand-tint); }
  .nvk-app.is-rail .nvk-sidenav__group:not(.is-fly) > .nvk-sidenav__list { display: none; }
  .nvk-app.is-rail .nvk-sidenav__group.is-fly > .nvk-sidenav__sec { background: var(--ui-surface-2); color: var(--ui-fg); }
  .nvk-app.is-rail .nvk-sidenav__group.is-fly > .nvk-sidenav__list { position: fixed; z-index: 70; left: calc(var(--_side) - 6px); top: var(--nvk-fly-top, 80px); width: 264px;
    max-height: calc(100vh - var(--nvk-fly-top, 80px) - 12px); overflow-y: auto; padding: var(--space-2); border: 1px solid var(--ui-line); border-radius: var(--radius-lg);
    background: var(--ui-surface); box-shadow: var(--shadow-lg); }
  .nvk-app.is-rail .nvk-sidenav__group.is-fly > .nvk-sidenav__list::before { content: attr(aria-label); display: block; padding: var(--space-1) var(--space-2) var(--space-2); margin-bottom: var(--space-1);
    border-bottom: 1px solid var(--ui-line); font-size: 14px; font-weight: 700; line-height: 20px; color: var(--ui-fg); }
}
}

/* SiteFooter */
@layer components{
.nvk-footer { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--space-5); padding: var(--space-6) var(--space-4) var(--space-5); background: var(--ui-surface); color: var(--ui-fg); border-top: 1px solid var(--ui-line); font-family: var(--body); }
/* position + z-index (audit fixes B, 2026-10-21): a short page's wallpaper (.nvl-bg, 640px tall) runs past the page and was painted over the footer's first row; the footer now stacks above it. */
.nvk-footer__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: var(--space-6); width: 100%; max-width: 1100px; margin: 0 auto; }
.nvk-footer__brand { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.nvk-footer__mark { display: block; height: 56px; width: auto; }
.nvk-footer__blurb { margin: 0; max-width: 40ch; font-size: 14px; line-height: 22px; color: var(--ui-fg-2); }
.nvk-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: var(--space-5); }
.nvk-footer__col { display: flex; flex-direction: column; gap: 0; }
/* Every footer link is a 44 px target (the column links touch, one after another; Terms and Privacy too). */
.nvk-footer__coltitle { margin: 0 0 var(--space-1); font-family: var(--disp); font-size: 18px; font-weight: 600; line-height: 24px; color: inherit; text-transform: none; letter-spacing: 0; }
.nvk-footer__link { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-decoration: none; color: var(--ui-fg-2); }
.nvk-footer__link:hover { color: var(--ui-link); text-decoration: underline; }
.nvk-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-3); width: 100%; max-width: 1100px; margin: 0 auto; padding-top: var(--space-4); border-top: 1px solid var(--ui-line); }
.nvk-footer__copy { margin: 0; max-width: 72ch; font-size: 12px; line-height: 18px; color: var(--ui-fg-3); }
.nvk-footer__legal { display: flex; flex-wrap: wrap; column-gap: var(--space-4); font-size: 12px; }
.nvk-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; color: var(--ui-fg-2); text-decoration: none; }
.nvk-footer__legal a:hover { color: var(--ui-link); text-decoration: underline; }
@media (max-width: 760px) { .nvk-footer__top { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); } }
}

/* SkyAura */
@layer components{
/* SkyAura (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): Haki rings around class art or a number. */
.nvk-aura { position: relative; display: block; width: 200px; aspect-ratio: 1; flex: 0 0 auto; }
.nvk-aura--sm { width: 120px; }
.nvk-aura--lg { width: min(300px, 72vw); }
.nvk-aura__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.nvk-aura__glow { fill: color-mix(in srgb, var(--ui-cloud) 60%, transparent); }
.nvk-aura__track { fill: none; stroke: color-mix(in srgb, var(--ui-cloud) 70%, var(--ui-line)); stroke-width: 12; }
.nvk-aura__ring { fill: none; stroke-width: 12; stroke-linecap: round; animation: nvk-aura-fill 1.4s var(--ease-spring-fallback) both; }
.nvk-aura__ring--arm { stroke: var(--ui-hk-arm); }
.nvk-aura__ring--obs { stroke: var(--ui-hk-obs); }
.nvk-aura__ring--hao { stroke: var(--ui-tier-legendary); }
.nvk-aura--sm .nvk-aura__track, .nvk-aura--sm .nvk-aura__ring { stroke-width: 22; }
.nvk-aura__v { font: 700 72px/1 var(--disp); fill: var(--ui-fg); font-variant-numeric: tabular-nums; }
.nvk-aura__u { font: 600 26px/1 var(--body); fill: var(--ui-fg-2); }
.nvk-aura__art { position: absolute; left: 50%; bottom: 9%; width: 52%; height: 74%; object-fit: contain; object-position: 50% 100%; transform: translateX(-50%); }
@keyframes nvk-aura-fill { from { stroke-dasharray: 0 999; } }
@media (prefers-reduced-motion: reduce) { .nvk-aura__ring { animation: none; } }
}

/* SkyCastle */
@layer components{
/* SkyCastle (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): a Throne as a castle above the clouds. */
.nvk-castle { display: flex; flex-direction: column; min-width: 0; margin: 0; overflow: hidden; border-radius: var(--radius-lg); background: var(--ui-surface); border: 1px solid var(--ui-line); box-shadow: var(--shadow-sm); color: var(--ui-fg); transition: transform var(--t-spring-fast) var(--ease-spring-fallback), box-shadow var(--t-fast) var(--ease-rune); }
.nvk-castle:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.nvk-castle__sky { position: relative; height: 170px; overflow: hidden; background: linear-gradient(180deg, var(--ui-sky), var(--ui-sky-3)); }
.nvk-castle--hao .nvk-castle__sky { background: linear-gradient(180deg, color-mix(in srgb, var(--ui-tier-legendary) 55%, var(--ui-sky-3)), var(--ui-sky-3)); }
.nvk-castle__art { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 140px; }
.nvk-castle__keep { fill: var(--ui-cloud); stroke: var(--ui-line-strong); }
.nvk-castle--hao .nvk-castle__keep { fill: var(--ui-tier-legendary); }
.nvk-castle--open .nvk-castle__keep { fill: color-mix(in srgb, var(--ui-cloud) 70%, transparent); stroke-dasharray: 4 4; }
.nvk-castle__flag { fill: var(--ui-hk-arm); }
.nvk-castle--obs .nvk-castle__flag { fill: var(--ui-hk-obs); }
.nvk-castle--hao .nvk-castle__flag { fill: var(--ui-cta); }
.nvk-castle__door { fill: color-mix(in srgb, var(--ui-fg) 12%, transparent); }
.nvk-castle__cloud { fill: var(--ui-cloud); }
.nvk-castle__who { position: absolute; right: 10px; bottom: 4px; width: 84px; height: 124px; object-fit: contain; object-position: 50% 100%; }
.nvk-castle__b { display: flex; flex-direction: column; gap: var(--space-2); padding: var(--space-4); }
.nvk-castle__e { margin: 0; font: 700 12px/16px var(--body); letter-spacing: .06em; text-transform: uppercase; color: var(--ui-link); }
.nvk-castle__h { margin: 0; font: 700 18px/24px var(--disp); text-transform: none; letter-spacing: 0; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-castle__row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.nvk-castle__cap { display: inline-flex; align-items: baseline; gap: 6px; padding: 4px 12px; border-radius: var(--radius-pill); background: var(--ui-capsule); color: var(--ui-capsule-fg); }
.nvk-castle__cap b { font: 700 16px/22px var(--disp); font-variant-numeric: tabular-nums; }
.nvk-castle__cap small { font: 500 12px/16px var(--body); color: var(--ui-capsule-fg-2); }
.nvk-castle__dot { width: 8px; height: 8px; align-self: center; border-radius: 50%; background: var(--ui-tier-uncommon); }
.nvk-castle__who-t { font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-castle__line { margin: 0; font: 400 13px/19px var(--body); color: var(--ui-fg-2); overflow-wrap: anywhere; }
.nvk-castle__acts { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: auto; padding-top: var(--space-2); }
@media (prefers-reduced-motion: reduce) { .nvk-castle, .nvk-castle:hover { transition: none; transform: none; } }
}

/* SkyPanel */
@layer components{
/* SkyPanel (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): the sky hero with its cloud bank, and the white boards. */
.nvk-skyp { position: relative; isolation: isolate; overflow: hidden; margin: 0; padding: var(--space-5); border-radius: var(--radius-lg); background: var(--ui-surface); border: 1px solid var(--ui-line); box-shadow: var(--shadow-sm); color: var(--ui-fg); }
.nvk-skyp__in { position: relative; z-index: 1; display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.nvk-skyp__main { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
.nvk-skyp__e { margin: 0; font: 700 13px/18px var(--body); letter-spacing: .06em; text-transform: uppercase; color: var(--ui-link); }
.nvk-skyp__h { margin: 0; font: 700 24px/30px var(--disp); letter-spacing: -.01em; text-transform: none; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-skyp__s { margin: 0; max-width: 62ch; font: 400 15px/1.55 var(--body); color: var(--ui-fg-2); }
.nvk-skyp__acts { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.nvk-skyp__body { display: flex; flex-direction: column; gap: var(--space-4); min-width: 0; }
.nvk-skyp__aside { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--space-3); min-width: 0; }
.nvk-skyp--hero { padding: var(--space-6); border: 0; border-radius: calc(var(--radius-lg) + 8px); background: linear-gradient(180deg, var(--ui-sky) 0%, var(--ui-sky-2) 55%, var(--ui-sky-3) 100%); box-shadow: var(--shadow-md); color: var(--ui-sky-fg); }
.nvk-skyp--hero .nvk-skyp__in { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); align-items: center; gap: var(--space-5); }
.nvk-skyp--hero .nvk-skyp__h { font-size: 40px; line-height: 1.05; color: var(--ui-sky-fg); }
.nvk-skyp--hero .nvk-skyp__s { font-size: 16px; color: var(--ui-sky-fg-2); }
.nvk-skyp--hero .nvk-skyp__e { color: var(--ui-sky-fg-2); }
/* Anime (2026-10-25, was the skin's audit-B rules): that look's --ui-fg is light, the hero is light sky. The sk-* tokens exist only in Anime, so in every
   other look these resolve to the components' own defaults (an undefined var() takes its fallback, and a property remapped to an undefined one stays undefined). */
.nvk-skyp--hero { --nvk-dslot-n: var(--sk-onsky-fg); --nvk-dslot-l: var(--sk-onsky-fg-2); --sk-chip-bg: var(--sk-hero-chip-bg); --sk-chip-bd: var(--sk-hero-chip-bd); --sk-chip-fg: var(--sk-onsky-fg); --sk-chip-cta-bg: var(--sk-hero-chip-bg); --sk-chip-cta-bd: var(--sk-hero-chip-bd); --sk-chip-cta-fg: var(--sk-onsky-fg); }
.nvk-skyp--hero .nvk-btn--soft { --_fg: var(--sk-onsky-fg, color-mix(in srgb, var(--ui-link) 75%, var(--ui-fg))); --_bg: var(--sk-hero-soft-bg, color-mix(in srgb, var(--ui-brand) 14%, transparent)); }
.nvk-skyp--clouds { padding-bottom: calc(var(--space-6) + 28px); }
.nvk-skyp__clouds { position: absolute; left: -10%; right: -10%; bottom: -34px; height: 120px; z-index: 0; pointer-events: none; }
.nvk-skyp__clouds i { position: absolute; bottom: 0; border-radius: 999px; background: var(--ui-cloud); box-shadow: inset 0 -8px 24px color-mix(in srgb, var(--ui-sky) 25%, transparent); animation: nvk-skyp-drift 14s ease-in-out infinite alternate; }
.nvk-skyp__clouds i:nth-child(1) { left: 2%; width: 34%; height: 86px; }
.nvk-skyp__clouds i:nth-child(2) { left: 26%; width: 30%; height: 112px; animation-delay: -4s; }
.nvk-skyp__clouds i:nth-child(3) { left: 52%; width: 28%; height: 76px; animation-delay: -8s; }
.nvk-skyp__clouds i:nth-child(4) { left: 74%; width: 34%; height: 104px; animation-delay: -2s; }
@keyframes nvk-skyp-drift { to { transform: translateX(18px); } }
@media (max-width: 760px) {
  .nvk-skyp--hero { padding: var(--space-5); }
  .nvk-skyp--hero .nvk-skyp__in { grid-template-columns: minmax(0, 1fr); }
  .nvk-skyp--hero .nvk-skyp__h { font-size: 30px; }
}
@media (prefers-reduced-motion: reduce) { .nvk-skyp__clouds i { animation: none; } }
/* audit fixes B (2026-10-21): a ghost button on a sky panel takes the panel's own text colour, so it stays readable on a light sky in every look
   (it used --ui-fg, which is light on the Anime look: 1.2:1). */
.nvk-skyp .nvk-btn--ghost { --_fg: currentColor; --_bd: color-mix(in srgb, currentColor 32%, transparent); }
}

/* Sparkline */
@layer components{
.nvk-spark { --_c: var(--ui-brand); display: block; width: 120px; height: 40px; overflow: visible; }
.nvk-spark--ok { --_c: var(--ui-ok); }
.nvk-spark--warn { --_c: var(--ui-warn); }
.nvk-spark--danger { --_c: var(--ui-danger); }
.nvk-spark__line { fill: none; stroke: var(--_c); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.nvk-spark__area { fill: color-mix(in srgb, var(--_c) 14%, transparent); stroke: none; }
.nvk-spark__end { fill: var(--_c); }
}

/* StatCard */
@layer components{
.nvk-stat { display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); min-width: 0; padding: var(--space-4);
  background: var(--ui-surface); color: var(--ui-fg); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); box-shadow: var(--shadow-sm); }
.nvk-stat__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; align-items: flex-start; }
.nvk-stat__label { margin: 0; font-family: var(--disp); font-size: 18px; line-height: 26px; font-weight: 600; }
.nvk-stat__value { margin: 0 0 var(--space-1); font-size: 15px; line-height: 22px; color: var(--ui-fg-3); font-variant-numeric: tabular-nums; }
.nvk-stat .nvk-spark { flex: none; }
.nvk-stat--value-first .nvk-stat__text { flex-direction: column-reverse; }
.nvk-stat--value-first .nvk-stat__value { margin: 0; font: 700 28px/34px var(--disp); color: var(--ui-fg); }
.nvk-stat--value-first .nvk-stat__label { font: 700 12px/16px var(--body); letter-spacing: .06em; text-transform: uppercase; color: var(--ui-fg-3); }
.nvk-stat--ok .nvk-stat__value { color: var(--ui-ok); }
.nvk-stat--warn .nvk-stat__value { color: var(--ui-warn); }
.nvk-stat--danger .nvk-stat__value { color: var(--ui-danger); }
}

/* StepTrio */
@layer components{
/* StepTrio (owner-picked Option A, 2026-10-18): three island capsules joined by a glowing path. Only transform and opacity animate. */
.nvk-steptrio { display: flex; flex-direction: column; align-items: center; gap: var(--space-6); padding: var(--space-7) var(--space-4) var(--space-8); text-align: center; }
.nvk-steptrio__head { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); }
.nvk-steptrio__h { margin: 0; border: 0; font: 700 40px/44px var(--disp); color: var(--ui-fg); text-wrap: balance; }
.nvk-steptrio__lead { margin: 0; font: 400 17px/26px var(--body); color: var(--ui-fg-2); }
.nvk-steptrio__row { position: relative; display: flex; align-items: center; justify-content: center; gap: var(--space-6); width: 100%; max-width: 1040px; margin: 0; padding: var(--space-5) 0; list-style: none; }
.nvk-steptrio__item { position: relative; z-index: 1; margin: 0; padding: 0; list-style: none; }
.nvk-steptrio__track { position: absolute; z-index: 0; left: 12%; right: 12%; top: 50%; height: 4px; margin: -2px 0 0; padding: 0; border-radius: var(--radius-pill); background: color-mix(in srgb, var(--ui-fg) 12%, transparent); overflow: hidden; list-style: none; }
.nvk-steptrio__fill { position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(90deg, var(--ui-island-blue, var(--ui-brand)), var(--ui-island-gold)); transform-origin: left center; }
.nvk-steptrio__step { position: relative; display: inline-flex; align-items: center; gap: 14px; height: 76px; box-sizing: border-box; padding: 0 28px 0 14px; border: 0; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island), 0 0 0 1px var(--ui-island-line); font-family: var(--body); text-align: left; text-decoration: none; cursor: pointer; transition: transform var(--t-spring-fast) var(--ease-spring), box-shadow var(--t-spring-fast) var(--ease-spring); }
.nvk-steptrio__step, .nvk-steptrio__step:hover, .nvk-steptrio__t b, .nvk-steptrio__t span { text-decoration: none; }
.nvk-steptrio__step:hover { transform: translateY(-5px) scale(1.02); }
.nvk-steptrio__step:active { transform: scale(.96); }
.nvk-steptrio__step:focus-visible { outline: 3px solid var(--ui-focus); outline-offset: 3px; }
.nvk-steptrio__n { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: var(--radius-pill); background: var(--ui-island-2); color: var(--ui-island-gold); font: 700 20px/1 var(--disp); }
.nvk-steptrio__t { display: flex; flex-direction: column; gap: 5px; }
.nvk-steptrio__t b { font: 700 19px/1 var(--disp); }
.nvk-steptrio__t span { font: 400 14px/1 var(--body); color: var(--ui-island-fg-2); }
.nvk-steptrio__step--go { height: 96px; padding: 0 34px 0 16px; background: var(--ui-island-gold); color: var(--ui-island-gold-fg); box-shadow: var(--shadow-lg); overflow: hidden; }
.nvk-steptrio__step--go .nvk-steptrio__n { width: 60px; height: 60px; background: var(--ui-island-gold-fg); color: var(--ui-island-gold); }
.nvk-steptrio__step--go .nvk-steptrio__t b { font-size: 24px; }
.nvk-steptrio__step--go .nvk-steptrio__t span { color: var(--ui-island-gold-fg); font-size: 15px; }
.nvk-steptrio__step--go::after { content: ""; position: absolute; top: 0; bottom: 0; left: -80px; width: 60px; background: linear-gradient(100deg, transparent, color-mix(in srgb, var(--ui-surface) 55%, transparent), transparent); pointer-events: none; }
.nvk-steptrio__step--soon { background: var(--ui-sunken); color: var(--ui-fg-2); box-shadow: none; border: 2px dashed var(--ui-line-strong); cursor: not-allowed; }
.nvk-steptrio__step--soon .nvk-steptrio__n { background: var(--ui-surface); color: var(--ui-fg-2); }
.nvk-steptrio__step--soon .nvk-steptrio__t span { color: var(--ui-fg-3); }
.nvk-steptrio__step--soon:hover { transform: none; }
.nvk-steptrio__step--done .nvk-steptrio__n { background: var(--ui-island-live); color: var(--ui-island); }
.nvk-steptrio:not(.is-in).is-armed .nvk-steptrio__step, .nvk-steptrio:not(.is-in).is-armed .nvk-steptrio__fill { animation-play-state: paused; }
.nvk-steptrio.is-paused .nvk-steptrio__step--go, .nvk-steptrio.is-paused .nvk-steptrio__step--go::after { animation-play-state: paused; }
/* The entrance (grow in, the path filling, the gold step's breath and gleam) only with motion on (2026-10-22, One left menu follow-ups): the
   start state (opacity 0, a third of the size, an empty path) used to sit in the base rules, so a look that turns animation off for
   reduced motion (the Anime sheet) left the three steps invisible and a third of their size. Without motion they are simply there. */
@media (prefers-reduced-motion: no-preference) {
  .nvk-steptrio__fill { transform: scaleX(0); animation: nvk-steptrio-fill 1500ms var(--ease-spring-firm) 500ms forwards; }
  .nvk-steptrio__step { opacity: 0; transform: scale(.35); animation: nvk-steptrio-grow var(--t-spring) var(--ease-spring) forwards; }
  .nvk-steptrio__item:nth-child(2) .nvk-steptrio__step { animation-delay: 60ms; }
  .nvk-steptrio__item:nth-child(3) .nvk-steptrio__step { animation-delay: 200ms; }
  .nvk-steptrio__item:nth-child(4) .nvk-steptrio__step { animation-delay: 340ms; }
  .nvk-steptrio__step--go { animation: nvk-steptrio-grow var(--t-spring) var(--ease-spring) 340ms forwards, nvk-steptrio-breath 3600ms ease-in-out 1400ms infinite; }
  .nvk-steptrio__step--go::after { animation: nvk-steptrio-sweep 4200ms ease-in-out 2000ms infinite; }
}
@keyframes nvk-steptrio-grow { to { opacity: 1; transform: scale(1); } }
@keyframes nvk-steptrio-fill { to { transform: scaleX(1); } }
@keyframes nvk-steptrio-fillv { to { transform: scaleY(1); } }
@keyframes nvk-steptrio-breath { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.035); } }
@keyframes nvk-steptrio-sweep { 0% { transform: translateX(0); } 30%, 100% { transform: translateX(520px); } }
@media (max-width: 760px) {
  .nvk-steptrio__h { font-size: 30px; line-height: 34px; }
  .nvk-steptrio__row { flex-direction: column; gap: var(--space-5); }
  .nvk-steptrio__track { left: 50%; right: auto; top: 6%; bottom: 6%; width: 4px; height: auto; margin: 0 0 0 -2px; }
  .nvk-steptrio__fill { transform-origin: center top; }
  .nvk-steptrio__item { display: flex; justify-content: center; width: 100%; }
  .nvk-steptrio__step { width: min(100%, 340px); box-sizing: border-box; }
}
@media (max-width: 760px) and (prefers-reduced-motion: no-preference) {
  .nvk-steptrio__fill { transform: scaleY(0); animation-name: nvk-steptrio-fillv; }
}
}

/* StoryWeek */
@layer components{
/* StoryWeek (owner-picked direction C 'Storyboard' of 'NirvanaRO Atelier v4', 2026-10-31): one week column of the season storyboard. */
.nvk-sweek { display: flex; flex-direction: column; gap: 10px; min-width: 0; padding: 16px; border-radius: var(--radius-lg); background: var(--ui-surface); box-shadow: var(--shadow-sm); box-sizing: border-box; border-top: 4px solid var(--ui-brand); }
.nvk-sweek--deep { border-top-color: var(--ui-brand-deep); }
.nvk-sweek--cta { border-top-color: var(--ui-cta); }
.nvk-sweek__head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.nvk-sweek__t { margin: 0; font: 700 18px/24px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-sweek__chip { flex: 0 0 auto; padding: 3px 10px; border-radius: var(--radius-pill); font: 700 12px/18px var(--body); background: var(--ui-ok); color: var(--ui-brand-fg); }
.nvk-sweek--h-close .nvk-sweek__chip { background: var(--ui-warn); color: var(--ui-fg); }
.nvk-sweek--h-work .nvk-sweek__chip { background: var(--ui-danger); color: var(--ui-brand-fg); }
.nvk-sweek__dates { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-sweek__frame { border-radius: var(--radius-md); overflow: hidden; border: 1px solid var(--ui-line); background: var(--ui-bg); }
.nvk-sweek__bar { padding: 10px 12px; font: 600 13px/18px var(--body); background: var(--ui-brand); color: var(--ui-brand-fg); overflow-wrap: anywhere; }
.nvk-sweek--deep .nvk-sweek__bar { background: var(--ui-brand-deep); }
.nvk-sweek--cta .nvk-sweek__bar { background: var(--ui-cta); color: var(--ui-cta-fg); }
.nvk-sweek__sees { margin: 0; padding: 8px 12px 10px; list-style: none; display: flex; flex-direction: column; gap: 4px; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-sweek__beats { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.nvk-sweek__beat { display: grid; grid-template-columns: 10px minmax(0, 1fr) auto; gap: 8px; align-items: center; min-height: 44px; padding: 6px 10px; border-radius: var(--radius-sm); background: var(--ui-sunken); box-sizing: border-box; }
.nvk-sweek__dot { width: 10px; height: 10px; border-radius: var(--radius-pill); background: var(--ui-fg-3); }
.nvk-sweek__beat--brand .nvk-sweek__dot { background: var(--ui-brand); }
.nvk-sweek__beat--ok .nvk-sweek__dot { background: var(--ui-ok); }
.nvk-sweek__beat--cta .nvk-sweek__dot { background: var(--ui-cta); }
.nvk-sweek__beat--danger .nvk-sweek__dot { background: var(--ui-danger); }
.nvk-sweek__label { font: 500 14px/18px var(--body); color: var(--ui-fg); overflow-wrap: anywhere; }
a.nvk-sweek__label { color: var(--ui-link); text-decoration: none; }
a.nvk-sweek__label:hover { text-decoration: underline; }
a.nvk-sweek__label:focus-visible, .nvk-sweek__add:focus-visible { outline: 2px solid var(--ui-focus); outline-offset: 2px; border-radius: 4px; }
.nvk-sweek__when { font: 400 12px/16px var(--body); color: var(--ui-fg-2); white-space: nowrap; font-variant-numeric: tabular-nums; }
.nvk-sweek__add { display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px; align-self: flex-start; border-radius: var(--radius-pill); font: 600 14px/18px var(--body); color: var(--ui-link); text-decoration: none; }
.nvk-sweek__add:hover { background: var(--ui-surface-2); }
}

/* Table */
@layer components{
.nvk-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--ui-line); border-radius: var(--radius-md); background: var(--ui-surface); }
/* audit fixes B (2026-10-21): a table that still does not fit shows it -- a soft shadow at the edge that has more columns behind it (the
   classic local / scroll background pair: painted, never animated). */
.nvk-table-wrap { background:
  linear-gradient(90deg, var(--ui-surface) 30%, transparent) left center / 32px 100% no-repeat local,
  linear-gradient(270deg, var(--ui-surface) 30%, transparent) right center / 32px 100% no-repeat local,
  radial-gradient(farthest-side at 0 50%, color-mix(in srgb, var(--ui-fg) 20%, transparent), transparent) left center / 12px 100% no-repeat scroll,
  radial-gradient(farthest-side at 100% 50%, color-mix(in srgb, var(--ui-fg) 20%, transparent), transparent) right center / 12px 100% no-repeat scroll,
  var(--ui-surface); }
.nvk-table { display: table; overflow-x: visible; width: 100%; border-collapse: collapse; color: var(--ui-fg); font-size: 14px; line-height: 20px; }
.nvk-table th, .nvk-table td { padding: var(--space-3) var(--space-4); text-align: left; border: 0; border-bottom: 1px solid var(--ui-line); background: transparent; }
.nvk-table th { font-family: var(--body); font-size: 12px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--ui-fg-3); background: var(--ui-sunken); }   /* headers wrap between words when the box is narrow (they were nowrap and pushed columns out of the card) */
.nvk-table tbody tr:last-child td { border-bottom: 0; }
.nvk-table tbody tr:hover td { background: var(--ui-surface-2); }
.nvk-table--striped tbody tr:nth-child(even) td { background: var(--ui-surface-2); }
.nvk-table--numeric th:not(:first-child), .nvk-table--numeric td:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 600px) { .nvk-table th, .nvk-table td { padding: var(--space-2) var(--space-3); } }
}

/* Tabs */
@layer components{
.nvk-tabs { position: relative; display: flex; flex-wrap: wrap; gap: var(--space-2); }
.nvk-tab { display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--space-4); font-family: var(--body); font-size: 14px; font-weight: 700; text-decoration: none;
  color: var(--ui-fg); background: var(--ui-surface); border-radius: var(--radius-pill); border: 1px solid transparent; box-shadow: var(--shadow-sm);
  position: relative; z-index: 1; transition: color var(--t-swap) var(--ease-rune); }
.nvk-tab:hover { color: var(--ui-link); }
.nvk-tab.is-active { background: var(--ui-brand); color: var(--ui-brand-fg); }
.nvk-tabs--underline { gap: var(--space-4); border-bottom: 1px solid var(--ui-line); }
.nvk-tabs--underline .nvk-tab { padding: 0 2px; background: transparent; box-shadow: none; border-radius: 0; border-bottom: 3px solid transparent; margin-bottom: -1px; color: var(--ui-fg-2); }
.nvk-tabs--underline .nvk-tab.is-active { background: transparent; color: var(--ui-fg); border-bottom-color: var(--ui-brand); }
/* Rune Motion A6: when the active tab changes (on the next page, or in place) a pill (underline: a bar) slides from the old tab to the new one on
   the spring, under the tabs (js/nv-ui.js NvUI.slideTabs); the two tabs it travels between show no fill of their own until it lands. */
.nvk-tabs__ink { position: absolute; left: 0; top: 0; z-index: 0; border-radius: var(--radius-pill); background: var(--ui-brand); pointer-events: none; }
.nvk-tabs--underline .nvk-tabs__ink { border-radius: 0; }
.nvk-tabs.is-sliding .nvk-tab.is-active, .nvk-tabs.is-sliding .nvk-tab.is-was { background: transparent; box-shadow: none; }
.nvk-tabs--underline.is-sliding .nvk-tab.is-active, .nvk-tabs--underline.is-sliding .nvk-tab.is-was { border-bottom-color: transparent; }
}

/* ThemeSwitch */
@layer components{
.nvk-themeswitch { display: inline-flex; align-items: center; min-height: 44px; cursor: pointer; margin: 0; padding: 0; font-family: var(--body); font-size: 14px; line-height: 20px; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ui-fg-2); }
.nvk-themeswitch__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.nvk-themeswitch__track { position: relative; display: inline-flex; align-items: center; justify-content: space-between; width: 64px; height: 32px; padding: 0 8px; border-radius: 999px; background: var(--ui-line-strong); color: var(--ui-fg-2); }
.nvk-themeswitch__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 26px; height: 26px; border-radius: 50%; background: var(--ui-surface); box-shadow: var(--shadow-sm); transition: transform var(--t-fast); }
.nvk-themeswitch__input:checked + .nvk-themeswitch__track { background: var(--ui-brand-deep); color: #fff; }
.nvk-themeswitch__input:checked + .nvk-themeswitch__track::after { transform: translateX(32px); }
.nvk-themeswitch__input:focus-visible + .nvk-themeswitch__track { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
.nvk-themeswitch__track .nvk-icon { position: relative; z-index: 1; }
}

/* TierStop */
@layer components{
/* TierStop (owner pick A 'Tier ascent' of 'NirvanaRO Cockpit Patron', 2026-10-21): one tier as a stop on the ascent. White by default, sunken
   once passed, a brand edge for the next tier, and the dark island with a gold ring (and the 'You are here' pill above it) on the tier you hold. */
.nvk-tstop { position: relative; display: flex; flex-direction: column; gap: 8px; min-width: 0; height: 100%; box-sizing: border-box; margin: 0; padding: 18px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); color: var(--ui-fg); text-align: left; }
.nvk-tstop__top { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; min-width: 0; }
.nvk-tstop__until { font: 500 12px/16px var(--body); color: var(--ui-fg-2); }
.nvk-tstop__name { margin: 0; border: 0; padding: 0; font: 700 18px/24px var(--disp); letter-spacing: 0; text-transform: none; color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-tstop__line { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-tstop__price { margin: 0; font: 600 15px/1.2 var(--body); color: var(--ui-fg-2); }
.nvk-tstop__price b { font: 800 24px/1.1 var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; }
.nvk-tstop__note { margin: 0; font: 400 12px/18px var(--body); color: var(--ui-fg-2); }
.nvk-tstop__bar { height: 8px; }
.nvk-tstop__acts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: auto; }
.nvk-tstop__you { position: absolute; left: 50%; top: 0; transform: translate(-50%, -60%); display: inline-flex; align-items: center; min-height: 30px; padding: 0 14px; border-radius: var(--radius-pill); background: var(--ui-island); color: var(--ui-island-fg); border: 1px solid var(--ui-island-line); box-shadow: var(--shadow-island); font: 700 13px/16px var(--body); white-space: nowrap; max-width: calc(100% - 8px); overflow: hidden; text-overflow: ellipsis; }
.nvk-tstop--passed { background: var(--ui-sunken); border-color: var(--ui-sunken); }
.nvk-tstop--next { border-color: var(--ui-brand); box-shadow: inset 0 0 0 1px var(--ui-brand); }
.nvk-tstop--here { padding-top: 26px; background: var(--ui-island); border-color: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-island), 0 0 0 3px var(--ui-surface), 0 0 0 6px var(--ui-island-gold); }
.nvk-tstop--here .nvk-tstop__name, .nvk-tstop--here .nvk-tstop__price b { color: var(--ui-island-fg); }
.nvk-tstop--here .nvk-tstop__line, .nvk-tstop--here .nvk-tstop__price, .nvk-tstop--here .nvk-tstop__note, .nvk-tstop--here .nvk-tstop__until { color: var(--ui-island-fg-2); }
.nvk-tstop--here .nvk-tstop__bar { background: var(--ui-island-2); --_c: var(--ui-island-gold); }
.nvk-tstop--here .nvk-tstop__bar::-webkit-progress-bar { background: var(--ui-island-2); }
}

/* TierTag */
@layer components{
/* TierTag (owner pick 'Skypiea', 'NirvanaRO Grand Line v2', 2026-10-20): the tier dot and word on a light pill. */
.nvk-tier { --nvk-tier: var(--ui-tier-common); display: inline-flex; align-items: center; gap: 6px; min-height: 24px; margin: 0; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--ui-surface-2); color: var(--ui-fg); font: 700 12px/16px var(--body); white-space: nowrap; }
.nvk-tier::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--nvk-tier); }
.nvk-tier--uncommon { --nvk-tier: var(--ui-tier-uncommon); }
.nvk-tier--rare { --nvk-tier: var(--ui-tier-rare); }
.nvk-tier--legendary { --nvk-tier: var(--ui-tier-legendary); background: color-mix(in srgb, var(--ui-tier-legendary) 18%, var(--ui-surface)); }
.nvk-tier--mythical { --nvk-tier: var(--ui-tier-mythical); background: color-mix(in srgb, var(--ui-tier-mythical) 18%, var(--ui-surface)); }
.nvk-tier--light { box-shadow: inset 0 0 0 1px var(--ui-line-strong); }
}

/* Toast */
@layer components{
.nvk-toasts { position: fixed; z-index: 1000; right: var(--space-4); bottom: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); max-width: calc(100vw - 2 * var(--space-4)); }
.nvk-toast { --_c: var(--ui-link); display: flex; align-items: center; gap: var(--space-3); min-height: 44px; padding: var(--space-3) var(--space-4); border-radius: var(--radius-md);
  background: var(--ui-surface); color: var(--ui-fg); border: 1px solid var(--ui-line); border-left: 4px solid var(--_c); box-shadow: var(--shadow-md); font-size: 14px; line-height: 20px;
  touch-action: pan-y; }   /* Rune Motion A2: a sideways swipe dismisses it (js/nv-ui.js), the page still scrolls */
.nvk-toast > .nvk-icon { color: var(--_c); }
.nvk-toast--ok { --_c: var(--ui-ok); }
.nvk-toast--warn { --_c: var(--ui-warn); }
.nvk-toast--danger { --_c: var(--ui-danger); }
}

/* Toggle */
@layer components{
.nvk-toggle { display: inline-flex; align-items: center; gap: var(--space-3); min-height: 44px; cursor: pointer; color: var(--ui-fg); font-size: 15px; }
.nvk-toggle__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.nvk-toggle__track { position: relative; flex: none; width: 48px; height: 28px; border-radius: 999px; background: var(--ui-line-strong); transition: background-color var(--t-fast); }
.nvk-toggle__track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: var(--ui-surface); box-shadow: var(--shadow-sm); transition: transform var(--t-spring-fast) var(--ease-spring); }   /* Rune Motion A10: the knob springs across */
.nvk-toggle__input:checked + .nvk-toggle__track { background: var(--ui-brand); }
.nvk-toggle__input:checked + .nvk-toggle__track::after { transform: translateX(20px); }
.nvk-toggle__input:focus-visible + .nvk-toggle__track { outline: 2px solid var(--ui-focus); outline-offset: 2px; }
}

/* WallTile */
@layer components{
/* WallTile (owner pick B 'Wanted wall', Cockpit Halls, 2026-10-21): one tile of a station wall. White by default, sunken when done, a dark island
   where you are, a brand edge for the next goal, dimmed text when closed. The note says the state in words. */
.nvk-wtile { display: flex; flex-direction: column; gap: 4px; min-width: 0; height: 100%; box-sizing: border-box; margin: 0; padding: 14px; border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); color: var(--ui-fg); text-align: left; }
.nvk-wtile--sm { gap: 2px; padding: 10px 4px; text-align: center; align-items: center; }
.nvk-wtile__art { display: grid; place-items: center; aspect-ratio: 16 / 9; margin: 0 0 4px; overflow: hidden; border-radius: var(--radius-md); background: var(--ui-sunken); color: var(--ui-fg-2); font: 700 13px/1 var(--body); }
.nvk-wtile__art img { display: block; max-width: 70%; max-height: 86%; width: auto; height: auto; object-fit: contain; }
.nvk-wtile__top { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 0 var(--space-2); margin: 0; }
.nvk-wtile--sm .nvk-wtile__top { justify-content: center; }
.nvk-wtile__tag { margin: 0; font: 700 11px/16px var(--body); letter-spacing: .08em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-wtile__v { margin: 0 0 0 auto; font: 700 26px/1 var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; white-space: nowrap; }
.nvk-wtile--sm .nvk-wtile__v { font-size: 20px; }
.nvk-wtile__t { margin: 0; font: 700 15px/20px var(--body); color: var(--ui-fg); overflow-wrap: break-word; hyphens: manual; }
.nvk-wtile__note { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-wtile--sm .nvk-wtile__note { font-size: 12px; line-height: 16px; overflow-wrap: normal; }
.nvk-wtile .nvk-chip { align-self: flex-start; }
.nvk-wtile--sm .nvk-chip { align-self: center; }
.nvk-wtile--done { background: var(--ui-sunken); border-color: var(--ui-sunken); }
.nvk-wtile--done .nvk-wtile__art { background: var(--ui-surface); }
.nvk-wtile--next { border-color: var(--ui-brand); box-shadow: inset 0 0 0 1px var(--ui-brand); }
.nvk-wtile--dim .nvk-wtile__t, .nvk-wtile--dim .nvk-wtile__v { color: var(--ui-fg-2); }
.nvk-wtile--here { background: var(--ui-island); border-color: var(--ui-island); color: var(--ui-island-fg); box-shadow: var(--shadow-md), inset 0 0 0 2px var(--ui-island-gold); }
.nvk-wtile--here .nvk-wtile__v, .nvk-wtile--here .nvk-wtile__t { color: var(--ui-island-fg); }
.nvk-wtile--here .nvk-wtile__tag, .nvk-wtile--here .nvk-wtile__note { color: var(--ui-island-fg-2); }
.nvk-wtile--here .nvk-wtile__art { background: var(--ui-island-2); color: var(--ui-island-fg-2); }
.nvk-wtile--here .nvk-chip { background: var(--ui-island-2); color: var(--ui-island-fg); }
}

/* WantedPoster */
@layer components{
/* WantedPoster (owner pick B 'Wanted wall', Cockpit Halls, 2026-10-21): a white poster with a ringed stamp word, the picture box, the name, chips,
   the bounty in a sunken box and the foot line. The stamp is a word in its tone colour; the ring is the same colour. */
.nvk-wanted { display: flex; flex-direction: column; align-items: stretch; gap: var(--space-3); min-width: 0; margin: 0; padding: var(--space-4); border: 1px solid var(--ui-line); border-radius: var(--radius-lg); background: var(--ui-surface); color: var(--ui-fg); text-align: center; box-shadow: var(--shadow-sm); }
.nvk-wanted--start { text-align: left; }
.nvk-wanted__stamp { display: inline-flex; align-self: center; margin: 0; padding: 4px 14px; border: 2px solid currentColor; border-radius: var(--radius-pill); font: 700 12px/16px var(--body); letter-spacing: .14em; text-transform: uppercase; color: var(--ui-fg-2); }
.nvk-wanted--start .nvk-wanted__stamp { align-self: flex-start; }
.nvk-wanted--wanted .nvk-wanted__stamp { color: var(--ui-danger); }
.nvk-wanted--paid .nvk-wanted__stamp { color: var(--ui-ok); }
.nvk-wanted--pending .nvk-wanted__stamp, .nvk-wanted--held .nvk-wanted__stamp { color: var(--ui-warn); }
.nvk-wanted__art { display: grid; place-items: center; aspect-ratio: 4 / 3; margin: 0; overflow: hidden; border-radius: var(--radius-md); background: var(--ui-sunken); color: var(--ui-fg-2); font: 700 15px/1 var(--disp); }
.nvk-wanted__art img { display: block; max-width: 80%; max-height: 80%; width: auto; height: auto; object-fit: contain; image-rendering: auto; }
.nvk-wanted__h { margin: 0; border: 0; font: 700 22px/28px var(--disp); color: var(--ui-fg); overflow-wrap: anywhere; }
.nvk-wanted__sub { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-wanted__chips { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); margin: 0; }
.nvk-wanted--start .nvk-wanted__chips { justify-content: flex-start; }
.nvk-wanted__bounty { margin: 0; padding: var(--space-3); border-radius: var(--radius-md); background: var(--ui-sunken); }
.nvk-wanted__v { margin: 0; font: 700 30px/1 var(--disp); color: var(--ui-fg); font-variant-numeric: tabular-nums; }
.nvk-wanted__vl { margin: 4px 0 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-wanted__body { margin: 0; font: 400 14px/20px var(--body); color: var(--ui-fg-2); }
.nvk-wanted__body > :first-child { margin-top: 0; }
.nvk-wanted__body > :last-child { margin-bottom: 0; }
.nvk-wanted__foot { margin: 0; font: 400 13px/18px var(--body); color: var(--ui-fg-2); }
.nvk-wanted--compact { gap: var(--space-2); padding: var(--space-4); }
.nvk-wanted--compact .nvk-wanted__h { font: 700 16px/22px var(--body); }
.nvk-wanted--compact .nvk-wanted__art { aspect-ratio: 16 / 9; }
}
