:root {
    --ns-darkblue: #00102e;
    --ns-heading: #022053;
    --ns-skyblue: #00b9ef;
    --ns-yellow: #ffd400;
    --ns-bg: #fbfbfb;
    --ns-border: #8f9aaf;
    --top-side: clamp(28px, 8.85vw, 170px);
    --top-layout-scale: 1;
}

html {
    scroll-behavior: smooth;
}

.site-body.top-page {
    margin: 0;
    color: var(--ns-heading);
    background: #fff;
    font-family: "Zen Kaku Gothic New", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
    line-height: 1.75;
}

.top-page .top-page-frame {
    position: relative;
    width: 100%;
    max-width: 1920px;
    margin: 0 auto;
    overflow: clip;
    background: #fff;
    box-shadow: none;
    isolation: isolate;
}

.top-main {
    position: relative;
    width: 100%;
    max-width: 1920px;
    margin-right: auto;
    margin-left: auto;
    overflow: clip;
}

@media (min-width: 769px) and (max-width: 1919px) {
    .top-main {
        width: 1920px;
        max-width: none;
        margin: 0;
        zoom: var(--top-layout-scale);
    }
}

.flow-stage {
    position: fixed;
    inset: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    pointer-events: none;
    mix-blend-mode: normal;
    filter: saturate(1.18) contrast(1.04);
    visibility: hidden;
    opacity: 0;
    transition: opacity .9s cubic-bezier(.22,1,.36,1), visibility 0s linear .9s;
}

html.mv-final-active .flow-stage {
    visibility: visible;
    transition-delay: 0s;
}

html.mv-final-active .flow-stage--under {
    z-index: 2;
    opacity: .62;
}

html.mv-final-active .flow-stage--middle {
    z-index: 4;
    opacity: .94;
}

html.mv-final-active .flow-stage--glint {
    z-index: 5;
    opacity: 1;
}

html.mv-video-active .flow-stage--glint {
    z-index: 5;
    visibility: visible;
    opacity: 1;
    transition: none;
}

.flow-stage canvas {
    display: block;
    width: 100%;
    height: 100%;
}

.flow-fallback {
    display: block;
    width: 100%;
    height: 100%;
    overflow: visible;
}

.flow-fallback path {
    fill: none;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
    animation: fallback-flow 11s linear infinite;
}

.flow-fallback .flow-core { stroke-width: 4; stroke-dasharray: 90 16 260 22; }
.flow-fallback .flow-glow { stroke-width: 34; opacity: .24; stroke-dasharray: 190 38 52 28; }
.flow-fallback .flow-yellow { animation-duration: 16s; }

@keyframes fallback-flow {
    to { stroke-dashoffset: -650; }
}

.top-page img {
    max-width: 100%;
}

.top-page .top-header {
    position: absolute;
    z-index: 20;
    top: 0;
    left: 0;
    display: flex;
    align-items: flex-start;
    width: 100%;
    height: 138px;
    padding: 34px 54px 0;
    border: 0;
    background: linear-gradient(180deg, rgba(255,255,255,.82), rgba(255,255,255,0));
}

.top-page .header-brand-row {
    display: contents;
}

.top-page .site-logo {
    position: relative;
    z-index: 3;
    flex: 0 0 auto;
    width: clamp(280px, 24.5vw, 470px);
}

.top-page .site-logo-image {
    width: 100%;
}

.top-page .header-utility {
    position: absolute;
    top: 18px;
    right: 55px;
    display: flex;
    gap: 36px;
}

.top-page .header-utility-link {
    color: var(--ns-darkblue);
    font-size: 12px;
    letter-spacing: .08em;
}

.top-page .site-nav {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    width: min(770px, 44vw);
    margin: 27px 0 0 auto;
    padding: 0;
    border: 0;
    gap: clamp(18px, 1.7vw, 34px);
    background: transparent;
    box-shadow: none;
}

.top-page .site-nav-link {
    position: relative;
    width: auto;
    padding: 8px 0 14px;
    color: var(--ns-darkblue);
    font-size: 13px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
    transition: color .3s ease;
}

.top-page .site-nav-link::after {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 2px;
    content: "";
    background: linear-gradient(90deg, var(--ns-skyblue) 0%, var(--ns-yellow) 100%);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .45s cubic-bezier(.22,1,.36,1);
}

.top-page .site-nav-link:hover::after,
.top-page .site-nav-link:focus-visible::after {
    transform: scaleX(1);
}

.top-page .site-nav-link:hover,
.top-page .site-nav-link:focus-visible {
    color: var(--ns-skyblue);
}

.top-hero {
    position: relative;
    height: 1156px;
    overflow: hidden;
    background: #eef5fa;
}

.top-hero::after {
    position: absolute;
    z-index: 1;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(255,255,255,.38) 0%, rgba(255,255,255,.04) 47%, rgba(255,255,255,0) 72%);
    pointer-events: none;
}

.top-hero-image,
.top-hero-image img,
.top-hero-image video,
.top-hero-image canvas {
    position: absolute;
    inset: -3% 0;
    width: 100%;
    height: 106%;
}

.top-hero-image {
    z-index: 3;
}

.top-hero-image img,
.top-hero-image video,
.top-hero-image canvas {
    display: block;
    object-fit: cover;
    object-position: center top;
    will-change: transform;
}

.top-hero-video {
    z-index: 1;
    opacity: 1;
    transition: opacity .65s cubic-bezier(.22,1,.36,1), visibility 0s linear 0s;
}

.top-hero-image .top-hero-final-image {
    z-index: 2;
    opacity: 0;
    pointer-events: none;
    transform: scale(1.012);
    transition: opacity 1.2s cubic-bezier(.22,1,.36,1), transform 1.6s cubic-bezier(.22,1,.36,1);
}

.top-hero-image .top-hero-final-image.is-visible {
    opacity: 1;
    transform: scale(1);
}

.top-hero-video.is-ended,
.top-hero-video.is-unavailable {
    visibility: hidden;
    opacity: 0;
    transition: opacity .65s cubic-bezier(.22,1,.36,1), visibility 0s linear .65s;
}

.top-hero-story {
    position: absolute;
    z-index: 8;
    top: 41%;
    right: var(--top-side);
    left: var(--top-side);
    width: auto;
    text-align: center;
    pointer-events: none;
}

.mv-message {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    opacity: 0;
    transform: translate3d(0,18px,0);
    transition: opacity .42s ease, transform .7s cubic-bezier(.22,1,.36,1);
}

.mv-message.is-active {
    opacity: 1;
    transform: translate3d(0,0,0);
}

.mv-message.is-slow-exit {
    opacity: 0;
    transform: translate3d(0,-8px,0);
    transition: opacity 1.25s cubic-bezier(.22,1,.36,1), transform 1.25s cubic-bezier(.22,1,.36,1);
}

.mv-message-lead {
    margin: 0;
    color: #fff;
    font-family: "Zen Kaku Gothic New", "Yu Gothic", "Hiragino Kaku Gothic ProN", sans-serif;
    font-size: clamp(34px, 2.92vw, 56px);
    font-weight: 700;
    letter-spacing: .045em;
    line-height: 1.5;
    text-shadow: 0 3px 18px rgba(0,16,46,.58), 0 1px 4px rgba(0,16,46,.5);
}

[data-wave-text] {
    --wave-step: 30ms;
}

[data-wave-text] .char {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0,var(--wave-offset,-.78em),0) rotateX(var(--wave-rotate,-30deg));
    transform-origin: center bottom;
    transition: opacity .72s cubic-bezier(.16,1,.3,1), transform .92s cubic-bezier(.16,1,.3,1);
    transition-delay: calc(var(--wave-order,0) * var(--wave-step));
}

[data-wave-text].is-visible .char {
    opacity: 1;
    transform: translate3d(0,0,0) rotateX(0deg);
}

.mv-wave-line {
    display: inline-block;
    white-space: nowrap;
}

.top-hero-copy {
    position: absolute;
    z-index: 8;
    top: 236px;
    left: var(--top-side);
    max-width: 1220px;
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transform: translate3d(0,20px,0);
    transition: opacity .5s ease, transform .8s cubic-bezier(.22,1,.36,1), visibility 0s linear .8s;
}

.top-hero-copy.is-visible {
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transform: translate3d(0,0,0);
    transition-delay: 0s;
}

.top-hero-copy .top-button {
    opacity: 0;
    transform: translate3d(0,18px,0);
}

.top-hero-copy.is-visible .top-button {
    opacity: 1;
    transform: translate3d(0,0,0);
}

.top-hero-copy.is-visible .top-button:hover,
.top-hero-copy.is-visible .top-button:focus-visible {
    transform: translateY(-3px);
}

.top-hero-title {
    margin: 0 0 48px;
    color: var(--ns-heading);
    font-size: clamp(48px, 3.95vw, 76px);
    font-weight: 900;
    letter-spacing: .035em;
    line-height: 1.46;
}

.top-hero-text {
    margin: 0 0 48px 8px;
    color: var(--ns-darkblue);
    font-size: clamp(15px, 1.25vw, 24px);
    font-weight: 500;
    letter-spacing: .025em;
    line-height: 1.76;
}

.top-button {
    position: relative;
    isolation: isolate;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 28px;
    width: max-content;
    min-width: 232px;
    min-height: 66px;
    padding: 0 26px;
    box-sizing: border-box;
    overflow: visible;
    border-radius: 3px;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1.4;
    text-decoration: none;
    white-space: nowrap;
    transition: color .38s ease, background-color .38s ease, opacity .42s ease, transform .42s cubic-bezier(.22,1,.36,1), box-shadow .38s ease;
}

.top-button::before {
    position: absolute;
    z-index: 0;
    inset: 0;
    border-radius: inherit;
    content: "";
    background: linear-gradient(100deg, var(--ns-skyblue) 0%, var(--ns-yellow) 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity .42s cubic-bezier(.22,1,.36,1);
}

.top-button > span {
    position: relative;
    z-index: 1;
}

.top-button-label {
    white-space: nowrap;
}

.top-button--cyan {
    color: #fff;
    background-color: var(--ns-skyblue);
}

.top-button--navy {
    color: #fff;
    background-color: var(--ns-darkblue);
}

.top-button:hover,
.top-button:focus-visible {
    color: var(--ns-darkblue);
    transform: translateY(-3px);
    box-shadow: 0 12px 26px rgba(0,32,83,.16);
}

.top-button:hover::before,
.top-button:focus-visible::before {
    opacity: 1;
}

.top-button--on-photo {
    filter: drop-shadow(0 1px 8px rgba(0,16,46,.35));
}

.link-arrow {
    --arrow-travel: 24px;
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
    width: 26px;
    height: 9px;
    overflow: visible;
}

.link-arrow::before {
    position: absolute;
    bottom: .5px;
    left: 0;
    width: 0;
    height: 1px;
    content: "";
    background: currentColor;
    opacity: 0;
    transition: width .48s cubic-bezier(.22,1,.36,1), opacity .2s ease;
}

.link-arrow::after {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 26px;
    height: 9px;
    content: "";
    background: currentColor;
    transform: translateX(0);
    transition: transform .48s cubic-bezier(.22,1,.36,1);
    -webkit-mask: url("../images/top/arrow-link.svg") center / 100% 100% no-repeat;
    mask: url("../images/top/arrow-link.svg") center / 100% 100% no-repeat;
}

.top-button:hover .link-arrow::before,
.top-button:focus-visible .link-arrow::before,
.solution-card:hover .link-arrow::before,
.solution-card:focus-visible .link-arrow::before,
.news-item:hover .link-arrow::before,
.news-item:focus-visible .link-arrow::before {
    width: var(--arrow-travel);
    opacity: 1;
}

.top-button:hover .link-arrow::after,
.top-button:focus-visible .link-arrow::after,
.solution-card:hover .link-arrow::after,
.solution-card:focus-visible .link-arrow::after,
.news-item:hover .link-arrow::after,
.news-item:focus-visible .link-arrow::after {
    transform: translateX(var(--arrow-travel));
}

.top-section {
    position: relative;
}

.outline-heading {
    position: absolute;
    z-index: 8;
    margin: 0;
    color: transparent;
    font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
    font-size: clamp(104px, 11vw, 212px);
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: .82;
    white-space: nowrap;
    -webkit-text-stroke: 2px rgba(92,116,153,.58);
    text-rendering: geometricPrecision;
}

.outline-heading--right {
    right: -12px;
}

.outline-heading--left {
    left: -4px;
}

.wave-heading .char {
    display: inline-block;
    opacity: 0;
    transform: translate3d(0,-.68em,0) rotateX(-32deg);
    transform-origin: center bottom;
    transition: opacity .8s cubic-bezier(.16,1,.3,1), transform 1.05s cubic-bezier(.16,1,.3,1);
    transition-delay: calc(var(--char-index) * 38ms);
}

.wave-heading .char:nth-child(3n + 2) {
    transform: translate3d(0,-.92em,0) rotateX(-38deg) rotateZ(1.8deg);
}

.wave-heading .char:nth-child(3n) {
    transform: translate3d(0,-.52em,0) rotateX(-26deg) rotateZ(-1.2deg);
}

.wave-heading.is-visible .char {
    opacity: 1;
    transform: translate3d(0,0,0) rotateX(0deg);
}

html.motion-ready .sequence-item {
    opacity: 0;
    filter: blur(8px);
    transform: translate3d(0,52px,0) scale(.985);
    transition:
        opacity .82s cubic-bezier(.16,1,.3,1),
        filter 1s cubic-bezier(.16,1,.3,1),
        transform 1.12s cubic-bezier(.16,1,.3,1),
        color .3s ease,
        background-color .3s ease,
        border-color .3s ease,
        box-shadow .45s ease,
        gap .35s cubic-bezier(.22,1,.36,1),
        padding .4s cubic-bezier(.22,1,.36,1);
    transition-delay:
        var(--reveal-delay,0ms),
        var(--reveal-delay,0ms),
        var(--reveal-delay,0ms),
        0ms,
        0ms,
        0ms,
        0ms,
        0ms,
        0ms;
    will-change: opacity,filter,transform;
}

html.motion-ready .sequence-item:hover,
html.motion-ready .sequence-item:focus-visible {
    transition-delay: 0ms;
}

html.motion-ready .sequence-item.sequence-from-left {
    transform: translate3d(-72px,18px,0) scale(.985);
}

html.motion-ready .sequence-item.sequence-from-right {
    transform: translate3d(72px,18px,0) scale(.985);
}

html.motion-ready .sequence-item.sequence-media {
    clip-path: inset(10% 0 12% 0 round 36px);
    transform: translate3d(0,64px,0) scale(.975);
}

html.motion-ready .sequence-item.is-revealed {
    opacity: 1;
    filter: blur(0);
    transform: translate3d(0,0,0) scale(1);
}

html.motion-ready .sequence-item:not(.sequence-media).is-revealed {
    clip-path: none;
}

html.motion-ready .sequence-item.sequence-media.is-revealed {
    clip-path: inset(0 0 0 0 round 0);
}

html.motion-ready .top-button.sequence-item.is-revealed:hover,
html.motion-ready .top-button.sequence-item.is-revealed:focus-visible {
    transform: translateY(-3px) scale(1);
}

html.motion-ready .solution-card.sequence-item.is-revealed:hover,
html.motion-ready .solution-card.sequence-item.is-revealed:focus-visible {
    transform: translateY(-8px) scale(1);
}

.section-heading-block {
    position: relative;
    z-index: 8;
    background: rgba(255,255,255,.96);
}

.section-heading-block--right {
    text-align: left;
}

.solutions-heading-bg,
.sustainability-heading-bg,
.optimagic-photo-backdrop,
.optimagic-backdrop img {
    display: none;
}

.section-ja-title {
    margin: 0 0 16px;
    color: var(--ns-heading);
    font-size: clamp(28px, 2.2vw, 42px);
    font-weight: 900;
    letter-spacing: .08em;
    line-height: 1.35;
}

.section-ja-title::before {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin: 0 14px .2em 0;
    content: "";
    background: var(--ns-yellow);
    transform: rotate(45deg);
}

.section-ja-lead {
    margin: 0;
    color: var(--ns-darkblue);
    font-size: 16px;
    font-weight: 500;
    letter-spacing: .035em;
}

.solutions-over-link {
    position: absolute;
    z-index: 8;
    top: 670px;
    right: 12.5%;
    bottom: auto;
}

.solutions-section {
    min-height: 1170px;
    margin-top: -152px;
    overflow: hidden;
    border-radius: 51% 51% 0 0 / 8% 8% 0 0;
    background: #fff;
}

.solutions-section .outline-heading {
    top: 6px;
}

.solutions-heading {
    position: absolute;
    top: 166px;
    right: 165px;
    padding: 22px 28px 24px;
}

.solutions-visual {
    position: absolute;
    z-index: 3;
    top: 292px;
    left: 23.3%;
    width: 75.3%;
    height: 570px;
    overflow: hidden;
    border-radius: 50px;
    box-shadow: 0 24px 60px rgba(0,32,83,.11);
}

.solutions-photo,
.solutions-photo img {
    position: absolute;
    inset: -8% 0;
    width: 100%;
    height: 116%;
}

.solutions-photo img {
    object-fit: cover;
    object-position: center 45%;
    will-change: transform;
}

.solutions-visual::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, rgba(0,16,46,.42), rgba(0,16,46,0) 50%);
}

.solutions-shape {
    position: absolute;
    z-index: 1;
    top: 347px;
    left: 20.8%;
    width: 79.2%;
    height: 570px;
    border-radius: 0 0 200px 0;
    background: #dff8ff;
    transform: rotate(-2deg);
}

.solution-card-grid {
    position: absolute;
    z-index: 8;
    right: 15%;
    bottom: 235px;
    left: 16%;
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    align-items: end;
    gap: 2px;
}

.solution-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 340px;
    padding: 26px 23px 24px;
    overflow: hidden;
    color: var(--ns-heading);
    background: rgba(255,255,255,.96);
    box-shadow: 0 14px 34px rgba(0,32,83,.13);
    text-decoration: none;
    transition: transform .48s cubic-bezier(.22,1,.36,1), box-shadow .48s ease;
    will-change: transform;
}

.solution-card:nth-child(2) { min-height: 382px; }
.solution-card:nth-child(3) { min-height: 356px; }
.solution-card:nth-child(4) { min-height: 396px; }
.solution-card:nth-child(5) { min-height: 370px; }

.solution-card::before {
    position: absolute;
    top: 0;
    right: 0;
    left: 0;
    height: 3px;
    content: "";
    background: linear-gradient(90deg, var(--ns-skyblue) 0 88%, var(--ns-yellow) 88%);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform .5s cubic-bezier(.22,1,.36,1);
}

.solution-card::after {
    position: absolute;
    z-index: 4;
    inset: 0;
    padding: 2px;
    border-radius: inherit;
    content: "";
    background: linear-gradient(120deg, var(--ns-skyblue) 0%, var(--ns-yellow) 100%);
    opacity: 0;
    pointer-events: none;
    transition: opacity .4s cubic-bezier(.22,1,.36,1);
    -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}

.solution-card:hover {
    z-index: 2;
    transform: translateY(-14px);
    box-shadow: 0 24px 48px rgba(0,32,83,.18);
}

.solution-card:hover::after,
.solution-card:focus-visible::after {
    opacity: 1;
}

.solution-card:hover::before { transform: scaleX(1); }

.solution-number {
    color: var(--ns-skyblue);
    font-family: "Barlow Condensed", sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .08em;
}

.solution-icon {
    width: 102px;
    height: 102px;
    margin: 14px 0 12px -2px;
    object-fit: contain;
}

.solution-card-title {
    min-height: 66px;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.75;
}

.solution-card-arrow {
    margin-top: auto;
    color: var(--ns-skyblue);
}

.solution-card-arrow::before,
.solution-card-arrow::after {
    background: linear-gradient(90deg, var(--ns-skyblue) 0%, var(--ns-yellow) 100%);
}

.solution-card-arrow {
    --arrow-travel: 38px;
}

.sustainability-section {
    min-height: 1240px;
    overflow: hidden;
    background: #fff;
}

.sustainability-section .outline-heading {
    top: 124px;
}

.sustainability-heading {
    position: absolute;
    z-index: 8;
    top: 268px;
    left: 16.4%;
    width: 540px;
    padding: 40px 42px 38px;
}

.sustainability-gallery {
    position: absolute;
    z-index: 3;
    top: 505px;
    right: -2%;
    left: -2%;
    display: grid;
    grid-template-columns: 25% 34% 15% 26%;
    align-items: start;
    height: 690px;
    gap: 0;
}

.sustainability-panel {
    position: relative;
    height: 620px;
    margin: 0;
    overflow: hidden;
    opacity: 0;
    transform: translate3d(0,-110px,0);
    transition: opacity .9s ease, transform 1.3s cubic-bezier(.16,1,.3,1);
}

.sustainability-panel.is-visible {
    opacity: 1;
    transform: translate3d(0,0,0);
}

.sustainability-panel:nth-child(2) { transition-delay: 130ms; }
.sustainability-panel:nth-child(3) { transition-delay: 260ms; }
.sustainability-panel:nth-child(4) { transition-delay: 390ms; }

.sustainability-panel--01 { margin-top: 65px; border-radius: 0 150px 0 0; }
.sustainability-panel--02 { margin-top: 0; }
.sustainability-panel--03 { margin-top: 125px; }
.sustainability-panel--04 { margin-top: 43px; border-radius: 0 0 0 120px; }

.sustainability-panel img {
    position: absolute;
    top: -14%;
    left: 0;
    width: 100%;
    height: 128%;
    object-fit: cover;
    will-change: transform;
}

.optimagic-section {
    min-height: 818px;
    overflow: hidden;
    background: #fff;
}

.optimagic-backdrop {
    position: absolute;
    z-index: 1;
    top: 62px;
    right: -4%;
    left: 3%;
    height: 690px;
    border-radius: 0 0 0 280px;
    background: #dff8ff;
    transform: rotate(2deg);
}

.optimagic-visual {
    position: absolute;
    z-index: 3;
    top: 18px;
    left: -2px;
    width: 63.5%;
    height: 655px;
    overflow: hidden;
    border-radius: 0 280px 0 0;
    box-shadow: 0 32px 70px rgba(0,32,83,.15);
}

.optimagic-visual img {
    position: absolute;
    top: -13%;
    left: 0;
    width: 100%;
    height: 126%;
    object-fit: cover;
    will-change: transform;
}

.optimagic-panel {
    position: absolute;
    z-index: 8;
    top: 238px;
    right: 0;
    width: 46%;
    min-height: 470px;
    padding: 58px 7vw 46px 6.3vw;
    color: #fff;
    background: linear-gradient(124deg, rgba(0,185,239,.94), #008fca);
    border-radius: 240px 0 0 240px;
}

.optimagic-kicker {
    margin: 0 0 4px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .18em;
}

.optimagic-title {
    margin: 0 0 20px;
    font-family: "Barlow Condensed", sans-serif;
    font-size: clamp(92px, 8.1vw, 156px);
    font-weight: 600;
    letter-spacing: -.04em;
    line-height: .9;
}

.optimagic-copy {
    margin: 0;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.9;
}

.recruitment-section {
    min-height: 904px;
    overflow: hidden;
    color: #fff;
    background: var(--ns-darkblue);
}

.recruitment-visual {
    position: absolute;
    z-index: 3;
    top: 0;
    right: -2%;
    width: 68%;
    height: 900px;
    overflow: hidden;
    border-radius: 0 0 0 390px;
}

.recruitment-background-mask {
    position: absolute;
    inset: 0;
    overflow: hidden;
    border-radius: inherit;
}

.recruitment-background {
    position: absolute;
    top: 0;
    right: 0;
    bottom: auto;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: brightness(.68) saturate(.72) contrast(1.08);
    will-change: transform;
}

.recruitment-visual::after {
    position: absolute;
    inset: 0;
    content: "";
    background: linear-gradient(90deg, var(--ns-darkblue) 0, rgba(0,16,46,.54) 21%, rgba(0,16,46,.08) 67%);
}

.recruitment-foreground {
    position: absolute;
    z-index: 7;
    right: 4%;
    bottom: -9%;
    width: 72%;
    height: auto;
    filter: drop-shadow(0 25px 30px rgba(0,16,46,.35));
    will-change: transform;
}

.recruitment-copy {
    position: absolute;
    z-index: 8;
    top: 205px;
    left: 11%;
    width: min(1480px, 78vw);
}

.recruitment-label {
    margin: 0 0 12px 6px;
    color: var(--ns-skyblue);
    font-family: "Barlow Condensed", sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .18em;
}

.recruitment-title {
    margin: 0 0 22px -11vw;
    color: transparent;
    font-family: "Barlow Condensed", sans-serif;
    font-size: clamp(118px, 12vw, 230px);
    font-weight: 600;
    letter-spacing: -.045em;
    line-height: .82;
    white-space: nowrap;
    -webkit-text-stroke: 1.5px rgba(255,255,255,.92);
}

.recruitment-subtitle {
    margin: 0 0 36px 9px;
    font-size: clamp(24px, 2vw, 38px);
    font-weight: 900;
    letter-spacing: .07em;
    -webkit-text-stroke: 1.5px var(--ns-darkblue);
    paint-order: stroke fill;
    text-shadow: none;
}

.recruitment-subtitle::after {
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-left: 14px;
    content: "";
    background: var(--ns-yellow);
    transform: rotate(45deg);
}

.recruitment-text {
    margin: 0 0 8px 10px;
    font-size: 15px;
    line-height: 2;
}

.recruitment-wave {
    position: absolute;
    z-index: 7;
    right: -7%;
    bottom: -205px;
    left: -7%;
    height: 365px;
    border-radius: 50% 50% 0 0 / 60% 60% 0 0;
    background: #fff;
    transform: rotate(-2deg);
}

.news-section {
    min-height: 920px;
    margin-top: -1px;
    overflow: hidden;
    background: #fff;
}

.news-outline {
    top: 100px;
    left: 50%;
    transform: translateX(-50%);
}

.news-inner {
    position: relative;
    z-index: 8;
    width: min(1420px, 80%);
    margin: 0 auto;
    padding-top: 260px;
}

.news-inner > .section-ja-title {
    text-align: center;
}

.news-list {
    margin-top: 64px;
    border-top: 1px solid rgba(143,154,175,.55);
}

.news-item {
    display: grid;
    grid-template-columns: 150px 120px minmax(0,1fr) 46px;
    align-items: center;
    min-height: 112px;
    border-bottom: 1px solid rgba(143,154,175,.55);
    color: var(--ns-heading);
    text-decoration: none;
    transition: color .3s ease, padding .4s cubic-bezier(.22,1,.36,1);
}

.news-item:hover {
    padding-left: 14px;
    color: #008fca;
}

.news-item time {
    font-family: "Barlow Condensed", sans-serif;
    font-size: 18px;
    letter-spacing: .07em;
}

.news-category {
    justify-self: start;
    padding: 5px 14px;
    border: 1px solid var(--ns-skyblue);
    border-radius: 20px;
    color: var(--ns-heading);
    font-size: 12px;
    font-weight: 700;
}

.news-title {
    font-size: 16px;
    font-weight: 500;
}

.news-arrow {
    color: var(--ns-skyblue);
    font-size: 24px;
}

.top-contact {
    min-height: 700px;
    overflow: hidden;
    background: var(--ns-bg);
}

.contact-outline {
    top: 70px;
}

.contact-card {
    position: relative;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(1560px, 82%);
    min-height: 300px;
    margin: 250px auto 0;
    padding: 64px 76px;
    border-radius: 2px 125px 2px 2px;
    background: rgba(255,255,255,.94);
    box-shadow: 0 22px 65px rgba(0,32,83,.09);
}

.contact-kicker {
    margin: 0 0 12px;
    color: var(--ns-skyblue);
    font-family: "Barlow Condensed", sans-serif;
    font-size: 16px;
    font-weight: 700;
    letter-spacing: .18em;
}

.contact-title {
    margin: 0 0 14px;
    color: var(--ns-heading);
    font-size: clamp(28px, 2.2vw, 42px);
    font-weight: 900;
    letter-spacing: .06em;
}

.contact-copy {
    margin: 0;
    font-size: 15px;
}

.top-footer {
    color: #fff;
    background: var(--ns-darkblue);
}

.top-footer-main {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: min(1580px, 86%);
    margin: 0 auto;
    padding: 76px 0 60px;
}

.top-footer-logo {
    display: block;
    width: 360px;
    padding: 16px 20px;
    background: #fff;
}

.top-footer-logo img { display: block; width: 100%; }

.top-footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(160px,1fr));
    gap: 17px 52px;
}

.top-footer a {
    color: #fff;
    font-size: 13px;
    text-decoration: none;
}

.top-footer a:hover { color: var(--ns-skyblue); }

.top-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: min(1580px, 86%);
    margin: 0 auto;
    padding: 22px 0 28px;
    border-top: 1px solid rgba(255,255,255,.2);
}

.top-footer-bottom > div { display: flex; gap: 30px; }
.top-footer-bottom small { color: rgba(255,255,255,.62); font-size: 10px; letter-spacing: .08em; }

@media (max-width: 1200px) {
    .top-page .site-nav { gap: 16px; }
    .top-page .site-nav-link { font-size: 12px; }
    .solution-card { padding-inline: 15px; }
    .solution-icon { width: 82px; height: 82px; }
    .solution-card-title { font-size: 14px; }
}

@media (max-width: 768px) {
    :root { --top-side: 24px; }
    html.mv-final-active .flow-stage--under { opacity: .46; }
    html.mv-final-active .flow-stage--middle { opacity: .72; }
    html.mv-final-active .flow-stage--glint { opacity: .86; }
    .top-page .top-header { position: fixed; height: 68px; padding: 14px 20px; background: rgba(255,255,255,.9); backdrop-filter: blur(12px); }
    .top-page .site-logo { width: 238px; max-width: calc(100vw - 92px); }
    .top-page .header-utility { display: none; }
    .top-page .menu-button { display: block; position: absolute; top: 13px; right: 14px; }
    .top-page .site-nav { position: fixed; top: 68px; right: 0; left: 0; display: none; width: 100%; margin: 0; padding: 20px 24px 30px; background: rgba(255,255,255,.97); box-shadow: 0 18px 30px rgba(0,16,46,.12); }
    .top-page .site-nav.is-open { display: block; }
    .top-page .site-nav-link { justify-content: flex-start; padding: 16px 4px; border-bottom: 1px solid rgba(143,154,175,.28); font-size: 14px; }

    .top-hero { height: 760px; }
    .top-hero-image { inset: 0; height: 100%; }
    .top-hero-image img,
    .top-hero-image video,
    .top-hero-image canvas { top: 0; bottom: auto; height: 120%; object-position: 61% center; }
    .top-hero::after { background: linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,.9) 70%,#fff); }
    .top-hero-story { top: 285px; right: 24px; left: 24px; width: auto; }
    .mv-message-lead { font-size: clamp(28px,7.5vw,38px); line-height: 1.55; }
    .top-hero-copy { top: 355px; right: 24px; left: 24px; }
    .top-hero-title { margin-bottom: 24px; font-size: clamp(32px,9vw,43px); line-height: 1.55; }
    .top-hero-text { margin: 0 0 30px; font-size: 13px; line-height: 1.85; }
    .top-hero-text br { display: none; }
    .top-button { width: max-content; min-width: 200px; max-width: 100%; min-height: 56px; font-size: 14px; }

    .outline-heading { font-size: 82px; }
    .section-ja-title { font-size: 27px; }
    .section-ja-lead { font-size: 14px; }
    .solutions-section { min-height: 1730px; margin-top: -48px; border-radius: 50% 50% 0 0 / 2% 2% 0 0; }
    .solutions-section .outline-heading { top: 90px; }
    .solutions-heading { top: 185px; right: 20px; padding: 16px 18px; }
    .solutions-visual { top: 340px; left: 24px; width: calc(100% - 48px); height: 380px; border-radius: 2px 2px 90px 2px; }
    .solutions-photo { inset: 0; height: 100%; }
    .solutions-photo img { top: 0; bottom: auto; height: 100%; }
    .solutions-shape { top: 370px; left: 12px; width: calc(100% - 24px); height: 395px; border-radius: 0 0 100px 0; }
    .solutions-over-link { top: 650px; right: 44px; }
    .solution-card-grid { top: 650px; right: 24px; bottom: auto; left: 24px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
    .solution-card,.solution-card:nth-child(n) { min-height: 276px; padding: 20px; }
    .solution-card:last-child { grid-column: 1/-1; width: calc(50% - 6px); }
    .solution-icon { width: 78px; height: 78px; }

    .sustainability-section { min-height: 1270px; }
    .sustainability-section .outline-heading { top: 70px; font-size: 67px; }
    .sustainability-heading { top: 170px; left: 24px; width: calc(100% - 48px); padding: 28px; }
    .sustainability-gallery { top: 480px; right: -22%; left: -22%; grid-template-columns: repeat(4, 35%); height: 730px; }
    .sustainability-panel { height: 620px; }
    .sustainability-panel img { top: 0; height: 100%; }
    .sustainability-panel--01 { margin-top: 70px; }
    .sustainability-panel--02 { margin-top: 0; }
    .sustainability-panel--03 { margin-top: 130px; }
    .sustainability-panel--04 { margin-top: 50px; }

    .optimagic-section { min-height: 960px; }
    .optimagic-backdrop { top: 65px; left: 16px; height: 585px; border-radius: 0 0 0 120px; }
    .optimagic-visual { top: 20px; width: calc(100% - 24px); height: 500px; border-radius: 0 130px 0 0; }
    .optimagic-visual img { top: 0; height: 100%; }
    .optimagic-panel { top: 490px; width: calc(100% - 24px); min-height: 390px; padding: 52px 34px 42px 52px; border-radius: 100px 0 0 100px; }
    .optimagic-title { font-size: 80px; }
    .optimagic-copy { font-size: 13px; }
    .optimagic-copy br { display: none; }

    .recruitment-section { min-height: 970px; }
    .recruitment-visual { top: 265px; right: -22%; width: 115%; height: 600px; border-radius: 170px 0 0 0; }
    .recruitment-foreground { right: -4%; width: 92%; }
    .recruitment-copy { top: 94px; left: 24px; width: calc(100% - 48px); }
    .recruitment-title { margin-left: 0; font-size: 92px; }
    .recruitment-subtitle { margin-top: 0; font-size: 23px; }
    .sustainability-heading .top-button,
    .optimagic-panel .top-button,
    .recruitment-copy .top-button { margin-top: 30px; }
    .recruitment-text,.recruitment-copy .top-button { position: relative; z-index: 5; margin-left: 0; }
    .recruitment-wave { bottom: -160px; height: 260px; }

    .news-section { min-height: 780px; }
    .news-outline { top: 70px; }
    .news-inner { width: calc(100% - 48px); padding-top: 180px; }
    .news-list { margin-top: 38px; }
    .news-item { grid-template-columns: 100px minmax(0,1fr) 32px; grid-template-rows: auto auto; min-height: 128px; padding: 18px 0; }
    .news-category { font-size: 10px; }
    .news-title { grid-column: 1/3; grid-row: 2; padding-top: 10px; font-size: 14px; }
    .news-arrow { grid-column: 3; grid-row: 1/3; }

    .top-contact { min-height: 650px; }
    .contact-outline { top: 70px; font-size: 72px; }
    .contact-card { display: block; width: calc(100% - 48px); min-height: 370px; margin-top: 190px; padding: 46px 30px; border-radius: 2px 70px 2px 2px; }
    .contact-title { font-size: 28px; }
    .contact-copy { margin-bottom: 32px; }

    .top-footer-main { display: block; width: calc(100% - 48px); padding: 52px 0 38px; }
    .top-footer-logo { width: 280px; max-width: 100%; margin-bottom: 44px; }
    .top-footer-links { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px 20px; }
    .top-footer-bottom { display: block; width: calc(100% - 48px); }
    .top-footer-bottom > div { display: grid; gap: 8px; margin-bottom: 24px; }
}

@media (prefers-reduced-motion: reduce) {
    html:not(.force-motion) { scroll-behavior: auto; }
    html:not(.force-motion) .wave-heading .char,
    html:not(.force-motion) .sustainability-panel,
    html:not(.force-motion) .sequence-item { opacity: 1; filter: none; clip-path: none; transform: none; transition: none; }
    html:not(.force-motion) .flow-stage { display: none; }
}

html.force-motion .flow-stage { display: block; }

/* Figma node 1:2 — exact 1920px desktop geometry. */
@media (min-width: 769px) {
    .site-body.top-page,
    .top-page .top-page-frame,
    .top-section {
        background-color: var(--ns-bg);
    }

    .top-page .top-page-frame {
        width: 100%;
        max-width: 1920px;
    }

    .top-page .top-header {
        height: 132px;
        padding: 0;
        background: transparent;
    }

    .top-page .site-logo {
        position: absolute;
        top: 60px;
        left: 54px;
        width: 470.26px;
        height: 53px;
    }

    .top-page .header-utility {
        top: 19px;
        right: 66px;
        gap: 43px;
    }

    .top-page .header-utility-link {
        font-size: 20px;
        font-weight: 500;
        letter-spacing: 0;
    }

    .top-page .site-nav {
        position: absolute;
        top: 73px;
        right: 62px;
        width: auto;
        margin: 0;
        gap: 42px;
    }

    .top-page .site-nav-link {
        padding: 0;
        font-size: 22px;
        font-weight: 500;
        line-height: 42px;
    }

    .top-page .site-nav-link::after {
        display: block;
        bottom: -2px;
    }

    .top-hero {
        height: 1156px;
        overflow: visible;
        background: var(--ns-bg);
    }

    .top-hero::after {
        display: none;
    }

    .top-hero-image {
        z-index: 0;
        top: 0;
        right: auto;
        bottom: auto;
        left: -134px;
        width: 2054px;
        height: 1156px;
    }

    .top-hero-image img,
    .top-hero-image video,
    .top-hero-image canvas {
        position: absolute;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
        width: 100%;
        height: 116%;
        object-fit: cover;
    }

    .top-hero-story {
        top: 420px;
        right: 170px;
        left: 170px;
        width: auto;
    }

    .mv-message-lead {
        font-size: 56px;
    }

    .top-hero-copy {
        z-index: 8;
        top: 245px;
        left: 170px;
        width: 1120px;
        max-width: none;
    }

    .top-hero-title {
        margin: 0;
        font-size: 76px;
        font-weight: 700;
        letter-spacing: 0;
        line-height: normal;
        white-space: nowrap;
    }

    .top-hero-text {
        position: absolute;
        top: 239px;
        left: 8px;
        width: 1050px;
        margin: 0;
        font-size: 24px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 42px;
        white-space: nowrap;
    }

    .top-hero .top-button {
        position: absolute;
        top: 368px;
        left: 10px;
    }

    .top-button {
        width: max-content;
        min-width: 250px;
        min-height: 58px;
        padding: 16px 18px;
        border-radius: 10px;
        font-size: 20px;
        line-height: normal;
    }

    .top-button-arrow {
        width: 26px;
    }

    .outline-heading {
        color: transparent;
        font-family: "Barlow Condensed", "Arial Narrow", sans-serif;
        font-size: 270px;
        font-weight: 500;
        letter-spacing: -13.5px;
        line-height: 270px;
        -webkit-text-stroke: 2px rgba(112,132,163,.58);
    }

    .section-ja-title {
        margin: 0;
        font-size: 54px;
        font-weight: 700;
        letter-spacing: -2.7px;
        line-height: normal;
    }

    .section-ja-title::before {
        display: none;
    }

    .section-ja-lead {
        margin: 0;
        font-size: 24px;
        font-weight: 500;
        letter-spacing: 0;
        line-height: 42px;
    }

    .solutions-section {
        min-height: 1285px;
        margin-top: -148px;
        overflow: visible;
        border-radius: 0;
        background: transparent;
    }

    .solutions-section::before {
        position: absolute;
        z-index: 1;
        top: -141px;
        right: 0;
        left: 0;
        display: block;
        width: 100%;
        height: auto;
        aspect-ratio: 1920 / 896;
        content: "";
        background: url("../images/top/bg_1.svg") 0 0 / 100% 100% no-repeat;
        pointer-events: none;
    }

    .solutions-section .outline-heading {
        z-index: 8;
        top: 0;
        right: -12px;
        left: auto;
    }

    .solutions-heading-bg {
        position: absolute;
        z-index: 7;
        top: 168px;
        left: 1079px;
        display: block;
        width: 841px;
        height: 186px;
        border-radius: 30px 0 0 30px;
        background: rgba(251,251,251,.98);
        box-shadow: 1px 6px 12px rgba(143,154,175,.24);
    }

    .solutions-heading {
        z-index: 9;
        top: 168px;
        right: auto;
        left: 1079px;
        width: 841px;
        height: 186px;
        padding: 27px 36px 20px 115px;
        border-radius: 30px 0 0 30px;
        background: transparent;
        box-shadow: none;
    }

    .solutions-heading .section-ja-title {
        margin-bottom: 2px;
    }

    .solutions-visual {
        z-index: 4;
        top: 300px;
        left: 474px;
        width: 1446px;
        height: 570px;
        overflow: hidden;
        border-radius: 50px 0 0 50px;
        box-shadow: none;
    }

    .solutions-photo {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
    }

    .solutions-photo img {
        position: absolute;
        top: 0;
        right: 0;
        bottom: auto;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: center;
    }

    .solutions-visual::after {
        display: none;
    }

    .solutions-shape {
        z-index: 3;
        top: 362px;
        left: 420px;
        width: 1446px;
        height: 570px;
        border-radius: 50px;
        background: rgba(0,185,239,.08);
        transform: none;
    }

    .solutions-over-link {
        display: none;
    }

    .solution-card-grid {
        position: absolute;
        z-index: 8;
        inset: 0;
        display: block;
    }

    .solution-card,
    .solution-card:nth-child(n) {
        position: absolute;
        width: 240px;
        min-height: 0;
        height: 380px;
        padding: 0;
        overflow: hidden;
        border-radius: 30px;
        background: #fff;
        box-shadow: 1px 6px 6px rgba(143,154,175,.2);
    }

    .solution-card:nth-child(1) { top: 725px; left: 324px; }
    .solution-card:nth-child(2) { top: 765px; left: 578px; }
    .solution-card:nth-child(3) { top: 725px; left: 832px; }
    .solution-card:nth-child(4) { top: 765px; left: 1086px; }
    .solution-card:nth-child(5) { top: 729px; left: 1340px; }

    .solution-card:hover {
        transform: translateY(-8px);
    }

    .solution-card::before {
        display: none;
    }

    .solution-icon {
        position: absolute;
        top: 30px;
        left: 45px;
        width: 150px;
        height: 150px;
        margin: 0;
        object-fit: contain;
    }

    .solution-number {
        position: absolute;
        top: 211px;
        left: 26px;
        font-family: "Barlow", sans-serif;
        font-size: 16px;
        font-weight: 700;
        letter-spacing: 3.2px;
        line-height: normal;
    }

    .solution-card-title {
        position: absolute;
        top: 238px;
        left: 26px;
        min-height: 0;
        font-size: 22px;
        font-weight: 700;
        line-height: normal;
    }

    .solution-card-arrow {
        position: absolute;
        bottom: 45px;
        left: 30px;
        margin: 0;
    }

    .sustainability-section {
        min-height: 1233px;
        overflow: visible;
        background: var(--ns-bg);
    }

    .sustainability-section .outline-heading {
        z-index: 8;
        top: -59px;
        left: 0;
    }

    .sustainability-heading-bg {
        position: absolute;
        z-index: 7;
        top: 184px;
        left: -6px;
        display: block;
        width: 1014px;
        height: 209px;
        border-radius: 0 30px 30px 0;
        background: rgba(251,251,251,.98);
        box-shadow: 1px 6px 12px rgba(143,154,175,.24);
    }

    .sustainability-heading {
        z-index: 9;
        top: 184px;
        left: -6px;
        width: 1014px;
        height: 209px;
        padding: 0;
        border-radius: 0 30px 30px 0;
        background: transparent;
        box-shadow: none;
    }

    .sustainability-heading .section-ja-title {
        position: absolute;
        top: -33px;
        left: 314px;
    }

    .sustainability-heading .section-ja-lead {
        position: absolute;
        top: 50px;
        left: 326px;
        white-space: nowrap;
    }

    .sustainability-heading .top-button {
        position: absolute;
        top: 174px;
        left: 330px;
        margin: 0;
    }

    .sustainability-gallery {
        z-index: 4;
        inset: 0;
        display: block;
        height: 100%;
    }

    .sustainability-panel {
        position: absolute;
        margin: 0;
        overflow: hidden;
        border-radius: 50px;
    }

    .sustainability-panel--01 {
        top: 291px;
        left: 0;
        width: 445px;
        height: 729px;
        border-radius: 0 50px 50px 0;
    }

    .sustainability-panel--02 {
        top: 256px;
        left: 475px;
        width: 846px;
        height: 635px;
    }

    .sustainability-panel--03 {
        top: 109px;
        left: 1349px;
        width: 264px;
        height: 551px;
    }

    .sustainability-panel--04 {
        top: 0;
        left: 1639px;
        width: 281px;
        height: 580px;
        border-radius: 50px 0 0 50px;
    }

    .sustainability-panel img {
        position: absolute;
        left: 0;
        width: 100%;
        object-fit: cover;
    }

    .sustainability-panel--01 img,
    .sustainability-panel--02 img,
    .sustainability-panel--03 img,
    .sustainability-panel--04 img {
        top: 0;
        height: 100%;
    }

    .optimagic-section {
        min-height: 815px;
        overflow: visible;
        background: var(--ns-bg);
    }

    .optimagic-backdrop {
        z-index: 3;
        top: -101px;
        right: auto;
        left: 0;
        width: 100%;
        height: 882px;
        border-radius: 0;
        background: transparent;
        transform: none;
    }

    .optimagic-backdrop img {
        display: block;
        width: 100%;
        height: 100%;
    }

    .optimagic-photo-backdrop {
        position: absolute;
        z-index: 3;
        top: 177px;
        left: -69px;
        display: block;
        width: 1446px;
        height: 570px;
        border-radius: 0 0 50px 0;
        background: rgba(0,185,239,.08);
    }

    .optimagic-visual {
        z-index: 4;
        top: 105px;
        left: -4px;
        width: 1315px;
        height: 593px;
        border-radius: 0 0 50px 0;
        box-shadow: none;
    }

    .optimagic-visual img {
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
    }

    .optimagic-panel {
        z-index: 8;
        top: 0;
        right: auto;
        left: 0;
        width: 100%;
        min-height: 0;
        height: 100%;
        padding: 0;
        color: #fff;
        border-radius: 0;
        background: transparent;
        clip-path: none;
        box-shadow: none;
    }

    .optimagic-panel::before {
        position: absolute;
        z-index: 0;
        top: 105px;
        left: 50%;
        width: 50%;
        height: 310px;
        border-radius: 0 0 0 50px;
        content: "";
        background: var(--ns-skyblue);
        pointer-events: none;
    }

    .optimagic-panel > * {
        z-index: 1;
    }

    .optimagic-kicker {
        position: absolute;
        top: 58px;
        left: 1089px;
        margin: 0;
        color: #fff;
        font-size: 16px;
        letter-spacing: 3.2px;
        white-space: nowrap;
    }

    .optimagic-title {
        position: absolute;
        top: -3px;
        left: 1072px;
        margin: 0;
        color: #fff;
        font-size: 155px;
        font-weight: 500;
        letter-spacing: -7.75px;
        line-height: 270px;
        white-space: nowrap;
    }

    .optimagic-copy {
        position: absolute;
        top: 236px;
        left: 1072px;
        margin: 0;
        color: #fff;
        font-size: 24px;
        font-weight: 500;
        line-height: 42px;
        white-space: nowrap;
    }

    .optimagic-panel .top-button {
        position: absolute;
        top: 388px;
        left: 1071px;
        margin: 0;
    }

    .recruitment-section {
        min-height: 904px;
        overflow: visible;
        color: #fff;
        background: transparent;
    }

    .recruitment-section::before {
        position: absolute;
        z-index: 2;
        top: 178px;
        left: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1920 / 650;
        content: "";
        background: url("../images/top/bg_2.svg") 0 0 / 100% 100% no-repeat;
        pointer-events: none;
    }

    .recruitment-visual {
        position: absolute;
        z-index: 4;
        inset: 0;
        width: 100%;
        height: 100%;
        overflow: visible;
        border-radius: 0;
    }

    .recruitment-visual::after {
        display: none;
    }

    .recruitment-background-mask {
        position: absolute;
        top: 91px;
        right: auto;
        bottom: auto;
        left: 845px;
        width: 1075px;
        height: 563px;
        border-radius: 100px 0 0 100px;
        overflow: hidden;
    }

    .recruitment-background {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        border-radius: 0;
        filter: none;
    }

    .recruitment-foreground {
        position: absolute;
        z-index: 7;
        top: 26px;
        right: auto;
        bottom: auto;
        left: 1069px;
        width: 701px;
        height: 882px;
        object-fit: cover;
        filter: none;
    }

    .recruitment-copy {
        z-index: 8;
        inset: 0;
        width: 100%;
    }

    .recruitment-label {
        display: none;
    }

    .recruitment-title {
        position: absolute;
        top: 0;
        left: -26px;
        margin: 0;
        color: var(--ns-darkblue);
        font-size: 270px;
        font-weight: 500;
        letter-spacing: -13.5px;
        line-height: 270px;
        white-space: nowrap;
        -webkit-text-stroke: 0;
    }

    .recruitment-subtitle {
        position: absolute;
        top: 207px;
        left: 324px;
        margin: 0;
        color: #fff;
        font-size: 54px;
        font-weight: 700;
        letter-spacing: -2.7px;
        line-height: normal;
        white-space: nowrap;
        -webkit-text-stroke: 2.5px var(--ns-darkblue);
        paint-order: stroke fill;
        text-shadow: none;
    }

    .recruitment-subtitle::after {
        display: none;
    }

    .recruitment-text {
        position: absolute;
        top: 329px;
        left: 324px;
        margin: 0;
        color: #fff;
        font-size: 24px;
        font-weight: 500;
        line-height: 42px;
        white-space: nowrap;
    }

    .recruitment-copy .top-button {
        position: absolute;
        top: 478px;
        left: 324px;
        margin: 0;
    }

    .recruitment-wave {
        z-index: 7;
        top: 654px;
        right: auto;
        bottom: auto;
        left: 0;
        width: 100%;
        height: auto;
        aspect-ratio: 1920 / 618;
        border-radius: 0;
        background: url("../images/top/bg_3.svg") 0 0 / 100% 100% no-repeat;
        transform: none;
    }

    .news-section {
        min-height: 906px;
        margin: 0;
        overflow: visible;
        background: var(--ns-bg);
    }

    .news-outline {
        z-index: 8;
        top: 0;
        left: 660px;
        transform: none;
    }

    .news-inner {
        z-index: 9;
        width: auto;
        margin: 0;
        padding: 0;
    }

    .news-inner > .section-ja-title {
        position: absolute;
        top: 120px;
        left: 845px;
        text-align: left;
        white-space: nowrap;
    }

    .news-list {
        position: absolute;
        top: 310px;
        left: 324px;
        width: 1272px;
        margin: 0;
    }
}
