/* WordPress, Astra and WooCommerce integration. No checkout templates are forked. */
html {
  scroll-behavior: smooth;
}
body.sw27-theme {
  margin: 0;
  background: #fff8e8;
  color: #202c2e;
  font-family: "DM Sans", sans-serif;
}
body.sw27-theme #sw27 {
  /* max-width: 1440px; */
  margin: auto;
  overflow: hidden;
  min-height: 100vh;
}
#sw27 a {
  text-decoration: none;
}
#sw27 a:hover {
  text-decoration: none;
}
#sw27 a:focus-visible,
#sw27 button:focus-visible {
  outline: 3px solid #138fce;
  outline-offset: 4px;
}
#sw27 input:focus-visible,
#sw27 select:focus-visible,
#sw27 textarea:focus-visible {
  outline: 3px solid #138fce;
  outline-offset: 2px;
}
#sw27 ul,
#sw27 ol {
  margin-left: 0;
}
#sw27 .sw-logo {
  flex-shrink: 0;
}
#sw27 nav a {
  border: 0;
  border-bottom: 2px solid transparent;
  padding: 5px 0;
  background: none;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
}
#sw27 nav a[aria-current="page"] {
  border-color: var(--red);
  color: #b9371b;
}
#sw27 .sw-header > .sw-button {
  white-space: nowrap;
}
#sw27 .sw-commerce-links {
  display: flex;
  gap: 10px;
  margin-left: -14px;
}
#sw27 .sw-commerce-links a {
  color: var(--ink);
  display: grid;
  place-items: center;
  width: 28px;
  height: 32px;
}
#sw27 .sw-commerce-links svg {
  width: 19px;
  height: 19px;
}
#sw27 .sw-language {
  font-size: 11px;
  list-style: none;
  margin: 0;
  padding: 0;
}
#sw27 .sw-footer nav {
  margin: 0;
  gap: 14px;
}
#sw27 .sw-footer nav a {
  font-size: 11px;
  color: var(--paper);
  border: 0;
  font-weight: 400;
}
#sw27 .sw-footer {
  align-items: center;
}
#sw27 p {
  margin-top: 0;
}
#sw27 .sw-link {
  display: inline-block;
}
#sw27 button {
  min-height: 32px;
}
#sw27 .sw-button {
  min-height: 44px;
}
#sw27 .sw-round-button {
  min-height: 38px;
}
#sw27 .sw-hero-copy h1,
#sw27 .sw-banner-copy h1 {
  margin: 0;
}
#sw27 .sw-person img {
  height: auto;
}
#sw27 .sw-port-island {
  text-decoration: none;
  line-height: 1.25;
}
#sw27 .sw-port-island strong {
  font-weight: 400;
}
#sw27 .sw-ship .sw-sail img {
  height: 30px !important;
  width: 20px !important;
}
#sw27 .sw-strip span {
  text-transform: uppercase;
}
#sw27 .sw-section > h1 {
  margin-bottom: 30px;
}
/* Readable non-JS navigation is available before the animation initializes. */
#sw27 .sw-sea:not(.sw-map-ready) {
  height: auto;
  min-height: 280px;
  padding: 35px 15px 75px;
  display: flex;
  align-items: center;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: 35px;
}
#sw27 .sw-sea:not(.sw-map-ready) .sw-port-island {
  position: relative;
  left: auto;
  top: auto;
  transform: rotate(var(--tilt));
  margin: 15px 0;
}
#sw27 .sw-sea:not(.sw-map-ready) .sw-ship {
  display: none;
}
.sw-skip-link {
  position: absolute;
  left: 16px;
  top: -100px;
  z-index: 99999;
  background: #fff8e8;
  color: #202c2e;
  padding: 12px;
}
.sw-skip-link:focus {
  top: 10px;
}
#sw27 .sw-stage-picker {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 15px;
  margin-bottom: 32px;
}
#sw27 .sw-stage-picker label {
  font-weight: 700;
}
#sw27 select,
#sw27 input[type="text"],
#sw27 input[type="email"],
#sw27 input[type="tel"],
#sw27 input[type="password"],
#sw27 textarea {
  color: var(--ink);
  background: #fffdf6;
  border: 1px solid #97886b;
  border-radius: 3px;
  padding: 8px;
  max-width: 100%;
  font:
    16px "DM Sans",
    sans-serif;
}
#sw27 .sw-stage-picker select {
  width: auto;
  flex: 1;
  min-width: 160px;
  max-width: 480px;
}
#sw27 .sw-ticket-price {
  margin-top: 18px;
  font-size: 22px;
}
#sw27 .sw-form p {
  margin: 15px 0 22px;
}
#sw27 .sw-form a {
  color: var(--ink);
}
#sw27 .sw-prose {
  max-width: 1000px;
  margin: auto;
}
#sw27 .sw-prose h2 {
  font-size: 34px;
  margin: 30px 0 16px;
}
#sw27 .sw-prose h3 {
  font-size: 25px;
  margin: 20px 0 12px;
}
#sw27 .sw-prose p {
  margin-bottom: 18px;
}
#sw27 .sw-prose a {
  color: #a1331e;
  text-decoration: underline;
}
#sw27 .sw-journal-entry {
  margin: 30px 0;
  border-bottom: 1px dashed #97886b;
  padding-bottom: 25px;
}
#sw27 .sw-journal-entry h2 {
  font-size: 32px;
}
/* Native product catalog with the approved torn-paper art direction. */
#sw27 .woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 25px;
  margin: 25px 0 !important;
}
#sw27 .woocommerce ul.products:before,
#sw27 .woocommerce ul.products:after {
  display: none !important;
}
#sw27 .woocommerce ul.products li.product {
  float: none !important;
  width: auto !important;
  margin: 0 !important;
  padding: 0 0 22px;
  background: #fffdf6;
  border: 1px solid #9a8c70;
  box-shadow: 4px 6px 0 #c4b59135;
  transform: rotate(-1deg);
  overflow: visible;
}
#sw27 .woocommerce ul.products li.product:nth-child(3n + 2) {
  transform: rotate(1deg) translateY(7px);
}
#sw27 .woocommerce ul.products li.product img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: contain;
  background: #f0e2c4;
  margin: 0 0 15px;
}
#sw27 .woocommerce ul.products li.product .astra-shop-summary-wrap,
#sw27 .woocommerce ul.products li.product .woocommerce-loop-product__title,
#sw27 .woocommerce ul.products li.product > .price,
#sw27 .woocommerce ul.products li.product > .button {
  margin-left: 18px;
  margin-right: 18px;
}
#sw27 .woocommerce-loop-product__title {
  font-family: var(--display) !important;
  font-size: 24px !important;
  line-height: 1.2 !important;
  color: var(--ink);
}
#sw27 .woocommerce .price {
  color: #634b23;
  font-family: "DM Sans", sans-serif;
  font-size: 16px;
}
#sw27 .woocommerce a.button,
#sw27 .woocommerce button.button,
#sw27 .woocommerce input.button,
#sw27 a.wc-block-components-button,
#sw27 button.wc-block-components-button {
  font:
    700 14px "DM Sans",
    sans-serif;
  background: var(--gold);
  color: var(--ink);
  border: 1px solid var(--ink);
  border-radius: 3px;
  box-shadow: 3px 3px 0 var(--ink);
  padding: 13px 19px;
  min-height: 44px;
  line-height: 1.3;
}
#sw27 .woocommerce .button.alt {
  background: var(--red);
  color: white;
}
#sw27 .woocommerce .button.disabled {
  opacity: 0.5;
}
#sw27 .woocommerce .woocommerce-breadcrumb {
  font-size: 12px;
}
#sw27 .woocommerce div.product .product_title {
  font-size: clamp(32px, 4vw, 48px);
  line-height: 1.15 !important;
}
#sw27 .woocommerce div.product p.price {
  font-size: 25px;
  margin: 20px 0;
}
#sw27 .woocommerce-product-details__short-description p,
#sw27 .woocommerce-Tabs-panel p {
  margin-bottom: 18px;
}
#sw27 .woocommerce form .form-row input.input-text {
  font-family: "DM Sans", sans-serif;
}
#sw27 .woocommerce form .form-row {
  padding: 4px;
  margin-bottom: 14px;
}
#sw27 .woocommerce table.shop_table {
  background: #fffdf6;
  border: 1px solid #c4b79b;
}
#sw27 .woocommerce table.shop_table th {
  background: #f0e4c7;
  color: var(--ink);
}
#sw27 .woocommerce table.shop_table td {
  border-color: #daceb1;
}
#sw27 .woocommerce-error,
#sw27 .woocommerce-info,
#sw27 .woocommerce-message {
  background: #f4ead3;
  color: var(--ink);
  margin: 15px 0 25px;
}
#sw27 .woocommerce-error {
  border-top-color: #b73527;
}
#sw27 .woocommerce-info,
#sw27 .woocommerce-message {
  border-top-color: #567344;
}
#sw27 .woocommerce form.checkout #payment {
  background: #f4ead3;
  border-radius: 4px;
}
#sw27 .woocommerce form.checkout #payment div.payment_box {
  background: #e4d4ae;
  color: #202c2e;
}
#sw27 .woocommerce .quantity .qty {
  width: 80px;
}
#sw27 .woocommerce-MyAccount-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
#sw27 .woocommerce-MyAccount-navigation li a {
  display: block;
  padding: 12px;
  border-bottom: 1px dashed #beae87;
}
#sw27 .woocommerce-MyAccount-navigation li.is-active a {
  background: var(--gold);
}
#sw27 .woocommerce .onsale {
  background: var(--red);
  color: white;
}
#sw27 .sw-desc-ack {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  line-height: 1.5;
  font-size: 13px;
  margin: 20px 0;
  width: 100%;
}
#sw27 .sw-desc-ack input {
  flex-shrink: 0;
  margin-top: 4px;
}
#sw27 form.cart {
  flex-wrap: wrap;
}
#sw27 .sw-waitlist-custom-text {
  border-left: 3px solid var(--red);
  background: #f2e3c0;
  padding: 15px;
  margin: 20px 0;
}
#sw27 .wc-block-components-title,
#sw27 .wc-block-components-checkout-step__title {
  font-family: "DM Sans", sans-serif !important;
  font-size: 22px !important;
  letter-spacing: 0 !important;
}
/* Original Brevo form and its validation scripts remain intact. */
#sw27 .sw-newsletter {
  max-width: 750px;
  margin: auto;
}
#sw27 .sib-form {
  padding: 0;
  font-family: "DM Sans", sans-serif;
}
#sw27 #sib-container {
  background: #f5e7c2;
  color: var(--ink);
  padding: 30px;
  border: 1px solid #a18b64;
  box-shadow: 6px 6px 0 #ddc891;
  transform: rotate(-0.5deg);
}
#sw27 .sib-form-block {
  font-family: "DM Sans", sans-serif;
  padding: 0;
}
#sw27 .sib-form-block strong {
  font-family: var(--display);
  font-size: 34px;
  font-weight: 400;
}
#sw27 .sib-form .input {
  color: var(--ink);
  background: #fffaf0;
  font-size: 16px;
}
#sw27 .sib-form .sib-form-block__button {
  background: var(--gold);
  color: var(--ink);
  border: 1px solid var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
  padding: 13px 20px;
  font-family: "DM Sans", sans-serif;
}
#sw27 .sib-form-message-panel {
  margin-bottom: 15px;
}
#sw27 .sib-form-message-panel svg {
  max-width: 24px;
  max-height: 24px;
}
#sw27 .sib-form label {
  font-size: 13px;
}
#sw27 #error-message,
#sw27 #success-message {
  display: none;
}
#sw27 #error-message.sib-form-message-panel--active,
#sw27 #success-message.sib-form-message-panel--active {
  display: block;
}
/* Archives keep their original information and colors without affecting the 2027 shell. */
#sw27 .sw-legacy {
  --bg-deep: #090a0f;
  --bg-alt: #160e24;
  --hexcore-blue: #00f0ff;
  --jinx-purple: #b500ff;
  --gold-warning: #ffb700;
  --text-light: #e0e6ed;
  --font-title: "Barlow Condensed", sans-serif;
  --font-body: "DM Sans", sans-serif;
  color: #e0e6ed;
  background: #090a0f;
  padding-bottom: 30px;
}
#sw27 .sw-legacy h1,
#sw27 .sw-legacy h2,
#sw27 .sw-legacy h3,
#sw27 .sw-legacy h4 {
  font-family: var(--font-title) !important;
  color: inherit;
}
#sw27 .sw-legacy a {
  color: #00e2ec;
}
#sw27 .sw-legacy table {
  display: block;
  max-width: 100%;
  overflow-x: auto;
}
#sw27 .sw-legacy .sw-archive-notice {
  padding: 18px 5%;
  background: #f7cf5e;
  color: #202c2e;
  font:
    700 13px "DM Sans",
    sans-serif;
}
#sw27 .sw-legacy .sw-archive-notice a {
  color: #693615;
  text-decoration: underline;
}
#sw27 .sw-legacy .lightbox {
  display: none;
}
#sw27 .sw-legacy img {
  max-width: 100%;
  height: auto;
}
#sw27 .sw-legacy iframe {
  max-width: 100%;
}
@media (max-width: 1000px) {
  #sw27 .sw-header {
    gap: 20px;
    flex-wrap: wrap;
  }
  #sw27 .sw-header nav {
    gap: 14px;
  }
}
@media (max-width: 760px) {
  #sw27 .sw-commerce-links {
    margin-left: 0;
  }
  #sw27 .sw-header nav {
    order: 5;
    justify-content: space-between;
    gap: 9px;
  }
  #sw27 .woocommerce ul.products {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  #sw27 .sw-footer nav {
    width: 100%;
    justify-content: flex-start;
  }
  #sw27 .sw-sea:not(.sw-map-ready) {
    min-height: 600px;
    gap: 35px 15px;
  }
  #sw27 .sw-legacy #primary {
    padding-left: 15px !important;
    padding-right: 15px !important;
  }
}
@media (max-width: 430px) {
  #sw27 .sw-header {
    gap: 12px;
  }
  #sw27 .sw-commerce-links {
    width: auto;
    gap: 3px;
  }
  #sw27 .sw-header > .sw-button {
    margin-left: auto;
  }
  #sw27 .sw-header .sw-language {
    order: 4;
  }
  #sw27 .sw-header nav a {
    font-size: 11px;
  }
  #sw27 .woocommerce ul.products {
    grid-template-columns: 1fr;
  }
  #sw27 .sw-stage-picker {
    align-items: stretch;
  }
  #sw27 .sw-stage-picker label {
    width: 100%;
  }
  #sw27 .sw-stage-picker select {
    max-width: 100%;
  }
  #sw27 .sw-intro h1 {
    overflow-wrap: break-word;
  }
  #sw27 .sw-legacy .nations-nav {
    display: flex;
    flex-wrap: wrap;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}

#sw27 [hidden] {
  display: none !important;
}
#sw27 h1,
#sw27 h2,
#sw27 h3 {
  color: inherit;
}

/* Standalone illustrated bounty posters; site headings keep Luckiest Guy. */
#sw27 .sw-person.sw-person-image {
  padding: 0;
  border: 0;
  background: none;
  clip-path: none;
  box-shadow: 3px 7px 12px #33211133;
  overflow: visible;
}
#sw27 .sw-person.sw-person-image:before {
  display: none;
}
#sw27 .sw-person.sw-person-image a {
  display: block;
  color: inherit;
}
#sw27 .sw-person.sw-person-image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 7/10;
  object-fit: contain;
  border: 0;
  filter: none;
}
#sw27 .sw-person.sw-person-image a:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 5px;
}

/* Dynamic posters: data is rendered by PHP on every page request. */
@font-face {
  font-family: SWPosterSerif;
  src: url("../fonts/poster-serif-regular.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: SWPosterSerif;
  src: url("../fonts/poster-serif-bold.ttf") format("truetype");
  font-weight: 700;
  font-display: swap;
}
#sw27 .sw-person.sw-person-dynamic {
  padding: 0;
  border: 0;
  background: none;
  clip-path: none;
  box-shadow: 3px 7px 12px #33211133;
  overflow: visible;
}
#sw27 .sw-person.sw-person-dynamic:before {
  display: none;
}
#sw27 .sw-person.sw-person-dynamic svg {
  display: block;
  width: 100%;
  height: auto;
  color: #493428;
  fill: currentColor;
  overflow: hidden;
  aspect-ratio: 7/10;
}
#sw27 .sw-person-dynamic .sw-poster-bold {
  font-family: SWPosterSerif, Georgia, serif;
  font-weight: 700;
}
#sw27 .sw-person-dynamic .sw-poster-regular {
  font-family: SWPosterSerif, Georgia, serif;
  font-weight: 400;
}

#sw27 .sw-person-dynamic .sw-poster-name {
  font-size: 30px;
  font-weight: bold;
}

#sw27 .sw-person-dynamic .sw-poster-weight-class {
  font-size: 24px;
  font-weight: bold;
}

/* Hidden islands are veiled by layered clouds, with the question mark above. */
#sw27 .sw-mystery-clouds {
  position: absolute;
  left: -30px;
  top: -35px;
  width: 154px;
  height: 88px;
  z-index: 2;
  pointer-events: none;
}
#sw27 .sw-cloud {
  position: absolute;
  display: block;
  background: #f3faf5;
  border-radius: 48% 52% 43% 47%;
  box-shadow:
    0 4px 0 #c7e1df,
    0 6px 5px #173e4540;
}
#sw27 .sw-cloud:before,
#sw27 .sw-cloud:after {
  content: "";
  position: absolute;
  background: inherit;
  border-radius: 50%;
}
#sw27 .sw-cloud:before {
  width: 54%;
  height: 140%;
  left: 9%;
  top: -50%;
}
#sw27 .sw-cloud:after {
  width: 45%;
  height: 115%;
  right: 7%;
  top: -32%;
}
#sw27 .sw-cloud-back {
  width: 82px;
  height: 27px;
  left: 8px;
  top: 23px;
  background: #dcecea;
  transform: rotate(-7deg);
}
#sw27 .sw-cloud-mid {
  width: 93px;
  height: 31px;
  right: 1px;
  top: 29px;
  background: #e7f3ee;
  transform: rotate(8deg);
}
#sw27 .sw-cloud-front {
  width: 131px;
  height: 33px;
  left: 12px;
  top: 50px;
}
#sw27 .sw-islet.mystery strong {
  z-index: 3;
  color: #243b3e;
  text-shadow: 0 2px 0 #fff;
  transform: translateY(-9px);
}

/* Illustrated destination islands and quiet discoveries in the sea. */
#sw27 .sw-islet.sw-illustrated {
  width: 142px;
  height: 116px;
  display: block;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
  margin: 0 0 4px;
}
#sw27 .sw-islet.sw-illustrated:before {
  display: none;
}
#sw27 .sw-island-art {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  position: relative;
  z-index: 1;
}
#sw27 .sw-islet.sw-illustrated.mystery .sw-mystery-clouds {
  left: -6px;
  top: 19px;
}
#sw27 .sw-islet.sw-illustrated.mystery strong {
  position: absolute;
  left: 0;
  right: 0;
  top: 41px;
  z-index: 3;
  font-size: 45px;
  transform: none;
  text-align: center;
}
#sw27 .sw-sea-secrets {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
}
#sw27 .sw-sea-secret {
  position: absolute;
  width: 58px;
  height: 52px;
  opacity: 0.42;
  object-fit: contain;
}
#sw27 .sw-secret-kraken {
  left: 51%;
  top: 80%;
  width: 74px;
  height: 65px;
  transform: rotate(-8deg);
}
#sw27 .sw-secret-bottle {
  left: 34%;
  top: 25%;
  width: 31px;
  height: 40px;
  transform: rotate(15deg);
}
#sw27 .sw-secret-wreck {
  left: 17%;
  top: 77%;
  width: 67px;
  height: 58px;
  transform: rotate(-11deg);
}
#sw27 .sw-secret-whirlpool {
  left: 79%;
  top: 62%;
  width: 42px;
  height: 42px;
  opacity: 0.3;
}
#sw27 .sw-secret-ruins {
  left: 4%;
  top: 54%;
  width: 52px;
  height: 56px;
  opacity: 0.3;
}
#sw27 .sw-secret-fin {
  left: 58%;
  top: 12%;
  width: 40px;
  height: 40px;
  opacity: 0.35;
}
#sw27 .sw-port-island .sw-number {
  z-index: 3;
  top: -4px;
  left: 4px;
}
@media (max-width: 760px) {
  #sw27 .sw-islet.sw-illustrated {
    width: 127px;
    height: 104px;
  }
  #sw27 .sw-islet.sw-illustrated.mystery .sw-mystery-clouds {
    left: -13px;
    top: 10px;
  }
  #sw27 .sw-islet.sw-illustrated.mystery strong {
    top: 34px;
  }
  #sw27 .sw-secret-kraken {
    left: 50%;
    top: 85%;
    width: 61px;
  }
  #sw27 .sw-secret-bottle {
    left: 44%;
    top: 7%;
  }
  #sw27 .sw-secret-wreck {
    left: 6%;
    top: 65%;
    width: 48px;
  }
  #sw27 .sw-secret-whirlpool {
    left: 84%;
    top: 73%;
    width: 32px;
  }
  #sw27 .sw-secret-ruins {
    left: 81%;
    top: 43%;
    width: 41px;
  }
  #sw27 .sw-secret-fin {
    left: 43%;
    top: 36%;
    width: 34px;
  }
}

/* Center the drawn arrows independently of Astra button padding and font metrics. */
#sw27 .sw-round-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  line-height: 1;
  width: 42px;
  height: 38px;
  min-width: 42px;
  min-height: 38px;
  flex: 0 0 42px;
  vertical-align: middle;
}
#sw27 .sw-round-button svg {
  display: block;
  width: 20px;
  height: 20px;
  flex: none;
  fill: none;
  transform: none;
  margin: 0;
}
#sw27 #sw-home-crew {
  isolation: isolate;
}

/* The map is assembled once when it enters the viewport. No-JS stays visible. */
#sw27 .sw-map-arriving .sw-map-wrap,
#sw27 .sw-map-arriving .sw-port-island,
#sw27 .sw-map-arriving .sw-route-line,
#sw27 .sw-map-arriving .sw-compass,
#sw27 .sw-map-arriving .sw-sea-note,
#sw27 .sw-map-arriving .sw-map-controls {
  opacity: 0;
}
#sw27 .sw-map-arriving .sw-route-traveled {
  visibility: hidden;
}
#sw27 .sw-map-ink {
  fill: none;
  stroke: #f7efd1;
  stroke-width: 2.5;
  stroke-linecap: round;
  pointer-events: none;
}
@media (prefers-reduced-motion: reduce) {
  #sw27 .sw-map-arriving .sw-map-wrap,
  #sw27 .sw-map-arriving .sw-port-island,
  #sw27 .sw-map-arriving .sw-route-line,
  #sw27 .sw-map-arriving .sw-compass,
  #sw27 .sw-map-arriving .sw-sea-note,
  #sw27 .sw-map-arriving .sw-map-controls {
    opacity: 1;
  }
}

#sw27 .sw-water-impact {
  position: absolute;
  width: 0;
  height: 0;
  z-index: 4;
  pointer-events: none;
}
#sw27 .sw-impact-ring {
  position: absolute;
  display: block;
  width: 76px;
  height: 24px;
  border: 2px solid #f4ffed;
  border-radius: 50%;
  opacity: 0;
}
#sw27 .sw-impact-drop {
  position: absolute;
  display: block;
  width: 6px;
  height: 13px;
  background: #e3f9ec;
  border: 1px solid #86cdd4;
  border-radius: 70% 35% 70% 35%;
  opacity: 0;
}

/* Wind moves cloud layers without changing the island's layout or its rotation. */
#sw27 .sw-cloud-back {
  animation: sw-cloud-drift 5.8s ease-in-out infinite alternate;
  --cloud-x: 7px;
  --cloud-y: -3px;
}
#sw27 .sw-cloud-mid {
  animation: sw-cloud-drift 4.7s ease-in-out -2s infinite alternate;
  --cloud-x: -8px;
  --cloud-y: 2px;
}
#sw27 .sw-cloud-front {
  animation: sw-cloud-drift 6.4s ease-in-out -3s infinite alternate;
  --cloud-x: 5px;
  --cloud-y: 3px;
}
@keyframes sw-cloud-drift {
  from {
    translate: 0 0;
  }
  to {
    translate: var(--cloud-x) var(--cloud-y);
  }
}
@media (prefers-reduced-motion: reduce) {
  #sw27 .sw-cloud {
    animation: none;
  }
}

/* A wind-swept navigation panel, with staggered links and a transforming burger. */
#sw27 .sw-header {
  position: relative;
  z-index: 80;
}
#sw27 .sw-header-menu {
  display: flex;
  align-items: center;
  gap: 28px;
  flex: 1;
  min-width: 0;
}
#sw27 .sw-header-menu > .sw-button {
  white-space: nowrap;
}
#sw27 .sw-menu-toggle {
  display: none;
}
@media (max-width: 1100px) {
  #sw27 .sw-header {
    gap: 12px;
    flex-wrap: nowrap;
    padding: 16px 4%;
  }
  #sw27 .sw-header .sw-commerce-links {
    margin-left: auto;
    gap: 6px;
    flex-shrink: 0;
    width: auto;
  }
  #sw27 .sw-header .sw-commerce-links a {
    width: 36px;
    height: 42px;
  }
  #sw27 .sw-header-menu {
    flex-wrap: wrap;
    gap: 16px;
  }
  #sw27 .sw-menu-enhanced .sw-header-menu {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 28px 7% 46px;
    max-height: calc(100dvh - 110px);
    overflow: auto;
    background: var(--paper);
    background-image: radial-gradient(
      ellipse at 90% 20%,
      #e5cc9166,
      transparent 65%
    );
    border-top: 2px solid var(--ink);
    box-shadow: 0 22px 28px #202c2e26;
    clip-path: polygon(
      0 0,
      100% 0,
      100% 96%,
      94% 98%,
      86% 96%,
      76% 100%,
      64% 97%,
      51% 99%,
      40% 96%,
      26% 100%,
      13% 97%,
      0 99%
    );
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-16px) rotate(-1deg) scaleY(0.92);
    transform-origin: top right;
    transition:
      opacity 0.22s ease 0.12s,
      transform 0.35s cubic-bezier(0.22, 0.8, 0.25, 1) 0.06s,
      visibility 0s linear 0.36s;
  }
  #sw27 .sw-menu-enhanced.sw-menu-open .sw-header-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0) rotate(0) scaleY(1);
    transition:
      opacity 0.18s ease,
      transform 0.44s cubic-bezier(0.16, 1, 0.3, 1),
      visibility 0s;
  }
  #sw27 .sw-menu-enhanced .sw-header-menu nav {
    order: 0;
    width: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }
  #sw27 .sw-menu-enhanced .sw-header-menu nav a {
    font-family: "Luckiest Guy", Impact, sans-serif;
    font-size: clamp(24px, 5vw, 36px);
    line-height: 1.25;
    padding: 12px 0;
    align-self: flex-start;
  }
  #sw27 .sw-menu-enhanced .sw-header-menu nav a,
  #sw27 .sw-menu-enhanced .sw-header-menu > .sw-button,
  #sw27 .sw-menu-enhanced .sw-header-menu > .sw-language {
    opacity: 0;
    translate: -24px 8px;
    rotate: -3deg;
    transition:
      opacity 0.14s ease,
      translate 0.2s ease,
      rotate 0.2s ease;
  }
  #sw27 .sw-menu-open .sw-header-menu nav a,
  #sw27 .sw-menu-open .sw-header-menu > .sw-button,
  #sw27 .sw-menu-open .sw-header-menu > .sw-language {
    opacity: 1;
    translate: 0 0;
    rotate: 0deg;
    transition:
      opacity 0.25s ease calc(90ms + var(--menu-order) * 55ms),
      translate 0.45s cubic-bezier(0.16, 1, 0.3, 1)
        calc(90ms + var(--menu-order) * 55ms),
      rotate 0.4s ease calc(90ms + var(--menu-order) * 55ms);
  }
  #sw27 .sw-header-menu > .sw-button {
    align-self: flex-start;
    margin-top: 8px;
  }
  #sw27 .sw-header-menu > .sw-language {
    order: 0;
  }
  #sw27 .sw-menu-enhanced .sw-menu-toggle {
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1.5px solid var(--ink);
    border-radius: 48% 42% 46% 40%;
    background: var(--paper);
    color: var(--ink);
    cursor: pointer;
    transition:
      background 0.25s,
      rotate 0.35s;
  }
  #sw27 .sw-menu-open .sw-menu-toggle {
    background: #f1d58d;
    rotate: 8deg;
  }
  #sw27 .sw-burger-lines {
    position: relative;
    display: block;
    width: 22px;
    height: 18px;
  }
  #sw27 .sw-burger-lines span {
    position: absolute;
    left: 0;
    width: 22px;
    height: 2px;
    background: currentColor;
    border-radius: 2px;
    transition:
      top 0.3s,
      transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
      opacity 0.15s;
  }
  #sw27 .sw-burger-lines span:nth-child(1) {
    top: 0;
    transform: rotate(-5deg);
  }
  #sw27 .sw-burger-lines span:nth-child(2) {
    top: 8px;
    width: 17px;
  }
  #sw27 .sw-burger-lines span:nth-child(3) {
    top: 16px;
    transform: rotate(4deg);
  }
  #sw27 .sw-menu-open .sw-burger-lines span:nth-child(1) {
    top: 8px;
    transform: rotate(45deg);
  }
  #sw27 .sw-menu-open .sw-burger-lines span:nth-child(2) {
    opacity: 0;
    transform: translateX(8px);
  }
  #sw27 .sw-menu-open .sw-burger-lines span:nth-child(3) {
    top: 8px;
    transform: rotate(-45deg);
  }
}
@media (max-width: 430px) {
  #sw27 .sw-header {
    gap: 7px;
    padding: 13px 3%;
  }
  #sw27 .sw-header .sw-logo {
    gap: 7px;
    min-width: 0;
  }
  #sw27 .sw-header .sw-brand-image {
    width: 30px;
    height: 40px;
  }
  #sw27 .sw-header .sw-logo strong {
    font-size: 20px;
  }
  #sw27 .sw-header .sw-logo small {
    font-size: 7px;
    letter-spacing: 0.4px;
    white-space: normal;
    max-width: 135px;
    line-height: 1.3;
  }
  #sw27 .sw-header .sw-commerce-links {
    gap: 0;
  }
  #sw27 .sw-header .sw-commerce-links a {
    width: 30px;
  }
}
@media (prefers-reduced-motion: reduce) {
  #sw27 .sw-menu-enhanced .sw-header-menu,
  #sw27 .sw-menu-enhanced .sw-header-menu *,
  #sw27 .sw-menu-toggle,
  #sw27 .sw-burger-lines span {
    transition: none !important;
  }
}

#sw27 .sw-logo-mobile-break {
  display: none;
}
@media (max-width: 760px) {
  #sw27 .sw-logo-mobile-break {
    display: block;
  }
}

/* Illustrated two-masted vessel; outer position remains controlled by the journey. */
#sw27 .sw-ship {width:94px;height:100px;filter:drop-shadow(0 4px 2px #123a4a44);}
#sw27 .sw-ship-art {display:block;width:100%;height:100%;max-width:none;object-fit:contain;}
@media(max-width:760px){#sw27 .sw-ship{width:82px;height:87px;}}

