*,
::after,
::before {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}

::backdrop {
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x: ;
  --tw-pan-y: ;
  --tw-pinch-zoom: ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position: ;
  --tw-gradient-via-position: ;
  --tw-gradient-to-position: ;
  --tw-ordinal: ;
  --tw-slashed-zero: ;
  --tw-numeric-figure: ;
  --tw-numeric-spacing: ;
  --tw-numeric-fraction: ;
  --tw-ring-inset: ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgba(59, 130, 246, 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur: ;
  --tw-brightness: ;
  --tw-contrast: ;
  --tw-grayscale: ;
  --tw-hue-rotate: ;
  --tw-invert: ;
  --tw-saturate: ;
  --tw-sepia: ;
  --tw-drop-shadow: ;
  --tw-backdrop-blur: ;
  --tw-backdrop-brightness: ;
  --tw-backdrop-contrast: ;
  --tw-backdrop-grayscale: ;
  --tw-backdrop-hue-rotate: ;
  --tw-backdrop-invert: ;
  --tw-backdrop-opacity: ;
  --tw-backdrop-saturate: ;
  --tw-backdrop-sepia: ;
  --tw-contain-size: ;
  --tw-contain-layout: ;
  --tw-contain-paint: ;
  --tw-contain-style: ;
}

/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */
*,
::after,
::before {
  box-sizing: border-box;
  border: 0 solid #e5e7eb;
}

::after,
::before {
  --tw-content: "";
}

:host,
html {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  font-family: ui-sans-serif, system-ui, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;
  font-feature-settings: normal;
  font-variation-settings: normal;
  -webkit-tap-highlight-color: transparent;
}

body {
  margin: 0;
  line-height: inherit;
}

hr {
  height: 0;
  color: inherit;
  border-top-width: 1px;
}

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
  text-decoration: underline dotted;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

a {
  color: inherit;
  text-decoration: inherit;
}

b,
strong {
  font-weight: bolder;
}

code,
kbd,
pre,
samp {
  font-family: IBM Plex Mono, monospace;
  font-feature-settings: normal;
  font-variation-settings: normal;
  font-size: 1em;
}

small {
  font-size: 80%;
}

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

table {
  text-indent: 0;
  border-color: inherit;
  border-collapse: collapse;
}

button,
input,
optgroup,
select,
textarea {
  font-family: inherit;
  font-feature-settings: inherit;
  font-variation-settings: inherit;
  font-size: 100%;
  font-weight: inherit;
  line-height: inherit;
  letter-spacing: inherit;
  color: inherit;
  margin: 0;
  padding: 0;
}

button,
select {
  text-transform: none;
}

button,
input:where([type="button"]),
input:where([type="reset"]),
input:where([type="submit"]) {
  -webkit-appearance: button;
  background-color: transparent;
  background-image: none;
}

:-moz-focusring {
  outline: auto;
}

:-moz-ui-invalid {
  box-shadow: none;
}

progress {
  vertical-align: baseline;
}

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

[type="search"] {
  -webkit-appearance: textfield;
  outline-offset: -2px;
}

::-webkit-search-decoration {
  -webkit-appearance: none;
}

::-webkit-file-upload-button {
  -webkit-appearance: button;
  font: inherit;
}

summary {
  display: list-item;
}

blockquote,
dd,
dl,
figure,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

menu,
ol,
ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

dialog {
  padding: 0;
}

textarea {
  resize: vertical;
}

input::-moz-placeholder,
textarea::-moz-placeholder {
  opacity: 1;
  color: #9ca3af;
}

input::placeholder,
textarea::placeholder {
  opacity: 1;
  color: #9ca3af;
}

[role="button"],
button {
  cursor: pointer;
}

:disabled {
  cursor: default;
}

audio,
canvas,
embed,
iframe,
img,
object,
svg,
video {
  display: block;
  vertical-align: middle;
}

img,
video {
  max-width: 100%;
  height: auto;
}

.gal-img {
  max-width: none !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

html {
  scroll-behavior: smooth;
}

body {
  --tw-bg-opacity: 1;
  background-color: rgb(244 246 249 / var(--tw-bg-opacity, 1));
  font-family: IBM Plex Sans, sans-serif;
  --tw-text-opacity: 1;
  color: rgb(11 27 52 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.3s;
}

body:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(11 27 52 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(244 246 249 / var(--tw-text-opacity, 1));
}

::-moz-selection {
  --tw-bg-opacity: 1;
  background-color: rgb(201 162 75 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(5 12 24 / var(--tw-text-opacity, 1));
}

::selection {
  --tw-bg-opacity: 1;
  background-color: rgb(201 162 75 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(5 12 24 / var(--tw-text-opacity, 1));
}

.grid-backdrop {
  background-image: linear-gradient(rgba(11, 27, 52, 0.06) 1px, transparent 0), linear-gradient(90deg, rgba(11, 27, 52, 0.06) 1px, transparent 0);
  background-size: 48px 48px;
}

.dark .grid-backdrop {
  background-image: linear-gradient(rgba(201, 162, 75, 0.12) 1px, transparent 0), linear-gradient(90deg, rgba(201, 162, 75, 0.12) 1px, transparent 0);
  background-size: 48px 48px;
}

.corner-ticks:after,
.corner-ticks:before {
  content: "";
  pointer-events: none;
  position: absolute;
  height: 18px;
  width: 18px;
  border-width: 1.5px;
  --tw-border-opacity: 1;
  border-color: rgb(169 127 34 / var(--tw-border-opacity, 1));
  opacity: 0.6;
}

.corner-ticks:is(.dark *):after,
.corner-ticks:is(.dark *):before {
  --tw-border-opacity: 1;
  border-color: rgb(201 162 75 / var(--tw-border-opacity, 1));
}

.corner-ticks:before {
  top: 24px;
  left: 24px;
  border-right: none;
  border-bottom: none;
}

.corner-ticks:after {
  bottom: 24px;
  right: 24px;
  border-left: none;
  border-top: none;
}

.gallery-thumb {
  background-image: 
    repeating-linear-gradient(0deg, rgba(11, 27, 52, 0.06) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(90deg, rgba(11, 27, 52, 0.06) 0 1px, transparent 1px 22px),
    linear-gradient(to bottom right, var(--tw-gradient-stops));
  --tw-gradient-from: #e8edf3 var(--tw-gradient-from-position);
  --tw-gradient-to: rgba(232, 237, 243, 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #f4f6f9 var(--tw-gradient-to-position);
}

.dark .gallery-thumb {
  background-image: 
    repeating-linear-gradient(0deg, rgba(201, 162, 75, 0.12) 0 1px, transparent 1px 22px),
    repeating-linear-gradient(90deg, rgba(201, 162, 75, 0.12) 0 1px, transparent 1px 22px),
    linear-gradient(to bottom right, var(--tw-gradient-stops));
  --tw-gradient-from: #12294b var(--tw-gradient-from-position);
  --tw-gradient-to: rgba(18, 41, 75, 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #0b1b34 var(--tw-gradient-to-position);
}
.reveal {
  --tw-translate-y: 1.75rem;
  opacity: 0;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.7s;
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.reveal,
.reveal.in-view {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.reveal.in-view {
  --tw-translate-y: 0px;
  opacity: 1;
}

.reveal-item {
  --tw-translate-y: 1.25rem;
  opacity: 0;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.5s;
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}

.in-view .reveal-item,
.reveal-item {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.in-view .reveal-item {
  --tw-translate-y: 0px;
  opacity: 1;
}

.in-view .reveal-item:first-child {
  transition-delay: 0.05s;
}

.in-view .reveal-item:nth-child(2) {
  transition-delay: 0.12s;
}

.in-view .reveal-item:nth-child(3) {
  transition-delay: 0.19s;
}

.in-view .reveal-item:nth-child(4) {
  transition-delay: 0.26s;
}

.in-view .reveal-item:nth-child(5) {
  transition-delay: 0.33s;
}

.in-view .reveal-item:nth-child(6) {
  transition-delay: 0.4s;
}

.nav-link {
  position: relative;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(28 58 99 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.15s;
}

.nav-link:hover {
  --tw-text-opacity: 1;
  color: rgb(11 27 52 / var(--tw-text-opacity, 1));
}

.nav-link:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(169 186 212 / var(--tw-text-opacity, 1));
}

.nav-link:hover:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(244 246 249 / var(--tw-text-opacity, 1));
}

.nav-link:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -0.125rem;
  height: 1px;
  width: 0;
  --tw-bg-opacity: 1;
  background-color: rgb(169 127 34 / var(--tw-bg-opacity, 1));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.3s;
}

.nav-link:is(.dark *):after {
  --tw-bg-opacity: 1;
  background-color: rgb(201 162 75 / var(--tw-bg-opacity, 1));
}

.nav-link.active:after,
.nav-link:hover:after {
  width: 100%;
}

.nav-link.active {
  --tw-text-opacity: 1;
  color: rgb(11 27 52 / var(--tw-text-opacity, 1));
}

.nav-link.active:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(244 246 249 / var(--tw-text-opacity, 1));
}

.eyebrow {
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-family: IBM Plex Mono, monospace;
  font-size: 12.5px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  --tw-text-opacity: 1;
  color: rgb(169 127 34 / var(--tw-text-opacity, 1));
}

.eyebrow:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(201 162 75 / var(--tw-text-opacity, 1));
}

.eyebrow:before {
  content: "";
  height: 1px;
  width: 1.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(169 127 34 / var(--tw-bg-opacity, 1));
}

.eyebrow:is(.dark *):before {
  --tw-bg-opacity: 1;
  background-color: rgb(201 162 75 / var(--tw-bg-opacity, 1));
}

.bearing-line {
  flex: 1 1 0%;
  border-color: rgba(28, 58, 99, 0.3);
  border-top: 1px rgba(28, 58, 99, 0.3);
  border-style: dashed;
}

.bearing-line:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(28 58 99 / var(--tw-border-opacity, 1));
}

.bearing-heading {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-family: IBM Plex Mono, monospace;
  font-size: 0.75rem;
  line-height: 1rem;
  letter-spacing: 0.14em;
  --tw-text-opacity: 1;
  color: rgb(169 127 34 / var(--tw-text-opacity, 1));
}

.bearing-heading:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(201 162 75 / var(--tw-text-opacity, 1));
}

.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.125rem;
  --tw-bg-opacity: 1;
  background-color: rgb(169 127 34 / var(--tw-bg-opacity, 1));
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(5 12 24 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.15s;
}

.btn-primary:hover {
  --tw-bg-opacity: 1;
  background-color: rgb(138 106 28 / var(--tw-bg-opacity, 1));
}

.btn-primary:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(201 162 75 / var(--tw-bg-opacity, 1));
}

.btn-primary:hover:is(.dark *) {
  --tw-bg-opacity: 1;
  background-color: rgb(221 187 110 / var(--tw-bg-opacity, 1));
}

.btn-outline {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: 0.125rem;
  border-width: 1px;
  border-color: rgba(28, 58, 99, 0.3);
  padding: 0.75rem 1.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(11 27 52 / var(--tw-text-opacity, 1));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 0.15s;
}

.btn-outline:hover {
  --tw-border-opacity: 1;
  border-color: rgb(169 127 34 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(169 127 34 / var(--tw-text-opacity, 1));
}

.btn-outline:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(28 58 99 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(244 246 249 / var(--tw-text-opacity, 1));
}

.btn-outline:hover:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(201 162 75 / var(--tw-border-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(201 162 75 / var(--tw-text-opacity, 1));
}

.field-input {
  width: 100%;
  border-radius: 0.125rem;
  border-width: 1px;
  border-color: rgba(28, 58, 99, 0.3);
  --tw-bg-opacity: 1;
  background-color: rgb(244 246 249 / var(--tw-bg-opacity, 1));
  padding: 0.75rem 0.875rem;
  font-size: 14.5px;
  --tw-text-opacity: 1;
  color: rgb(11 27 52 / var(--tw-text-opacity, 1));
}

.field-input:focus {
  --tw-border-opacity: 1;
  border-color: rgb(169 127 34 / var(--tw-border-opacity, 1));
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.field-input:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(28 58 99 / var(--tw-border-opacity, 1));
  --tw-bg-opacity: 1;
  background-color: rgb(11 27 52 / var(--tw-bg-opacity, 1));
  --tw-text-opacity: 1;
  color: rgb(244 246 249 / var(--tw-text-opacity, 1));
}

.field-input:focus:is(.dark *) {
  --tw-border-opacity: 1;
  border-color: rgb(201 162 75 / var(--tw-border-opacity, 1));
}

.field-label {
  margin-bottom: 0.5rem;
  display: block;
  font-family: IBM Plex Mono, monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: rgba(28, 58, 99, 0.7);
}

.field-label:is(.dark *) {
  --tw-text-opacity: 1;
  color: rgb(169 186 212 / var(--tw-text-opacity, 1));
}

.pointer-events-none { pointer-events: none; }
.invisible { visibility: hidden; }
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }
.inset-0 { inset: 0; }
.-bottom-0\.5 { bottom: -0.125rem; }
.bottom-0 { bottom: 0; }
.bottom-3\.5 { bottom: 0.875rem; }
.left-0 { left: 0; }
.left-3\.5 { left: 0.875rem; }
.right-0 { right: 0; }
.right-3\.5 { right: 0.875rem; }
.right-6 { right: 1.5rem; }
.top-0 { top: 0; }
.top-3\.5 { top: 0.875rem; }
.top-6 { top: 1.5rem; }
.z-\[100\] { z-index: 100; }
.z-\[150\] { z-index: 150; }
.z-\[200\] { z-index: 200; }
.z-\[2\] { z-index: 2; }
.mx-auto { margin-left: auto; margin-right: auto; }
.mb-1\.5 { margin-bottom: 0.375rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-14 { margin-bottom: 3.5rem; }
.mb-2\.5 { margin-bottom: 0.625rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-4\.5 { margin-bottom: 1.125rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-7 { margin-bottom: 1.75rem; }
.mb-8 { margin-bottom: 2rem; }
.mt-0\.5 { margin-top: 0.125rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-1\.5 { margin-top: 0.375rem; }
.mt-16 { margin-top: 4rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3\.5 { margin-top: 0.875rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-7 { margin-top: 1.75rem; }
.block { display: block; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.table { display: table; }
.grid { display: grid; }
.hidden { display: none; }
.aspect-\[4\/3\] { aspect-ratio: 4 / 3; }
.h-3\.5 { height: 0.875rem; }
.h-4 { height: 1rem; }
.h-7 { height: 1.75rem; }
.h-9 { height: 2.25rem; }
.h-\[17px\] { height: 17px; }
.h-\[18px\] { height: 18px; }
.h-\[34px\] { height: 34px; }
.h-\[38px\] { height: 38px; }
.h-px { height: 1px; }
.h-screen { height: 100vh; }
.min-h-\[100px\] { min-height: 100px; }
.w-0 { width: 0; }
.w-3\.5 { width: 0.875rem; }
.w-4 { width: 1rem; }
.w-6 { width: 1.5rem; }
.w-7 { width: 1.75rem; }
.w-9 { width: 2.25rem; }
.w-\[17px\] { width: 17px; }
.w-\[18px\] { width: 18px; }
.w-\[34px\] { width: 34px; }
.w-\[38px\] { width: 38px; }
.w-\[min\(300px\2c_80vw\)\] { width: min(300px, 80vw); }
.w-full { width: 100%; }
.max-w-\[1180px\] { max-width: 1180px; }
.max-w-\[280px\] { max-width: 280px; }
.max-w-\[320px\] { max-width: 320px; }
.max-w-\[360px\] { max-width: 360px; }
.max-w-\[520px\] { max-width: 520px; }
.max-w-\[640px\] { max-width: 640px; }
.flex-1 { flex: 1 1 0%; }
.shrink-0 { flex-shrink: 0; }
.translate-x-full { --tw-translate-x: 100%; }
.translate-x-full,
.translate-y-5 {
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-y-5 { --tw-translate-y: 1.25rem; }
.translate-y-7 {
  --tw-translate-y: 1.75rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

@keyframes spin {
  to {
    transform: rotate(1turn);
  }
}

.animate-\[spin_90s_linear_infinite\] { animation: spin 90s linear infinite; }
.resize-y { resize: vertical; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-1 { gap: 0.25rem; }
.gap-10 { gap: 2.5rem; }
.gap-14 { gap: 3.5rem; }
.gap-2 { gap: 0.5rem; }
.gap-2\.5 { gap: 0.625rem; }
.gap-3 { gap: 0.75rem; }
.gap-3\.5 { gap: 0.875rem; }
.gap-4 { gap: 1rem; }
.gap-4\.5 { gap: 1.125rem; }
.gap-5 { gap: 1.25rem; }
.gap-5\.5 { gap: 1.375rem; }
.gap-8 { gap: 2rem; }
.gap-px { gap: 1px; }

.space-y-4\.5 > :not([hidden]) ~ :not([hidden]) {
  --tw-space-y-reverse: 0;
  margin-top: calc(1.125rem * (1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.125rem * var(--tw-space-y-reverse));
}

.overflow-hidden { overflow: hidden; }
.overflow-y-auto { overflow-y: auto; }
.overflow-x-hidden { overflow-x: hidden; }
.whitespace-nowrap { white-space: nowrap; }
.break-all { word-break: break-all; }
.rounded-full { border-radius: 9999px; }
.rounded-sm { border-radius: 0.125rem; }
.border { border-width: 1px; }
.border-\[1\.5px\] { border-width: 1.5px; }
.border-b { border-bottom-width: 1px; }
.border-l { border-left-width: 1px; }
.border-r { border-right-width: 1px; }
.border-t { border-top-width: 1px; }
.border-dashed { border-style: dashed; }
.border-brass-600 { --tw-border-opacity: 1; border-color: rgb(169 127 34 / var(--tw-border-opacity, 1)); }
.border-navy-700\/10 { border-color: rgba(28, 58, 99, 0.1); }
.border-navy-700\/15 { border-color: rgba(28, 58, 99, 0.15); }
.border-navy-700\/20 { border-color: rgba(28, 58, 99, 0.2); }
.border-navy-700\/30 { border-color: rgba(28, 58, 99, 0.3); }
.bg-brass-500 { --tw-bg-opacity: 1; background-color: rgb(201 162 75 / var(--tw-bg-opacity, 1)); }
.bg-brass-600 { --tw-bg-opacity: 1; background-color: rgb(169 127 34 / var(--tw-bg-opacity, 1)); }
.bg-navy-700\/20 { background-color: rgba(28, 58, 99, 0.2); }
.bg-navy-950\/60 { background-color: rgba(5, 12, 24, 0.6); }
.bg-paper-100 { --tw-bg-opacity: 1; background-color: rgb(232 237 243 / var(--tw-bg-opacity, 1)); }
.bg-paper-50 { --tw-bg-opacity: 1; background-color: rgb(244 246 249 / var(--tw-bg-opacity, 1)); }
.bg-paper-50\/85 { background-color: rgba(244, 246, 249, 0.85); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.from-navy-800 { --tw-gradient-from: #12294b var(--tw-gradient-from-position); --tw-gradient-to: rgba(18, 41, 75, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-paper-100 { --tw-gradient-from: #e8edf3 var(--tw-gradient-from-position); --tw-gradient-to: rgba(232, 237, 243, 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.fill-brass-600 { fill: #a97f22; }
.fill-navy-700 { fill: #1c3a63; }
.fill-paper-50 { fill: #f4f6f9; }
.stroke-brass-600 { stroke: #a97f22; }
.stroke-navy-700\/30 { stroke: rgba(28, 58, 99, 0.3); }
.p-5 { padding: 1.25rem; }
.p-5\.5 { padding: 1.375rem; }
.p-6 { padding: 1.5rem; }
.p-8 { padding: 2rem; }
.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }
.px-3\.5 { padding-left: 0.875rem; padding-right: 0.875rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; }
.py-9 { padding-top: 2.25rem; padding-bottom: 2.25rem; }
.pb-20 { padding-bottom: 5rem; }
.pb-24 { padding-bottom: 6rem; }
.pb-8 { padding-bottom: 2rem; }
.pt-0\.5 { padding-top: 0.125rem; }
.pt-14 { padding-top: 3.5rem; }
.pt-24 { padding-top: 6rem; }
.pt-6 { padding-top: 1.5rem; }
.font-body { font-family: IBM Plex Sans, sans-serif; }
.font-display { font-family: Fraunces, serif; }
.font-mono { font-family: IBM Plex Mono, monospace; }
.text-\[10\.5px\] { font-size: 10.5px; }
.text-\[10px\] { font-size: 10px; }
.text-\[11\.5px\] { font-size: 11.5px; }
.text-\[11px\] { font-size: 11px; }
.text-\[12\.5px\] { font-size: 12.5px; }
.text-\[13px\] { font-size: 13px; }
.text-\[14\.5px\] { font-size: 14.5px; }
.text-\[15\.5px\] { font-size: 15.5px; }
.text-\[15px\] { font-size: 15px; }
.text-\[16\.5px\] { font-size: 16.5px; }
.text-\[17px\] { font-size: 17px; }
.text-\[19px\] { font-size: 19px; }
.text-\[26px\] { font-size: 26px; }
.text-\[28px\] { font-size: 28px; }
.text-\[34px\] { font-size: 34px; }
.text-\[38px\] { font-size: 38px; }
.text-\[9\.5px\] { font-size: 9.5px; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.font-bold { font-weight: 700; }
.font-medium { font-weight: 500; }
.font-normal { font-weight: 400; }
.font-semibold { font-weight: 600; }
.uppercase { text-transform: uppercase; }
.italic { font-style: italic; }
.leading-\[1\.08\] { line-height: 1.08; }
.leading-\[1\.75\] { line-height: 1.75; }
.leading-\[1\.8\] { line-height: 1.8; }
.leading-relaxed { line-height: 1.625; }
.tracking-\[\.12em\] { letter-spacing: 0.12em; }
.tracking-\[\.14em\] { letter-spacing: 0.14em; }
.tracking-\[\.16em\] { letter-spacing: 0.16em; }
.tracking-\[\.18em\] { letter-spacing: 0.18em; }
.tracking-\[\.1em\] { letter-spacing: 0.1em; }
.tracking-tight { letter-spacing: -0.025em; }
.text-brass-600 { --tw-text-opacity: 1; color: rgb(169 127 34 / var(--tw-text-opacity, 1)); }
.text-navy-700 { --tw-text-opacity: 1; color: rgb(28 58 99 / var(--tw-text-opacity, 1)); }
.text-navy-700\/60 { color: rgba(28, 58, 99, 0.6); }
.text-navy-700\/70 { color: rgba(28, 58, 99, 0.7); }
.text-navy-900 { --tw-text-opacity: 1; color: rgb(11 27 52 / var(--tw-text-opacity, 1)); }
.text-navy-950 { --tw-text-opacity: 1; color: rgb(5 12 24 / var(--tw-text-opacity, 1)); }
.opacity-0 { opacity: 0; }
.opacity-100 { opacity: 1; }
.opacity-60 { opacity: 0.6; }
.opacity-70 { opacity: 0.7; }
.shadow-2xl {
  --tw-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.filter {
  filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);
}
.backdrop-blur-md {
  --tw-backdrop-blur: blur(12px);
  -webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s; }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s; }
.transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s; }
.transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.15s; }
.duration-300 { transition-duration: 0.3s; }
.duration-700 { transition-duration: 0.7s; }

.hover\:border-brass-600:hover { --tw-border-opacity: 1; border-color: rgb(169 127 34 / var(--tw-border-opacity, 1)); }
.hover\:bg-brass-700:hover { --tw-bg-opacity: 1; background-color: rgb(138 106 28 / var(--tw-bg-opacity, 1)); }
.hover\:bg-paper-100:hover { --tw-bg-opacity: 1; background-color: rgb(232 237 243 / var(--tw-bg-opacity, 1)); }
.hover\:text-brass-600:hover { --tw-text-opacity: 1; color: rgb(169 127 34 / var(--tw-text-opacity, 1)); }
.hover\:text-navy-900:hover { --tw-text-opacity: 1; color: rgb(11 27 52 / var(--tw-text-opacity, 1)); }
.hover\:underline:hover { text-decoration-line: underline; }

.focus\:border-brass-600:focus { --tw-border-opacity: 1; border-color: rgb(169 127 34 / var(--tw-border-opacity, 1)); }
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }

.dark\:border-brass-500:is(.dark *) { --tw-border-opacity: 1; border-color: rgb(201 162 75 / var(--tw-border-opacity, 1)); }
.dark\:border-navy-700:is(.dark *) { --tw-border-opacity: 1; border-color: rgb(28 58 99 / var(--tw-border-opacity, 1)); }
.dark\:bg-brass-500:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(201 162 75 / var(--tw-bg-opacity, 1)); }
.dark\:bg-navy-700:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(28 58 99 / var(--tw-bg-opacity, 1)); }
.dark\:bg-navy-800:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(18 41 75 / var(--tw-bg-opacity, 1)); }
.dark\:bg-navy-900:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(11 27 52 / var(--tw-bg-opacity, 1)); }
.dark\:bg-navy-900\/85:is(.dark *) { background-color: rgba(11, 27, 52, 0.85); }
.dark\:fill-\[\#a9bad4\]:is(.dark *) { fill: #a9bad4; }
.dark\:fill-brass-500:is(.dark *) { fill: #c9a24b; }
.dark\:fill-navy-900:is(.dark *) { fill: #0b1b34; }
.dark\:stroke-brass-500:is(.dark *) { stroke: #c9a24b; }
.dark\:stroke-navy-700:is(.dark *) { stroke: #1c3a63; }
.dark\:text-\[\#a9bad4\]:is(.dark *) { --tw-text-opacity: 1; color: rgb(169 186 212 / var(--tw-text-opacity, 1)); }
.dark\:text-brass-500:is(.dark *) { --tw-text-opacity: 1; color: rgb(201 162 75 / var(--tw-text-opacity, 1)); }
.dark\:text-paper-50:is(.dark *) { --tw-text-opacity: 1; color: rgb(244 246 249 / var(--tw-text-opacity, 1)); }

.dark\:hover\:border-brass-500:hover:is(.dark *) { --tw-border-opacity: 1; border-color: rgb(201 162 75 / var(--tw-border-opacity, 1)); }
.dark\:hover\:bg-brass-400:hover:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(221 187 110 / var(--tw-bg-opacity, 1)); }
.dark\:hover\:bg-navy-800:hover:is(.dark *) { --tw-bg-opacity: 1; background-color: rgb(18 41 75 / var(--tw-bg-opacity, 1)); }
.dark\:hover\:text-brass-500:hover:is(.dark *) { --tw-text-opacity: 1; color: rgb(201 162 75 / var(--tw-text-opacity, 1)); }
.dark\:hover\:text-paper-50:hover:is(.dark *) { --tw-text-opacity: 1; color: rgb(244 246 249 / var(--tw-text-opacity, 1)); }

@media (min-width: 640px) {
  .sm\:col-span-2 { grid-column: span 2 / span 2; }
  .sm\:inline-flex { display: inline-flex; }
  .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sm\:p-7 { padding: 1.75rem; }
  .sm\:px-8 { padding-left: 2rem; padding-right: 2rem; }
  .sm\:pt-32 { padding-top: 8rem; }
  .sm\:text-\[36px\] { font-size: 36px; }
  .sm\:text-\[42px\] { font-size: 42px; }
  .sm\:text-\[52px\] { font-size: 52px; }
}

@media (min-width: 768px) {
  .md\:flex { display: flex; }
  .md\:hidden { display: none; }
  .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .md\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .md\:grid-cols-\[1\.15fr_\.85fr\] { grid-template-columns: 1.15fr 0.85fr; }
  .md\:border-r { border-right-width: 1px; }
}

@media (min-width: 1024px) {
  .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lg\:grid-cols-\[\.85fr_1\.15fr\] { grid-template-columns: 0.85fr 1.15fr; }
  .lg\:grid-cols-\[\.9fr_1\.1fr\] { grid-template-columns: 0.9fr 1.1fr; }
  .lg\:grid-cols-\[1\.3fr_1fr_1fr_1fr\] { grid-template-columns: 1.3fr 1fr 1fr 1fr; }
  .lg\:text-\[64px\] { font-size: 64px; }
}

/* Starboard logo mark: sailing wake animation */
@keyframes logo-bob {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-5px);
  }
}

.logo-bob {
  animation: logo-bob 4.5s ease-in-out infinite;
}

.wake-line {
  stroke-dasharray: 16 12;
}

.wake-line-1 {
  animation: wake-flow 1.1s linear infinite;
}

.wake-line-2 {
  animation: wake-flow 1.3s linear infinite;
}

.wake-line-3 {
  animation: wake-flow 1.6s linear infinite;
}

@keyframes wake-flow {
  to {
    stroke-dashoffset: -56;
  }
}

@media (prefers-reduced-motion: reduce) {
  .logo-bob { animation: none; }
  .wake-line { animation: none; }
}