
/* ------------------------------------------------
   HERO
   ------------------------------------------------ */
.hero {
    position: relative;
    min-height: 100svh;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(120% 90% at 82% 46%, rgba(201, 146, 10, 0.16), rgba(201, 146, 10, 0) 46%),
        radial-gradient(140% 120% at 50% -10%, #0C1224 0%, var(--space-900) 55%),
        linear-gradient(180deg, #06080F 0%, #04050C 100%);
}

/* faint vignette */
.hero::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    background: radial-gradient(130% 110% at 30% 50%, transparent 55%, rgba(0, 0, 0, 0.55) 100%);
}

/* ---------- starfield ---------- */
.stars,
.stars::before {
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    height: 1px;
    border-radius: 50%;
    background: transparent;
    z-index: 0;
}

.stars {
    box-shadow: 663px 308px 0 rgba(200, 205, 225, 0.35),
        98px 148px 0 rgba(231, 196, 92, 0.55),
        192px 748px 0 rgba(200, 205, 225, 0.35),
        1863px 1039px 0 rgba(200, 205, 225, 0.35),
        176px 888px 0 rgba(200, 205, 225, 0.35),
        492px 185px 0 rgba(200, 205, 225, 0.35),
        121px 253px 0 rgba(243, 239, 228, 0.9),
        1291px 126px 0 rgba(200, 205, 225, 0.35),
        812px 101px 0 rgba(243, 239, 228, 0.9),
        95px 272px 0 rgba(200, 205, 225, 0.35),
        295px 241px 0 rgba(200, 205, 225, 0.35),
        1147px 370px 0 rgba(200, 205, 225, 0.35),
        1169px 384px 0 rgba(200, 205, 225, 0.35),
        1121px 128px 0 rgba(200, 205, 225, 0.35),
        1267px 421px 0 rgba(200, 205, 225, 0.35),
        1088px 875px 0 rgba(231, 196, 92, 0.55),
        953px 928px 0 rgba(200, 205, 225, 0.35),
        508px 368px 0 rgba(231, 196, 92, 0.55),
        499px 167px 0 rgba(200, 205, 225, 0.35),
        1075px 1013px 0 rgba(231, 196, 92, 0.55),
        1493px 919px 0 rgba(200, 205, 225, 0.35),
        149px 241px 0 rgba(200, 205, 225, 0.35),
        337px 700px 0 rgba(200, 205, 225, 0.35),
        1001px 863px 0 rgba(200, 205, 225, 0.35),
        1368px 158px 0 rgba(231, 196, 92, 0.55),
        1173px 642px 0 rgba(200, 205, 225, 0.35),
        717px 1017px 0 rgba(200, 205, 225, 0.35),
        934px 140px 0 rgba(231, 196, 92, 0.55),
        552px 970px 0 rgba(231, 196, 92, 0.55),
        133px 124px 0 rgba(231, 196, 92, 0.55),
        634px 912px 0 rgba(200, 205, 225, 0.35),
        790px 710px 0 rgba(200, 205, 225, 0.35),
        945px 727px 0 rgba(200, 205, 225, 0.35),
        239px 1011px 0 rgba(200, 205, 225, 0.35),
        1573px 588px 0 rgba(200, 205, 225, 0.35),
        507px 814px 0 rgba(200, 205, 225, 0.35),
        1784px 1016px 0 rgba(200, 205, 225, 0.35),
        919px 822px 0 rgba(200, 205, 225, 0.35),
        1809px 280px 0 rgba(231, 196, 92, 0.55),
        1769px 570px 0 rgba(231, 196, 92, 0.55),
        734px 779px 0 rgba(243, 239, 228, 0.9),
        309px 169px 0 rgba(200, 205, 225, 0.35),
        475px 477px 0 rgba(200, 205, 225, 0.35),
        1702px 373px 0 rgba(200, 205, 225, 0.35),
        8px 298px 0 rgba(200, 205, 225, 0.35),
        756px 652px 0 rgba(243, 239, 228, 0.9),
        1414px 1055px 0 rgba(243, 239, 228, 0.9),
        1341px 110px 0 rgba(200, 205, 225, 0.35),
        1783px 803px 0 rgba(200, 205, 225, 0.35),
        807px 212px 0 rgba(200, 205, 225, 0.35),
        820px 127px 0 rgba(200, 205, 225, 0.35),
        427px 902px 0 rgba(200, 205, 225, 0.35),
        696px 107px 0 rgba(200, 205, 225, 0.35),
        1160px 309px 0 rgba(200, 205, 225, 0.35),
        744px 52px 0 rgba(200, 205, 225, 0.35),
        425px 770px 0 rgba(200, 205, 225, 0.35),
        516px 711px 0 rgba(200, 205, 225, 0.35),
        971px 251px 0 rgba(200, 205, 225, 0.35),
        999px 954px 0 rgba(200, 205, 225, 0.35),
        638px 175px 0 rgba(200, 205, 225, 0.35),
        1535px 701px 0 rgba(231, 196, 92, 0.55),
        980px 330px 0 rgba(200, 205, 225, 0.35),
        420px 1081px 0 rgba(200, 205, 225, 0.35),
        1413px 55px 0 rgba(231, 196, 92, 0.55),
        610px 186px 0 rgba(231, 196, 92, 0.55),
        534px 1061px 0 rgba(200, 205, 225, 0.35),
        342px 728px 0 rgba(231, 196, 92, 0.55),
        1090px 1029px 0 rgba(200, 205, 225, 0.35),
        456px 399px 0 rgba(231, 196, 92, 0.55),
        1675px 820px 0 rgba(231, 196, 92, 0.55),
        464px 409px 0 rgba(200, 205, 225, 0.35),
        728px 59px 0 rgba(243, 239, 228, 0.9),
        1618px 572px 0 rgba(200, 205, 225, 0.35),
        396px 705px 0 rgba(200, 205, 225, 0.35),
        1919px 715px 0 rgba(243, 239, 228, 0.9),
        746px 164px 0 rgba(200, 205, 225, 0.35),
        464px 962px 0 rgba(200, 205, 225, 0.35),
        418px 988px 0 rgba(200, 205, 225, 0.35),
        1843px 3px 0 rgba(200, 205, 225, 0.35),
        1337px 704px 0 rgba(231, 196, 92, 0.55),
        173px 245px 0 rgba(243, 239, 228, 0.9),
        1602px 408px 0 rgba(200, 205, 225, 0.35),
        365px 888px 0 rgba(231, 196, 92, 0.55),
        680px 177px 0 rgba(231, 196, 92, 0.55),
        1478px 810px 0 rgba(200, 205, 225, 0.35);
}

.stars::before {
    content: "";
    box-shadow: inherit;
    animation: twinkle 5.5s ease-in-out infinite;
}

@keyframes twinkle {

    0%,
    100% {
        opacity: .35
    }

    50% {
        opacity: .95
    }
}

.hero-inner {
    position: relative;
    max-width: var(--container-max);
    margin: 0 auto;
}

/* ---------- cosmos (earth + orbits), overflow right ---------- */
.cosmos {
    position: absolute;
    top: 50%;
    right: -150px;
    width: 820px;
    height: 820px;
    transform-origin: center;
    transform: translateY(-50%) scale(var(--cs, 1));
    z-index: 2;
    margin-top: 64px;
}

.earth-glow {
    position: absolute;
    inset: -14%;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 50%, rgba(231, 196, 92, 0.20), rgba(231, 196, 92, 0.05) 40%, transparent 66%);
    filter: blur(6px);
}

.earth {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 0 26px rgba(201, 146, 10, 0.22));
}

.orbit {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(var(--rot));
    pointer-events: none;
}

.ring {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    border: 1px solid var(--line);
    box-shadow: inset 0 0 30px rgba(231, 196, 92, 0.04);
}

.o1 {
    width: 940px;
    height: 300px;
    --rot: -18deg
}

.o2 {
    width: 860px;
    height: 600px;
    --rot: 30deg
}

.o3 {
    width: 720px;
    height: 820px;
    --rot: 70deg
}

.sat {
    position: absolute;
    top: 0;
    left: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: radial-gradient(circle at 50% 40%, var(--gold-bright), var(--gold) 55%, var(--gold-deep) 100%);
    box-shadow: 0 0 10px 2px rgba(243, 215, 126, 0.8), 0 0 22px 6px rgba(231, 196, 92, 0.35);
    offset-rotate: auto;
    will-change: offset-distance;
}

.sat::after {
    /* faint forward trail */
    content: "";
    position: absolute;
    top: 50%;
    right: 50%;
    width: 34px;
    height: 2px;
    transform: translateY(-50%);
    background: linear-gradient(90deg, rgba(231, 196, 92, 0) 0%, rgba(231, 196, 92, 0.45) 100%);
    border-radius: 2px;
    filter: blur(.3px);
}

.s1 {
    offset-path: path("M 0 150 a 470 150 0 1 0 940 0 a 470 150 0 1 0 -940 0");
    animation: run 30s linear infinite;
}

.s2 {
    offset-path: path("M 0 300 a 430 300 0 1 0 860 0 a 430 300 0 1 0 -860 0");
    animation: run 42s linear infinite;
}

.s2b {
    offset-path: path("M 0 300 a 430 300 0 1 0 860 0 a 430 300 0 1 0 -860 0");
    animation: run 42s linear infinite;
    animation-delay: -21s;
    opacity: .85
}

.s3 {
    offset-path: path("M 0 410 a 360 410 0 1 0 720 0 a 360 410 0 1 0 -720 0");
    animation: run 26s linear infinite;
    animation-delay: -9s;
}

@keyframes run {
    from {
        offset-distance: 0%
    }

    to {
        offset-distance: 100%
    }
}

.content {
    position: relative;
    z-index: 5;
    min-height: 100svh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    /* max-width: 640px; */
    padding: 120px clamp(22px, 5vw, 64px) 80px;
    gap: 26px;
}

.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--mono);
    font-size: 12.5px;
    letter-spacing: .22em;
    color: var(--gold);
    text-transform: uppercase;
}

.eyebrow .tick {
    width: 26px;
    height: 1px;
    background: linear-gradient(90deg, var(--gold), transparent)
}

h1 {
    font-family: var(--jp-serif);
    font-weight: 600;
    color: var(--ink);
    font-size: clamp(40px, 7vw, 78px);
    line-height: 1.18;
    letter-spacing: .02em;
    text-shadow: 0 2px 30px rgba(0, 0, 0, .5);
}

h1 .accent {
    color: var(--gold-bright)
}

.lead-en {
    font-family: var(--en);
    font-weight: 400;
    font-size: clamp(17px, 2vw, 22px);
    letter-spacing: .01em;
    color: var(--ink);
    opacity: .92;
}

.lead-en .u {
    color: var(--gold);
}

.appeal {
    font-family: var(--jp-sans);
    font-weight: 400;
    font-size: clamp(14px, 1.4vw, 15.5px);
    line-height: 2.05;
    color: var(--muted);
    max-width: 30em;
    letter-spacing: .02em;
}

.appeal b {
    color: var(--ink);
    font-weight: 500
}

.cta-row {
    display: flex;
    align-items: center;
    gap: 26px;
    flex-wrap: wrap;
    margin-top: 6px
}

.btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--jp-sans);
    font-weight: 500;
    font-size: 15px;
    color: var(--space-900);
    background: var(--gold);
    padding: 14px 26px;
    border-radius: 999px;
    text-decoration: none;
    transition: transform .25s ease, box-shadow .25s ease, background .25s;
    box-shadow: 0 0 0 0 rgba(231, 196, 92, .0);
}

.btn:hover,
.btn:focus-visible {
    transform: translateY(-2px);
    background: var(--gold-bright);
    box-shadow: 0 10px 30px -8px rgba(231, 196, 92, .55)
}

.btn .arr {
    transition: transform .25s
}

.btn:hover .arr {
    transform: translateX(4px)
}

.btn:focus-visible {
    outline: 2px solid var(--ink);
    outline-offset: 3px
}

.link {
    font-family: var(--jp-sans);
    font-size: 14px;
    color: var(--ink);
    text-decoration: none;
    border-bottom: 1px solid rgba(243, 239, 228, .3);
    padding-bottom: 3px;
    transition: border-color .25s, color .25s;
}

.link:hover,
.link:focus-visible {
    border-color: var(--gold);
    color: var(--gold)
}

.link:focus-visible {
    outline: none
}



/* ------------------------------------------------
   VISION
   ------------------------------------------------ */
.vision {
    padding: var(--section-v) 24px;
    border-top: .5px solid var(--border);
    position: relative;
    overflow: hidden;
}

.vision__glow {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 600px;
    height: 300px;
    background: radial-gradient(ellipse, rgba(200, 168, 75, .06), transparent 70%);
    pointer-events: none;
}

.vision__inner {
    max-width: 880px;
    margin: 0 auto;
    text-align: center;
    position: relative;
}

.vision__eyebrow {
    font-family: var(--font-mono);
    font-size: 13px;
    letter-spacing: .2em;
    color: rgba(255, 255, 255, .4);
    text-transform: uppercase;
    margin: 0 0 24px;
}

.vision__lead {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(26px, 3.6vw, 46px);
    line-height: 1.55;
    letter-spacing: .05em;
    margin: 0 0 30px;
}

.vision__body {
    font-size: 15px;
    line-height: 2.15;
    color: var(--text-muted);
    max-width: 660px;
    margin: 0 auto;
}


/* ------------------------------------------------
   SERVICES
   ------------------------------------------------ */
.services {
    padding: var(--section-v) var(--pad-h);
    border-top: .5px solid var(--border);
}

.services__inner {
    max-width: var(--container);
    margin: 0 auto;
}

.services__title {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(26px, 3.6vw, 42px);
    letter-spacing: .05em;
    text-align: center;
    margin: 16px 0 0;
}

.services__list {
    border-bottom: .5px solid rgba(255, 255, 255, .08);
    margin-top: 42px;
}

.service-item {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: clamp(20px, 4vw, 60px);
    padding: 42px 0;
    border-top: .5px solid rgba(255, 255, 255, .08);
    align-items: start;
}

.service-item__num {
    font-family: var(--font-mono);
    font-size: 13px;
    color: var(--gold);
    letter-spacing: .1em;
    padding-top: 7px;
}

.service-item__tag {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: .24em;
    color: rgba(255, 255, 255, .35);
    text-transform: uppercase;
    margin: 0 0 13px;
}

.service-item__title {
    font-family: var(--font-serif);
    font-weight: 400;
    font-size: clamp(20px, 2.7vw, 30px);
    letter-spacing: .04em;
    margin: 0 0 16px;
}

.service-item__desc {
    font-size: 14px;
    line-height: 2.05;
    color: var(--text-muted);
    max-width: 660px;
    margin: 0;
}


/* ------------------------------------------------
   MISSIONS
   ------------------------------------------------ */
.missions {
    padding: var(--section-v) var(--pad-h);
    border-top: .5px solid var(--border);
    position: relative;
    --rail-gap: 24px;
    --rail-fade: 64px;    /* 端のフェード幅 */
    --rail-card: clamp(280px, 30vw, 360px);
}

.missions__inner {
    max-width: var(--container-wide);
    margin: 0 auto;
}

.missions__title {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(26px, 3.6vw, 42px);
    letter-spacing: .05em;
    text-align: center;
    margin: 16px 0 56px;
}

.missions__rail {
    display: flex;
    gap: var(--rail-gap);
    overflow-x: auto;
    overflow-y: hidden;
    padding-block: 6px;
    /* フォーカスリング・hover の浮きが切れないように */
    scroll-snap-type: x proximity;
    overscroll-behavior-x: contain;
    cursor: grab;

    /* ネイティブのスクロールバーを消す */
    scrollbar-width: none;
    /* Firefox */
    -ms-overflow-style: none;
    /* 旧 Edge */

    /* 端をフェードアウト（左右を独立に制御） */
    --fade-l: var(--rail-fade);
    --fade-r: var(--rail-fade);
    -webkit-mask-image: linear-gradient(90deg,
            transparent 0, #000 var(--fade-l),
            #000 calc(100% - var(--fade-r)), transparent 100%);
    mask-image: linear-gradient(90deg,
            transparent 0, #000 var(--fade-l),
            #000 calc(100% - var(--fade-r)), transparent 100%);
}

.missions__rail::-webkit-scrollbar {
    display: none;
}

/* Chrome / Safari */

/* 端に着いたら、その側のフェードだけ消す（＝「もう先が無い」ことが伝わる） */
.missions__rail.at-start {
    --fade-l: 0px;
}

.missions__rail.at-end {
    --fade-r: 0px;
}

/* スクロール不要なとき（カードが全部収まる幅）は、ただの横並びに戻す */
.missions__rail.is-static {
    cursor: default;
    -webkit-mask-image: none;
    mask-image: none;
}

/* ドラッグ中：スナップを切らないと指の動きに割り込んでガクつく */
.missions__rail.is-dragging {
    cursor: grabbing;
    scroll-snap-type: none;
    scroll-behavior: auto;
}

.missions__rail.is-dragging * {
    user-select: none;
}

.mission-item {
    flex: 0 0 var(--rail-card);
    scroll-snap-align: start;
    display: flex;
    flex-direction: column;
}

.mission-item__img-wrap {
    position: relative;
    aspect-ratio: 4 / 3;
    margin-bottom: 20px;
    overflow: hidden;
    border: 1px solid rgba(216, 185, 84, .14);
    border-radius: 2px;
    background: radial-gradient(120% 100% at 50% 100%, rgba(216, 185, 84, .10), transparent 70%), #0E141F;
    transition: border-color .3s;
}

.mission-item:hover .mission-item__img-wrap {
    border-color: var(--gold, #D8B954);
}

.mission-item__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
    position: relative;
    z-index: 1;
    transition: transform .5s cubic-bezier(.2, .7, .3, 1);
    pointer-events: none;
    /* ドラッグ時に画像を掴まない */
    -webkit-user-drag: none;
}

.mission-item:hover .mission-item__img {
    transform: scale(1.04);
}

.mission-item__img-glow {
    position: absolute;
    inset: 0;
    background: radial-gradient(50% 50% at 50% 50%, rgba(216, 185, 84, .22), transparent 70%);
    opacity: 0;
    transition: opacity .4s;
}

.mission-item:hover .mission-item__img-glow {
    opacity: 1;
}

.mission-item__status {
    display: inline-block;
    font-size: 11px;
    letter-spacing: .14em;
    color: var(--gold-deep, #C8A84B);
    margin-bottom: 10px;
}

.mission-item__code {
    margin: 0 0 4px;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: .06em;
}

.mission-item__name {
    margin: 0 0 12px;
    font-size: 13px;
    letter-spacing: .08em;
    color: #7A8699;
}

.mission-item__desc {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.9;
    color: #9AA6B8;
}

/* ---- スクロールバーの代わり ---- */
.missions__scrollbar {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-top: 36px;
}

.missions__rail.is-static~.missions__scrollbar {
    display: none;
}

/* 収まりきる時は隠す */

.missions__track {
    position: relative;
    flex: 1;
    height: 20px;
    /* 当たり判定は広く、見た目は細く */
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
    touch-action: none;
}

.missions__track::before {
    /* レール */
    content: "";
    position: absolute;
    inset: 50% 0 auto;
    height: 1px;
    background: rgba(255, 255, 255, .10);
}

.missions__thumb {
    position: absolute;
    top: 50%;
    left: 0;
    height: 2px;
    background: linear-gradient(90deg, var(--gold-deep, #C8A84B), var(--gold, #D8B954));
    transform: translateY(-50%);
    will-change: width, left;
}

.missions__thumb::after {
    /* 先端の光点 */
    content: "";
    position: absolute;
    right: -1px;
    top: 50%;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--gold, #D8B954);
    box-shadow: 0 0 10px 2px rgba(216, 185, 84, .55);
    transform: translateY(-50%);
}

.missions__track:hover .missions__thumb,
.missions__track:focus-visible .missions__thumb {
    height: 4px;
}

.missions__track:focus-visible {
    outline: 1px solid var(--gold-deep, #C8A84B);
    outline-offset: 4px;
}

.missions__readout {
    margin: 0;
    font-family: "JetBrains Mono", "SF Mono", Consolas, monospace;
    font-size: 12px;
    letter-spacing: .1em;
    color: #7A8699;
    white-space: nowrap;
}

.missions__readout b {
    color: #E8ECF2;
    font-weight: 500;
}

/* ------------------------------------------------
   NEWS
   ------------------------------------------------ */
.news {
    padding: var(--section-v) var(--pad-h);
    border-top: .5px solid rgba(255, 255, 255, .07);
}

.news__inner {
    max-width: var(--container-narrow);
    margin: 0 auto;
}

.news__header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 40px;
    flex-wrap: wrap;
}

.news__label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .3em;
    color: var(--gold);
    text-transform: uppercase;
    margin: 0 0 14px;
}

.news__title {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(24px, 3.4vw, 40px);
    letter-spacing: .05em;
    margin: 0;
}

.news__more {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .14em;
    color: rgba(255, 255, 255, .55);
    text-decoration: none;
    text-transform: uppercase;
    white-space: nowrap;
    transition: color .2s;
}

.news__more:hover {
    color: var(--gold-light);
}

.news-list {
    border-bottom: .5px solid rgba(255, 255, 255, .09);
}

/* 読み込み中・記事なし・取得失敗時の 1 行表示 */
.news-list__state {
    margin: 0;
    padding: 22px 10px;
    border-top: .5px solid rgba(255, 255, 255, .09);
    font-size: 13px;
    color: rgba(255, 255, 255, .45);
}

.news-item {
    display: grid;
    grid-template-columns: 110px 96px 1fr auto;
    gap: 18px;
    align-items: center;
    padding: 22px 10px;
    border-top: .5px solid rgba(255, 255, 255, .09);
    text-decoration: none;
    transition: background .2s;
}

.news-item:hover {
    background: rgba(200, 168, 75, .045);
}

.news-item__date {
    font-family: var(--font-mono);
    font-size: 12px;
    color: rgba(255, 255, 255, .45);
    letter-spacing: .05em;
}

.news-item__cat {
    font-family: var(--font-mono);
    font-size: 9px;
    letter-spacing: .14em;
    color: var(--gold);
    border: .5px solid rgba(200, 168, 75, .3);
    border-radius: 2px;
    padding: 4px 0;
    text-align: center;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.news-item__title {
    font-size: 14px;
    color: rgba(255, 255, 255, .8);
    line-height: 1.6;
}

.news-item__arrow {
    color: rgba(200, 168, 75, .7);
    font-size: 13px;
}


/* ------------------------------------------------
   COMPANY
   ------------------------------------------------ */
.company {
    padding: var(--section-v) var(--pad-h);
    border-top: .5px solid rgba(255, 255, 255, .07);
}

.company__inner {
    max-width: var(--container-narrow);
    margin: 0 auto;
}

.company__label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .3em;
    color: var(--gold);
    text-transform: uppercase;
    margin: 0 0 14px;
}

.company__title {
    font-family: var(--font-serif);
    font-weight: 300;
    font-size: clamp(24px, 3.4vw, 40px);
    letter-spacing: .05em;
    margin: 0 0 40px;
}

.company-row {
    display: grid;
    grid-template-columns: 170px 1fr;
    gap: 24px;
    padding: 20px 0;
    border-top: .5px solid rgba(255, 255, 255, .09);
}

.company-row__key {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .16em;
    color: rgba(200, 168, 75, .8);
    text-transform: uppercase;
    padding-top: 2px;
}

.company-row__val {
    font-size: 14.5px;
    line-height: 1.8;
    color: rgba(255, 255, 255, .72);
}


/* ------------------------------------------------
   CTA
   ------------------------------------------------ */
.cta {
    position: relative;
    padding: clamp(100px, 16vh, 180px) 24px;
    text-align: center;
    border-top: .5px solid rgba(255, 255, 255, .07);
    overflow: hidden;
}

.cta__glow {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 760px;
    height: 480px;
    background: radial-gradient(ellipse, rgba(200, 168, 75, .10), transparent 66%);
    pointer-events: none;
}

.cta__inner {
    position: relative;
    max-width: 760px;
    margin: 0 auto;
}

.cta__label {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: .3em;
    color: var(--gold);
    text-transform: uppercase;
    margin: 0 0 26px;
}

.cta__title {
    font-family: var(--font-serif);
    font-weight: 200;
    font-size: clamp(30px, 5vw, 58px);
    line-height: 1.4;
    letter-spacing: .05em;
    margin: 0 0 26px;
}

.cta__text {
    font-size: 15px;
    line-height: 2.05;
    color: var(--text-muted);
    max-width: 520px;
    margin: 0 auto 44px;
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--font-mono);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: #0a0907;
    background: var(--gold);
    padding: 16px 40px;
    border-radius: 3px;
    text-decoration: none;
    transition: background .2s, transform .2s;
}

.btn-primary:hover {
    background: var(--gold-light);
    transform: translateY(-1px);
}



/* ---------- responsive ---------- */
@media (max-width:1280px) {
    .cosmos {
        --cs: .8;
        right: -240px
    }

    .content {
        max-width: 740px
    }
}

@media (max-width:960px) {
    .cosmos {
        --cs: .7;
        top: 32%;
        right: -44vw
    }

    .content {
        max-width: none;
        min-height: auto;
        padding-top: 140px;
        padding-bottom: 48px
    }

    .hero {
        min-height: auto
    }

    .readout {
        position: static;
        margin: 0 clamp(22px, 5vw, 64px) 40px
    }

    .hero::after {
        background: radial-gradient(140% 120% at 70% 24%, transparent 40%, rgba(4, 5, 12, .78) 78%)
    }
}

@media (max-width:640px) {
    .missions {
        --rail-card: 78vw;
        --rail-fade: 24px;
        --rail-gap: 16px;
    }

    .news-item {
        grid-template-columns: auto auto 1fr;
        grid-template-areas:
            "date cat arrow"
            "title title title";
        row-gap: 10px;
        column-gap: 12px;
        padding: 18px 4px;
    }

    .news-item__date {
        grid-area: date;
    }

    .news-item__cat {
        grid-area: cat;
        padding: 3px 8px;
    }

    .news-item__title {
        grid-area: title;
        font-size: 13px;
        line-height: 1.6;
    }

    .news-item__arrow {
        grid-area: arrow;
        justify-self: end;
    }
}

@media (prefers-reduced-motion:reduce) {
    .missions * {
        transition: none !important;
    }

    .missions__rail {
        scroll-behavior: auto !important;
    }
}

@media (max-width:560px) {
    .hero {
        margin-top: 64px;
    }
    .cosmos {
        --cs: .56;
        top: 20%;
        right: -58vw
    }

    h1 {
        font-size: clamp(34px, 11vw, 46px)
    }

    .content {
        padding-top: 360px;
        gap: 22px
    }

    .readout {
        gap: 14px
    }

    .readout .sep {
        display: none
    }
}