/* Seabound Journeys · Royal Caribbean "rx" layer (Oct 2026)
   Big, bright, bold. Royal blue + ocean cyan + sunshine yellow on warm white.
   Abstract class cues only (no ships, no attraction silhouettes). Loads after the page's own CSS. */
:root{
  --rx-blue:#0756C9; --rx-blue-2:#0A47A8; --rx-cyan:#00B9D6; --rx-cyan-d:#007C93; --rx-sun:#FFD447; --rx-sun-2:#FFC21A;
  --rx-navy:#082746; --rx-aqua:#EAF9FC; --rx-paper:#FFFCF4; --rx-coral:#FF7A59; --rx-coral-d:#C8402A;
  --rx-ink:#082746; --rx-muted:#3A5470;
  --rx-display:"Unbounded","Bricolage Grotesque",system-ui,sans-serif;
  --rx-sans:"Bricolage Grotesque",system-ui,sans-serif;
  --rx-r:22px;
}
html:has(body.rx){background:var(--rx-paper)}
body.rx{
  /* re-key the guide template's tokens to the Royal palette */
  --deep:var(--rx-navy); --sea:var(--rx-blue); --sea-line:#3B7FE0;
  --paper:var(--rx-paper); --paper-2:#D7ECF4;
  --brass:var(--rx-cyan); --brass-text:var(--rx-blue); --brass-lt:var(--rx-sun);
  --coral:var(--rx-coral-d); --ink:var(--rx-ink); --muted:var(--rx-muted);
  /* --line/--line-lt stay on Royal's assigned Seabound score colour (standing rule) */
  --rc:var(--rx-blue); --rc-lt:#6FA6F0; --gold:var(--rx-sun); --gold-lt:var(--rx-sun);
  --shadow:0 1px 0 rgba(8,39,70,.05),0 14px 34px -20px rgba(7,86,201,.45);
  background:var(--rx-paper); color:var(--rx-ink); overflow-x:clip;
}
html body.rx[data-dnx]{
  --dnx-1:#061C38; --dnx-2:#082746; --dnx-3:#0A3F8F; --dnx-4:#0756C9; --dnx-5:#FFD447; --dnx-6:#FFFFFF;
  --dnx-scene:radial-gradient(90% 70% at 100% 0%,rgba(0,185,214,.2),transparent 62%),radial-gradient(70% 60% at 0% 110%,rgba(255,212,71,.22),transparent 60%),linear-gradient(160deg,#0756C9 0%,#0A47A8 38%,#082746 100%);
}

/* ================= HERO ================= */
.rx-hero{position:relative;overflow:hidden;isolation:isolate;color:#fff;
  background:linear-gradient(180deg,#0546B2 0%,#0756C9 48%,#0A62CF 72%,#0F86D6 88%,#00B9D6 100%);
  padding:clamp(40px,6vw,76px) 0 0}
.rx-hero::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(60% 50% at 18% 0%,rgba(255,255,255,.14),transparent 70%),
             repeating-linear-gradient(115deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px)}
.rx-art{position:absolute;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}
.rx-hero-in{position:relative;max-width:1180px;margin:0 auto;padding:0 28px;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:40px;align-items:center}
.rx-copy{max-width:640px}
.rx-hero .rx-eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0 0 18px;
  font:700 12px/1.2 var(--rx-sans);letter-spacing:.16em;text-transform:uppercase;color:#fff}
.rx-hero .rx-eyebrow a{color:var(--rx-navy);background:var(--rx-sun);text-decoration:none;padding:6px 11px;border-radius:999px;transition:transform .2s}
.rx-hero .rx-eyebrow a:hover{transform:translateY(-1px)}
.rx-hero .rx-eyebrow .rc3-dot{width:6px;height:6px;border-radius:50%;background:var(--rx-cyan);display:inline-block}
.rx-hero h1.rx-h1{font-family:var(--rx-display);font-weight:800;font-size:clamp(32px,4.5vw,58px);line-height:1.04;letter-spacing:-.025em;margin:0 0 18px;color:#fff;text-wrap:balance;
  text-shadow:0 2px 0 rgba(8,39,70,.25),0 18px 40px rgba(8,39,70,.25)}
.rx-hero h1.rx-h1 em{font-style:normal;color:var(--rx-sun);display:inline;background:linear-gradient(transparent 78%,rgba(255,122,89,.85) 78% 92%,transparent 92%)}
.rx-dek{font:500 clamp(17px,1.6vw,20px)/1.5 var(--rx-sans);color:#fff;max-width:52ch;margin:0 0 26px;opacity:.96}
.rx-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.rx-btn{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 24px;border-radius:999px;text-decoration:none;
  font:800 16px/1 var(--rx-sans);letter-spacing:.005em;transition:transform .18s ease,box-shadow .18s ease,background .18s}
.rx-btn svg{width:18px;height:18px;transition:transform .2s}
.rx-btn:hover svg{transform:translateX(3px)}
.rx-btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.rx-btn-sun{background:var(--rx-sun);color:var(--rx-navy);box-shadow:0 4px 0 #D9A900,0 14px 28px -10px rgba(8,39,70,.55)}
.rx-btn-sun:hover{transform:translateY(-2px);box-shadow:0 6px 0 #D9A900,0 18px 32px -10px rgba(8,39,70,.6);background:#FFDC66}
.rx-btn-sun:active{transform:translateY(2px);box-shadow:0 1px 0 #D9A900}
.rx-btn-ghost{color:#fff;border:2px solid rgba(255,255,255,.75);background:rgba(8,39,70,.16)}
.rx-btn-ghost:hover{background:#fff;color:var(--rx-blue);border-color:#fff}
.rx-nofee{display:table;margin:12px 0 0;font:600 13px/1.4 var(--rx-sans);color:#fff;opacity:.9}

/* adventure pass */
.rx-pass{justify-self:end;position:relative;display:block;width:min(100%,330px);text-decoration:none;color:var(--rx-navy);
  background:#fff;border-radius:20px;transform:rotate(3deg);transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;
  box-shadow:0 2px 0 rgba(8,39,70,.08),0 30px 60px -24px rgba(8,39,70,.6);
  -webkit-mask:radial-gradient(circle 11px at 0 66%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 66%,#0000 98%,#000) right/51% 100% no-repeat;
          mask:radial-gradient(circle 11px at 0 66%,#0000 98%,#000) left/51% 100% no-repeat,radial-gradient(circle 11px at 100% 66%,#0000 98%,#000) right/51% 100% no-repeat}
.rx-pass:hover,.rx-pass:focus-visible{transform:rotate(0) translateY(-4px)}
.rx-pass:focus-visible{outline:3px solid var(--rx-sun);outline-offset:4px}
.rx-pass-top{display:flex;justify-content:space-between;gap:8px;padding:12px 18px;border-radius:20px 20px 0 0;background:var(--rx-sun);
  font:800 11px/1.2 var(--rx-sans);letter-spacing:.14em;text-transform:uppercase}
.rx-pass-top span:last-child{font-weight:600;letter-spacing:.06em}
.rx-pass-body{display:flex;align-items:center;gap:16px;padding:20px 18px 18px}
.rx-ring{--v:80;flex:none;position:relative;width:104px;height:104px;border-radius:50%;display:grid;place-items:center;
  background:conic-gradient(var(--rx-blue) calc(var(--v)*1%),#D7ECF4 0)}
.rx-ring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:#fff}
.rx-ring b{position:relative;font:800 34px/1 var(--rx-display);letter-spacing:-.04em;color:var(--rx-blue);font-variant-numeric:tabular-nums}
.rx-ring small{position:absolute;bottom:22px;font:700 11px/1 var(--rx-sans);color:var(--rx-muted)}
.rx-pass-t{display:flex;flex-direction:column;gap:4px;min-width:0}
.rx-pass-t small{font:800 11px/1.2 var(--rx-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--rx-blue)}
.rx-pass-t strong{font:800 18px/1.15 var(--rx-sans);color:var(--rx-navy)}
.rx-pass-l{font:600 13px/1.3 var(--rx-sans);color:var(--rx-cyan-d)}
.rx-pass-perf{display:block;margin:0 16px;border-top:2px dashed #BFDDE9}
.rx-pass-foot{display:flex;justify-content:space-between;gap:6px;padding:12px 18px 16px;font:700 11px/1.2 var(--rx-sans);letter-spacing:.08em;text-transform:uppercase;color:var(--rx-muted)}

/* stat cards */
.rx-stats{position:relative;list-style:none;max-width:1180px;margin:44px auto 0;padding:0 28px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.rx-stat{position:relative;background:#fff;border-radius:18px;padding:18px 18px 16px;color:var(--rx-navy);overflow:hidden;
  box-shadow:0 1px 0 rgba(8,39,70,.06),0 20px 40px -26px rgba(8,39,70,.55);transition:transform .25s}
.rx-stat:hover{transform:translateY(-3px)}
.rx-stat::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--k,var(--rx-blue))}
.rx-s-b{--k:var(--rx-blue)} .rx-s-c{--k:var(--rx-cyan)} .rx-s-y{--k:var(--rx-sun)} .rx-s-r{--k:var(--rx-coral)}
.rx-stat b{display:block;font:800 clamp(28px,3vw,38px)/1 var(--rx-display);letter-spacing:-.03em;color:var(--rx-blue);font-variant-numeric:tabular-nums;margin-top:4px}
.rx-stat span{display:block;margin-top:8px;font:600 14px/1.35 var(--rx-sans);color:var(--rx-muted)}
.rx-checked{position:relative;margin:0;background:var(--rx-paper);padding:16px max(28px,calc(50% - 562px)) 34px;font:500 13px/1.5 var(--rx-sans);color:var(--rx-navy)}
/* the art's last wave is the page colour, so the stat row sits in the water */

/* hero art */
.rx-wave{transform-box:fill-box}
@media (prefers-reduced-motion:no-preference){
  .rx-w1{animation:rxDrift 26s linear infinite} .rx-w2{animation:rxDrift 19s linear infinite reverse}
  .rx-w3{animation:rxDrift 31s linear infinite}
  .rx-glow{animation:rxBreathe 7s ease-in-out infinite alternate;transform-origin:1160px 300px}
  .rx-glint{opacity:.7;stroke-dasharray:40 900;animation:rxFlow 5.5s linear infinite;animation-delay:calc(var(--i)*-1.3s)}
  .rx-spk{animation:rxTwinkle 3.4s ease-in-out infinite;animation-delay:var(--d)}
  .rx-arc{animation:rxArc 6s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.6s)}
  .rx-leaves{animation:rxSway 8s ease-in-out infinite alternate;transform-origin:1100px 600px}
  .rx-pass{animation:rxFloat 6s ease-in-out infinite}
  .rx-pass:hover,.rx-pass:focus-visible{animation-play-state:paused}
}
.rx-rib{stroke-width:15;opacity:.92}
.rx-glint{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;opacity:0}
.rx-dome{opacity:.3} .rx-dome-rim{opacity:.55}
.rx-spk{opacity:.75}
@keyframes rxDrift{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes rxBreathe{from{opacity:.75;transform:scale(.96)}to{opacity:1;transform:scale(1.04)}}
@keyframes rxFlow{from{stroke-dashoffset:940}to{stroke-dashoffset:0}}
@keyframes rxTwinkle{0%,100%{opacity:.15}50%{opacity:.95}}
@keyframes rxArc{from{opacity:.55}to{opacity:1}}
@keyframes rxSway{from{transform:translateY(0)}to{transform:translateY(-8px)}}
@keyframes rxFloat{0%,100%{translate:0 0}50%{translate:0 -6px}}

/* ================= ADVENTURE BRIEFING ================= */
.rx-brief-wrap{position:relative;max-width:1080px;margin:8px auto 0;padding:0 24px}
.rx-brief{position:relative;display:block;background:#fff;border-radius:28px;padding:36px 40px 0;overflow:hidden;
  box-shadow:0 1px 0 rgba(8,39,70,.05),0 30px 60px -36px rgba(7,86,201,.55);border:1px solid #D7ECF4}
.rx-brief::before{content:"";position:absolute;inset:0 0 auto 0;height:8px;background:linear-gradient(90deg,var(--rx-blue) 0 40%,var(--rx-cyan) 40% 70%,var(--rx-sun) 70% 90%,var(--rx-coral) 90%)}
.rx-k{display:inline-flex;align-items:center;gap:10px;margin:0 0 10px;font:800 12px/1.2 var(--rx-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--rx-blue)}
.rx-k::before{content:"";width:28px;height:4px;border-radius:4px;background:var(--rx-sun)}
.rx-brief .rx-k,.rx-brief h2.rx-brief-h,.rx-open{max-width:calc(100% - 210px)}
.rx-brief h2.rx-brief-h{font:800 clamp(22px,2.6vw,30px)/1.15 var(--rx-display);letter-spacing:-.02em;color:var(--rx-navy);margin:0 0 14px;text-wrap:balance}
.rx-open{font-size:19px;line-height:1.6;color:var(--rx-ink);margin:0 0 22px;max-width:62ch}
.rx-open b{color:var(--rx-blue);font-weight:600}
.rx-takes{list-style:none;margin:0 0 22px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.rx-takes li{display:flex;gap:12px;align-items:flex-start;background:var(--rx-aqua);border-radius:16px;padding:16px 16px 18px}
.rx-tn{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--rx-blue);color:#fff;font:800 14px/1 var(--rx-display);box-shadow:0 0 0 3px #fff,0 0 0 5px var(--rx-cyan)}
.rx-takes b{display:block;font:800 15px/1.25 var(--rx-sans);color:var(--rx-navy);margin:5px 0 6px}
.rx-takes p{margin:0;font:500 14.5px/1.5 var(--rx-sans);color:#21405F}
.rx-brief .rc3-a-by{display:flex;align-items:center;gap:10px;font:500 13px/1.45 var(--rx-sans);color:var(--rx-muted);padding:0 0 26px}
.rx-brief .rc3-a-by b{color:var(--rx-navy)}
.rx-brief .rc3-mono{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--rx-navy);color:var(--rx-sun);font:800 12px/1 var(--rx-sans)}
.rx-stamp{position:absolute;top:34px;right:38px;width:176px;height:176px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;
  color:var(--rx-coral-d);border:4px solid var(--rx-coral-d);box-shadow:inset 0 0 0 5px #fff,inset 0 0 0 7px var(--rx-coral-d);transform:rotate(-9deg);padding:20px;background:#FFF6F2}
.rx-stamp span{font:800 12px/1 var(--rx-sans);letter-spacing:.22em;text-transform:uppercase}
.rx-stamp b{font:800 19px/1.12 var(--rx-display);letter-spacing:-.01em;text-transform:uppercase}
.rx-stamp i{font:700 10px/1 var(--rx-sans);letter-spacing:.16em;text-transform:uppercase;font-style:normal;opacity:.8}
.js-rx .rx-stamp.rx-pre{opacity:0;transform:rotate(-9deg) scale(1.5)}
.rx-stamp.rx-in{animation:rxStamp .5s cubic-bezier(.3,1.6,.5,1) both}
@keyframes rxStamp{from{opacity:0;transform:rotate(-9deg) scale(1.6)}to{opacity:1;transform:rotate(-9deg) scale(1)}}
.rx-brief-cta{margin:0 -40px;padding:22px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;
  background:linear-gradient(100deg,var(--rx-blue),#0860CF 60%,#0A5FA8);color:#fff}
.rx-brief-cta p{margin:0;font:500 15px/1.5 var(--rx-sans);max-width:56ch}
.rx-brief-cta p b{display:block;font:800 19px/1.25 var(--rx-display);margin-bottom:4px;color:#fff}
.rx-go{display:flex;flex-direction:column;align-items:center;gap:6px}
.rx-go small{font:600 12.5px/1 var(--rx-sans);color:#fff;opacity:.92}

/* ================= SECTION NAV ================= */
body.rx .guide-family{max-width:1080px;padding:0 24px;margin-top:26px}
body.rx .guide-family a{border:2px solid #D7ECF4;color:var(--rx-blue);font-family:var(--rx-sans)}
body.rx .guide-family a:hover{border-color:var(--rx-blue);background:var(--rx-aqua)}
body.rx .navbar{background:rgba(255,252,244,.94);border-bottom:0;box-shadow:0 1px 0 #D7ECF4,0 10px 24px -20px rgba(8,39,70,.5);margin-top:22px}
body.rx .navbar::after{display:none}
body.rx .navbar .wrap{max-width:1180px;scroll-behavior:smooth;scroll-padding-inline:60px;gap:6px;padding:10px 24px}
body.rx .navbar a{font:700 12.5px/1 var(--rx-sans);letter-spacing:.04em;text-transform:none;color:var(--rx-navy);border:2px solid #D7ECF4;background:#fff;padding:9px 14px}
body.rx .navbar a:hover,body.rx .navbar a:focus-visible{background:var(--rx-aqua);color:var(--rx-blue);border-color:var(--rx-cyan)}
body.rx .navbar a.here,body.rx .navbar a.active{background:var(--rx-blue);border-color:var(--rx-blue);color:#fff}
.rx-navbtn{position:absolute;top:50%;translate:0 -50%;z-index:3;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;
  background:var(--rx-sun);color:var(--rx-navy);box-shadow:0 6px 16px -6px rgba(8,39,70,.5);transition:opacity .2s,transform .2s}
.rx-navbtn:hover{transform:scale(1.08)}
.rx-navbtn:focus-visible{outline:3px solid var(--rx-blue);outline-offset:2px}
.rx-navbtn[hidden]{display:none}
.rx-navbtn svg{width:18px;height:18px}
.rx-navbtn.l{left:8px} .rx-navbtn.r{right:8px}
.rx-navfade{position:absolute;top:0;bottom:0;width:70px;pointer-events:none;z-index:2;transition:opacity .2s}
.rx-navfade.l{left:0;background:linear-gradient(90deg,rgba(255,252,244,1) 40%,rgba(255,252,244,0))}
.rx-navfade.r{right:0;background:linear-gradient(270deg,rgba(255,252,244,1) 40%,rgba(255,252,244,0))}
.rx-navfade[hidden]{display:none}
body.rx main section[id],body.rx [id].sect-rise{scroll-margin-top:calc(var(--sjh-h,64px) + 76px)}

/* ================= SECTIONS ================= */
body.rx main.wrap{max-width:1000px}
body.rx main.wrap>section{position:relative;padding:58px 0 50px}
body.rx main.wrap>section:nth-of-type(even)::before{content:"";position:absolute;z-index:-1;top:0;bottom:0;left:50%;width:100vw;translate:-50% 0;background:var(--rx-aqua);
  -webkit-mask:linear-gradient(#000,#000);}
body.rx main.wrap>section:nth-of-type(even)::after{content:"";position:absolute;z-index:-1;top:-1px;left:50%;width:100vw;height:26px;translate:-50% 0;
  background:radial-gradient(18px 13px at 50% 0,var(--rx-paper) 98%,transparent) 0 0/48px 26px repeat-x}
body.rx main.wrap{position:relative;z-index:0;background:transparent}
body.rx main.wrap>section{background:transparent}
body.rx .section-head{align-items:center;gap:16px;margin-bottom:14px}
body.rx .section-head .num{flex:none;position:relative;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:var(--rx-blue);color:var(--rx-sun);font:800 17px/1 var(--rx-display);letter-spacing:-.02em;
  box-shadow:inset 0 0 0 4px var(--rx-blue),inset 0 0 0 7px rgba(255,255,255,.95),0 0 0 3px var(--rx-cyan),0 10px 22px -10px rgba(7,86,201,.7)}
body.rx .section-head .num::after{content:"";position:absolute;inset:-9px;border-radius:50%;
  background:conic-gradient(from -8deg,var(--rx-sun) 0 16deg,transparent 16deg 90deg,var(--rx-sun) 90deg 106deg,transparent 106deg 180deg,var(--rx-sun) 180deg 196deg,transparent 196deg 270deg,var(--rx-sun) 270deg 286deg,transparent 286deg);
  -webkit-mask:radial-gradient(circle,transparent 31px,#000 32px);mask:radial-gradient(circle,transparent 31px,#000 32px);z-index:-1}
body.rx main h2,body.rx .section-head h2{font-family:var(--rx-display);font-weight:800;letter-spacing:-.025em;color:var(--rx-navy);font-size:clamp(25px,3.3vw,36px);line-height:1.08}
body.rx .section-head h2{position:relative;padding-bottom:12px}
body.rx .section-head h2::after{content:"";position:absolute;left:0;bottom:0;width:120px;height:6px;border-radius:6px;background:linear-gradient(90deg,var(--rx-blue) 0 33%,var(--rx-cyan) 33% 66%,var(--rx-sun) 66%)}
body.rx[data-rx-class="oasis"] .section-head h2::after{background:linear-gradient(90deg,#2BB673 0 33%,var(--rx-sun) 33% 66%,var(--rx-coral) 66%)}
body.rx main h3{font-family:var(--rx-sans);font-weight:800;color:var(--rx-navy)}
body.rx .lede{color:var(--rx-muted);font-size:19px}
body.rx .prose b,body.rx .lede b{color:var(--rx-navy);font-weight:600}
body.rx main a:not([class]){color:var(--rx-blue);text-decoration-color:rgba(0,185,214,.6);text-decoration-thickness:2px;text-underline-offset:3px}
body.rx .insight{background:#fff;border:2px solid #CFEAF3;border-left:8px solid var(--rx-cyan);border-radius:18px;box-shadow:var(--shadow)}
body.rx .insight .insight-k,body.rx .insight .ik{color:var(--rx-blue);font-weight:700}
body.rx .pullquote{color:var(--rx-blue);border-left:6px solid var(--rx-sun);font-size:22px}

/* scorecard */
body.rx .profile{position:relative;overflow:hidden;border-radius:26px;padding:34px 34px 30px;
  background:radial-gradient(70% 90% at 100% 0%,rgba(0,185,214,.25),transparent 60%),linear-gradient(150deg,#0756C9,#0A47A8 55%,#082746);
  box-shadow:0 30px 60px -34px rgba(7,86,201,.8)}
body.rx .profile::after{content:"";position:absolute;right:-60px;bottom:-60px;width:240px;height:240px;border-radius:50%;border:26px solid rgba(255,212,71,.16);pointer-events:none}
body.rx .profile-head .scores-title{font-family:var(--rx-display);font-size:20px;letter-spacing:-.01em}
body.rx .profile-note{color:#DCEBFF}
body.rx .gauge-lbl{color:#fff;font-family:var(--rx-sans);font-weight:700;font-size:13px;letter-spacing:.06em}
body.rx .gauge-val{color:var(--rx-sun);font-family:var(--rx-display);font-size:20px}
body.rx .gauge-track{height:12px;background:rgba(255,255,255,.16)}
body.rx .gauge-fill{background:linear-gradient(90deg,var(--line-lt),#C9DBFA)}
body.rx .profile a{color:var(--rx-sun)}

/* tools = vacation planners */
body.rx .tool,body.rx .recs{border-radius:26px;padding:34px 32px 30px;
  background:radial-gradient(80% 70% at 100% 0%,rgba(0,185,214,.18),transparent 62%),linear-gradient(160deg,#0756C9 0%,#0A47A8 45%,#082746 100%);
  box-shadow:0 30px 60px -36px rgba(7,86,201,.85)}
body.rx .tool::before{inset:0 0 auto 0;width:auto;height:8px;background:linear-gradient(90deg,var(--rx-sun) 0 45%,var(--rx-cyan) 45% 75%,var(--rx-coral) 75%)}
body.rx .tool-k,body.rx .recs .tag{display:inline-flex;align-items:center;gap:8px;background:var(--rx-sun);color:var(--rx-navy);padding:7px 12px;border-radius:999px;font:800 11px/1 var(--rx-sans);letter-spacing:.12em;margin-bottom:14px}
body.rx .tool h3{font-family:var(--rx-display);font-size:clamp(20px,2.4vw,26px);letter-spacing:-.015em}
body.rx .tool .tool-sub,body.rx .dm-opt .o-d,body.rx .dm-pick .p-w,body.rx .bc-vsub,body.rx .rec .why,body.rx .dnx-sub{color:#E4EEFF}
body.rx .tool-note,body.rx .vexp-sort,body.rx .vexp-legend,body.rx .vrow-sub,body.rx .dm-q .dm-lbl,body.rx .bc-f label,body.rx .bc-in span,body.rx .bc-meals .bc-mh,body.rx .bc-rp,body.rx .bc-hint,body.rx .rec .k{color:#D3E3FA}
body.rx .tool-note b,body.rx .vexp-sort button,body.rx .bc-l,body.rx .bc-step button,body.rx .dm-reset{color:#E6F0FF}
body.rx .fchip{color:#fff;border-color:rgba(255,255,255,.3);background:rgba(255,255,255,.08);font-family:var(--rx-sans);font-weight:700;font-size:13px}
body.rx .fchip[aria-pressed="true"],body.rx .vexp-sort button[aria-pressed="true"]{background:var(--rx-sun);border-color:var(--rx-sun);color:var(--rx-navy)}
body.rx .vexp-count,body.rx .vrow-sc,body.rx .dm-pick .p-r,body.rx .dm-pick .p-s{color:var(--rx-sun)}
body.rx .vrow-fl{background:linear-gradient(90deg,var(--line-lt),#C9DBFA)}
body.rx .vrow-sc.tbd{color:#D3E3FA}
body.rx .dm-opt{border-radius:14px;background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.22)}
body.rx .dm-opt[aria-pressed="true"]{background:var(--rx-sun);border-color:var(--rx-sun);box-shadow:0 8px 20px -10px rgba(255,212,71,.8)}
body.rx .dm-opt[aria-pressed="true"] .o-t,body.rx .dm-opt[aria-pressed="true"] .o-d{color:var(--rx-navy)}
body.rx .dm-pick{border-radius:14px;background:rgba(255,255,255,.1)}
body.rx .bc-in{border-radius:12px}
body.rx .bc-verdict.win{color:#8CF0BE} body.rx .bc-verdict.lose{color:#FFC2B3}
body.rx .rec{border-radius:16px}
body.rx .rec .v{font-family:var(--rx-sans)}
body.rx .dnx-mod{border-radius:26px}
body.rx .dnx-mod::before{content:"";position:absolute;inset:0 0 auto 0;height:8px;z-index:3;background:linear-gradient(90deg,var(--rx-cyan) 0 40%,var(--rx-sun) 40% 80%,var(--rx-coral) 80%)}
body.rx .dnx-h{font-family:var(--rx-display);letter-spacing:-.015em}

/* venue cards */
body.rx .klass{position:relative;border:0;border-radius:24px;background:#fff;box-shadow:0 1px 0 rgba(8,39,70,.05),0 22px 44px -30px rgba(7,86,201,.65);transition:transform .25s,box-shadow .25s}
body.rx .klass:hover{transform:translateY(-3px);box-shadow:0 1px 0 rgba(8,39,70,.05),0 30px 54px -30px rgba(7,86,201,.75)}
body.rx .klass::before{content:"";position:absolute;inset:0 0 auto 0;height:8px;background:linear-gradient(90deg,var(--rx-blue),var(--rx-cyan))}
body.rx main.wrap>section:nth-of-type(3n) .klass::before{background:linear-gradient(90deg,var(--rx-cyan),var(--rx-sun))}
body.rx main.wrap>section:nth-of-type(3n+1) .klass::before{background:linear-gradient(90deg,var(--rx-sun),var(--rx-coral))}
body.rx .klass-top{border-bottom:2px dashed #D7ECF4;padding-top:30px}
body.rx .klass h3{font-family:var(--rx-sans);font-weight:800;font-size:26px;color:var(--rx-navy)}
body.rx .klass-rank{color:var(--rx-blue);font-weight:700}
body.rx .klass-tag{color:var(--rx-muted)}
body.rx .spec-row{color:var(--rx-blue)}
body.rx .spec-row b{color:var(--rx-navy)}

/* comparison + showdown */
body.rx .h2h{border:0;border-radius:20px;box-shadow:var(--shadow)}
body.rx .h2h th{background:var(--rx-blue);color:#fff}
body.rx .h2h th.royal-h{color:var(--rx-sun)}
body.rx .h2h td.label{background:var(--rx-aqua);color:var(--rx-blue)}
body.rx .sd{border-radius:24px}

/* faq */
body.rx .faq details{border-bottom:2px solid #D7ECF4}
body.rx .faq summary{font-family:var(--rx-sans);font-weight:800;color:var(--rx-navy)}
body.rx .faq summary::after{content:"+";display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;background:var(--rx-sun);color:var(--rx-navy);font:800 20px/1 var(--rx-sans)}

/* CTA bands: full-bleed */
body.rx .rc3-band{position:relative;margin:30px calc(50% - 50vw);border-radius:0;padding:52px max(24px,calc(50vw - 480px));display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  background:radial-gradient(50% 120% at 100% 0%,rgba(255,212,71,.2),transparent 60%),linear-gradient(110deg,var(--rx-blue),#0860CF 60%,#0A5FA8);color:#fff;overflow:hidden;box-shadow:none;border:0}
body.rx .rc3-band::after{content:"";position:absolute;inset:auto;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;border:34px solid rgba(255,255,255,.14);background:none;opacity:1;transform:none;pointer-events:none}
body.rx .rc3-band>*{position:relative;z-index:1}
body.rx .rc3-band.rx-band-sun{background:radial-gradient(60% 120% at 0% 100%,rgba(255,255,255,.5),transparent 60%),linear-gradient(110deg,var(--rx-sun),#FFC21A);color:var(--rx-navy)}
body.rx .rc3-band .rc3-band-k{color:inherit;font:800 12px/1 var(--rx-sans);letter-spacing:.16em;text-transform:uppercase;opacity:.92}
body.rx .rc3-band h2{font:800 clamp(22px,2.8vw,32px)/1.12 var(--rx-display);letter-spacing:-.02em;color:inherit;margin:10px 0 10px;max-width:24ch}
body.rx .rc3-band p{color:inherit;font:500 16px/1.5 var(--rx-sans);max-width:58ch}
body.rx .rc3-band small{color:inherit;font:600 12.5px/1 var(--rx-sans);opacity:.92}
body.rx .rc3-band .rc3-btn-pri{background:var(--rx-sun);color:var(--rx-navy);box-shadow:0 4px 0 #D9A900,0 14px 28px -12px rgba(8,39,70,.6);border:0;font:800 16px/1 var(--rx-sans);min-height:52px;padding:0 24px;border-radius:999px}
body.rx .rc3-band.rx-band-sun .rc3-btn-pri,body.rx .rc3-band.rx-band-sun .rc3-btn-pri *{color:#fff}
body.rx .rc3-band.rx-band-sun .rc3-btn-pri{background:var(--rx-navy);box-shadow:0 4px 0 #031424,0 14px 28px -12px rgba(8,39,70,.6)}
body.rx .rc3-band .rc3-btn-pri:hover{transform:translateY(-2px)}


/* Seabound on-ramps sit on the page colour */
body.rx .sba-sr,body.rx .sbf-sr{background:transparent}

/* where I'd spend: bright vacation-plan tiles */
body.rx .recs{background:#fff;color:var(--rx-ink);box-shadow:0 1px 0 rgba(8,39,70,.05),0 26px 50px -34px rgba(7,86,201,.6);position:relative;overflow:hidden}
body.rx .recs::before{content:"";position:absolute;inset:0 0 auto 0;height:8px;background:linear-gradient(90deg,var(--rx-blue) 0 25%,var(--rx-cyan) 25% 50%,var(--rx-sun) 50% 75%,var(--rx-coral) 75%)}
body.rx .recs .rec{background:var(--rx-aqua);border:0;border-radius:18px;padding:18px 18px 20px;position:relative}
body.rx .recs .rec:nth-child(4n+2){background:#FFF6D6} body.rx .recs .rec:nth-child(4n+3){background:#E6F0FF} body.rx .recs .rec:nth-child(4n+4){background:#FFEDE7}
body.rx .recs .rec .k{color:var(--rx-blue);font-family:var(--rx-sans);font-weight:800}
body.rx .recs .rec .v{color:var(--rx-navy);font-size:19px;font-weight:800}
body.rx .recs .rec .why{color:#21405F}

body.rx .recs .rec:has(.rec-rank){display:flex;gap:14px;align-items:flex-start;margin-top:10px}
body.rx .recs .rec-rank{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--rx-blue);color:#fff;font:800 14px/1 var(--rx-display);box-shadow:0 0 0 3px #fff,0 0 0 5px var(--rx-cyan)}
body.rx .recs .rec-n{font:800 18px/1.25 var(--rx-sans);color:var(--rx-navy);margin-top:4px}
body.rx .recs .rec-s{display:inline-block;margin-left:6px;padding:3px 8px;border-radius:999px;background:var(--rx-sun);color:var(--rx-navy);font:800 12.5px/1.2 var(--rx-sans);vertical-align:2px}
body.rx .recs .rec-w{font:500 15px/1.5 var(--rx-sans);color:#21405F;margin-top:5px}
body.rx .recs .rec-m{font:600 12px/1.4 var(--rx-sans);color:var(--rx-muted);margin-top:6px;letter-spacing:.02em}

/* related cards: abstract colour plates (no ship drawings) */
body.rx .relcard{border:0;border-radius:20px;box-shadow:0 18px 40px -28px rgba(7,86,201,.65)}
body.rx .relcard:has(.rx-plate){padding:0}
body.rx .relcard{background:#fff}
body.rx .relcard .rt{font-family:var(--rx-sans);font-weight:800;color:var(--rx-navy)}
body.rx .relcard .rarr{color:var(--rx-blue);font-weight:700}
.rx-plate{position:relative;overflow:hidden;height:124px;background:linear-gradient(180deg,#0756C9,#1585DB 60%,#00B9D6)}
.rx-plate i{position:absolute;display:block;border-radius:50%}
.rx-plate i:nth-child(1){width:90px;height:90px;right:18%;top:18%;background:radial-gradient(circle,#FFE68A,#FFD447 55%,rgba(255,212,71,0) 72%)}
.rx-plate i:nth-child(2){left:-10%;right:-10%;bottom:-70px;height:120px;border-radius:50% 50% 0 0;background:#00B9D6;opacity:.85}
.rx-plate i:nth-child(3){left:-20%;right:20%;bottom:-86px;height:120px;border-radius:50% 50% 0 0;background:var(--rx-aqua)}
.rx-plate[data-p="1"]{background:linear-gradient(180deg,#00A3C4,#3FD0E6)} .rx-plate[data-p="1"] i:nth-child(1){left:14%;right:auto;background:radial-gradient(circle,#fff,rgba(255,255,255,0) 70%)}
.rx-plate[data-p="2"]{background:linear-gradient(135deg,#FFD447,#FF9F5A)} .rx-plate[data-p="2"] i:nth-child(2){background:var(--rx-blue)}
.rx-plate[data-p="3"]{background:linear-gradient(180deg,#082746,#0756C9)} .rx-plate[data-p="3"] i:nth-child(1){top:12%;width:60px;height:60px}
.rx-plate[data-p="4"]{background:linear-gradient(160deg,#0756C9,#00B9D6)} .rx-plate[data-p="4"] i:nth-child(2){background:#FFD447;opacity:.9}
.rx-plate[data-p="5"]{background:linear-gradient(180deg,#FF7A59,#FFD447)} .rx-plate[data-p="5"] i:nth-child(1){background:radial-gradient(circle,#fff,rgba(255,255,255,0) 70%)}
@media (prefers-reduced-motion:no-preference){.relcard:hover .rx-plate i:nth-child(1){transform:translateY(-6px);transition:transform .4s}}

/* footer keeps the template, recoloured by tokens */

/* ================= RESPONSIVE ================= */
@media (max-width:1100px){
  .rx-hero-in{grid-template-columns:minmax(0,1fr) 300px;gap:26px}
  .rx-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  .rx-hero{padding-top:32px}
  .rx-hero-in{grid-template-columns:1fr;gap:28px;padding:0 18px}
  .rx-art{top:auto;height:560px;opacity:.85;-webkit-mask:linear-gradient(transparent,#000 45%);mask:linear-gradient(transparent,#000 45%)}
  .rx-pass{justify-self:start;transform:rotate(-1.5deg);width:min(100%,360px)}
  .rx-stats{padding:0 18px;margin-top:30px;gap:10px}
  .rx-checked{padding:14px 18px 26px}
  .rx-stats{padding-bottom:0}
  .rx-brief-wrap{padding:0 14px}
  .rx-brief{padding:30px 22px 0;border-radius:22px}
  .rx-brief .rx-k,.rx-brief h2.rx-brief-h,.rx-open{max-width:none}
  .rx-brief .rx-k,.rx-brief h2.rx-brief-h{max-width:calc(100% - 112px)}
  .rx-brief h2.rx-brief-h{min-height:84px}
  .rx-stamp{top:22px;right:16px;width:104px;height:104px;padding:10px;gap:3px;border-width:3px}
  .rx-stamp span{font-size:9px;letter-spacing:.14em} .rx-stamp i{display:none}
  .rx-stamp b{font-size:11.5px}
  .rx-takes{grid-template-columns:1fr}
  .rx-brief-cta{margin:0 -22px;padding:20px 22px}
  .rx-go{align-items:flex-start}
  body.rx .profile,body.rx .tool,body.rx .recs{padding:28px 20px 24px;border-radius:22px}
  body.rx .section-head .num{width:46px;height:46px;font-size:15px}
  body.rx .section-head .num::after{inset:-7px;-webkit-mask:radial-gradient(circle,transparent 26px,#000 27px);mask:radial-gradient(circle,transparent 26px,#000 27px)}
  body.rx main.wrap>section{padding:44px 0 38px}
  body.rx .rc3-band{padding:40px 20px}
  .rx-navbtn{display:none}
}
@media (max-width:420px){
  .rx-hero h1.rx-h1{font-size:30px}
  .rx-btn{width:100%;justify-content:center}
  .rx-stat{padding:14px 14px 13px}
  .rx-stat span{font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  .rx-pass,.rx-stat,.klass,.rx-btn{transition:none}
}

/* =====================================================================
   v2 · "nobody wants to leave" layer
   ===================================================================== */
/* living water (canvas) replaces the SVG water once JS runs */
.rx-sea{position:absolute;left:0;right:0;bottom:0;height:46%;width:100%;z-index:-1;pointer-events:none}
.js-rx .rx-hero.rx-has-sea .rx-waves{display:none}
.rx-hero{cursor:default}
.rx-art,.rx-copy{will-change:transform}

/* headline words rise */
.rx-h1-anim .rx-w{display:inline-block;opacity:0;transform:translateY(.55em) rotate(2deg);animation:rxWord .7s cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(.08s + var(--i)*.07s);transform-origin:left bottom}
@keyframes rxWord{to{opacity:1;transform:none}}
.rx-hero h1.rx-h1 em{position:relative;background:none}
.rx-hero h1.rx-h1 em::after{content:"";position:absolute;left:-.04em;right:-.04em;bottom:.1em;height:.22em;z-index:-1;border-radius:.1em;opacity:.85;
  background:linear-gradient(90deg,var(--rx-coral),#FF9A7A);transform:scaleX(0);transform-origin:left;animation:rxMark .6s cubic-bezier(.2,.8,.2,1) 1.1s forwards}
@keyframes rxMark{to{transform:scaleX(1)}}
.rx-hero h1.rx-h1 em{z-index:0}
@media (prefers-reduced-motion:reduce){.rx-hero h1.rx-h1 em::after{transform:none;animation:none}}

/* hero intro cascade */
.js-rx .rx-dek,.js-rx .rx-actions,.js-rx .rx-nofee,.js-rx .rx-eyebrow{animation:rxUp .8s cubic-bezier(.2,.8,.2,1) both}
.js-rx .rx-eyebrow{animation-delay:0s} .js-rx .rx-dek{animation-delay:.5s} .js-rx .rx-actions{animation-delay:.65s} .js-rx .rx-nofee{animation-delay:.8s}
.js-rx .rx-pass{animation:rxPassIn 1s cubic-bezier(.2,.9,.2,1) .35s both,rxFloat 6s ease-in-out 1.4s infinite}
.js-rx .rx-stat{animation:rxUp .7s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.7s + var(--n,0)*.1s)}
.rx-stat:nth-child(2){--n:1} .rx-stat:nth-child(3){--n:2} .rx-stat:nth-child(4){--n:3}
@keyframes rxUp{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes rxPassIn{from{opacity:0;transform:rotate(12deg) translate(60px,-40px) scale(.8)}to{opacity:1;transform:rotate(3deg)}}
@media (prefers-reduced-motion:reduce){.js-rx .rx-dek,.js-rx .rx-actions,.js-rx .rx-nofee,.js-rx .rx-eyebrow,.js-rx .rx-pass,.js-rx .rx-stat{animation:none}}

/* holographic pass */
.rx-pass.rx-holo{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(3deg);transition:transform .15s ease-out}
.rx-pass.rx-holo::after{content:"";position:absolute;inset:0;border-radius:20px;pointer-events:none;mix-blend-mode:soft-light;
  background:radial-gradient(circle at var(--px,50%) var(--py,50%),rgba(255,255,255,.95),rgba(255,212,71,.5) 18%,rgba(0,185,214,.35) 36%,transparent 60%)}
.rx-pass.rx-holo:hover{animation-play-state:paused}

/* cursor sparkles */
.rx-spark{position:absolute;z-index:4;width:14px;height:14px;margin:-7px 0 0 -7px;pointer-events:none;color:var(--c,#fff);
  background:conic-gradient(from var(--a),transparent 0 20%,currentColor 25%,transparent 30% 45%,currentColor 50%,transparent 55% 70%,currentColor 75%,transparent 80% 95%,currentColor 100%);
  clip-path:polygon(50% 0,60% 40%,100% 50%,60% 60%,50% 100%,40% 60%,0 50%,40% 40%);animation:rxSpark .9s ease-out forwards}
@keyframes rxSpark{0%{opacity:0;transform:scale(.3) rotate(0)}25%{opacity:1}100%{opacity:0;transform:scale(1.4) rotate(90deg) translateY(-26px)}}

/* stat cards: colour flood on hover */
.rx-stat{--gx:50%;--gy:50%}
.rx-stat::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(260px circle at var(--gx) var(--gy),color-mix(in srgb,var(--k) 22%,transparent),transparent 60%)}
.rx-stat:hover::after{opacity:1}
.rx-tilt{transform:perspective(900px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg));transition:transform .2s ease-out,box-shadow .25s}
body.rx .klass.rx-tilt:hover{transform:perspective(900px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) translateY(-3px)}
body.rx .klass.rx-tilt::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(340px circle at var(--gx,50%) var(--gy,50%),rgba(0,185,214,.14),transparent 60%)}
body.rx .klass.rx-tilt:hover::after{opacity:1}

/* section markers spin into place, the h2 rule draws itself, gauges fill in sequence */
.js-rx body.rx .section-head .num{opacity:0;transform:rotate(-120deg) scale(.5);transition:opacity .5s,transform .7s cubic-bezier(.2,1.4,.3,1)}
.js-rx body.rx .section-head.rx-seen .num{opacity:1;transform:none}
.js-rx body.rx .section-head h2::after{transform:scaleX(0);transform-origin:left;transition:transform .8s cubic-bezier(.2,.8,.2,1) .25s}
.js-rx body.rx .section-head.rx-seen h2::after{transform:scaleX(1)}
.js-rx body.rx .profile .gauge{opacity:0;transform:translateX(-14px);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1);transition-delay:calc(var(--g,0)*.07s)}
.js-rx body.rx .profile.rx-seen .gauge{opacity:1;transform:none}
body.rx .gauge:nth-child(1){--g:1} body.rx .gauge:nth-child(2){--g:2} body.rx .gauge:nth-child(3){--g:3} body.rx .gauge:nth-child(4){--g:4} body.rx .gauge:nth-child(5){--g:5} body.rx .gauge:nth-child(6){--g:6} body.rx .gauge:nth-child(7){--g:7} body.rx .gauge:nth-child(8){--g:8}
body.rx .gauge-fill{position:relative;overflow:hidden}
body.rx .gauge-fill::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-120%);animation:rxSheen 3.2s ease-in-out infinite;animation-delay:calc(var(--g,0)*.25s)}
@keyframes rxSheen{0%,60%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
@media (prefers-reduced-motion:reduce){.js-rx body.rx .section-head .num,.js-rx body.rx .section-head h2::after,.js-rx body.rx .profile .gauge{opacity:1;transform:none;transition:none} body.rx .gauge-fill::after{animation:none}}

/* scorecard medal */
body.rx .profile{padding-top:40px}
body.rx .profile::after{display:none}
.rx-medal{position:absolute;right:30px;top:26px;display:flex;flex-direction:column;align-items:center;gap:6px;z-index:2}
.rx-medal-ring{--v:80;position:relative;width:112px;height:112px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--rx-sun) calc(var(--v)*1%),rgba(255,255,255,.14) 0);box-shadow:0 14px 30px -14px rgba(0,0,0,.6)}
.rx-medal-ring::before{content:"";position:absolute;inset:9px;border-radius:50%;background:#0A47A8}
.rx-medal-ring b{position:relative;font:800 36px/1 var(--rx-display);letter-spacing:-.04em;color:#fff}
.rx-medal-ring small{position:absolute;bottom:22px;font:700 11px/1 var(--rx-sans);color:var(--rx-sun)}
.rx-medal-t{font:800 10.5px/1.2 var(--rx-sans);letter-spacing:.12em;text-transform:uppercase;color:#DCEBFF;text-align:center}
.rx-medal i{position:absolute;left:50%;top:56px;width:112px;height:112px;margin-left:-56px;border-radius:50%;border:2px solid rgba(255,212,71,.7);pointer-events:none;opacity:0}
.js-rx .rx-medal.rx-seen i{animation:rxRing 2.4s ease-out infinite}
.rx-medal i:nth-of-type(2){animation-delay:.8s!important} .rx-medal i:nth-of-type(3){animation-delay:1.6s!important}
@keyframes rxRing{from{opacity:.8;transform:scale(1)}to{opacity:0;transform:scale(2.1)}}
body.rx .profile-head{padding-right:150px}
@media (max-width:820px){.rx-medal{position:static;margin:0 0 18px} body.rx .profile-head{padding-right:0} .rx-medal i{top:0}}

/* stamp burst */
.rx-burst{position:absolute;left:50%;top:50%;width:8px;height:8px;margin:-4px;border-radius:50%;background:var(--c);pointer-events:none;animation:rxBurst 1.1s cubic-bezier(.1,.8,.3,1) forwards;transform:rotate(var(--a)) translateX(0)}
@keyframes rxBurst{to{transform:rotate(var(--a)) translateX(var(--d)) scale(.2);opacity:0}}
.rx-stamp{overflow:visible}

/* wave ridge between sections (replaces the scallop) */
body.rx main.wrap>section:nth-of-type(even)::after{height:34px;top:-2px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='34' viewBox='0 0 240 34' preserveAspectRatio='none'%3E%3Cpath d='M0 12C40 0 80 0 120 12s80 12 120 0v22H0z' fill='%23FFFCF4'/%3E%3C/svg%3E") 0 0/240px 34px repeat-x,
             url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='34' viewBox='0 0 320 34' preserveAspectRatio='none'%3E%3Cpath d='M0 20C53 6 107 6 160 20s107 14 160 0v14H0z' fill='%2300B9D6' fill-opacity='.18'/%3E%3C/svg%3E") 0 0/320px 34px repeat-x}
@media (prefers-reduced-motion:no-preference){body.rx main.wrap>section:nth-of-type(even)::after{animation:rxRidge 14s linear infinite}}
@keyframes rxRidge{to{background-position:240px 0,-320px 0}}

/* voyage rail */
.rx-rail{position:fixed;right:16px;top:50%;translate:0 -50%;z-index:60;display:none;padding:6px 0;opacity:0;transition:opacity .4s}
.rx-rail.show{opacity:1}
@media (min-width:1100px){.rx-rail{display:block}}
.rx-rail ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;position:relative;z-index:1}
.rx-rail-line,.rx-rail-fill{position:absolute;left:50%;top:12px;bottom:12px;width:2px;margin-left:-1px;background:#D7ECF4;border-radius:2px}
.rx-rail-fill{bottom:auto;height:0;max-height:calc(100% - 24px);background:linear-gradient(var(--rx-blue),var(--rx-cyan));transition:height .2s}
.rx-rail a{position:relative;display:block;width:12px;height:12px;text-decoration:none}
.rx-rail a i{position:absolute;inset:2px;border-radius:50%;background:#fff;border:2px solid var(--rx-blue);transition:transform .25s,background .25s}
.rx-rail a span{position:absolute;right:22px;top:50%;translate:0 -50%;white-space:nowrap;background:var(--rx-navy);color:#fff;font:700 11.5px/1 var(--rx-sans);padding:7px 10px;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .2s,translate .2s;translate:6px -50%}
.rx-rail a:hover span,.rx-rail a:focus-visible span,.rx-rail a.on span{opacity:1;translate:0 -50%}
.rx-rail a.on i{background:var(--rx-sun);border-color:var(--rx-sun);transform:scale(1.5);box-shadow:0 0 0 4px rgba(255,212,71,.3)}
.rx-rail a:focus-visible{outline:2px solid var(--rx-blue);outline-offset:3px;border-radius:50%}

/* docked pass */
.rx-dock{position:fixed;left:50%;bottom:18px;translate:-50% 0;z-index:70;display:none;align-items:center;gap:12px;padding:10px 16px 10px 10px;border-radius:999px;text-decoration:none;color:var(--rx-navy);background:#fff;
  box-shadow:0 2px 0 rgba(8,39,70,.06),0 24px 48px -20px rgba(7,86,201,.6);border:2px solid #D7ECF4;transform:translateY(120%);opacity:0;transition:transform .45s cubic-bezier(.2,.9,.2,1),opacity .3s}
@media (min-width:1000px){.rx-dock{display:flex}}
.rx-dock.show{transform:none;opacity:1}
.rx-dock{transform:translateY(140%)}
.rx-dock-ring{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--rx-blue);color:#fff;font:800 16px/1 var(--rx-display);box-shadow:0 0 0 3px #fff,0 0 0 5px var(--rx-sun)}
.rx-dock-t{display:flex;flex-direction:column;gap:2px}
.rx-dock-t b{font:800 14.5px/1.1 var(--rx-sans)} .rx-dock-t small{font:600 11px/1.1 var(--rx-sans);color:var(--rx-muted)}
.rx-dock svg{width:18px;height:18px;color:var(--rx-blue);transition:transform .2s}
.rx-dock:hover{border-color:var(--rx-sun);background:#FFFBEA} .rx-dock:hover svg{transform:translateX(3px)}
.rx-dock:focus-visible{outline:3px solid var(--rx-blue);outline-offset:3px}

/* sunset finale */
body.rx .rc3-band.rx-sunset{--p:0;color:#fff;isolation:isolate;padding-top:72px;padding-bottom:88px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 40px;align-items:center;
  background:linear-gradient(180deg,#071A3C 0%,#1D2D6E 28%,#6B3B7A 50%,#D55A5C 66%,#FF8A5A 78%,#FFD447 96%)}
body.rx .rc3-band.rx-sunset::after{display:none}
body.rx .rc3-band.rx-sunset>.rx-sky{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;width:auto;height:auto;margin:0;padding:0}
body.rx .rc3-band.rx-sunset .rx-sky>*{position:absolute}
.rx-sun{position:absolute;left:84%;top:calc(14% + var(--p)*48%);width:150px;height:150px;margin-left:-75px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#FFF2B0,#FFD447 55%,#FFB347);
  box-shadow:0 0 60px 20px rgba(255,212,71,.45),0 0 160px 60px rgba(255,138,90,.25)}
.rx-sun::after{content:"";position:absolute;left:-40px;right:-40px;top:72%;height:60%;background:linear-gradient(transparent,rgba(255,212,71,.0));}
.rx-horizon{position:absolute;left:0;right:0;top:74%;bottom:0;background:linear-gradient(180deg,rgba(7,26,60,.0),rgba(7,26,60,.22));
  -webkit-mask:repeating-linear-gradient(180deg,#000 0 2px,transparent 2px 9px);mask:repeating-linear-gradient(180deg,#000 0 2px,transparent 2px 9px)}
.rx-glim{position:absolute;left:0;right:0;top:72%;height:28%;background:radial-gradient(50% 100% at 84% 0%,rgba(255,212,71,.5),transparent 70%);opacity:calc(.35 + var(--p)*.65)}
.rx-stars{position:absolute;inset:0 0 30% 0;opacity:calc(var(--p)*1.1 - .1);
  background:radial-gradient(1.5px 1.5px at 8% 20%,#fff 50%,transparent 60%),radial-gradient(1.2px 1.2px at 22% 48%,#fff 50%,transparent 60%),radial-gradient(1.6px 1.6px at 35% 12%,#fff 50%,transparent 60%),radial-gradient(1.1px 1.1px at 48% 36%,#fff 50%,transparent 60%),radial-gradient(1.4px 1.4px at 57% 8%,#fff 50%,transparent 60%),radial-gradient(1.2px 1.2px at 81% 26%,#fff 50%,transparent 60%),radial-gradient(1.5px 1.5px at 90% 52%,#fff 50%,transparent 60%),radial-gradient(1.1px 1.1px at 15% 70%,#fff 50%,transparent 60%),radial-gradient(1.3px 1.3px at 42% 62%,#fff 50%,transparent 60%),radial-gradient(1.2px 1.2px at 95% 10%,#fff 50%,transparent 60%),radial-gradient(1.6px 1.6px at 70% 44%,#fff 50%,transparent 60%),radial-gradient(1px 1px at 28% 84%,#fff 50%,transparent 60%)}
@media (prefers-reduced-motion:no-preference){.rx-stars{animation:rxTwinkle 4s ease-in-out infinite}}
body.rx .rc3-band.rx-sunset>div:not(.rx-sky):not(.rc3-go){position:relative;z-index:1;background:rgba(7,26,60,.42);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.18);border-radius:22px;padding:26px 28px;max-width:640px}
body.rx .rc3-band.rx-sunset .rc3-band-k{color:var(--rx-sun)}
body.rx .rc3-band.rx-sunset .rc3-band-k::before{content:"";display:inline-block;width:10px;height:10px;border-radius:50%;background:var(--rx-sun);margin-right:8px;box-shadow:0 0 12px var(--rx-sun)}
body.rx .rc3-band.rx-sunset .rc3-go{position:relative;z-index:1}
body.rx .rc3-band.rx-sunset .rc3-btn-pri{background:#fff;color:var(--rx-navy);box-shadow:0 4px 0 #D9A900,0 18px 36px -12px rgba(7,26,60,.7)}
body.rx .rc3-band.rx-sunset .rc3-go small{color:#fff;text-shadow:0 1px 8px rgba(7,26,60,.8)}
body.rx .rc3-band.rx-sunset>.rx-sunset-k{position:absolute;left:0;right:0;bottom:22px;margin:0;z-index:1;text-align:center;font:800 12px/1.2 var(--rx-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--rx-navy);opacity:.75;pointer-events:none}
@media (max-width:820px){.rx-sun{width:100px;height:100px;margin-left:-50px;left:76%} body.rx .rc3-band.rx-sunset>div:not(.rx-sky):not(.rc3-go){position:relative;z-index:1;padding:20px}}

/* mobile progress bar in Royal colours */
body.rx .progress{background:linear-gradient(90deg,var(--rx-blue),var(--rx-cyan) 60%,var(--rx-sun));height:4px}

/* Icon's dome turns slowly; Wonder's arcs get a spotlight sweep */
@media (prefers-reduced-motion:no-preference){
  .rx-dome{transform-box:fill-box;transform-origin:50% 100%;animation:rxDome 120s linear infinite}
  .rx-arcs{animation:rxSweep 7s ease-in-out infinite}
}
@keyframes rxDome{to{transform:rotate(360deg)}}
@keyframes rxSweep{0%,100%{filter:brightness(1)}50%{filter:brightness(1.25) drop-shadow(0 0 14px rgba(255,255,255,.45))}}

/* ---- fixes ---- */
/* Price-against-score plot: the marker's hover scale was growing from the SVG origin, so the dot jumped
   out from under the cursor and the tooltip strobed. Scale from the dot's own centre. */
body.rx .dnx-plot .mk{transform-box:fill-box;transform-origin:center;transform:var(--mk,none)}
body.rx .dnx-plot .mk:hover{transform:var(--mk,none) scale(1.32)}
/* "Two ways to book" (sj-cruisedirect): never leave it invisible waiting for its fade-in */
body.rx .sjcd{opacity:1!important;transform:none!important}
body.rx .sjcd .sjcd-btn{opacity:1!important;transform:none!important}

/* tool and planner headings stay white on the blue panels */
body.rx .tool h3,body.rx .dnx-mod .dnx-h,body.rx .profile h3,body.rx .recs h3{color:#fff}

/* "Two ways to book" — Seabound quote or CruiseDirect self-book, in the Royal palette */
body.rx .rx-twoways{position:relative;isolation:isolate;overflow:hidden;max-width:1032px;margin:22px auto 0;padding:24px 28px 18px;border-radius:24px;background:#fff;color:var(--rx-ink);
  border:2px solid #D7ECF4;box-shadow:0 1px 0 rgba(8,39,70,.05),0 24px 50px -34px rgba(7,86,201,.6);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px 28px;align-items:center;font-family:var(--rx-sans)}
body.rx .rx-twoways::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:linear-gradient(90deg,var(--rx-blue),var(--rx-cyan),var(--rx-sun),var(--rx-coral));background-size:200% 100%}
@media (prefers-reduced-motion:no-preference){body.rx .rx-twoways::before{animation:rxTide 9s linear infinite}}
@keyframes rxTide{to{background-position:-200% 0}}
.rx-tw-k{display:flex;align-items:center;gap:8px;margin:0 0 8px;font:800 11.5px/1 var(--rx-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--rx-blue)}
.rx-tw-k i{width:9px;height:9px;border-radius:50%;background:var(--rx-sun);box-shadow:0 0 0 0 rgba(255,212,71,.7)}
@media (prefers-reduced-motion:no-preference){.rx-tw-k i{animation:rxPing 2.4s ease-out infinite}}
@keyframes rxPing{0%{box-shadow:0 0 0 0 rgba(255,212,71,.75)}80%,100%{box-shadow:0 0 0 9px rgba(255,212,71,0)}}
body.rx .rx-twoways .rx-tw-h{margin:0;font:800 clamp(20px,2.2vw,26px)/1.15 var(--rx-display);letter-spacing:-.02em;color:var(--rx-navy)}
body.rx .rx-twoways .rx-tw-h em{font-style:normal;color:var(--rx-coral-d)}
.rx-tw-sub{margin:8px 0 0;font:500 14.5px/1.45 var(--rx-sans);color:var(--rx-muted)}
.rx-tw-acts{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:stretch}
.rx-tw-btn{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:62px;padding:12px 18px;border-radius:16px;text-decoration:none!important;transition:transform .22s,box-shadow .22s,background .22s,color .22s}
.rx-tw-btn b{display:flex;align-items:center;gap:8px;font:800 15px/1.1 var(--rx-sans);color:inherit;white-space:nowrap}
@media (max-width:1100px) and (min-width:821px){.rx-tw-btn b{white-space:normal}}
.rx-tw-btn small{font:600 12px/1.2 var(--rx-sans);color:inherit;opacity:.88}
.rx-tw-btn svg{width:17px;height:17px;flex:none;transition:transform .2s}
.rx-tw-pri{background:var(--rx-sun);color:var(--rx-navy)!important;box-shadow:0 4px 0 #D9A900,0 14px 26px -12px rgba(8,39,70,.5)}
.rx-tw-pri::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 35%,rgba(255,255,255,.65) 50%,transparent 65%);transform:translateX(-120%);pointer-events:none}
@media (prefers-reduced-motion:no-preference){.rx-tw-pri::after{animation:rxGlint 5s ease-in-out 1.5s infinite}}
@keyframes rxGlint{0%{transform:translateX(-120%)}35%,100%{transform:translateX(120%)}}
.rx-tw-pri:hover{transform:translateY(-2px);box-shadow:0 6px 0 #D9A900,0 18px 30px -12px rgba(8,39,70,.55)} .rx-tw-pri:hover svg{transform:translateX(3px)}
.rx-tw-sec{background:#fff;color:var(--rx-blue)!important;border:2px solid var(--rx-blue)}
.rx-tw-sec:hover{background:var(--rx-blue);color:#fff!important;transform:translateY(-2px)} .rx-tw-sec:hover svg{transform:translate(2px,-2px)}
.rx-tw-btn:focus-visible{outline:3px solid var(--rx-cyan);outline-offset:3px}
.rx-tw-via{grid-column:2;margin-top:-4px;text-align:center;font:italic 500 12px/1.2 var(--rx-sans);color:var(--rx-muted)}
.rx-tw-trust{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px 18px;margin:2px 0 0;padding-top:12px;border-top:2px dashed #D7ECF4;font:500 12.5px/1.4 var(--rx-sans);color:var(--rx-muted)}
.rx-tw-disc{flex-basis:100%} .rx-tw-disc a{color:var(--rx-muted)!important;text-decoration:underline}
@media (max-width:820px){
  body.rx .rx-twoways{grid-template-columns:1fr;margin:18px 14px 0;padding:22px 18px 14px;border-radius:20px}
  .rx-tw-acts{grid-template-columns:1fr} .rx-tw-via{grid-column:1}
}

/* =====================================================================
   v3 · fleet rollout: every class, every page type
   ===================================================================== */
.rx-stats{grid-template-columns:repeat(var(--n,4),minmax(0,1fr))}
.rx-stats-gap{height:56px}
/* passes without a score */
.rx-pass-body-ns{display:block;padding:20px 20px 16px}
.rx-pass-ns .rx-pass-t strong{font-size:20px}
.rx-pass-big{display:block;margin-top:10px;font:800 44px/1 var(--rx-display);letter-spacing:-.04em;color:var(--rx-blue);font-variant-numeric:tabular-nums}
.rx-pass-bl{display:block;margin:6px 0 8px;font:600 13.5px/1.35 var(--rx-sans);color:var(--rx-muted)}
/* Joey's own photos, as prints behind the pass */
.rx-side{justify-self:end;position:relative;width:min(100%,380px)}
.rx-prints{position:relative;margin:0 0 -70px;height:330px}
.rx-print{position:absolute;width:62%;padding:8px 8px 26px;background:#fff;border-radius:6px;box-shadow:0 24px 44px -20px rgba(8,39,70,.65);transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.rx-print img{display:block;width:100%;height:210px;object-fit:cover;border-radius:3px}
.rx-print:nth-child(1){left:0;top:10px;transform:rotate(-6deg)}
.rx-print:nth-child(2){right:0;top:0;transform:rotate(5deg)}
.rx-print:only-of-type{left:12%;width:72%}
.rx-side-photos:hover .rx-print:nth-child(1){transform:rotate(-9deg) translate(-8px,-6px)}
.rx-side-photos:hover .rx-print:nth-child(2){transform:rotate(8deg) translate(8px,-8px)}
.rx-prints figcaption{position:absolute;left:0;right:0;top:-24px;font:600 11.5px/1.3 var(--rx-sans);color:#fff;text-align:center;text-shadow:0 1px 6px rgba(8,39,70,.6);opacity:.95}
.rx-side .rx-pass{position:relative;z-index:2;justify-self:auto;margin-left:auto;width:min(100%,320px)}
.js-rx .rx-print{animation:rxUp .8s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(.25s + var(--k)*.15s)}
@media (max-width:820px){.rx-side{justify-self:start}.rx-prints{height:260px;margin-bottom:-50px}.rx-print img{height:160px}.rx-prints figcaption{top:-22px}}
/* class art motion */
@media (prefers-reduced-motion:no-preference){
  .rx-qring{transform-box:fill-box;transform-origin:center;animation:rxQ 9s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-1.5s)}
  .rx-streak{stroke-dasharray:60 400;animation:rxStreak 2.8s linear infinite;animation-delay:calc(var(--i)*-.37s)}
  .rx-curl{stroke-dasharray:1400;stroke-dashoffset:1400;animation:rxCurl 2.4s cubic-bezier(.3,.1,.2,1) forwards;animation-delay:calc(.2s + var(--i)*.18s)}
  .rx-spray{animation:rxSpray 2.6s ease-out infinite;animation-delay:calc(var(--i)*-.21s)}
  .rx-bulb{animation:rxBulb 1.8s ease-in-out infinite;animation-delay:calc(var(--i)*-.27s)}
  .rx-rink{animation:rxRink 6s ease-in-out infinite alternate}
  .rx-beam{transform-box:view-box;transform-origin:1120px 120px;animation:rxBeam 8s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.5s)}
  .rx-pane{animation:rxPane 5s ease-in-out infinite;animation-delay:calc(var(--i)*-.6s)}
}
@keyframes rxQ{from{transform:rotate(-4deg) scale(.97)}to{transform:rotate(4deg) scale(1.03)}}
@keyframes rxStreak{from{stroke-dashoffset:460}to{stroke-dashoffset:0}}
@keyframes rxCurl{to{stroke-dashoffset:0}}
@keyframes rxSpray{0%{opacity:0;transform:translate(0,0)}20%{opacity:.9}100%{opacity:0;transform:translate(26px,-40px)}}
@keyframes rxBulb{0%,100%{opacity:.45}50%{opacity:1}}
@keyframes rxRink{from{opacity:.7}to{opacity:1}}
@keyframes rxBeam{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
@keyframes rxPane{0%,100%{fill:rgba(255,255,255,.08)}50%{fill:rgba(255,255,255,.22)}}
@media (prefers-reduced-motion:reduce){.rx-curl{stroke-dasharray:none;stroke-dashoffset:0}}
/* entertainment, cabin and showdown templates: their dark modules join the Royal panel style */
body.rx .verdict-box,body.rx .sd,body.rx .sbe-shape,body.rx .sst-rail,body.rx .sst-gauge{border-radius:24px}
body.rx .verdict-box{background:radial-gradient(80% 70% at 100% 0%,rgba(0,185,214,.18),transparent 62%),linear-gradient(160deg,#0756C9 0%,#0A47A8 45%,#082746 100%);color:#fff}
body.rx .verdict-box p{color:#E9F1FF} body.rx .verdict-box h3{color:#fff;font-family:var(--rx-display)}
body.rx .verdict-box b{color:var(--rx-sun)}
html body.rx[data-dpx]{--dpx-1:#082746;--dpx-2:#0A47A8;--dpx-3:#0756C9;--dpx-4:#0756C9;--dpx-5:#FFD447;--dpx-6:#FFFFFF;
  --dpx-stage:radial-gradient(80% 70% at 100% 0%,rgba(0,185,214,.25),transparent 62%),linear-gradient(160deg,#0756C9 0%,#0A47A8 45%,#082746 100%);
  --dpx-title:linear-gradient(180deg,#fff 0%,#FFE68A 60%,#FFD447 100%);--paper:var(--rx-paper);--deep:var(--rx-navy)}
html body.rx[data-dpx],html body.rx[data-dpx] main,html body.rx[data-dpx] section{background-color:transparent}
html:has(body.rx[data-dpx]){background:var(--rx-paper)}
.rx-pass-call{display:block;margin:10px 0 10px;font:800 26px/1.08 var(--rx-display);letter-spacing:-.02em;color:var(--rx-blue);text-wrap:balance}
