:root {
    --ink: #00113d;
    --paper: #fff;
    --gold: #004fff;
    --mist: #85b1ff;
    --white: #fff;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: "Manrope",sans-serif;
    font-weight: 300;
}

::selection {
    background: #00113d;
    color: #fff;
}

::-moz-selection {
    background: #00113d;
    color: #fff;
}

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

.site-header {
    height: 88px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 5vw;
    border-bottom: 1px solid rgba(255,255,255,.18);
    position: absolute;
    inset: 0 0 auto;
    z-index: 10;
    color: var(--white);
}

.brand {
    display: flex;
    align-items: center;
}

.brand img {
    display: block;
    width: 150px;
    height: auto;
}

nav {
    display: flex;
    gap: 2.4rem;
    font-size: .69rem;
    letter-spacing: .13em;
    text-transform: uppercase;
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap;
}

nav a {
    position: relative;
}

nav a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: -7px;
    height: 1px;
    background: var(--gold);
    transition: .25s;
}

nav a:hover::after {
    right: 0;
}

.menu-button {
    display: none;
    border: 0;
    background: none;
    color: inherit;
    text-transform: uppercase;
    letter-spacing: .15em;
}

.hero {
    min-height: 100vh;
    position: relative;
    overflow: hidden;
    padding: clamp(150px,20vh,210px) 7vw 70px;
    color: var(--white);
    background: radial-gradient(circle at 76% 52%,rgba(0,79,255,.28) 0,transparent 29%),linear-gradient(135deg,#00113d,#001c62);
}

.hero::before,.hero::after {
    content: "";
    position: absolute;
    border: 1px solid rgba(133,177,255,.35);
    width: 46vw;
    height: 46vw;
    max-width: 660px;
    max-height: 660px;
    right: -5vw;
    top: 15%;
    transform: rotate(45deg);
}

.hero::after {
    transform: rotate(45deg) scale(.7);
}

.eyebrow {
    margin: 0 0 1.5rem;
    color: var(--gold);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .28em;
    text-transform: uppercase;
}

.hero .eyebrow {
    color: var(--mist);
}

h1,h2 {
    font-family: "Italiana",serif;
    font-weight: 400;
    margin: 0;
    line-height: .88;
    letter-spacing: -.025em;
}

h1 {
    font-size: clamp(5.5rem,11.5vw,11rem);
    max-width: 760px;
}

h1 em,h2 em {
    color: var(--gold);
    font-weight: 400;
}

.hero h1 em {
    color: var(--mist);
}

.hero-copy {
    width: min(390px,85vw);
    font-size: .95rem;
    line-height: 1.8;
    margin: 2.2rem 0 1.8rem;
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 2rem;
    padding-bottom: .5rem;
    border-bottom: 1px solid var(--gold);
    font-size: .7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .15em;
}

.text-link span {
    color: var(--gold);
    font-size: 1rem;
}

.turbine {
    position: absolute;
    width: min(36vw,490px);
    aspect-ratio: 1;
    right: 8vw;
    top: 27%;
    border-radius: 50%;
    animation: float 7s ease-in-out infinite;
}

.turbine-ring,.turbine-core {
    position: absolute;
    border-radius: 50%;
    inset: 0;
    border: 1px solid rgba(133,177,255,.32);
}

.ring-middle {
    inset: 13%;
    border-color: var(--mist);
}

.ring-inner {
    inset: 30%;
    border: 1px solid rgba(255,255,255,.55);
}

.turbine-core {
    inset: 43%;
    background: var(--gold);
    box-shadow: 0 0 0 8px var(--ink),0 0 0 9px var(--mist);
}

.blades {
    position: absolute;
    inset: 17%;
    border-radius: 50%;
    background: repeating-conic-gradient(from 2deg,transparent 0 8deg,rgba(255,255,255,.55) 9deg 11deg,transparent 12deg 24deg);
    mask: radial-gradient(circle,transparent 0 22%,#000 23% 70%,transparent 71%);
    animation: spin 30s linear infinite;
}

.figure-label {
    position: absolute;
    right: 9vw;
    bottom: 7%;
    font-size: .55rem;
    letter-spacing: .25em;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes float {
    50% {
        transform: translateY(-10px);
    }
}

.statement {
    display: grid;
    grid-template-columns: 1fr 3fr;
    gap: 4rem;
    padding: 150px 9vw;
    border-top: 1px solid rgba(0,17,61,.16);
}

.section-number {
    font-family: "Italiana";
    color: var(--gold);
    font-size: 2rem;
}

h2 {
    font-size: clamp(3.3rem,7vw,7rem);
}

.body-copy {
    max-width: 610px;
    margin: 2.5rem 0 0 22%;
    line-height: 1.9;
    font-size: 1rem;
}

.engine {
    background: var(--ink);
    color: var(--white);
    padding: 130px 7vw 110px;
}

.engine-intro {
    display: flex;
    justify-content: space-between;
    align-items: start;
    margin-bottom: 100px;
}

.engine-intro h2 {
    font-size: clamp(3rem,5.5vw,5.5rem);
}

.system-line {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    position: relative;
}

.system-line::before {
    content: "";
    position: absolute;
    top: 73px;
    left: 12%;
    right: 12%;
    height: 1px;
    background: rgba(133,177,255,.55);
}

.system-line article {
    text-align: center;
    padding: 0 1.4rem;
    position: relative;
}

.system-line article>span {
    color: var(--gold);
    font-size: .55rem;
    letter-spacing: .2em;
}

.stage-icon {
    width: 58px;
    height: 58px;
    border: 1px solid var(--gold);
    border-radius: 50%;
    margin: 22px auto 30px;
    background: var(--ink);
    position: relative;
}

.stage-icon::before,.stage-icon::after {
    content: "";
    position: absolute;
    inset: 50% 15% auto;
    height: 1px;
    background: var(--gold);
}

.compressor::after {
    transform: rotate(90deg);
}

.combustor::before {
    transform: rotate(45deg);
}

.combustor::after {
    transform: rotate(-45deg);
}

.exhaust::before {
    inset: 38% 20% auto;
    transform: rotate(12deg);
}

.exhaust::after {
    inset: 60% 20% auto;
    transform: rotate(-12deg);
}

h3 {
    font-family: "Italiana";
    font-size: 1.7rem;
    font-weight: 400;
}

.system-line p {
    color: rgba(255,255,255,.62);
    font-size: .78rem;
    line-height: 1.7;
    max-width: 180px;
    margin: auto;
}

.team {
    min-height: 700px;
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.team-card {
    padding: 130px 8vw;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
}

.team-card h2 {
    font-size: clamp(3.5rem,5.8vw,6rem);
}

.team-card>p:not(.eyebrow) {
    max-width: 450px;
    line-height: 1.9;
    margin: 2.2rem 0;
}

.team-graphic {
    background: linear-gradient(145deg,var(--gold),#003bc0);
    position: relative;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.team-graphic span {
    font-family: "Italiana";
    font-size: clamp(4rem,9vw,9rem);
    letter-spacing: .2em;
    color: var(--white);
    z-index: 2;
}

.diamond {
    position: absolute;
    border: 1px solid rgba(255,255,255,.4);
    transform: rotate(45deg);
    width: 50%;
    aspect-ratio: 1;
}

.d2 {
    width: 70%;
}

.d3 {
    width: 95%;
}

.contact {
    padding: 150px 7vw;
    text-align: center;
    background: var(--white);
}

.contact h2 {
    margin-bottom: 2rem;
}

.contact>p:not(.eyebrow) {
    margin-bottom: 2.5rem;
}

.button {
    display: inline-flex;
    gap: 3rem;
    align-items: center;
    padding: 1.2rem 1.6rem;
    border: 1px solid var(--gold);
    font-size: .72rem;
    letter-spacing: .12em;
    transition: .25s;
}

.button:hover {
    background: var(--gold);
    color: var(--white);
}

footer {
    min-height: 130px;
    padding: 40px 5vw;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid rgba(255,255,255,.15);
    background: var(--ink);
    color: var(--white);
    font-size: .6rem;
    letter-spacing: .13em;
    text-transform: uppercase;
}

@media (max-width: 800px) {
    .site-header {
        height:72px;
    }

    .menu-button {
        display: block
    }

    .site-header nav {
        display: none;
        position: absolute;
        top: 72px;
        left: 0;
        right: 0;
        transform: none;
        white-space: normal;
        background: var(--ink);
        padding: 2rem 5vw;
        flex-direction: column;
        border-bottom: 1px solid var(--gold)
    }

    .site-header nav.open {
        display: flex
    }

    .hero {
        min-height: 850px;
        padding-top: 145px;
    }

    .hero h1 {
        font-size: clamp(4.8rem,22vw,7rem)
    }

    .turbine {
        width: 65vw;
        right: -7vw;
        top: 52%;
        opacity: .75
    }

    .figure-label {
        bottom: 4%
    }

    .statement {
        grid-template-columns: 1fr;
        padding: 100px 7vw
    }

    .section-number {
        display: none
    }

    .body-copy {
        margin-left: 0
    }

    .engine {
        padding: 100px 7vw
    }

    .engine-intro {
        display: block;
        margin-bottom: 70px
    }

    .system-line {
        grid-template-columns: 1fr 1fr;
        gap: 60px 0
    }

    .system-line::before {
        display: none
    }

    .team {
        grid-template-columns: 1fr
    }

    .team-card {
        padding: 100px 7vw
    }

    .team-graphic {
        min-height: 480px
    }

    .contact {
        padding: 100px 7vw
    }

    footer {
        flex-direction: column;
        gap: 1.5rem;
        text-align: center
    }
}

/* Interactive Jotun temperature-entropy cycle */
.brayton-heading {
    margin-bottom: 52px
}

.brayton-cycle {
    --cycle-orange: #ff4e00;
    display: grid;
    grid-template-columns: minmax(185px,.28fr) minmax(0,1fr);
    gap: 34px 54px;
    padding: clamp(24px,4vw,56px);
    border-radius: 32px;
    background: linear-gradient(145deg,#050b17,#111827);
    color: #fff;
    box-shadow: 0 32px 90px rgba(0,17,61,.17)
}

.brayton-readout {
    align-self: center
}

.brayton-readout>span {
    display: block;
    color: #ff8b59;
    font-size: .68rem;
    letter-spacing: .22em;
    text-transform: uppercase
}

.brayton-readout>strong {
    display: block;
    margin: .08em 0 .28em;
    font-family: 'Italiana',serif;
    font-size: clamp(5.8rem,10vw,10rem);
    font-weight: 400;
    line-height: .9;
    color: var(--cycle-orange)
}

.brayton-readout dl {
    display: grid;
    gap: 14px;
    margin: 0
}

.brayton-readout dl div {
    padding-top: 14px;
    border-top: 1px solid rgba(255,255,255,.17)
}

.brayton-readout dt {
    color: #8ea0b5;
    font-size: .68rem;
    letter-spacing: .14em
}

.brayton-readout dd {
    margin: 4px 0 0;
    font-size: .9rem;
    font-variant-numeric: tabular-nums
}

.brayton-plot-wrap {
    min-width: 0
}

.brayton-plot {
    display: block;
    width: 100%;
    height: auto;
    overflow: visible
}

.brayton-axis line {
    stroke: rgba(255,255,255,.45);
    stroke-width: 1.4
}

.brayton-axis text {
    fill: #9aa9bb;
    font: 13px 'Manrope',sans-serif;
    letter-spacing: .08em;
    text-anchor: middle
}

.brayton-grid line {
    stroke: rgba(255,255,255,.075);
    stroke-width: 1
}

.brayton-grid text {
    fill: #718096;
    font: 11px 'Manrope',sans-serif
}

.brayton-path {
    fill: none;
    stroke: var(--cycle-orange);
    stroke-width: 4;
    stroke-linecap: round;
    stroke-linejoin: round
}

.brayton-station circle {
    fill: #111827;
    stroke: #ff8b59;
    stroke-width: 3
}

.brayton-station text {
    fill: #fff;
    font: 600 15px 'Manrope',sans-serif;
    text-anchor: middle
}

.brayton-marker-halo {
    fill: rgba(255,78,0,.2);
    stroke: rgba(255,78,0,.55);
    stroke-width: 2
}

.brayton-marker {
    fill: #fff;
    stroke: var(--cycle-orange);
    stroke-width: 4
}

.brayton-slider-label {
    grid-column: 2;
    display: grid;
    gap: 12px;
    color: #9aa9bb;
    font-size: .68rem;
    letter-spacing: .17em;
    text-transform: uppercase
}

.brayton-slider-label input {
    width: 100%;
    height: 28px;
    margin: 0;
    appearance: none;
    background: transparent;
    cursor: grab
}

.brayton-slider-label input:active {
    cursor: grabbing
}

.brayton-slider-label input::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 99px;
    background: linear-gradient(90deg,var(--cycle-orange) var(--cycle-progress,0%),rgba(255,255,255,.18) var(--cycle-progress,0%))
}

.brayton-slider-label input::-webkit-slider-thumb {
    width: 22px;
    height: 22px;
    margin-top: -9px;
    appearance: none;
    border: 4px solid var(--cycle-orange);
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 7px rgba(255,78,0,.18)
}

.brayton-slider-label input::-moz-range-track {
    height: 4px;
    border-radius: 99px;
    background: rgba(255,255,255,.18)
}

.brayton-slider-label input::-moz-range-progress {
    height: 4px;
    border-radius: 99px;
    background: var(--cycle-orange)
}

.brayton-slider-label input::-moz-range-thumb {
    width: 15px;
    height: 15px;
    border: 4px solid var(--cycle-orange);
    border-radius: 50%;
    background: #fff
}

@media(max-width: 760px) {
    .brayton-heading {
        margin-bottom:32px
    }

    .brayton-cycle {
        grid-template-columns: 1fr;
        gap: 24px;
        border-radius: 24px
    }

    .brayton-readout {
        display: grid;
        grid-template-columns: auto 1fr;
        align-items: end;
        column-gap: 20px
    }

    .brayton-readout>span {
        grid-column: 1/-1
    }

    .brayton-readout>strong {
        font-size: 5.5rem
    }

    .brayton-readout dl {
        grid-template-columns: 1fr 1fr;
        align-self: center
    }

    .brayton-slider-label {
        grid-column: 1
    }

    .brayton-plot-wrap {
        margin-left: -10px;
        margin-right: -10px
    }
}

@media (prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    .blades,.turbine {
        animation: none
    }
}

/* Multi-page experience */
.landing-page {
    background: var(--ink);
}

.landing-hero {
    min-height: 100vh;
    position: relative;
    overflow: hidden;
    padding: clamp(140px,18vh,190px) 7vw 6vw;
    color: #fff;
    background: radial-gradient(circle at 75% 35%,rgba(0,79,255,.3),transparent 30%),linear-gradient(145deg,#00113d,#001a5b);
}

.landing-hero::before,.landing-hero::after {
    content: "";
    position: absolute;
    width: 46vw;
    height: 46vw;
    max-width: 650px;
    max-height: 650px;
    right: -8vw;
    top: 8%;
    border: 1px solid rgba(133,177,255,.28);
    transform: rotate(45deg);
}

.landing-hero::after {
    transform: rotate(45deg) scale(.7);
}

.landing-hero h1 {
    font-size: clamp(5rem,10vw,10rem);
    position: relative;
    z-index: 2;
}

.landing-hero h1.mission-title {
    font-size: clamp(3.4rem,7.2vw,7.4rem);
    line-height: .88;
    max-width: 960px;
}

.landing-hero h1 em {
    color: var(--mist);
}

.landing-hero .hero-copy {
    position: relative;
    z-index: 2;
}

.landing-turbine {
    top: 23%;
    opacity: .8;
}

.project-launches {
    display: grid;
    grid-template-columns: 1.35fr .65fr;
    width: min(860px,86vw);
    margin: clamp(65px,9vh,110px) 0 0 auto;
    position: relative;
    z-index: 3;
    border: 1px solid rgba(255,255,255,.25);
}

.project-launches.single-project {
    grid-template-columns: 1fr;
    width: min(620px,86vw);
}

.launch-card {
    min-height: 260px;
    padding: 28px 32px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
}

.launch-card + .launch-card {
    border-left: 1px solid rgba(255,255,255,.25);
}

.launch-live {
    background: rgba(0,79,255,.14);
    transition: .35s ease;
}

.launch-live::before {
    content: "";
    position: absolute;
    width: 180px;
    height: 180px;
    border: 1px solid var(--mist);
    transform: rotate(45deg);
    right: -70px;
    bottom: -70px;
    transition: .4s ease;
}

.launch-live:hover {
    background: var(--gold);
}

.launch-live:hover::before {
    transform: rotate(135deg);
}

.launch-index,.launch-action {
    font-size: .57rem;
    letter-spacing: .22em;
    text-transform: uppercase;
}

.launch-action {
    display: flex;
    justify-content: space-between;
}

.launch-action b {
    font-size: 1rem;
}

.launch-title {
    font-family: "Italiana",serif;
    font-size: clamp(3rem,6vw,5.7rem);
    letter-spacing: .04em;
    line-height: .85;
}

.launch-soon {
    color: rgba(255,255,255,.38);
    background: rgba(0,17,61,.4);
}

.inner-page .site-header {
    position: absolute;
    background: transparent;
}

.site-header nav a.active::after {
    right: 0;
}

.project-hero {
    min-height: 100vh;
    padding: 190px 7vw 80px;
    background: var(--ink);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.project-hero::before {
    content: "";
    position: absolute;
    width: 70vw;
    height: 70vw;
    border: 1px solid rgba(133,177,255,.18);
    transform: rotate(45deg);
    left: 50%;
    top: -25%;
}

.project-hero-copy {
    position: relative;
    z-index: 2;
}

.project-hero h1 {
    font-size: clamp(7rem,20vw,20rem);
    color: #fff;
    line-height: .7;
}

.project-hero-copy>p:last-child {
    max-width: 510px;
    line-height: 1.8;
    margin: 3rem 0 0 10%;
}

.engine-silhouette {
    position: absolute;
    right: 6vw;
    bottom: 12%;
    width: min(50vw,700px);
    height: 100px;
    display: flex;
    align-items: center;
    filter: drop-shadow(0 0 30px rgba(0,79,255,.5));
}

.engine-silhouette span {
    display: block;
    height: 60%;
    background: linear-gradient(90deg,var(--gold),var(--mist));
    border-right: 2px solid var(--ink);
}

.engine-silhouette span:nth-child(1) {
    width: 10%;
    clip-path: polygon(0 25%,100% 0,100% 100%,0 75%)
}

.engine-silhouette span:nth-child(2) {
    width: 24%;
    height: 85%
}

.engine-silhouette span:nth-child(3) {
    width: 13%;
    height: 100%;
    clip-path: polygon(0 10%,100% 25%,100% 75%,0 90%)
}

.engine-silhouette span:nth-child(4) {
    width: 14%;
    height: 70%
}

.engine-silhouette span:nth-child(5) {
    width: 24%;
    height: 58%
}

.engine-silhouette span:nth-child(6) {
    width: 15%;
    clip-path: polygon(0 0,100% 25%,100% 75%,0 100%)
}

.scroll-cue {
    position: absolute;
    bottom: 35px;
    left: 7vw;
    text-transform: uppercase;
    letter-spacing: .2em;
    font-size: .55rem;
    color: var(--mist);
}

.section-pad {
    padding: 140px 8vw;
}

.jotun-intro,.about-statement {
    display: grid;
    grid-template-columns: 1fr 3fr;
    gap: 4rem;
}

.section-kicker {
    font-family: "Italiana";
    color: var(--gold);
    font-size: 1.3rem;
}

.jotun-intro h2,.about-statement h2 {
    font-size: clamp(3.5rem,7vw,7rem);
}

.lead-copy {
    max-width: 720px;
    margin: 3rem 0 0 15%;
    line-height: 1.9;
}

.status-note {
    max-width: 600px;
    margin: 2rem 0 0 15%;
    padding-left: 1.2rem;
    border-left: 1px solid var(--gold);
    color: #647279;
    font-size: .75rem;
    line-height: 1.7;
}

.jotun-numbers {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    background: var(--gold);
    color: #fff;
}

.jotun-numbers article {
    min-height: 240px;
    padding: 45px 3vw;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    border-right: 1px solid rgba(255,255,255,.3);
}

.jotun-numbers strong {
    font-family: "Italiana";
    font-weight: 400;
    font-size: clamp(2.8rem,5vw,5rem);
}

.jotun-numbers span {
    max-width: 170px;
    font-size: .65rem;
    text-transform: uppercase;
    letter-spacing: .15em;
    line-height: 1.7;
}

.section-heading {
    display: flex;
    align-items: start;
    justify-content: space-between;
    margin-bottom: 90px;
}

.section-heading h2 {
    font-size: clamp(3.5rem,6vw,6rem);
}

.station-flow {
    display: grid;
    grid-template-columns: repeat(6,1fr);
    position: relative;
}

.station-flow::before {
    content: "";
    position: absolute;
    height: 1px;
    left: 8%;
    right: 8%;
    top: 48px;
    background: var(--mist);
}

.station-flow article {
    text-align: center;
    position: relative;
    padding: 0 12px;
}

.station-flow article>span {
    font-size: .55rem;
    color: var(--gold);
    letter-spacing: .2em;
}

.station-flow i {
    display: block;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #fff;
    border: 4px solid var(--gold);
    margin: 30px auto;
    position: relative;
    z-index: 2;
}

.station-flow h3 {
    font-size: 1.5rem;
}

.station-flow p {
    font-size: .72rem;
    line-height: 1.7;
    color: #647279;
}

.subsystem {
    min-height: 720px;
    display: grid;
    grid-template-columns: 1fr 1fr;
}

.subsystem-copy {
    padding: 110px 8vw;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.subsystem-copy h2 {
    font-size: clamp(3.2rem,5vw,5.4rem);
    margin-bottom: 2.2rem;
}

.subsystem-copy>p:not(.eyebrow) {
    line-height: 1.85;
}

.subsystem-copy ul {
    padding: 0;
    margin: 2rem 0 0;
    list-style: none;
}

.subsystem-copy li {
    padding: 12px 0;
    border-top: 1px solid currentColor;
    font-size: .72rem;
    letter-spacing: .04em;
    opacity: .75;
}

.subsystem-visual {
    display: grid;
    place-items: center;
    position: relative;
    overflow: hidden;
}

.subsystem-visual>span {
    position: absolute;
    bottom: 9%;
    font-family: "Italiana";
    font-size: 1.15rem;
    letter-spacing: .08em;
}

.feature-dark {
    background: var(--ink);
    color: #fff;
}

.feature-dark .subsystem-visual {
    background: radial-gradient(circle,var(--gold),transparent 55%);
}

.feature-light {
    background: #eef4ff;
}

.reverse .subsystem-visual {
    order: 2;
}

.feature-blue {
    background: var(--gold);
    color: #fff;
}

.feature-blue .eyebrow {
    color: var(--mist);
}

.radial-machine {
    width: min(48vw,430px);
    aspect-ratio: 1;
    border: 1px solid currentColor;
    border-radius: 50%;
    position: relative;
    background: repeating-conic-gradient(transparent 0 10deg,currentColor 11deg 12deg,transparent 13deg 25deg);
    mask: radial-gradient(circle,transparent 0 25%,#000 26% 66%,transparent 67%);
    animation: spin 38s linear infinite;
}

.radial-machine::before,.radial-machine::after {
    content: "";
    position: absolute;
    border: 1px solid currentColor;
    border-radius: 50%;
    inset: 8%;
}

.radial-machine::after {
    inset: 20%;
}

.cans-visual {
    grid-template-columns: repeat(2,100px);
    grid-template-rows: repeat(2,100px);
    justify-content: center;
    align-content: center;
    gap: 35px;
    padding: 70px;
}

.cans-visual i {
    width: 100px;
    height: 100px;
    border: 1px solid var(--gold);
    border-radius: 50%;
    position: relative;
}

.cans-visual i::after {
    content: "";
    position: absolute;
    inset: 25%;
    background: var(--gold);
    transform: rotate(45deg);
}

.reheat {
    background: #fff;
}

.reheat-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1px;
    background: var(--mist);
}

.reheat-grid article {
    background: #fff;
    padding: 65px 5vw;
}

.big-stat {
    font-family: "Italiana";
    font-size: clamp(4rem,7vw,7rem);
    color: var(--gold);
}

.reheat-grid p {
    line-height: 1.8;
    color: #647279;
}

.build-philosophy {
    background: var(--ink);
    color: #fff;
    padding: 130px 8vw;
    display: grid;
    grid-template-columns: 1fr 1.3fr;
    gap: 9vw;
}

.build-philosophy h2 {
    font-size: clamp(3.5rem,5.5vw,6rem);
}

.philosophy-list article {
    padding: 32px 0;
    border-top: 1px solid rgba(255,255,255,.25);
    display: grid;
    grid-template-columns: 45px 1fr;
}

.philosophy-list article>span {
    color: var(--mist);
    font-size: .6rem;
}

.philosophy-list h3,.philosophy-list p {
    grid-column: 2;
}

.philosophy-list h3 {
    margin: .2rem 0 .5rem;
}

.philosophy-list p {
    color: rgba(255,255,255,.6);
    line-height: 1.7;
    font-size: .75rem;
}

.project-next,.join-banner {
    padding: 150px 7vw;
    text-align: center;
}

.project-next h2,.join-banner h2 {
    margin-bottom: 3rem;
}

.about-hero {
    min-height: 85vh;
    background: radial-gradient(circle at 72% 40%,rgba(0,79,255,.34),transparent 28%),var(--ink);
    color: #fff;
    padding: 190px 8vw 90px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.about-hero h1 {
    font-size: clamp(5rem,12vw,12rem);
}

.about-hero h1 em {
    color: var(--mist);
}

.about-hero>p:last-child {
    max-width: 520px;
    margin: 3rem 0 0 42%;
    line-height: 1.8;
}

.team-roster {
    padding: 130px 7vw;
    background: #eef4ff;
}

.roster-heading {
    display: flex;
    justify-content: space-between;
    margin-bottom: 80px;
}

.roster-heading h2 {
    font-size: clamp(4rem,7vw,7rem);
}

.people-grid {
    display: grid;
    grid-template-columns: repeat(6,1fr);
    gap: 1px;
    background: rgba(0,17,61,.18);
    border: 1px solid rgba(0,17,61,.18);
}

.people-grid article {
    background: #eef4ff;
    min-height: 410px;
    padding: 25px;
    display: flex;
    flex-direction: column;
}

.people-grid article:nth-child(1),.people-grid article:nth-child(2) {
    grid-column: span 3
}

.people-grid article:nth-child(n+3) {
    grid-column: span 2
}

.person-number {
    color: var(--gold);
    font-size: .55rem;
    letter-spacing: .2em;
}

.person-monogram {
    width: 105px;
    height: 105px;
    border: 1px solid var(--gold);
    transform: rotate(45deg);
    display: grid;
    place-items: center;
    margin: 55px auto;
    font-family: "Italiana";
    font-size: 2rem;
    color: var(--gold);
}

.person-monogram::first-line {
    transform: rotate(-45deg);
}

.people-grid h3 {
    margin: auto 0 .6rem;
    font-size: 1.6rem;
}

.people-grid p {
    font-size: .68rem;
    line-height: 1.7;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: #647279;
}

.join-banner {
    background: var(--gold);
    color: #fff;
}

.join-banner .eyebrow {
    color: #fff;
    opacity: .78;
}

.join-banner h2 em {
    color: #fff;
}

.join-banner .button {
    border-color: #fff;
    background: #fff;
    color: var(--ink);
}

.join-banner .button:hover {
    border-color: var(--ink);
    background: var(--ink);
    color: #fff;
}

@media (max-width: 900px) {
    .project-launches {
        grid-template-columns:1fr;
        margin-top: 80px
    }

    .launch-card+.launch-card {
        border-left: 0;
        border-top: 1px solid rgba(255,255,255,.25)
    }

    .landing-turbine {
        opacity: .25;
        top: 32%
    }

    .jotun-intro,.about-statement {
        grid-template-columns: 1fr
    }

    .section-kicker {
        display: none
    }

    .lead-copy,.status-note {
        margin-left: 0
    }

    .jotun-numbers {
        grid-template-columns: 1fr 1fr
    }

    .station-flow {
        grid-template-columns: 1fr 1fr;
        gap: 45px 0
    }

    .station-flow::before {
        display: none
    }

    .subsystem {
        grid-template-columns: 1fr
    }

    .subsystem-visual {
        min-height: 480px
    }

    .reverse .subsystem-visual {
        order: 0
    }

    .build-philosophy {
        grid-template-columns: 1fr
    }

    .people-grid {
        grid-template-columns: 1fr
    }

    .people-grid article:nth-child(n) {
        grid-column: span 1
    }

    .roster-heading,.section-heading {
        display: block
    }

    .engine-silhouette {
        width: 85vw;
        right: -12vw;
        opacity: .45
    }

    .about-hero>p:last-child {
        margin-left: 0
    }
}

@media (max-width: 600px) {
    .landing-hero {
        padding-left:5vw;
        padding-right: 5vw
    }

    .project-launches {
        width: 100%
    }

    .launch-card {
        min-height: 220px
    }

    .jotun-numbers {
        grid-template-columns: 1fr
    }

    .jotun-numbers article {
        min-height: 180px
    }

    .reheat-grid {
        grid-template-columns: 1fr
    }

    .section-pad {
        padding: 95px 7vw
    }

    .subsystem-copy {
        padding: 90px 7vw
    }

    .cans-visual {
        grid-template-columns: repeat(2,75px);
        grid-template-rows: repeat(2,75px);
        padding: 45px 7vw
    }

    .cans-visual i {
        width: 75px;
        height: 75px
    }
}

.person-monogram {
    border: 0;
    transform: none;
    position: relative;
}

.person-monogram::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 1px solid var(--gold);
    transform: rotate(45deg);
}

/* About Jet */
.about-principles {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    background: var(--ink);
    color: #fff;
    padding: 0 7vw;
}

.about-principles article {
    padding: 85px 4vw;
    border-right: 1px solid rgba(255,255,255,.18);
}

.about-principles article:last-child {
    border: 0
}

.about-principles span {
    color: var(--mist);
    font-size: .58rem;
    letter-spacing: .2em;
}

.about-principles h3 {
    font-size: 2rem;
    margin: 2.8rem 0 1rem;
}

.about-principles p {
    color: rgba(255,255,255,.62);
    font-size: .8rem;
    line-height: 1.8;
}

.about-origin {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9vw;
    align-items: center;
}

.about-origin h2 {
    font-size: clamp(4rem,7vw,7rem);
}

.about-origin>div:last-child>p {
    line-height: 1.9;
    margin-bottom: 2.5rem;
}

/* Team directory */
.team-hero {
    min-height: 72vh;
    background: radial-gradient(circle at 76% 45%,rgba(0,79,255,.4),transparent 30%),var(--ink);
    color: #fff;
    padding: 180px 7vw 100px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.team-hero h1 {
    font-size: clamp(4.6rem,10vw,10rem);
}

.team-hero h1 em {
    color: var(--mist);
}

.team-hero>p:last-child {
    max-width: 520px;
    margin: 2.5rem 0 0 45%;
    line-height: 1.8;
}

.team-directory {
    padding: 130px 7vw;
    display: grid;
    grid-template-columns: .75fr 1.4fr;
    gap: 8vw;
    align-items: start;
}

.directory-intro {
    position: sticky;
    top: 80px;
}

.directory-intro h2 {
    font-size: clamp(4rem,6vw,6rem);
}

.directory-intro>p:last-child {
    line-height: 1.8;
    color: #647279;
    max-width: 350px;
    margin-top: 2rem;
}

.group-stack {
    border-top: 1px solid rgba(0,17,61,.2);
}

.team-group {
    border-bottom: 1px solid rgba(0,17,61,.2);
}

.team-group summary {
    min-height: 100px;
    display: grid;
    grid-template-columns: 50px 1fr auto 35px;
    align-items: center;
    gap: 18px;
    cursor: pointer;
    list-style: none;
}

.team-group summary::-webkit-details-marker {
    display: none
}

.team-group summary h3 {
    font-size: clamp(1.25rem,2.2vw,2rem);
    margin: 0;
}

.group-code {
    color: var(--gold);
    font-size: .55rem;
    letter-spacing: .2em;
}

.team-group summary b {
    color: var(--gold);
    font-size: 1.4rem;
    font-weight: 300;
    transition: .25s;
}

.team-group[open] summary b {
    transform: rotate(45deg);
}

.hiring-tag {
    color: var(--gold);
    border: 1px solid var(--gold);
    border-radius: 100px;
    padding: 6px 10px;
    font-size: .52rem;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.group-body {
    padding: 0 0 38px 68px;
    max-width: 650px;
}

.group-body>p {
    line-height: 1.8;
    color: #647279;
}

.group-body>a {
    display: inline-block;
    margin-top: 1rem;
    color: var(--gold);
    text-transform: uppercase;
    letter-spacing: .12em;
    font-size: .62rem;
}

.member-line {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 25px;
    border-top: 1px solid rgba(0,17,61,.13);
    padding: 18px 0;
}

.member-line strong {
    font-family: "Italiana";
    font-size: 1.25rem;
    font-weight: 400;
}

.member-line span {
    color: #647279;
    font-size: .6rem;
    text-transform: uppercase;
    letter-spacing: .08em;
    text-align: right;
}

/* Application */
.apply-hero {
    min-height: 100vh;
    background: var(--ink);
    color: #fff;
    padding: 170px 7vw 90px;
    display: grid;
    grid-template-columns: 1.2fr .8fr;
    align-items: center;
    gap: 5vw;
    overflow: hidden;
}

.apply-hero h1 {
    font-size: clamp(4.5rem,9vw,9rem);
}

.apply-hero h1 em {
    color: var(--mist);
}

.apply-hero>div>p:not(.eyebrow) {
    max-width: 530px;
    line-height: 1.8;
    margin: 2rem 0;
}

.apply-cta {
    width: min(480px,100%);
    background: var(--gold);
    padding: 22px 25px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: .68rem;
    transition: .25s;
}

.apply-cta:hover {
    background: #fff;
    color: var(--ink);
}

.apply-orbit {
    width: min(38vw,480px);
    aspect-ratio: 1;
    position: relative;
    display: grid;
    place-items: center;
}

.apply-orbit i {
    position: absolute;
    inset: 5%;
    border: 1px solid rgba(133,177,255,.45);
    border-radius: 50%;
}

.apply-orbit i:nth-child(2) {
    inset: 20%
}

.apply-orbit i:nth-child(3) {
    inset: 35%;
    border-color: var(--gold)
}

.apply-orbit::before,.apply-orbit::after {
    content: "";
    position: absolute;
    inset: 0 50%;
    width: 1px;
    background: rgba(133,177,255,.35);
}

.apply-orbit::after {
    inset: 50% 0;
    width: auto;
    height: 1px;
}

.apply-orbit strong {
    font-family: "Italiana";
    font-size: 2rem;
    color: var(--mist);
}

.application-path {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    padding: 0 7vw;
    background: #eef4ff;
}

.application-path article {
    padding: 90px 4vw;
    border-right: 1px solid rgba(0,17,61,.15);
}

.application-path span {
    color: var(--gold);
    font-size: .55rem;
    letter-spacing: .2em;
}

.application-path h3 {
    margin: 2.4rem 0 1rem;
    font-size: 1.75rem;
}

.application-path p {
    line-height: 1.8;
    color: #647279;
    font-size: .78rem;
}

.open-teams {
    padding: 130px 8vw;
    text-align: center;
}

.open-teams h2 {
    margin-bottom: 3rem;
}

.open-teams>div {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 3rem;
}

.open-teams>div span {
    border: 1px solid var(--mist);
    padding: 12px 18px;
    border-radius: 100px;
    font-size: .65rem;
}

.open-teams .button b {
    font-size: 1rem;
}

/* Contact */
.contact-page {
    background: #f2f5fb;
}

.contact-shell {
    min-height: calc(100vh - 130px);
    padding: 150px 7vw 90px;
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 7vw;
    align-items: center;
    background: radial-gradient(circle at 10% 70%,rgba(133,177,255,.26),transparent 28%),#f2f5fb;
}

.contact-intro h1 {
    font-size: clamp(4.2rem,7.5vw,7.5rem);
}

.contact-intro h1 em {
    color: var(--gold);
}

.contact-intro>p:not(.eyebrow) {
    max-width: 430px;
    line-height: 1.8;
    margin: 2rem 0;
}

.contact-direct {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.contact-direct a {
    color: var(--gold);
    font-size: .78rem;
    border-bottom: 1px solid var(--mist);
}

.contact-card {
    background: rgba(255,255,255,.78);
    backdrop-filter: blur(25px);
    -webkit-backdrop-filter: blur(25px);
    border: 1px solid rgba(255,255,255,.9);
    border-radius: 28px;
    padding: 14px;
    box-shadow: 0 30px 90px rgba(0,17,61,.12);
}

.form-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    background: rgba(0,17,61,.06);
    padding: 5px;
    border-radius: 16px;
}

.form-tab {
    border: 0;
    background: transparent;
    padding: 13px;
    border-radius: 12px;
    color: var(--ink);
    font: 500 .72rem "Manrope";
    cursor: pointer;
    transition: .2s ease;
}

.form-tab.active {
    background: #fff;
    box-shadow: 0 4px 18px rgba(0,17,61,.08);
}

.form-tab:hover {
    background: var(--ink);
    color: #fff;
}

.contact-form {
    display: none;
    padding: 30px 20px 18px;
}

.contact-form.active {
    display: block;
}

.field-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.contact-form label {
    display: block;
    color: #59636f;
    font-size: .63rem;
    letter-spacing: .04em;
    margin-bottom: 14px;
}

.contact-form input,.contact-form textarea,.contact-form select {
    width: 100%;
    border: 1px solid rgba(0,17,61,.12);
    border-radius: 12px;
    background: rgba(244,247,252,.75);
    padding: 13px 14px;
    margin-top: 7px;
    color: var(--ink);
    font: 400 .82rem "Manrope";
    outline: none;
    transition: .2s;
}

.contact-form textarea {
    resize: vertical;
}

.contact-form input:focus,.contact-form textarea:focus,.contact-form select:focus {
    border-color: var(--gold);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(0,79,255,.09);
}

.contact-form button {
    width: 100%;
    border: 1px solid var(--gold);
    padding: 16px 18px;
    background: var(--gold);
    color: #fff;
    display: flex;
    justify-content: center;
    font: 600 .67rem "Manrope";
    text-transform: uppercase;
    letter-spacing: .14em;
    cursor: pointer;
    transition: .2s ease;
}

.contact-form button:hover {
    background: #fff;
    color: var(--gold);
}

.form-note {
    color: #7c8792;
    font-size: .55rem;
    text-align: center;
    margin: 12px 0 0;
}

@media (max-width: 1100px) and (min-width:801px) {
    nav {
        gap:1.25rem;
        font-size: .61rem
    }
}

@media (max-width: 900px) {
    .about-principles,.application-path {
        grid-template-columns:1fr
    }

    .about-principles article,.application-path article {
        border-right: 0;
        border-bottom: 1px solid rgba(255,255,255,.16)
    }

    .about-origin,.team-directory,.apply-hero,.contact-shell {
        grid-template-columns: 1fr
    }

    .directory-intro {
        position: static
    }

    .team-hero>p:last-child {
        margin-left: 0
    }

    .apply-orbit {
        width: 75vw;
        margin: auto
    }

    .contact-shell {
        padding-top: 125px
    }

    .member-line {
        display: block
    }

    .member-line span {
        display: block;
        text-align: left;
        margin-top: 5px
    }
}

@media (max-width: 600px) {
    .team-group summary {
        grid-template-columns:35px 1fr 25px
    }

    .team-group summary .hiring-tag {
        display: none
    }

    .group-body {
        padding-left: 0
    }

    .field-row {
        grid-template-columns: 1fr
    }

    .contact-card {
        border-radius: 20px
    }

    .contact-form {
        padding: 25px 8px 12px
    }
}

/* Project Jotun identity */
.visually-hidden {
    position: absolute!important;
    width: 1px!important;
    height: 1px!important;
    padding: 0!important;
    margin: -1px!important;
    overflow: hidden!important;
    clip: rect(0,0,0,0)!important;
    white-space: nowrap!important;
    border: 0!important;
}

.jotun-page {
    --ink: #0b0e1c;
    --gold: #ff4e00;
    --mist: #ff9a70;
}

.jotun-page .project-hero {
    background: radial-gradient(circle at 72% 45%,rgba(255,78,0,.23),transparent 31%),linear-gradient(145deg,#080b16,#12172a);
}

.jotun-project-logo {
    display: block;
    width: min(720px,82vw);
    height: auto;
    margin: 1rem 0 1.4rem;
    filter: drop-shadow(0 0 35px rgba(255,78,0,.23));
    position: relative;
    z-index: 2;
}

.jotun-page .project-hero::before {
    border-color: rgba(255,78,0,.22);
}

.jotun-page .engine-silhouette span {
    background: linear-gradient(90deg,#ff4e00,#ff9a70);
}

.jotun-page .jotun-numbers {
    background: #ff4e00;
}

.jotun-page .feature-blue {
    background: linear-gradient(145deg,#ff4e00,#c92f00);
}

.jotun-page .join-banner {
    background: #ff4e00;
}

.jotun-page .button {
    border-color: #ff4e00;
}

/* Board and contact header */
.board-group {
    border-left: 3px solid var(--gold);
    padding-left: 18px;
}

.board-group .group-code {
    font-size: .48rem;
}

.contact-page .site-header {
    color: var(--ink);
    border-bottom-color: rgba(0,17,61,.12);
}

.contact-page .site-header .brand img {
    filter: brightness(0) saturate(100%);
}

.contact-page .site-header nav {
    color: var(--ink);
}

@media (max-width: 800px) {
    .brand img {
        width:125px
    }

    .contact-page .site-header nav {
        color: #fff
    }

    .contact-page .site-header .menu-button {
        color: var(--ink)
    }
}

/* Language switcher */
.language-toggle {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-left: 24px;
    padding-left: 20px;
    border-left: 1px solid rgba(255,255,255,.24);
}

.language-toggle button {
    min-height: 34px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 5px 9px;
    border: 1px solid transparent;
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font: 500 .52rem/1.1 "Manrope",sans-serif;
    letter-spacing: .035em;
    white-space: nowrap;
    cursor: pointer;
    opacity: .62;
    transition: .2s ease;
}

.language-toggle button img {
    width: 22px;
    height: 14px;
    display: block;
    object-fit: cover;
    border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(255,255,255,.2);
}

.language-toggle button:hover {
    opacity: 1;
    transform: translateY(-1px);
    border-color: rgba(255,255,255,.35);
}

.language-toggle button.active {
    opacity: 1;
    border-color: rgba(133,177,255,.7);
    background: rgba(133,177,255,.14);
}

.contact-page .language-toggle {
    border-left-color: rgba(0,17,61,.18);
}

.contact-page .language-toggle button {
    color: var(--ink);
}

.contact-page .language-toggle button:hover {
    border-color: rgba(0,17,61,.28);
}

.contact-page .language-toggle button.active {
    border-color: rgba(0,79,255,.45);
    background: rgba(0,79,255,.08);
}

@media (max-width: 1120px) {
    .site-header {
        height:72px;
        flex-wrap: wrap
    }

    .menu-button {
        display: block;
        order: 2
    }

    .site-header nav {
        display: none;
        position: absolute;
        top: 72px;
        left: 0;
        right: 0;
        transform: none;
        white-space: normal;
        background: var(--ink);
        padding: 2rem 5vw;
        flex-direction: column;
        border-bottom: 1px solid var(--gold);
        color: #fff
    }

    .site-header nav.open {
        display: flex
    }

    .language-toggle {
        order: 3;
        width: 100%;
        justify-content: flex-end;
        margin: 6px 0 0;
        padding: 0;
        border-left: 0
    }

    .contact-page .site-header nav {
        color: #fff
    }
}

@media (max-width: 800px) {
    .site-header {
        flex-wrap:wrap
    }

    .language-toggle {
        order: 3;
        width: 100%;
        justify-content: flex-end;
        margin: 6px 0 0;
        padding: 0;
        border-left: 0
    }

    .language-toggle button {
        min-height: 30px;
        padding: 4px 8px
    }

    .language-toggle button img {
        width: 20px;
        height: 13px
    }

    .menu-button {
        order: 2
    }

    .site-header nav {
        order: 4
    }
}

@media (max-width: 430px) {
    .brand img {
        width:100px
    }

    .language-toggle {
        gap: 4px
    }

    .language-toggle button {
        gap: 5px;
        padding: 4px 6px;
        font-size: .46rem
    }

    .language-toggle button img {
        width: 18px;
        height: 12px
    }

    .menu-button {
        font-size: .58rem;
        padding: 0
    }
}

@media (max-width: 600px) {
    .language-toggle button {
        width:34px;
        justify-content: center;
        padding: 4px
    }

    .language-toggle button span {
        display: none
    }

    .language-toggle button img {
        width: 22px;
        height: 14px
    }
}

/* Minimal application page */
.minimal-apply {
    min-height: 100vh;
    background: radial-gradient(circle at 50% 34%,rgba(0,79,255,.28),transparent 34%),linear-gradient(145deg,#00091f 0%,#00113d 48%,#00307d 100%);
    color: #fff;
}

.minimal-apply-panel {
    min-height: 100vh;
    padding: 150px 7vw 100px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.minimal-apply-logo {
    display: block;
    width: clamp(180px,20vw,290px);
    height: auto;
    margin-bottom: clamp(42px,7vh,78px);
}

.minimal-apply h1 {
    max-width: 880px;
    margin: 0;
    font-family: -apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif;
    font-size: clamp(1.9rem,4vw,4.4rem);
    font-weight: 200;
    line-height: 1.1;
    letter-spacing: -.025em;
    text-wrap: balance;
}

.minimal-apply-button {
    min-width: 160px;
    margin-top: clamp(42px,7vh,72px);
    padding: 16px 34px;
    border: 1px solid #fff;
    border-radius: 999px;
    background: #fff;
    color: var(--ink);
    font-family: -apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
    font-size: 1rem;
    font-weight: 600;
    transition: background .2s ease,color .2s ease,transform .2s ease;
}

.minimal-apply-button:hover {
    background: transparent;
    color: #fff;
    transform: translateY(-2px);
}

.apply-page .site-footer {
    margin-top: 0;
}

@media (max-width: 600px) {
    .minimal-apply-panel {
        padding:145px 7vw 80px
    }

    .minimal-apply-logo {
        width: 180px;
        margin-bottom: 48px
    }

    .minimal-apply h1 {
        font-size: clamp(1.85rem,8.6vw,2.5rem)
    }

    .minimal-apply-button {
        width: min(240px,78vw);
        margin-top: 48px
    }
}

/* Shared site footer */
.site-footer {
    min-height: 0;
    display: block;
    padding: 0 6vw;
    background: #000b2b;
    color: #fff;
    border-top: 1px solid rgba(133,177,255,.24);
    text-transform: none;
    letter-spacing: normal;
}

.footer-main {
    display: grid;
    grid-template-columns: minmax(260px,1.15fr) 1.85fr;
    gap: 9vw;
    padding: 85px 0 72px;
}

.footer-identity .brand img {
    width: 190px;
}

.footer-identity>p {
    max-width: 350px;
    margin: 2.2rem 0 1.6rem;
    color: rgba(255,255,255,.62);
    font-family: "Italiana",serif;
    font-size: clamp(1.45rem,2.2vw,2.25rem);
    line-height: 1.25;
}

.footer-email {
    display: inline-flex;
    align-items: center;
    gap: 1rem;
    color: var(--mist);
    border-bottom: 1px solid rgba(133,177,255,.42);
    padding-bottom: .45rem;
    font-size: .72rem;
    letter-spacing: .08em;
}

.footer-links {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 3vw;
}

.footer-links>div {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
}

.footer-label {
    margin: 0 0 1.15rem;
    color: var(--mist);
    font-size: .55rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.footer-links a {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    color: rgba(255,255,255,.76);
    font-size: .76rem;
    transition: .2s ease;
}

.footer-links a:hover {
    color: #fff;
    transform: translateX(3px);
}

.footer-links a span {
    color: var(--mist);
}

.footer-bottom {
    min-height: 82px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-top: 1px solid rgba(255,255,255,.14);
    color: rgba(255,255,255,.45);
    font-size: .55rem;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.footer-bottom p {
    margin: 0;
}

.jotun-page .site-footer {
    --mist: #ff9a70;
    border-top-color: rgba(255,154,112,.25);
    background: #080b16;
}

@media (max-width: 800px) {
    .footer-main {
        grid-template-columns:1fr;
        gap: 60px;
        padding: 70px 0 60px
    }

    .footer-links {
        gap: 7vw
    }

    .footer-identity .brand img {
        width: 160px
    }
}

@media (max-width: 560px) {
    .site-footer {
        padding:0 7vw
    }

    .footer-links {
        grid-template-columns: 1fr 1fr;
        gap: 48px 12vw
    }

    .footer-links>div:last-child {
        grid-column: 1/-1
    }

    .footer-bottom {
        min-height: 110px;
        align-items: flex-start;
        justify-content: center;
        flex-direction: column;
        gap: 12px
    }

    .footer-identity>p {
        font-size: 1.65rem
    }
}

/* Open team roles */
.member-line.open-role {
    border-top-style: dashed;
}

.member-line.open-role strong {
    color: var(--gold);
}

.member-line.open-role span {
    color: var(--gold);
    font-weight: 600;
}

/* Team profiles and discipline accents */
.team-group {
    --team-accent: var(--gold);
}

.board-group {
    --team-accent: #004fff;
}

.finance-group {
    --team-accent: #004fff;
}

.daq-group {
    --team-accent: #004fff;
}

.compressor-group {
    --team-accent: #004fff;
}

.combustion-group {
    --team-accent: #004fff;
}

.turbine-group {
    --team-accent: #004fff;
}

.nozzle-group {
    --team-accent: #004fff;
}

.marketing-group {
    --team-accent: #004fff;
}

.mentors-group {
    --team-accent: #004fff;
}

.team-group summary {
    position: relative;
}

.team-group summary:focus {
    outline: none;
}

.team-group summary:focus-visible {
    outline: 1px solid var(--team-accent);
    outline-offset: -1px;
}

.team-group summary::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: -1px;
    width: 0;
    height: 2px;
    background: var(--team-accent);
    transition: width .35s ease;
}

.team-group[open] summary::before {
    width: 100%;
}

.team-group .group-code,.team-group summary h3,.team-group summary b,.team-group .group-body>a {
    color: var(--team-accent);
}

.team-group .hiring-tag {
    color: var(--ink);
    border-color: var(--team-accent);
    background: color-mix(in srgb,var(--team-accent) 18%,transparent);
}

.team-group .member-line.open-role strong,.team-group .member-line.open-role span {
    color: var(--team-accent);
}

.member-grid {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 24px;
    margin: 28px 0;
}

.member-card {
    min-width: 0;
}

.member-card img {
    display: block;
    width: 100%;
    aspect-ratio: 4/5;
    object-fit: cover;
    background: #fff;
    border: 1px solid var(--team-accent);
    border-radius: 18px;
}

.member-card>div {
    padding: 14px 2px 4px;
}

.member-card strong {
    display: block;
    color: var(--team-accent);
    font-family: "Italiana";
    font-size: 1.25rem;
    font-weight: 400;
    line-height: 1.15;
}

.member-card span {
    display: block;
    margin-top: 7px;
    color: #647279;
    font-size: .58rem;
    line-height: 1.55;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.board-group .member-grid {
    grid-template-columns: repeat(3,minmax(0,1fr));
}

@media (max-width: 700px) {
    .member-grid,.board-group .member-grid {
        grid-template-columns:repeat(2,minmax(0,1fr));
        gap: 16px;
    }

    .member-card img {
        border-radius: 14px;
    }
}

@media (max-width: 430px) {
    .member-grid,.board-group .member-grid {
        grid-template-columns:1fr;
    }
}

/* Team group pills and expanded member cards */
.group-stack {
    border-top: 0;
    display: grid;
    gap: 16px;
}

.team-group {
    border-bottom: 0;
}

.board-group {
    border-left: 0;
    padding-left: 0;
}

.team-group summary {
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto 28px;
    gap: 14px;
    padding: 18px 24px;
    border-radius: 999px;
    background: var(--team-accent);
    color: var(--pill-text,#fff);
    box-shadow: 0 10px 28px color-mix(in srgb,var(--team-accent) 20%,transparent);
    transition: transform .2s ease,box-shadow .2s ease;
}

.team-group summary:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 34px color-mix(in srgb,var(--team-accent) 28%,transparent);
}

.team-group summary::before {
    display: none;
}

.team-group summary h3,.team-group summary b {
    color: var(--pill-text,#fff);
}

.team-group summary h3 {
    font-family: "Manrope";
    font-size: clamp(.9rem,1.7vw,1.15rem);
    font-weight: 600;
    letter-spacing: .02em;
}

.team-group summary b {
    justify-self: end;
    font-size: 1.2rem;
    line-height: 1;
}

.team-group .hiring-tag {
    color: var(--pill-text,#fff);
    border-color: currentColor;
    background: transparent;
}

.finance-group,.daq-group,.combustion-group,.turbine-group,.marketing-group {
    --pill-text: #00113d;
}

.group-body {
    max-width: none;
    margin-top: 12px;
    padding: 30px;
    border: 1px solid rgba(0,17,61,.1);
    border-top: 4px solid var(--team-accent);
    border-radius: 28px;
    background: #fff;
    box-shadow: 0 20px 55px rgba(0,17,61,.08);
}

.group-body>p {
    max-width: 650px;
    margin-top: 0;
}

.team-group .member-card img {
    border-color: rgba(0,17,61,.15);
}

.team-group .member-card strong {
    color: var(--ink);
}

.team-group .member-line.open-role strong {
    color: var(--ink);
}

.team-group .member-line.open-role span {
    color: #647279;
}

.team-group .group-body>a {
    padding: 11px 16px;
    border-radius: 999px;
    background: var(--team-accent);
    color: var(--pill-text,#fff);
}

@media (max-width: 600px) {
    .team-group summary,.board-group summary {
        grid-template-columns:minmax(0,1fr) 25px;
        padding: 16px 19px;
    }

    .team-group summary .hiring-tag {
        display: none;
    }

    .group-body {
        padding: 22px 18px;
        border-radius: 22px;
    }
}

/* Team hierarchy */
.team-directory {
    display: block;
}

.directory-intro {
    position: static;
    max-width: 900px;
    margin: 0 auto 70px;
    text-align: center;
}

.directory-intro>p:last-child {
    max-width: 620px;
    margin: 2rem auto 0;
}

.group-controls {
    max-width: 1000px;
    margin: -38px auto 28px;
    display: flex;
    justify-content: flex-end;
}

.team-groups-toggle {
    padding: 10px 17px;
    border: 1px solid rgba(255,255,255,.72);
    border-radius: 999px;
    background: transparent;
    color: #fff;
    font: 600 .58rem/1 "Manrope",sans-serif;
    letter-spacing: .1em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .2s ease,color .2s ease,transform .2s ease;
}

.team-groups-toggle:hover {
    background: #fff;
    color: var(--ink);
    transform: translateY(-1px);
}

.group-stack {
    max-width: 1200px;
    margin: 0 auto;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 22px;
    align-items: start;
}

.team-group {
    min-width: 0;
    --pill-text: #fff;
}

.board-group {
    grid-column: 1/-1;
    --team-accent: #00113d;
}

.compressor-group,.combustion-group,.turbine-group,.nozzle-group,.finance-group,.marketing-group,.daq-group,.mentors-group {
    grid-column: auto;
}

.team-group summary {
    padding: 24px 30px;
}

.team-group summary h3 {
    font-size: clamp(1rem,1.9vw,1.3rem);
}

.group-body {
    padding: 32px 30px;
}

.mentors-group summary h3 {
    font-family: Arial,Helvetica,sans-serif;
    font-variant-ligatures: none;
}

.team-group summary h3,.team-group summary b,.team-group .hiring-tag {
    color: #fff;
    text-shadow: 0 1px 3px rgba(0,17,61,.42);
}

@media (max-width: 900px) {
    .group-controls {
        margin-top:-38px;
    }

    .group-stack {
        grid-template-columns: 1fr;
    }

    .board-group,.compressor-group,.combustion-group,.turbine-group,.nozzle-group,.finance-group,.marketing-group,.daq-group,.mentors-group {
        grid-column: 1;
    }
}

@media (max-width: 600px) {
    .group-controls {
        margin:-42px auto 24px;
        justify-content: center
    }

    .team-groups-toggle {
        width: 100%;
        max-width: 280px;
        padding: 12px 16px
    }
}

/* Member overview identity */
.team-directory {
    padding-top: 170px;
    background: radial-gradient(circle at 76% 45%,rgba(0,79,255,.4),transparent 30%),var(--ink);
    color: #fff;
}

.directory-intro h2 {
    color: #fff;
}

.directory-intro .eyebrow {
    color: var(--mist);
}

.directory-intro>p:last-child {
    color: rgba(255,255,255,.72);
}

.team-group summary {
    border: 1px solid transparent;
}

.board-group summary {
    border-color: #fff;
}

.group-body {
    color: var(--ink);
}

/* Interactive Jotun compressor */
.compressor-model-shell {
    isolation: isolate;
    min-width: 0;
    background: radial-gradient(circle at 50% 46%,rgba(255,78,0,.4),rgba(11,14,28,.35) 48%,#0b0e1c 78%)!important;
}

.compressor-model {
    width: 100%;
    height: 100%;
    min-height: 720px;
    background: transparent;
    --progress-bar-color: var(--gold);
    --progress-bar-height: 2px;
}

.compressor-model::part(default-progress-bar) {
    border-radius: 0;
}

.model-fullscreen {
    position: absolute;
    z-index: 3;
    top: 28px;
    right: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,154,112,.55);
    background: rgba(8,11,22,.68);
    color: #fff;
    padding: 10px 13px;
    font: 500 .56rem "Manrope",sans-serif;
    letter-spacing: .14em;
    text-transform: uppercase;
    cursor: pointer;
    backdrop-filter: blur(10px);
    transition: .2s ease;
}

.model-fullscreen:hover {
    border-color: #fff;
    background: #fff;
    color: #0b0e1c;
}

.model-controls-hint {
    position: absolute;
    z-index: 2;
    left: 30px;
    top: 30px;
    display: flex;
    gap: 1.5rem;
    color: rgba(255,255,255,.62);
    font-size: .53rem;
    letter-spacing: .13em;
    text-transform: uppercase;
    pointer-events: none;
}

.compressor-model-shell>.compressor-equation {
    z-index: 2;
    color: #fff;
    pointer-events: none;
}

.compressor-model-shell:fullscreen {
    width: 100vw;
    height: 100vh;
    background: #080b16!important;
}

.compressor-model-shell:fullscreen .compressor-model {
    min-height: 100vh;
}

/* Shared button shape, selection contrast, and inverse hover states */
button,.button,.apply-cta {
    border-radius: 999px!important;
}

.launch-card {
    border-radius: 22px!important;
    overflow: hidden;
}

.button,.apply-cta,.contact-form button,.model-fullscreen {
    min-height: 44px;
    justify-content: center;
}

.join-banner h2::selection,.join-banner h2 em::selection {
    background: var(--ink);
    color: #fff;
}

.join-banner h2::-moz-selection,.join-banner h2 em::-moz-selection {
    background: var(--ink);
    color: #fff;
}

/* Project Jotun product reveal */
.jotun-page .jotun-reveal {
    min-height: max(100svh,900px);
    padding: 130px 4vw 58px;
    align-items: center;
    justify-content: flex-start;
    text-align: center;
    background: #000;
}

.jotun-page .jotun-reveal::before {
    width: 90vw;
    height: 90vw;
    max-width: 1500px;
    max-height: 1500px;
    left: 50%;
    top: 10%;
    border: 0;
    transform: translateX(-50%);
    background: radial-gradient(circle,rgba(255,78,0,.12),transparent 58%);
    pointer-events: none;
}

.reveal-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.reveal-copy .eyebrow {
    margin-bottom: 1rem;
    color: #ff9a70;
}

.reveal-copy h1 {
    max-width: none;
    font-size: clamp(4.8rem,9vw,9rem);
    line-height: .88;
    color: #fff;
}

.reveal-copy h1 em {
    color: #ff4e00;
}

.reveal-subtitle {
    margin: 1.5rem 0 0;
    color: rgba(255,255,255,.7);
    font-size: clamp(.82rem,1.2vw,1rem);
    letter-spacing: .02em;
}

.reveal-product {
    position: relative;
    z-index: 1;
    width: min(92vw,1450px);
    margin: -1.5rem auto 0;
}

.reveal-product img {
    display: block;
    width: 100%;
    height: auto;
    filter: drop-shadow(0 30px 70px rgba(255,78,0,.08));
    animation: product-reveal 1.2s cubic-bezier(.2,.7,.2,1) both;
}

.jotun-reveal .scroll-cue {
    left: 50%;
    bottom: 30px;
    transform: translateX(-50%);
    color: rgba(255,255,255,.52);
    white-space: nowrap;
}

@keyframes product-reveal {
    from {
        opacity: 0;
        transform: scale(.96) translateY(22px);
    }

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

@media (max-width: 700px) {
    .jotun-page .jotun-reveal {
        min-height:820px;
        padding: 125px 0 55px;
    }

    .reveal-copy {
        padding: 0 7vw;
    }

    .reveal-copy h1 {
        font-size: clamp(4.2rem,20vw,6.5rem);
    }

    .reveal-product {
        width: 122vw;
        margin: 1rem -11vw 0;
    }
}

@media (prefers-reduced-motion:reduce) {
    .reveal-product img {
        animation: none;
    }
}

@media (max-width: 900px) {
    .compressor-model {
        min-height:480px
    }

    .model-controls-hint {
        left: 22px;
        top: 22px
    }

    .model-fullscreen {
        right: 22px;
        top: 18px
    }

    .compressor-model-shell>.compressor-equation {
        bottom: 7%
    }
}

@media (max-width: 520px) {
    .model-controls-hint {
        gap:.7rem;
        flex-direction: column
    }

    .model-fullscreen {
        font-size: .5rem
    }

    .compressor-model-shell>.compressor-equation {
        font-size: .9rem
    }
}
