/* =====================================================================
   SEABOUND — NORWEGIAN "FREESTYLE CANVAS" LAYER  (nx.css)
   Each NCL ship is painted in her own colours. The art is original
   Seabound illustration (brush ribbons, splatter, motifs), never a copy
   of any real hull mural. Loaded only by Norwegian pages.
   ===================================================================== */
:root{
  --nx-ink:#10131f;--nx-paper:#fffaf2;--nx-cream:#fff4e3;
  --nx-c1:#1B1F3B;--nx-c2:#FF006E;--nx-c3:#FFBE0B;--nx-c4:#3A86FF;--nx-c5:#2EC4B6;
  --nx-r:22px;--nx-ease:cubic-bezier(.2,.8,.2,1);
  --nx-display:"Bricolage Grotesque","Inter","Helvetica Neue",Arial,sans-serif;
  --nx-hand:"Caveat","Segoe Print","Bradley Hand","Comic Sans MS",cursive;
  --nx-mono:"Space Mono","IBM Plex Mono",ui-monospace,Menlo,monospace;
}
.nx-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- painted hero ---------- */
.nx-hero{position:relative!important;isolation:isolate;overflow:hidden!important}
.nx-hero:not(.nx-center){
  background:linear-gradient(115deg,var(--nx-c1) 0%,color-mix(in srgb,var(--nx-c1) 78%,#000) 55%,color-mix(in srgb,var(--nx-c1) 60%,var(--nx-c4)) 100%)!important;color:#fff}
.nx-hero::before,.nx-hero::after{opacity:.18}
.nx-hero>.wrap,.nx-hero>.nx-in-w,.nx-hero>.jumpq,.nx-hero>.ghero-foot,.nx-hero .sbe-dial{position:relative;z-index:2}
.nx-hero .dpx-scene,.nx-hero .sbe-bulbs,.nx-hero .sbe-beams,.nx-hero .fhero-scrim,.nx-hero svg.fhero{display:none!important}
.nx-hero .vhero-split,.nx-hero .vhero-top,.nx-hero .vhero-foot{position:relative;z-index:2}
.nx-canvas,.nx-hero>.nx-canvas{position:absolute!important;inset:0!important;z-index:0!important;pointer-events:none;overflow:hidden;height:auto!important}
.nx-hero>.nx-ship{position:absolute!important;z-index:1!important}
.nx-hero>.nx-ship-cap{position:absolute!important;z-index:3!important}
.nx-canvas-in{position:absolute;inset:0;will-change:transform}
.nx-canvas svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.nx-canvas .nx-scrim{position:absolute;inset:0;background:
  linear-gradient(90deg,color-mix(in srgb,var(--nx-c1) 94%,#000) 0%,color-mix(in srgb,var(--nx-c1) 92%,transparent) 46%,color-mix(in srgb,var(--nx-c1) 85%,transparent) 66%,transparent 95%),
  linear-gradient(0deg,color-mix(in srgb,var(--nx-c1) 70%,transparent) 0%,transparent 35%)}
@media (max-width:860px){.nx-canvas .nx-scrim{background:linear-gradient(180deg,color-mix(in srgb,var(--nx-c1) 55%,transparent) 0%,color-mix(in srgb,var(--nx-c1) 88%,#000) 60%)}}
.nx-hero.nx-has-ship{padding-bottom:clamp(110px,13vw,200px)!important}
.nx-ship{position:absolute;right:-1%;bottom:4px;width:min(52vw,700px);z-index:1;pointer-events:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14%);mask-image:linear-gradient(90deg,transparent 0,#000 14%);
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.35));animation:nxBob 7s ease-in-out infinite}
.nx-ship svg{width:100%;height:auto;display:block}
.nx-ship-cap{position:absolute;right:16px;top:12px;z-index:3;font:500 10.5px/1 var(--nx-mono);letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.86);pointer-events:none;background:rgba(0,0,0,.62);padding:4px 8px;border-radius:6px}
@media (max-width:860px){.nx-ship{display:none}.nx-ship-cap{display:none}}
@keyframes nxBob{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-.4deg)}}
.nx-stroke{stroke-dasharray:var(--len,2400);stroke-dashoffset:var(--len,2400);animation:nxDraw 1.6s var(--nx-ease) forwards}
@keyframes nxDraw{to{stroke-dashoffset:0}}
.nx-splat{transform-box:fill-box;transform-origin:center;animation:nxPop .5s var(--nx-ease) both}
@keyframes nxPop{from{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}
.nx-twinkle{animation:nxTw 3.6s ease-in-out infinite}
@keyframes nxTw{0%,100%{opacity:.25}50%{opacity:1}}
.nx-drift{animation:nxDrift 18s ease-in-out infinite alternate}
@keyframes nxDrift{from{transform:translateX(-14px)}to{transform:translateX(14px)}}

/* hero copy polish */
.nx-hero h1{text-shadow:0 2px 0 rgba(0,0,0,.18),0 10px 40px rgba(0,0,0,.25)}
.nx-hero h1 em,.nx-paintword{position:relative;font-style:normal;white-space:nowrap}
.nx-hero .nx-kicker{display:inline-flex;align-items:center;gap:10px;margin:0 0 14px;font:700 12px/1 var(--nx-mono);letter-spacing:.14em;text-transform:uppercase;color:#fff}
.nx-hero .nx-kicker i{display:inline-block;width:38px;height:10px;border-radius:10px;background:linear-gradient(90deg,var(--nx-c2),var(--nx-c3),var(--nx-c4),var(--nx-c5))}

/* ---------- buttons ---------- */
.nx-cta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 14px;margin:26px 0 4px;position:relative;z-index:3}
.nx-btn{position:relative;display:inline-flex;align-items:center;gap:10px;padding:14px 22px 14px 24px;border-radius:999px;
  font:700 16px/1.1 var(--nx-display);text-decoration:none!important;cursor:pointer;border:0;overflow:hidden;isolation:isolate;
  transition:transform .25s var(--nx-ease),box-shadow .25s var(--nx-ease)}
.nx-btn svg{width:18px;height:18px;flex:none}
.nx-btn-pri{color:var(--nx-ink)!important;background:var(--nx-cta,var(--nx-c3));box-shadow:0 10px 26px -10px color-mix(in srgb,var(--nx-cta,var(--nx-c3)) 80%,#000),inset 0 -3px 0 rgba(0,0,0,.12)}
.nx-btn-pri::before{content:"";position:absolute;inset:-2px;z-index:-1;border-radius:inherit;
  background:linear-gradient(100deg,var(--nx-hov,var(--nx-c2)) 0%,var(--nx-hov,var(--nx-c2)) 40%,var(--nx-cta,var(--nx-c3)) 40%,var(--nx-cta,var(--nx-c3)) 100%);
  background-size:250% 100%;background-position:100% 0;transition:background-position .5s var(--nx-ease)}
.nx-btn-pri:hover::before{background-position:0 0}
.nx-btn-pri:hover,.nx-btn-pri:focus-visible{transform:translateY(-2px) rotate(-.6deg)}
.nx-btn-ghost{color:#fff!important;background:rgba(255,255,255,.08);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55);backdrop-filter:blur(6px)}
.nx-btn-ghost:hover,.nx-btn-ghost:focus-visible{background:rgba(255,255,255,.18);transform:translateY(-2px)}
.nx-btn:focus-visible,.nx-opt:focus-visible,.nx-chip:focus-visible,.nx-score:focus-visible,.nx-stub a:focus-visible,.nx-pill a:focus-visible,.nx-pill button:focus-visible,.nx-tile:focus-visible{outline:3px solid #fff!important;outline-offset:2px;box-shadow:0 0 0 6px var(--nx-ink)!important}
.nx-note,p.nx-note{flex-basis:100%;margin:2px 0 0 4px;font:500 13.5px/1.4 var(--nx-display)!important;color:rgba(255,255,255,.94)}
.nx-note b{color:var(--nx-acc,var(--nx-c3))}
.nx-note i{font-style:normal;margin:0 8px;opacity:.6}

/* ---------- Freestyle pass ---------- */
.nx-pass-wrap{max-width:1120px;margin:-26px auto 30px;padding:0 20px;position:relative;z-index:5}
.nx-pass{display:grid;grid-template-columns:1fr 250px;border-radius:var(--nx-r);overflow:hidden;background:var(--nx-paper);color:var(--nx-ink);
  box-shadow:0 30px 60px -28px rgba(16,19,31,.55),0 0 0 1px rgba(16,19,31,.06)}
.nx-pass-main{position:relative;padding:26px 30px 24px;overflow:hidden}
.nx-pass-main::before{content:"";position:absolute;right:-40px;bottom:-34px;width:300px;height:130px;pointer-events:none;opacity:.32;
  background:var(--nx-swash) no-repeat center/contain}
.nx-pass-k{position:relative;margin:0 0 6px;font:700 11.5px/1 var(--nx-mono);letter-spacing:.16em;text-transform:uppercase;color:color-mix(in srgb,var(--nx-c1) 75%,#666)}
.nx-pass-ship{position:relative;margin:0 0 16px;font:800 clamp(28px,4vw,40px)/1 var(--nx-display);letter-spacing:-.02em;color:var(--nx-c1)}
.nx-pass-ship em{font-style:normal;background:linear-gradient(transparent 58%,color-mix(in srgb,var(--nx-c3) 70%,transparent) 58%,color-mix(in srgb,var(--nx-c3) 70%,transparent) 88%,transparent 88%)}
.nx-fields{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 26px}
.nx-field span{display:block;margin-bottom:4px;font:700 10.5px/1 var(--nx-mono);letter-spacing:.14em;text-transform:uppercase;color:#6b6f80}
.nx-field b{display:block;font:600 15.5px/1.38 var(--nx-display);color:var(--nx-ink)}
.nx-scores{display:flex;flex-wrap:wrap;gap:10px;grid-column:1/-1}
.nx-score{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 8px;border-radius:999px;background:#fff;box-shadow:0 0 0 1px rgba(16,19,31,.08);text-decoration:none!important;color:var(--nx-ink)!important}
.nx-score .nx-ring{--p:.7;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--nx-arc,var(--nx-c2)) calc(var(--p)*360deg),#dcdce4 0);font:800 14px/1 var(--nx-display)}
.nx-score .nx-ring b{width:34px;height:34px;border-radius:50%;background:#fff;display:grid;place-items:center}
.nx-score small{display:block;font:700 10px/1.2 var(--nx-mono);letter-spacing:.1em;text-transform:uppercase;color:#6b6f80}
.nx-score strong{font:700 14px/1.2 var(--nx-display)}
.nx-stub{position:relative;padding:24px 22px;display:flex;flex-direction:column;gap:12px;justify-content:center;color:#fff;
  background:var(--nx-c1);border-left:3px dashed rgba(255,255,255,.35)}
.nx-stub::before,.nx-stub::after{content:"";position:absolute;left:-14px;width:26px;height:26px;border-radius:50%;background:var(--nx-bg,#f4f1ea)}
.nx-stub::before{display:none}.nx-stub::after{bottom:-13px}
.nx-stub p.nx-pass-k,article .nx-stub p.nx-pass-k{color:rgba(255,255,255,.78)!important;font:700 11.5px/1.2 var(--nx-mono)!important}
.nx-stub a{display:inline-flex;align-items:center;gap:8px;font:700 16px/1.2 var(--nx-display);color:var(--nx-acc,var(--nx-c3))!important;text-decoration:none!important}
.nx-stub a svg{width:16px;height:16px}
.nx-stub small{font:500 12px/1.4 var(--nx-display);color:rgba(255,255,255,.75)}
.nx-stamp{align-self:flex-start;transform:rotate(-7deg);display:inline-flex;flex-direction:column;align-items:center;padding:8px 12px;border-radius:12px;
  border:2.5px solid var(--nx-c3);color:var(--nx-c3);font:800 11px/1.15 var(--nx-mono);letter-spacing:.12em;text-transform:uppercase;text-align:center;
  box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--nx-c3) 25%,transparent);animation:nxStamp .6s .5s var(--nx-ease) both}
.nx-stamp b{font:800 15px/1.1 var(--nx-display);letter-spacing:0;text-transform:none}
@keyframes nxStamp{from{transform:rotate(-7deg) scale(1.8);opacity:0}to{transform:rotate(-7deg) scale(1);opacity:1}}
.nx-former{display:inline-block;padding:6px 10px;border-radius:8px;background:rgba(255,255,255,.12);font:700 11px/1.3 var(--nx-mono);letter-spacing:.08em;text-transform:uppercase}
@media (max-width:760px){.nx-pass{grid-template-columns:1fr}.nx-fields{grid-template-columns:1fr}.nx-stub{border-left:0;border-top:3px dashed rgba(255,255,255,.35)}
  .nx-stub::before,.nx-stub::after{display:none}.nx-pass-wrap{margin-top:18px}}

/* ---------- hull credit card ---------- */
.nx-hull{max-width:1120px;margin:0 auto 34px;padding:0 20px}
.nx-hull-in{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:0;border-radius:var(--nx-r);overflow:hidden;background:var(--nx-c1);color:#fff;
  box-shadow:0 24px 50px -30px rgba(16,19,31,.6)}
.nx-hull-art{position:relative;min-height:230px}
.nx-hull-art svg{position:absolute;inset:0;width:100%;height:100%}
.nx-hull-copy{padding:26px 28px}
.nx-hull-copy h2{margin:0 0 10px;font:800 26px/1.1 var(--nx-display);color:#fff}
.nx-hull-copy p{margin:0 0 10px;font:400 15.5px/1.55 var(--nx-display);color:rgba(255,255,255,.88)}
.nx-hull-copy p b{color:#fff}
.nx-swatches{display:flex;gap:6px;margin:12px 0 6px}
.nx-swatches i{width:26px;height:26px;border-radius:50% 46% 52% 44%;box-shadow:0 0 0 2px rgba(255,255,255,.25)}
.nx-hull-copy small{display:block;font:500 12px/1.45 var(--nx-display);color:rgba(255,255,255,.6)}
.nx-hull-copy a{color:var(--nx-acc,var(--nx-c3))!important;font-weight:700}
.nx-hull-copy .nx-pass-k{color:var(--nx-acc,var(--nx-c3))!important}
@media (max-width:760px){.nx-hull-in{grid-template-columns:1fr}.nx-hull-art{min-height:170px}}

/* ---------- section headings get a brush underline ---------- */
.nx-on main h2:not(.nx-skip),.nx-on article h2:not(.nx-skip){position:relative}
.nx-brush{display:block;width:120px;height:14px;margin:8px 0 0;background:var(--nx-swash2) no-repeat left center/contain}

/* ---------- band ---------- */
.nx-band{position:relative;isolation:isolate;overflow:hidden;max-width:1120px;margin:48px auto;padding:42px 36px 36px;border-radius:28px;color:#fff;
  background:var(--nx-c1)}
.nx-band-art{position:absolute;inset:0;z-index:-1}
.nx-band-art svg{width:100%;height:100%;display:block}
.nx-band::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,color-mix(in srgb,var(--nx-c1) 94%,#000) 0%,color-mix(in srgb,var(--nx-c1) 70%,transparent) 62%,transparent 100%)}
.nx-band p.nx-band-k{margin:0 0 8px;font:700 12px/1 var(--nx-mono)!important;letter-spacing:.16em;text-transform:uppercase;color:var(--nx-acc,var(--nx-c3))!important}
.nx-band h2{margin:0 0 12px;max-width:640px;font:800 clamp(26px,3.6vw,38px)/1.08 var(--nx-display);color:#fff!important;letter-spacing:-.015em}
.nx-band h2 em{font-style:normal;color:var(--nx-acc,var(--nx-c3))}
.nx-band p{max-width:560px;margin:0 0 16px;font:400 16px/1.55 var(--nx-display);color:rgba(255,255,255,.9)}
.nx-chips{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px;max-width:680px}
.nx-chip{appearance:none;border:0;cursor:pointer;padding:10px 16px;border-radius:999px;font:700 14px/1 var(--nx-display);color:#fff;
  background:rgba(255,255,255,.1);box-shadow:inset 0 0 0 2px rgba(255,255,255,.4);transition:all .2s var(--nx-ease)}
.nx-chip:hover{background:rgba(255,255,255,.2)}
.nx-chip[aria-pressed="true"]{background:var(--nx-cta,var(--nx-c3));color:var(--nx-ink);box-shadow:none;transform:rotate(-1.5deg)}
.nx-band p.nx-note{color:rgba(255,255,255,.86)!important}
@media (max-width:640px){.nx-band{margin:36px 12px;padding:30px 20px 26px;border-radius:22px}
  .nx-band::after{background:linear-gradient(180deg,color-mix(in srgb,var(--nx-c1) 92%,#000) 0%,color-mix(in srgb,var(--nx-c1) 86%,transparent) 70%,color-mix(in srgb,var(--nx-c1) 66%,transparent))}}

/* ---------- floating pill ---------- */
.nx-pill{position:fixed;right:18px;bottom:18px;z-index:60;display:flex;align-items:center;gap:6px;padding:6px 6px 6px 18px;border-radius:999px;
  background:var(--nx-c1);color:#fff;box-shadow:0 18px 40px -12px rgba(0,0,0,.5),inset 0 0 0 2px color-mix(in srgb,var(--nx-c3) 60%,transparent);
  transform:translateY(140%);visibility:hidden;transition:transform .45s var(--nx-ease),visibility 0s linear .45s}
.nx-pill.on{transform:none;visibility:visible;transition:transform .45s var(--nx-ease),visibility 0s}
.nx-pill a{display:inline-flex;align-items:center;gap:8px;font:700 14.5px/1 var(--nx-display);color:#fff!important;text-decoration:none!important}
.nx-pill a i{width:12px;height:12px;border-radius:50%;background:conic-gradient(var(--nx-c2),var(--nx-c3),var(--nx-c4),var(--nx-c5),var(--nx-c2))}
.nx-pill button{appearance:none;border:0;background:rgba(255,255,255,.12);color:#fff;width:30px;height:30px;border-radius:50%;cursor:pointer;font:700 16px/1 var(--nx-display)}
@media print{.nx-pill,.nx-canvas,.nx-ship{display:none!important}}

/* ---------- tools (shared shell) ---------- */
.nx-tool{max-width:1120px;margin:40px auto;padding:0 20px}
.nx-tool-in{position:relative;overflow:hidden;border-radius:26px;background:var(--nx-paper);color:var(--nx-ink);padding:30px 30px 28px;
  box-shadow:0 26px 60px -34px rgba(16,19,31,.55),0 0 0 1px rgba(16,19,31,.06)}
.nx-tool-in::before{content:"";position:absolute;right:-60px;bottom:-60px;width:300px;height:160px;opacity:.22;pointer-events:none;background:var(--nx-swash) no-repeat center/contain}
.nx-tool-k{position:relative;margin:0 0 6px;font:700 11.5px/1 var(--nx-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--nx-kick,#4a4e60)}
.nx-tool h2{position:relative;margin:0 0 8px;font:800 clamp(24px,3.2vw,34px)/1.08 var(--nx-display);color:var(--nx-c1)!important;letter-spacing:-.015em}
.nx-tool-lede{position:relative;max-width:640px;margin:0 0 18px;font:400 16px/1.55 var(--nx-display);color:#3d4152}
.nx-q{margin:0 0 16px}
.nx-q>p{margin:0 0 8px;font:700 13px/1.2 var(--nx-mono);letter-spacing:.06em;text-transform:uppercase;color:#4a4e60}
.nx-opts{display:flex;flex-wrap:wrap;gap:8px}
.nx-opt{appearance:none;cursor:pointer;border:0;padding:10px 15px;border-radius:14px;font:600 14.5px/1.15 var(--nx-display);color:var(--nx-ink);background:#fff;
  box-shadow:inset 0 0 0 2px #e3e0d8;transition:all .18s var(--nx-ease)}
.nx-opt:hover{box-shadow:inset 0 0 0 2px var(--nx-c4)}
.nx-opt[aria-pressed="true"]{background:var(--nx-c1);color:#fff;box-shadow:none}
.nx-res{margin-top:18px}
.nx-res:empty{display:none}
.nx-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@media (max-width:860px){.nx-cards{grid-template-columns:1fr}}
.nx-card{position:relative;overflow:hidden;border-radius:18px;background:#fff;box-shadow:0 0 0 1px rgba(16,19,31,.08);display:flex;flex-direction:column}
.nx-card-art{height:96px;position:relative}
.nx-card-art svg{position:absolute;inset:0;width:100%;height:100%}
.nx-card-b{padding:14px 16px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
.nx-card-b h3{margin:0;font:800 19px/1.15 var(--nx-display);color:var(--nx-ink)}
.nx-card-b h3 small{display:block;margin-top:3px;font:700 10.5px/1.2 var(--nx-mono);letter-spacing:.1em;text-transform:uppercase;color:#6b6f80}
.nx-card-b p{margin:0;font:400 14px/1.5 var(--nx-display);color:#3d4152}
.nx-card-b ul{margin:2px 0 0;padding-left:18px;font:400 13.5px/1.45 var(--nx-display);color:#3d4152}
.nx-card-b .nx-links{margin-top:auto;padding-top:8px;display:flex;flex-wrap:wrap;gap:6px 12px;font:700 13px/1.2 var(--nx-display)}
.nx-card-b .nx-links a{color:var(--nx-link,#1d4ed8)!important}
.nx-rank{position:absolute;left:12px;top:12px;z-index:2;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#fff;color:var(--nx-ink);font:800 15px/1 var(--nx-display);box-shadow:0 6px 16px -6px rgba(0,0,0,.4)}
.nx-match{display:inline-block;padding:4px 9px;border-radius:999px;background:color-mix(in srgb,var(--nx-c5) 18%,#fff);color:color-mix(in srgb,var(--nx-c5) 40%,#000);font:700 12px/1.2 var(--nx-mono)}
.nx-tool-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px}
.nx-tool-foot .nx-btn-pri{font-size:15px}
.nx-mini{font:500 12.5px/1.45 var(--nx-display);color:#6b6f80;margin:12px 0 0}
.nx-list{margin:14px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.nx-list li{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:8px 12px;border-radius:12px;background:#fff;box-shadow:0 0 0 1px rgba(16,19,31,.06);font:500 14px/1.3 var(--nx-display)}
.nx-list li b{font-weight:800}
.nx-list li span{font:700 12px/1 var(--nx-mono);color:#6b6f80}
.nx-list li i{display:block;width:22px;height:22px;border-radius:50% 44% 52% 46%}
details.nx-more{margin-top:12px}
details.nx-more summary{cursor:pointer;font:700 14px/1.3 var(--nx-display);color:var(--nx-c1)}

/* night planner timeline */
.nx-tl{position:relative;margin:6px 0 0;padding:0 0 0 26px;list-style:none}
.nx-tl::before{content:"";position:absolute;left:9px;top:6px;bottom:6px;width:4px;border-radius:4px;background:linear-gradient(var(--nx-c2),var(--nx-c3),var(--nx-c4),var(--nx-c5))}
.nx-tl li{position:relative;margin:0 0 12px;padding:12px 14px;border-radius:14px;background:#fff;box-shadow:0 0 0 1px rgba(16,19,31,.07);animation:nxIn .45s var(--nx-ease) both}
.nx-tl li::before{content:"";position:absolute;left:-23px;top:16px;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 3px var(--nx-c2)}
.nx-tl time{display:block;font:700 12px/1 var(--nx-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--nx-kick,#4a4e60);margin-bottom:4px}
.nx-tl b{font:800 16px/1.25 var(--nx-display)}
.nx-tl p{margin:3px 0 0;font:400 13.5px/1.45 var(--nx-display);color:#4a4e60}
@keyframes nxIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* calculator */
.nx-calc{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:22px}
@media (max-width:860px){.nx-calc{grid-template-columns:1fr}}
.nx-in{display:grid;grid-template-columns:1fr 92px;gap:6px 12px;align-items:center;margin:0 0 12px}
.nx-in label{font:600 14px/1.3 var(--nx-display);color:var(--nx-ink)}
.nx-in label small{display:block;font:400 12px/1.35 var(--nx-display);color:#6b6f80}
.nx-in input[type=number],.nx-in select{width:100%;padding:9px 10px;border-radius:10px;border:2px solid #e3e0d8;font:700 15px/1 var(--nx-display);background:#fff;color:var(--nx-ink)}
.nx-in input[type=range]{grid-column:1/-1;accent-color:var(--nx-c2)}
.nx-out{border-radius:18px;background:var(--nx-c1);color:#fff;padding:20px 20px 18px;position:relative;overflow:hidden}
.nx-out h3{margin:0 0 10px;font:800 20px/1.2 var(--nx-display);color:#fff}
.nx-out dl{display:grid;grid-template-columns:1fr auto;gap:7px 12px;margin:0 0 12px;font:500 14px/1.35 var(--nx-display)}
.nx-out dt{color:rgba(255,255,255,.82)}.nx-out dd{margin:0;font-weight:800;text-align:right}
.nx-out .nx-verdict{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.1);font:600 15px/1.45 var(--nx-display)}
.nx-out .nx-verdict b{color:var(--nx-acc,var(--nx-c3))}
.nx-bar{height:10px;border-radius:10px;background:rgba(255,255,255,.15);overflow:hidden;margin:8px 0 2px}
.nx-bar i{display:block;height:100%;border-radius:10px;background:linear-gradient(90deg,var(--nx-c3),var(--nx-c2));transition:width .5s var(--nx-ease)}

/* latitudes */
.nx-tiers{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:6px 0 14px}
.nx-tier{padding:10px 6px;border-radius:12px;text-align:center;background:#fff;box-shadow:0 0 0 1px rgba(16,19,31,.08);font:700 12px/1.2 var(--nx-display);transition:all .3s var(--nx-ease)}
.nx-tier small{display:block;font:700 10.5px/1.2 var(--nx-mono);color:#6b6f80;margin-top:3px}
.nx-tier.on{background:var(--nx-c1);color:#fff;transform:translateY(-4px)}
.nx-tier.on small{color:var(--nx-acc,var(--nx-c3))}
@media (max-width:640px){.nx-tiers{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* gallery */
.nx-gal{max-width:1180px;margin:30px auto 40px;padding:0 20px}
.nx-gal-head{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:12px;margin:0 0 16px}
.nx-gal-head h2{margin:0;font:800 clamp(26px,3.6vw,40px)/1.05 var(--nx-display);letter-spacing:-.02em;color:var(--nx-ink)}
.nx-gal-head p{margin:6px 0 0;max-width:620px;font:400 15.5px/1.55 var(--nx-display);color:#4a4e60}
.nx-filters{display:flex;flex-wrap:wrap;gap:6px}
.nx-wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:12px}
.nx-tile{position:relative;appearance:none;border:0;padding:0;cursor:pointer;text-align:left;border-radius:18px;overflow:hidden;background:var(--t1,#1B1F3B);color:#fff;
  min-height:170px;display:flex;flex-direction:column;justify-content:flex-end;box-shadow:0 14px 30px -18px rgba(0,0,0,.6);
  transition:transform .3s var(--nx-ease),box-shadow .3s var(--nx-ease)}
.nx-tile svg{position:absolute;inset:0;width:100%;height:100%}
.nx-tile:hover,.nx-tile:focus-visible{transform:translateY(-4px) rotate(-.6deg);box-shadow:0 24px 40px -20px rgba(0,0,0,.65)}
.nx-tile-t{position:relative;z-index:2;padding:30px 14px 12px;background:linear-gradient(0deg,rgba(8,10,20,.9) 0%,rgba(8,10,20,.74) 55%,transparent 100%)}
.nx-tile-t b{display:block;font:800 17px/1.15 var(--nx-display)}
.nx-tile-t small{display:block;font:600 12px/1.3 var(--nx-display);opacity:.85}
.nx-tags{position:absolute;top:10px;left:10px;right:10px;z-index:2;display:flex;flex-wrap:wrap;gap:6px}
.nx-tile .nx-tag{padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.45);font:700 10px/1 var(--nx-mono);letter-spacing:.08em;text-transform:uppercase}
.nx-tile .nx-tag{background:rgba(0,0,0,.62)}
.nx-tile .nx-tag.s{background:var(--nx-cta,var(--nx-c3));color:var(--nx-ink)}
.nx-tile[hidden]{display:none}
.nx-drawer{margin-top:16px;border-radius:22px;overflow:hidden;background:var(--d1,#1B1F3B);color:#fff;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);
  box-shadow:0 26px 60px -30px rgba(0,0,0,.6);animation:nxIn .4s var(--nx-ease)}
.nx-drawer[hidden]{display:none}
.nx-drawer-art{position:relative;min-height:260px}
.nx-drawer-art svg{position:absolute;inset:0;width:100%;height:100%}
.nx-drawer-b{padding:24px 26px}
.nx-drawer-b h3{margin:0 0 4px;font:800 28px/1.1 var(--nx-display)}
.nx-drawer-b h3+p{margin:0 0 12px;font:700 11.5px/1.2 var(--nx-mono);letter-spacing:.12em;text-transform:uppercase;opacity:.75}
.nx-drawer-b dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0 0 14px;font:500 14.5px/1.45 var(--nx-display)}
.nx-drawer-b dt{opacity:.7}.nx-drawer-b dd{margin:0}
.nx-drawer-b .nx-links{display:flex;flex-wrap:wrap;gap:8px 14px;margin:0 0 14px;font:700 14px/1.2 var(--nx-display)}
.nx-drawer-b .nx-links a{color:#fff!important;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}
.nx-drawer-b small{display:block;margin-top:10px;font:400 12px/1.45 var(--nx-display);opacity:.65}
@media (max-width:760px){.nx-drawer{grid-template-columns:1fr}.nx-drawer-art{min-height:180px}}

/* guide hero (built fresh) */
.nx-ghero{padding:86px 20px 120px;min-height:560px}
.nx-ghero .nx-in-w{max-width:1120px;margin:0 auto}
.nx-ghero h1{margin:0 0 14px;max-width:760px;font:800 clamp(38px,6vw,72px)/.98 var(--nx-display);letter-spacing:-.03em;color:#fff}
.nx-ghero .nx-deck{max-width:600px;margin:0 0 6px;font:400 19px/1.5 var(--nx-display);color:rgba(255,255,255,.92)}
.nx-ghero .nx-stats{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.nx-ghero .nx-stats div{padding:10px 14px;border-radius:14px;background:rgba(255,255,255,.1);backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px rgba(255,255,255,.25)}
.nx-ghero .nx-stats b{display:block;font:800 22px/1 var(--nx-display)}
.nx-ghero .nx-stats span{font:700 10.5px/1.3 var(--nx-mono);letter-spacing:.1em;text-transform:uppercase;opacity:.8}

/* sailed list (fleet guide) */
.nx-logbook{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 0}
.nx-logbook a{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.12);color:#fff!important;text-decoration:none!important;font:700 13px/1 var(--nx-display);box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35)}
.nx-logbook a i{width:10px;height:10px;border-radius:50%;background:var(--nx-c3)}

@media (prefers-reduced-motion:reduce){
  .nx-ship,.nx-stroke,.nx-splat,.nx-twinkle,.nx-drift,.nx-stamp,.nx-tl li,.nx-drawer{animation:none!important}
  .nx-stroke{stroke-dashoffset:0!important}
  .nx-btn,.nx-tile,.nx-pill{transition:none!important}
}

/* hero furniture re-tinted to each ship */
.nx-hero .stat,.nx-hero .gstat{background:color-mix(in srgb,var(--nx-c1) 72%,transparent)!important;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.nx-hero .stats,.nx-hero .gstats{border-color:rgba(255,255,255,.22)!important;background:transparent!important}
.nx-hero .sbe-dial{border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--nx-c1) 92%,#000) 0 58%,transparent 72%)!important}
.nx-hero .stat-num,.nx-hero .gstat .v{color:#fff!important}
@media (max-width:860px){.nx-canvas .nx-scrim{background:linear-gradient(180deg,color-mix(in srgb,var(--nx-c1) 62%,transparent) 0%,color-mix(in srgb,var(--nx-c1) 78%,#000) 38%,color-mix(in srgb,var(--nx-c1) 90%,#000) 100%)}}

/* ---------- v2 (audit) ---------- */
/* centred heroes (showdowns, insurance, The Haven): keep the page's own hero, paint only a faded band at the foot */
.nx-hero.nx-center{padding-bottom:150px!important}
.nx-hero.nx-center>.nx-canvas{top:auto!important;height:120px!important;
  -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 70%);mask-image:linear-gradient(180deg,transparent 0,#000 70%)}
.nx-hero.nx-center .nx-canvas .nx-scrim{background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,.1))}
.nx-hero.nx-center .reviewed,.nx-hero.nx-center .timestamp{margin-left:auto;margin-right:auto}
.nx-hero.nx-center .nx-cta{justify-content:center}
.nx-hero.nx-center .nx-note{text-align:center;margin-left:0}
/* small print in the hero sits on a plate */
.nx-hero .eyebrow,.nx-hero .kicker,.nx-hero .qline,.nx-hero .ship-when,.nx-hero .jumpq .jq-t,.nx-hero .tag,.nx-hero .timestamp,.nx-hero .reviewed,.nx-hero .ghero-foot,.nx-hero .dd-hero-foot{background:color-mix(in srgb,var(--nx-c1) 82%,transparent);padding:3px 8px;border-radius:6px;width:fit-content;max-width:100%}
.nx-hero .ghero-foot{display:block}
.nx-hero .kicker,.nx-hero .qline{display:inline-block}
.nx-hero:not(.nx-center) .eyebrow{color:var(--nx-acc,#fff)!important;display:inline-block}
.nx-hero .tag,.nx-hero .tag *,.nx-hero .gclass-badge{color:rgba(255,255,255,.9)!important}
.nx-hero .gclass-badge{background:color-mix(in srgb,var(--nx-c1) 82%,transparent)!important}
.nx-hero .ship-when{display:inline-block;color:rgba(255,255,255,.9)!important}
.nx-cabins-hero h1{max-width:min(16ch,62%)}
@media (max-width:860px){.nx-cabins-hero h1{max-width:none}}
/* new tool classes */
.nx-js .nx-nojs{display:none}
.nx-nojs{margin:6px 0 0;font:600 15px/1.5 var(--nx-display)}
.nx-nojs a{color:var(--nx-link,#1d4ed8)!important}
.nx-live{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nx-mini.nx-warn{padding:10px 12px;border-radius:12px;background:#fff6e0;color:#5b4300;box-shadow:inset 0 0 0 1px #f0d48a;font-size:13.5px}
.nx-match.nx-miss{background:#fde8e4;color:#8a2412}
.nx-cards.nx-cards-1{grid-template-columns:minmax(0,1fr)}
.nx-cards.nx-cards-2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:860px){.nx-cards.nx-cards-2{grid-template-columns:1fr}}
.nx-mini.nx-note2{color:#3d4152;font-size:13.5px}
.nx-tool-foot .nx-nofee{flex-basis:100%;margin:0;color:#4a4e60}
.nx-tool-foot .nx-nofee b{color:var(--nx-ink)}
.nx-out .nx-tool-foot .nx-nofee,.nx-out .nx-tool-foot .nx-nofee b{color:rgba(255,255,255,.86)}
.nx-out .nx-mini.nx-fine{color:rgba(255,255,255,.72)}
.nx-mini.nx-fine{font-size:12px}
p.nx-perks{margin:10px 0 0;font:500 14.5px/1.5 var(--nx-display)!important;color:inherit}
.nx-wall.nx-few{grid-template-columns:repeat(auto-fit,minmax(210px,280px));justify-content:center}
@media (max-width:640px){.nx-ghero .nx-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  body.nx-on{padding-bottom:64px}}
.nx-hero:not(.nx-center) .nx-cta{margin-bottom:38px}
@media (max-width:760px){.nx-hero:not(.nx-center) .nx-cta{margin-bottom:8px}}
.nx-hero .sjtip-btn{background:color-mix(in srgb,var(--nx-c1) 85%,#000)!important;color:#fff!important}
