        *,
        :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, .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, .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: Zen Kaku Gothic New, Yu Gothic, YuGothic, sans-serif;
            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: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, 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: -.25em
        }

        sup {
            top: -.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
        }

        fieldset,
        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
        }

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

        .pointer-events-none {
            pointer-events: none
        }

        .fixed {
            position: fixed
        }

        .absolute {
            position: absolute
        }

        .relative {
            position: relative
        }

        .sticky {
            position: sticky
        }

        .inset-0 {
            inset: 0
        }

        .-bottom-10 {
            bottom: -2.5rem
        }

        .-bottom-20 {
            bottom: -5rem
        }

        .-bottom-4 {
            bottom: -1rem
        }

        .-left-4 {
            left: -1rem
        }

        .-right-20 {
            right: -5rem
        }

        .-right-6 {
            right: -1.5rem
        }

        .-top-4 {
            top: -1rem
        }

        .-top-6 {
            top: -1.5rem
        }

        .bottom-0 {
            bottom: 0
        }

        .bottom-16 {
            bottom: 4rem
        }

        .bottom-4 {
            bottom: 1rem
        }

        .bottom-8 {
            bottom: 2rem
        }

        .left-0 {
            left: 0
        }

        .left-1\/2 {
            left: 50%
        }

        .left-4 {
            left: 1rem
        }

        .left-6 {
            left: 1.5rem
        }

        .left-8 {
            left: 2rem
        }

        .right-0 {
            right: 0
        }

        .right-4 {
            right: 1rem
        }

        .right-6 {
            right: 1.5rem
        }

        .top-0 {
            top: 0
        }

        .top-16 {
            top: 4rem
        }

        .top-4 {
            top: 1rem
        }

        .top-6 {
            top: 1.5rem
        }

        .z-0 {
            z-index: 0
        }

        .z-10 {
            z-index: 10
        }

        .z-20 {
            z-index: 20
        }

        .z-30 {
            z-index: 30
        }

        .z-50 {
            z-index: 50
        }

        .z-\[100\] {
            z-index: 100
        }

        .z-\[200\] {
            z-index: 200
        }

        .z-\[60\] {
            z-index: 60
        }

        .col-span-2 {
            grid-column: span 2/span 2
        }

        .-mx-2 {
            margin-left: -.5rem;
            margin-right: -.5rem
        }

        .mx-2 {
            margin-left: .5rem;
            margin-right: .5rem
        }

        .mx-auto {
            margin-left: auto;
            margin-right: auto
        }

        .mb-1 {
            margin-bottom: .25rem
        }

        .mb-12 {
            margin-bottom: 3rem
        }

        .mb-16 {
            margin-bottom: 4rem
        }

        .mb-2 {
            margin-bottom: .5rem
        }

        .mb-20 {
            margin-bottom: 5rem
        }

        .mb-24 {
            margin-bottom: 6rem
        }

        .mb-3 {
            margin-bottom: .75rem
        }

        .mb-4 {
            margin-bottom: 1rem
        }

        .mb-6 {
            margin-bottom: 1.5rem
        }

        .mb-8 {
            margin-bottom: 2rem
        }

        .ml-7 {
            margin-left: 1.75rem
        }

        .mr-6 {
            margin-right: 1.5rem
        }

        .mt-1 {
            margin-top: .25rem
        }

        .mt-16 {
            margin-top: 4rem
        }

        .mt-24 {
            margin-top: 6rem
        }

        .mt-3 {
            margin-top: .75rem
        }

        .mt-4 {
            margin-top: 1rem
        }

        .mt-6 {
            margin-top: 1.5rem
        }

        .mt-8 {
            margin-top: 2rem
        }

        .block {
            display: block
        }

        .flex {
            display: flex
        }

        .table {
            display: table
        }

        .grid {
            display: grid
        }

        .hidden {
            display: none
        }

        .aspect-\[16\/9\],
        .aspect-video {
            aspect-ratio: 16/9
        }

        .h-1 {
            height: .25rem
        }

        .h-10 {
            height: 2.5rem
        }

        .h-12 {
            height: 3rem
        }

        .h-2 {
            height: .5rem
        }

        .h-3 {
            height: .75rem
        }

        .h-48 {
            height: 12rem
        }

        .h-6 {
            height: 1.5rem
        }

        .h-80 {
            height: 20rem
        }

        .h-96 {
            height: 24rem
        }

        .h-full {
            height: 100%
        }

        .max-h-\[90vh\] {
            max-height: 90vh
        }

        .w-1\/3 {
            width: 33.333333%
        }

        .w-1\/4 {
            width: 25%
        }

        .w-10 {
            width: 2.5rem
        }

        .w-12 {
            width: 3rem
        }

        .w-24 {
            width: 6rem
        }

        .w-32 {
            width: 8rem
        }

        .w-6 {
            width: 1.5rem
        }

        .w-8 {
            width: 2rem
        }

        .w-96 {
            width: 24rem
        }

        .w-auto {
            width: auto
        }

        .w-full {
            width: 100%
        }

        .w-px {
            width: 1px
        }

        .min-w-full {
            min-width: 100%
        }

        .max-w-2xl {
            max-width: 42rem
        }

        .max-w-3xl {
            max-width: 48rem
        }

        .max-w-4xl {
            max-width: 56rem
        }

        .max-w-5xl {
            max-width: 64rem
        }

        .max-w-7xl {
            max-width: 80rem
        }

        .max-w-full {
            max-width: 100%
        }

        .max-w-xl {
            max-width: 36rem
        }

        .flex-1 {
            flex: 1 1 0%
        }

        .shrink-0 {
            flex-shrink: 0
        }

        .border-collapse {
            border-collapse: collapse
        }

        .-translate-x-1\/2 {
            --tw-translate-x: -50%
        }

        .-translate-x-1\/2,
        .transform {
            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))
        }

        .animate-\[fadeInUp_0\.3s_ease-out\] {
            animation: fadeInUp .3s ease-out
        }

        .animate-\[fadeInUp_1s_ease-out_0\.3s_forwards\] {
            animation: fadeInUp 1s ease-out .3s forwards
        }

        .animate-\[fadeInUp_1s_ease-out_0\.5s_forwards\] {
            animation: fadeInUp 1s ease-out .5s forwards
        }

        .animate-\[fadeInUp_1s_ease-out_0\.8s_forwards\] {
            animation: fadeInUp 1s ease-out .8s forwards
        }

        @keyframes fadeInUp {
            0% {
                opacity: 0;
                transform: translateY(40px)
            }

            to {
                opacity: 1;
                transform: translateY(0)
            }
        }

        .animate-\[fadeInUp_1s_ease-out_1\.1s_forwards\] {
            animation: fadeInUp 1s ease-out 1.1s forwards
        }

        @keyframes pulse {
            50% {
                opacity: .5
            }
        }

        .animate-pulse {
            animation: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite
        }

        .cursor-grab {
            cursor: grab
        }

        .cursor-pointer {
            cursor: pointer
        }

        .select-none {
            -webkit-user-select: none;
            -moz-user-select: none;
            user-select: none
        }

        .snap-x {
            scroll-snap-type: x var(--tw-scroll-snap-strictness)
        }

        .snap-mandatory {
            --tw-scroll-snap-strictness: mandatory
        }

        .snap-start {
            scroll-snap-align: start
        }

        .list-none {
            list-style-type: none
        }

        .grid-cols-1 {
            grid-template-columns: repeat(1, minmax(0, 1fr))
        }

        .grid-cols-2 {
            grid-template-columns: repeat(2, minmax(0, 1fr))
        }

        .flex-col {
            flex-direction: column
        }

        .items-start {
            align-items: flex-start
        }

        .items-end {
            align-items: flex-end
        }

        .items-center {
            align-items: center
        }

        .items-baseline {
            align-items: baseline
        }

        .justify-center {
            justify-content: center
        }

        .justify-between {
            justify-content: space-between
        }

        .gap-1 {
            gap: .25rem
        }

        .gap-12 {
            gap: 3rem
        }

        .gap-16 {
            gap: 4rem
        }

        .gap-2 {
            gap: .5rem
        }

        .gap-3 {
            gap: .75rem
        }

        .gap-4 {
            gap: 1rem
        }

        .gap-6 {
            gap: 1.5rem
        }

        .gap-8 {
            gap: 2rem
        }

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

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

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

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

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

        .divide-y>:not([hidden])~:not([hidden]) {
            --tw-divide-y-reverse: 0;
            border-top-width: calc(1px*(1 - var(--tw-divide-y-reverse)));
            border-bottom-width: calc(1px*var(--tw-divide-y-reverse))
        }

        .divide-outline-variant\/20>:not([hidden])~:not([hidden]) {
            border-color: rgba(196, 198, 207, .2)
        }

        .divide-outline-variant\/\[0\.15\]>:not([hidden])~:not([hidden]) {
            border-color: rgba(196, 198, 207, .15)
        }

        .overflow-hidden {
            overflow: hidden
        }

        .overflow-x-auto {
            overflow-x: auto
        }

        .overflow-y-auto {
            overflow-y: auto
        }

        .scroll-smooth {
            scroll-behavior: smooth
        }

        .whitespace-nowrap {
            white-space: nowrap
        }

        .rounded-full {
            border-radius: 9999px
        }

        .border {
            border-width: 1px
        }

        .border-b {
            border-bottom-width: 1px
        }

        .border-b-8 {
            border-bottom-width: 8px
        }

        .border-l {
            border-left-width: 1px
        }

        .border-l-2 {
            border-left-width: 2px
        }

        .border-l-4 {
            border-left-width: 4px
        }

        .border-r {
            border-right-width: 1px
        }

        .border-t {
            border-top-width: 1px
        }

        .border-t-8 {
            border-top-width: 8px
        }

        .border-on-primary-container {
            --tw-border-opacity: 1;
            border-color: rgb(120 160 215/var(--tw-border-opacity, 1))
        }

        .border-primary-container {
            --tw-border-opacity: 1;
            border-color: rgb(0 73 148/var(--tw-border-opacity, 1))
        }

        .border-slate-300 {
            --tw-border-opacity: 1;
            border-color: rgb(203 213 225/var(--tw-border-opacity, 1))
        }

        .border-slate-700 {
            --tw-border-opacity: 1;
            border-color: rgb(51 65 85/var(--tw-border-opacity, 1))
        }

        .border-transparent {
            border-color: transparent
        }

        .border-white\/10 {
            border-color: hsla(0, 0%, 100%, .1)
        }

        .border-white\/20 {
            border-color: hsla(0, 0%, 100%, .2)
        }

        .border-white\/5 {
            border-color: hsla(0, 0%, 100%, .05)
        }

        .border-white\/\[0\.06\] {
            border-color: hsla(0, 0%, 100%, .06)
        }

        .bg-\[\#002a55\] {
            --tw-bg-opacity: 1;
            background-color: rgb(0 42 85/var(--tw-bg-opacity, 1))
        }

        .bg-\[\#002a55\]\/80 {
            background-color: rgba(0, 42, 85, .8)
        }

        .bg-\[\#002a55\]\/95 {
            background-color: rgba(0, 42, 85, .95)
        }

        .bg-background {
            --tw-bg-opacity: 1;
            background-color: rgb(248 249 250/var(--tw-bg-opacity, 1))
        }

        .bg-black\/20 {
            background-color: rgba(0, 0, 0, .2)
        }

        .bg-black\/95 {
            background-color: rgba(0, 0, 0, .95)
        }

        .bg-error {
            --tw-bg-opacity: 1;
            background-color: rgb(186 26 26/var(--tw-bg-opacity, 1))
        }

        .bg-primary {
            --tw-bg-opacity: 1;
            background-color: rgb(0 42 85/var(--tw-bg-opacity, 1))
        }

        .bg-primary-container {
            --tw-bg-opacity: 1;
            background-color: rgb(0 73 148/var(--tw-bg-opacity, 1))
        }

        .bg-primary-container\/20 {
            background-color: rgba(0, 73, 148, .2)
        }

        .bg-primary\/85 {
            background-color: rgba(0, 42, 85, .85)
        }

        .bg-primary\/90 {
            background-color: rgba(0, 42, 85, .9)
        }

        .bg-surface {
            --tw-bg-opacity: 1;
            background-color: rgb(248 249 250/var(--tw-bg-opacity, 1))
        }

        .bg-surface-container-high {
            --tw-bg-opacity: 1;
            background-color: rgb(231 232 233/var(--tw-bg-opacity, 1))
        }

        .bg-surface-container-low {
            --tw-bg-opacity: 1;
            background-color: rgb(243 244 245/var(--tw-bg-opacity, 1))
        }

        .bg-white {
            --tw-bg-opacity: 1;
            background-color: rgb(255 255 255/var(--tw-bg-opacity, 1))
        }

        .bg-white\/5 {
            background-color: hsla(0, 0%, 100%, .05)
        }

        .bg-white\/50 {
            background-color: hsla(0, 0%, 100%, .5)
        }

        .bg-white\/90 {
            background-color: hsla(0, 0%, 100%, .9)
        }

        .bg-gradient-to-b {
            background-image: linear-gradient(to bottom, var(--tw-gradient-stops))
        }

        .bg-gradient-to-r {
            background-image: linear-gradient(to right, var(--tw-gradient-stops))
        }

        .bg-gradient-to-t {
            background-image: linear-gradient(to top, var(--tw-gradient-stops))
        }

        .from-primary {
            --tw-gradient-from: #002a55 var(--tw-gradient-from-position);
            --tw-gradient-to: rgba(0, 42, 85, 0) var(--tw-gradient-to-position);
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
        }

        .from-primary\/85 {
            --tw-gradient-from: rgba(0, 42, 85, .85) var(--tw-gradient-from-position);
            --tw-gradient-to: rgba(0, 42, 85, 0) var(--tw-gradient-to-position);
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
        }

        .from-primary\/90 {
            --tw-gradient-from: rgba(0, 42, 85, .9) var(--tw-gradient-from-position);
            --tw-gradient-to: rgba(0, 42, 85, 0) var(--tw-gradient-to-position);
            --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)
        }

        .via-primary\/45 {
            --tw-gradient-to: rgba(0, 42, 85, 0) var(--tw-gradient-to-position);
            --tw-gradient-stops: var(--tw-gradient-from), rgba(0, 42, 85, .45) var(--tw-gradient-via-position), var(--tw-gradient-to)
        }

        .via-primary\/95 {
            --tw-gradient-to: rgba(0, 42, 85, 0) var(--tw-gradient-to-position);
            --tw-gradient-stops: var(--tw-gradient-from), rgba(0, 42, 85, .95) var(--tw-gradient-via-position), var(--tw-gradient-to)
        }

        .via-transparent {
            --tw-gradient-to: transparent var(--tw-gradient-to-position);
            --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to)
        }

        .to-primary {
            --tw-gradient-to: #002a55 var(--tw-gradient-to-position)
        }

        .to-primary\/20 {
            --tw-gradient-to: rgba(0, 42, 85, .2) var(--tw-gradient-to-position)
        }

        .to-primary\/30 {
            --tw-gradient-to: rgba(0, 42, 85, .3) var(--tw-gradient-to-position)
        }

        .to-transparent {
            --tw-gradient-to: transparent var(--tw-gradient-to-position)
        }

        .bg-cover {
            background-size: cover
        }

        .bg-fixed {
            background-attachment: fixed
        }

        .bg-center {
            background-position: 50%
        }

        .object-contain {
            -o-object-fit: contain;
            object-fit: contain
        }

        .object-cover {
            -o-object-fit: cover;
            object-fit: cover
        }

        .p-10 {
            padding: 2.5rem
        }

        .p-4 {
            padding: 1rem
        }

        .p-8 {
            padding: 2rem
        }

        .px-2 {
            padding-left: .5rem;
            padding-right: .5rem
        }

        .px-4 {
            padding-left: 1rem;
            padding-right: 1rem
        }

        .px-6 {
            padding-left: 1.5rem;
            padding-right: 1.5rem
        }

        .px-8 {
            padding-left: 2rem;
            padding-right: 2rem
        }

        .py-0\.5 {
            padding-top: .125rem;
            padding-bottom: .125rem
        }

        .py-2 {
            padding-top: .5rem;
            padding-bottom: .5rem
        }

        .py-20 {
            padding-top: 5rem;
            padding-bottom: 5rem
        }

        .py-24 {
            padding-top: 6rem;
            padding-bottom: 6rem
        }

        .py-3 {
            padding-top: .75rem;
            padding-bottom: .75rem
        }

        .py-32 {
            padding-top: 8rem;
            padding-bottom: 8rem
        }

        .py-4 {
            padding-top: 1rem;
            padding-bottom: 1rem
        }

        .py-5 {
            padding-top: 1.25rem;
            padding-bottom: 1.25rem
        }

        .py-6 {
            padding-top: 1.5rem;
            padding-bottom: 1.5rem
        }

        .py-8 {
            padding-top: 2rem;
            padding-bottom: 2rem
        }

        .pl-6 {
            padding-left: 1.5rem
        }

        .pt-8 {
            padding-top: 2rem
        }

        .text-left {
            text-align: left
        }

        .text-center {
            text-align: center
        }

        .text-right {
            text-align: right
        }

        .font-\[\'Inter\'\] {
            font-family: Inter
        }

        .font-\[\'Public_Sans\'\] {
            font-family: Public Sans
        }

        .font-body {
            font-family: Zen Kaku Gothic New, Yu Gothic, YuGothic, sans-serif
        }

        .font-headline {
            font-family: Public Sans, sans-serif
        }

        .font-mono {
            font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, Liberation Mono, Courier New, monospace
        }

        .text-2xl {
            font-size: 1.5rem;
            line-height: 2rem
        }

        .text-3xl {
            font-size: 1.875rem;
            line-height: 2.25rem
        }

        .text-4xl {
            font-size: 2.25rem;
            line-height: 2.5rem
        }

        .text-5xl {
            font-size: 3rem;
            line-height: 1
        }

        .text-\[10px\] {
            font-size: 10px
        }

        .text-\[20vw\] {
            font-size: 20vw
        }

        .text-\[22vw\] {
            font-size: 22vw
        }

        .text-\[24vw\] {
            font-size: 24vw
        }

        .text-\[28vw\] {
            font-size: 28vw
        }

        .text-base {
            font-size: 1rem;
            line-height: 1.5rem
        }

        .text-lg {
            font-size: 1.125rem;
            line-height: 1.75rem
        }

        .text-sm {
            font-size: .875rem;
            line-height: 1.25rem
        }

        .text-xl {
            font-size: 1.25rem;
            line-height: 1.75rem
        }

        .text-xs {
            font-size: .75rem;
            line-height: 1rem
        }

        .font-black {
            font-weight: 900
        }

        .font-bold {
            font-weight: 700
        }

        .uppercase {
            text-transform: uppercase
        }

        .leading-\[1\.05\] {
            line-height: 1.05
        }

        .leading-\[2\] {
            line-height: 2
        }

        .leading-none {
            line-height: 1
        }

        .leading-snug {
            line-height: 1.375
        }

        .leading-tight {
            line-height: 1.25
        }

        .tracking-\[0\.2em\] {
            letter-spacing: .2em
        }

        .tracking-\[0\.3em\] {
            letter-spacing: .3em
        }

        .tracking-\[0\.4em\] {
            letter-spacing: .4em
        }

        .tracking-\[0\.5em\] {
            letter-spacing: .5em
        }

        .tracking-tight {
            letter-spacing: -.025em
        }

        .tracking-tighter {
            letter-spacing: -.05em
        }

        .tracking-wide {
            letter-spacing: .025em
        }

        .tracking-wider {
            letter-spacing: .05em
        }

        .tracking-widest {
            letter-spacing: .1em
        }

        .text-on-primary-container {
            --tw-text-opacity: 1;
            color: rgb(120 160 215/var(--tw-text-opacity, 1))
        }

        .text-on-primary-container\/30 {
            color: rgba(120, 160, 215, .3)
        }

        .text-on-surface {
            --tw-text-opacity: 1;
            color: rgb(25 28 29/var(--tw-text-opacity, 1))
        }

        .text-on-surface-variant {
            --tw-text-opacity: 1;
            color: rgb(34 34 34/var(--tw-text-opacity, 1))
        }

        .text-primary {
            --tw-text-opacity: 1;
            color: rgb(0 42 85/var(--tw-text-opacity, 1))
        }

        .text-primary-container {
            --tw-text-opacity: 1;
            color: rgb(0 73 148/var(--tw-text-opacity, 1))
        }

        .text-primary-fixed-dim {
            --tw-text-opacity: 1;
            color: rgb(175 200 242/var(--tw-text-opacity, 1))
        }

        .text-slate-200 {
            --tw-text-opacity: 1;
            color: rgb(226 232 240/var(--tw-text-opacity, 1))
        }

        .text-slate-300 {
            --tw-text-opacity: 1;
            color: rgb(203 213 225/var(--tw-text-opacity, 1))
        }

        .text-slate-400 {
            --tw-text-opacity: 1;
            color: rgb(148 163 184/var(--tw-text-opacity, 1))
        }

        .text-slate-500 {
            --tw-text-opacity: 1;
            color: rgb(100 116 139/var(--tw-text-opacity, 1))
        }

        .text-white {
            --tw-text-opacity: 1;
            color: rgb(255 255 255/var(--tw-text-opacity, 1))
        }

        .text-white\/70 {
            color: hsla(0, 0%, 100%, .7)
        }

        .text-white\/\[0\.04\] {
            color: hsla(0, 0%, 100%, .04)
        }

        .opacity-0 {
            opacity: 0
        }

        .opacity-30 {
            opacity: .3
        }

        .opacity-40 {
            opacity: .4
        }

        .opacity-60 {
            opacity: .6
        }

        .opacity-70 {
            opacity: .7
        }

        .opacity-90 {
            opacity: .9
        }

        .opacity-\[0\.12\] {
            opacity: .12
        }

        .blur-3xl {
            --tw-blur: blur(64px)
        }

        .blur-3xl,
        .brightness-0 {
            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)
        }

        .brightness-0 {
            --tw-brightness: brightness(0)
        }

        .invert {
            --tw-invert: invert(100%);
            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)
        }

        .backdrop-blur-md,
        .backdrop-blur-sm {
            -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)
        }

        .backdrop-blur-sm {
            --tw-backdrop-blur: blur(4px)
        }

        .transition-all {
            transition-property: all;
            transition-timing-function: cubic-bezier(.4, 0, .2, 1);
            transition-duration: .15s
        }

        .transition-colors {
            transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
            transition-timing-function: cubic-bezier(.4, 0, .2, 1);
            transition-duration: .15s
        }

        .transition-opacity {
            transition-property: opacity;
            transition-timing-function: cubic-bezier(.4, 0, .2, 1);
            transition-duration: .15s
        }

        .transition-transform {
            transition-property: transform;
            transition-timing-function: cubic-bezier(.4, 0, .2, 1);
            transition-duration: .15s
        }

        .duration-300 {
            transition-duration: .3s
        }

        .duration-500 {
            transition-duration: .5s
        }

        .duration-700 {
            transition-duration: .7s
        }

        .ease-in-out {
            transition-timing-function: cubic-bezier(.4, 0, .2, 1)
        }

        .material-symbols-outlined {
            font-variation-settings: "FILL" 0, "wght" 400, "GRAD" 0, "opsz" 24
        }

        .material-symbols-outlined.icon-thin {
            font-variation-settings: "FILL" 0, "wght" 200, "GRAD" -25, "opsz" 24
        }

        .cad-icon {
            width: 100%;
            height: 100%;
            display: block
        }

        .cad-icon circle,
        .cad-icon line,
        .cad-icon path,
        .cad-icon polygon,
        .cad-icon polyline,
        .cad-icon rect {
            fill: none;
            stroke: currentColor;
            stroke-width: 1.25;
            stroke-linecap: square;
            stroke-linejoin: miter;
            vector-effect: non-scaling-stroke
        }

        .section-eyebrow {
            font-family: Public Sans, sans-serif;
            font-size: .6875rem;
            font-weight: 700;
            letter-spacing: .35em;
            text-transform: uppercase;
            display: inline-flex;
            align-items: center;
            gap: .75rem
        }

        .section-eyebrow:before {
            content: "";
            width: 1.75rem;
            height: 1px;
            background: currentColor;
            display: inline-block
        }

        .ghost-type {
            font-family: Public Sans, sans-serif;
            font-weight: 900;
            line-height: .8;
            letter-spacing: -.04em;
            text-transform: uppercase;
            white-space: nowrap;
            pointer-events: none;
            -webkit-user-select: none;
            -moz-user-select: none;
            user-select: none;
            position: absolute;
            z-index: 0
        }

        .ghost-type-dark {
            color: #002a55;
            opacity: .04
        }

        .ghost-type-light {
            color: #fff;
            opacity: .05
        }

        .hazard-stripe {
            background: repeating-linear-gradient(45deg, #002a55, #002a55 10px, #004994 0, #004994 20px)
        }

        .no-scrollbar::-webkit-scrollbar {
            display: none
        }

        .no-scrollbar {
            -ms-overflow-style: none;
            scrollbar-width: none
        }

        .mv-text-shadow {
            text-shadow: 0 10px 30px rgba(0, 0, 0, .4)
        }

        .elevation-ambient {
            box-shadow: 0 24px 48px -12px rgba(25, 28, 29, .1)
        }

        .elevation-ambient-sm {
            box-shadow: 0 16px 32px -12px rgba(25, 28, 29, .1)
        }

        .elevation-hover {
            transition: box-shadow .3s ease, transform .3s ease
        }

        .elevation-hover:hover {
            box-shadow: 0 24px 48px -12px rgba(25, 28, 29, .12)
        }

        .selection\:bg-primary-container ::-moz-selection {
            --tw-bg-opacity: 1;
            background-color: rgb(0 73 148/var(--tw-bg-opacity, 1))
        }

        .selection\:bg-primary-container ::selection {
            --tw-bg-opacity: 1;
            background-color: rgb(0 73 148/var(--tw-bg-opacity, 1))
        }

        .selection\:text-white ::-moz-selection {
            --tw-text-opacity: 1;
            color: rgb(255 255 255/var(--tw-text-opacity, 1))
        }

        .selection\:text-white ::selection {
            --tw-text-opacity: 1;
            color: rgb(255 255 255/var(--tw-text-opacity, 1))
        }

        .selection\:bg-primary-container::-moz-selection {
            --tw-bg-opacity: 1;
            background-color: rgb(0 73 148/var(--tw-bg-opacity, 1))
        }

        .selection\:bg-primary-container::selection {
            --tw-bg-opacity: 1;
            background-color: rgb(0 73 148/var(--tw-bg-opacity, 1))
        }

        .selection\:text-white::-moz-selection {
            --tw-text-opacity: 1;
            color: rgb(255 255 255/var(--tw-text-opacity, 1))
        }

        .selection\:text-white::selection {
            --tw-text-opacity: 1;
            color: rgb(255 255 255/var(--tw-text-opacity, 1))
        }

        .hover\:-translate-y-1:hover {
            --tw-translate-y: -0.25rem;
            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))
        }

        .hover\:border-primary-container:hover {
            --tw-border-opacity: 1;
            border-color: rgb(0 73 148/var(--tw-border-opacity, 1))
        }

        .hover\:border-white\/20:hover {
            border-color: hsla(0, 0%, 100%, .2)
        }

        .hover\:bg-\[\#005bb5\]:hover {
            --tw-bg-opacity: 1;
            background-color: rgb(0 91 181/var(--tw-bg-opacity, 1))
        }

        .hover\:bg-primary-container:hover {
            --tw-bg-opacity: 1;
            background-color: rgb(0 73 148/var(--tw-bg-opacity, 1))
        }

        .hover\:bg-surface-container-high:hover {
            --tw-bg-opacity: 1;
            background-color: rgb(231 232 233/var(--tw-bg-opacity, 1))
        }

        .hover\:bg-white\/10:hover {
            background-color: hsla(0, 0%, 100%, .1)
        }

        .hover\:text-primary-container:hover {
            --tw-text-opacity: 1;
            color: rgb(0 73 148/var(--tw-text-opacity, 1))
        }

        .hover\:text-slate-300:hover {
            --tw-text-opacity: 1;
            color: rgb(203 213 225/var(--tw-text-opacity, 1))
        }

        .hover\:text-white:hover {
            --tw-text-opacity: 1;
            color: rgb(255 255 255/var(--tw-text-opacity, 1))
        }

        .active\:cursor-grabbing:active {
            cursor: grabbing
        }

        .group:hover .group-hover\:translate-x-1 {
            --tw-translate-x: 0.25rem
        }

        .group:hover .group-hover\:translate-x-1,
        .group:hover .group-hover\:translate-x-2 {
            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))
        }

        .group:hover .group-hover\:translate-x-2 {
            --tw-translate-x: 0.5rem
        }

        .group:hover .group-hover\:scale-105 {
            --tw-scale-x: 1.05;
            --tw-scale-y: 1.05
        }

        .group:hover .group-hover\:scale-105,
        .group:hover .group-hover\:scale-110 {
            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))
        }

        .group:hover .group-hover\:scale-110 {
            --tw-scale-x: 1.1;
            --tw-scale-y: 1.1
        }

        .group\/link:hover .group-hover\/link\:text-primary {
            --tw-text-opacity: 1;
            color: rgb(0 42 85/var(--tw-text-opacity, 1))
        }

        .group:hover .group-hover\:text-primary-container {
            --tw-text-opacity: 1;
            color: rgb(0 73 148/var(--tw-text-opacity, 1))
        }

        .group:hover .group-hover\:opacity-100 {
            opacity: 1
        }

        @media (min-width:768px) {
            .md\:left-12 {
                left: 3rem
            }

            .md\:right-12 {
                right: 3rem
            }

            .md\:right-8 {
                right: 2rem
            }

            .md\:mb-0 {
                margin-bottom: 0
            }

            .md\:block {
                display: block
            }

            .md\:h-8 {
                height: 2rem
            }

            .md\:min-w-\[50\%\] {
                min-width: 50%
            }

            .md\:grid-cols-2 {
                grid-template-columns: repeat(2, minmax(0, 1fr))
            }

            .md\:flex-row {
                flex-direction: row
            }

            .md\:items-center {
                align-items: center
            }

            .md\:items-baseline {
                align-items: baseline
            }

            .md\:gap-6 {
                gap: 1.5rem
            }

            .md\:p-12 {
                padding: 3rem
            }

            .md\:px-12 {
                padding-left: 3rem;
                padding-right: 3rem
            }

            .md\:px-20 {
                padding-left: 5rem;
                padding-right: 5rem
            }

            .md\:py-32 {
                padding-top: 8rem;
                padding-bottom: 8rem
            }

            .md\:text-2xl {
                font-size: 1.5rem;
                line-height: 2rem
            }

            .md\:text-3xl {
                font-size: 1.875rem;
                line-height: 2.25rem
            }

            .md\:text-4xl {
                font-size: 2.25rem;
                line-height: 2.5rem
            }

            .md\:text-\[15vw\] {
                font-size: 15vw
            }

            .md\:text-\[16vw\] {
                font-size: 16vw
            }

            .md\:text-\[17vw\] {
                font-size: 17vw
            }

            .md\:text-\[20vw\] {
                font-size: 20vw
            }

            .md\:text-\[76px\] {
                font-size: 76px
            }

            .md\:text-base {
                font-size: 1rem;
                line-height: 1.5rem
            }

            .md\:text-lg {
                font-size: 1.125rem;
                line-height: 1.75rem
            }
        }

        @media (min-width:1024px) {
            .lg\:col-span-5 {
                grid-column: span 5/span 5
            }

            .lg\:col-span-7 {
                grid-column: span 7/span 7
            }

            .lg\:flex {
                display: flex
            }

            .lg\:hidden {
                display: none
            }

            .lg\:w-1\/2 {
                width: 50%
            }

            .lg\:min-w-\[33\.333\%\] {
                min-width: 33.333%
            }

            .lg\:grid-cols-12 {
                grid-template-columns: repeat(12, minmax(0, 1fr))
            }

            .lg\:grid-cols-2 {
                grid-template-columns: repeat(2, minmax(0, 1fr))
            }

            .lg\:grid-cols-3 {
                grid-template-columns: repeat(3, minmax(0, 1fr))
            }

            .lg\:grid-cols-4 {
                grid-template-columns: repeat(4, minmax(0, 1fr))
            }

            .lg\:flex-row {
                flex-direction: row
            }
        }

        /* === add.css === */
        .map-link:hover span,
        .map-link:hover p {
            color: #1565c0;
            transition: color 0.15s;
        }

        .hover-card:hover .external-icon {
            display: none;
        }

        body {
            font-family: "Zen Kaku Gothic New", "Yu Gothic", "游ゴシック", YuGothic, sans-serif;
        }

        /* === Modal redesign === */
        .modal-backdrop {
            background: rgba(0, 18, 38, 0.78);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            opacity: 0;
            transition: opacity 0.35s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .modal-backdrop.is-open {
            opacity: 1;
        }

        .modal-panel {
            opacity: 0;
            transform: translateY(24px) scale(0.96);
            transition: opacity 0.45s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.45s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .modal-backdrop.is-open .modal-panel {
            opacity: 1;
            transform: translateY(0) scale(1);
        }

        /* Circular close button */
        .close-btn {
            position: absolute;
            top: 16px;
            right: 16px;
            width: 48px;
            height: 48px;
            border-radius: 9999px;
            background: #fff;
            color: #002a55;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            z-index: 30;
            box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
            border: none;
            transition: background-color 0.25s ease, color 0.25s ease, transform 0.35s cubic-bezier(0.34, 1.56, 0.64, 1);
        }

        .close-btn:hover {
            background: #ba1a1a;
            color: #fff;
            transform: rotate(90deg);
        }

        .close-btn svg {
            width: 20px;
            height: 20px;
            stroke: currentColor;
            stroke-width: 2.5;
            stroke-linecap: round;
        }

        @media (max-width: 640px) {
            .close-btn {
                top: 12px;
                right: 12px;
                width: 42px;
                height: 42px;
            }

            .close-btn svg {
                width: 18px;
                height: 18px;
            }
        }

        /* Modal header (industrial design) */
        .modal-header-v2 {
            position: relative;
            background: #002a55;
            color: #fff;
            padding: 1.25rem 4rem 1.25rem 1.5rem;
            overflow: hidden;
        }

        @media (min-width: 768px) {
            .modal-header-v2 {
                padding: 1.5rem 5rem 1.5rem 2rem;
            }
        }

        .modal-header-v2 .eyebrow {
            font-family: "Public Sans", sans-serif;
            font-size: 0.6875rem;
            font-weight: 700;
            letter-spacing: 0.35em;
            text-transform: uppercase;
            color: rgb(175, 200, 242);
            display: inline-flex;
            align-items: center;
            gap: 0.75rem;
            margin-bottom: 0.5rem;
            position: relative;
            z-index: 1;
        }

        .modal-header-v2 .eyebrow::before {
            content: "";
            width: 1.75rem;
            height: 1px;
            background: currentColor;
            display: inline-block;
        }

        .modal-header-v2 .modal-title-v2 {
            font-family: "Zen Kaku Gothic New", "Public Sans", sans-serif;
            font-weight: 700;
            font-size: 20px;
            line-height: 1.4;
            letter-spacing: 0.02em;
            position: relative;
            z-index: 1;
        }

        @media (min-width: 768px) {
            .modal-header-v2 .modal-title-v2 {
                font-size: 20px;
            }
        }

        /* Scroll reveal animation */
        .reveal {
            opacity: 0;
            transform: translateY(40px);
            transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .reveal.is-visible {
            opacity: 1;
            transform: translateY(0);
        }

        .reveal-delay-1 {
            transition-delay: 0.1s;
        }

        .reveal-delay-2 {
            transition-delay: 0.2s;
        }

        .reveal-delay-3 {
            transition-delay: 0.3s;
        }

        /* Subtle float on cards */
        @keyframes subtleFloat {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(-4px);
            }
        }

        .float-hover:hover {
            animation: subtleFloat 2.5s ease-in-out infinite;
        }

        /* News item hover bar slide */
        .news-item {
            position: relative;
            transition: padding-left 0.3s ease, background-color 0.3s ease;
        }

        .news-item::before {
            content: "";
            position: absolute;
            left: 0;
            top: 50%;
            width: 0;
            height: 2px;
            background: #004994;
            transform: translateY(-50%);
            transition: width 0.4s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .news-item:hover {
            padding-left: 2rem;
        }

        .news-item:hover::before {
            width: 1.5rem;
        }

        /* Equipment card: subtle image-only effect (no card movement) */
        .equip-card {
            transition: box-shadow 0.4s ease;
        }

        .equip-card:hover {
            box-shadow: 0 12px 32px -8px rgba(0, 42, 85, 0.4);
        }

        /* Modal body scroll prevention helper handled in JS */
        .no-scroll {
            overflow: hidden;
        }
