/* Exsoune KSE machine engineering section - balanced layout v3. Scoped to #machine-engineering. */
#machine-engineering.ex-kse-balanced{
    position:relative;
    overflow:hidden;
    padding:clamp(48px,6vw,88px) 0;
    background:
        radial-gradient(circle at 8% 14%, rgba(0,185,216,.09), transparent 34%),
        radial-gradient(circle at 94% 78%, rgba(0,185,216,.075), transparent 33%),
        linear-gradient(180deg,#f7fbfd 0%,#fff 44%,#f6fafc 100%);
}
#machine-engineering.ex-kse-balanced:before{
    content:"";
    position:absolute;
    inset:22px max(20px,calc((100vw - 1240px)/2)) auto max(20px,calc((100vw - 1240px)/2));
    height:1px;
    background:linear-gradient(90deg,transparent,rgba(0,185,216,.35),transparent);
    pointer-events:none;
}
.ex-kse-balanced__wrap{position:relative;display:grid;gap:clamp(24px,3.4vw,42px)}
.ex-kse-balanced__header{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
    gap:clamp(18px,3.6vw,54px);
    align-items:end;
}
.ex-kse-balanced__heading{display:grid;gap:14px;width: 100%}
.ex-kse-balanced__heading h2{
    max-width:760px;
    margin:0;
    color:#07111f;
    font-size:clamp(28px,4.15vw,52px);
    line-height:1.04;
    letter-spacing:-.06em;
    text-wrap:balance;
}
.ex-kse-balanced__heading p{
    max-width:950px;
    margin:0;
    color:#52637a;
    font-size:clamp(15px,1.12vw,18px);
    line-height:1.75;
}
.ex-kse-balanced__platforms{
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    grid-column:1/-1;
    gap:10px;
}
.ex-kse-balanced__platforms span{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:48px;
    padding:10px 12px;
    border:1px solid rgba(7,17,31,.075);
    border-radius:16px;
    background:rgba(255,255,255,.82);
    box-shadow:0 12px 28px rgba(7,17,31,.045);
    color:#07111f;
    font-size:12px;
    font-weight:900;
    letter-spacing:.09em;
}
.ex-kse-balanced__cases{display:grid;gap:clamp(18px,2vw,26px)}
.ex-kse-case{
    position:relative;
    display:grid;
    gap:clamp(18px,3.2vw,42px);
    align-items:center;
    padding:clamp(18px,2.4vw,32px);
    border:1px solid rgba(7,17,31,.075);
    border-radius:34px;
    background:rgba(255,255,255,.86);
    box-shadow:0 24px 80px rgba(7,17,31,.075);
    backdrop-filter:blur(16px);
}
.ex-kse-case--texturizing{grid-template-columns:minmax(280px,.75fr) minmax(430px,1.15fr)}
.ex-kse-case--rewinder{grid-template-columns:minmax(300px,.62fr) minmax(0,1fr)}
.ex-kse-case__copy{display:grid;gap:13px;align-content:center;min-width:0}
.ex-kse-case__number{
    width:max-content;
    padding:8px 10px;
    border:1px solid rgba(0,185,216,.22);
    border-radius:999px;
    background:rgba(0,185,216,.08);
    color:#0287a6;
    font-size:11px;
    font-weight:950;
    letter-spacing:.1em;
}
.ex-kse-case__kicker{
    color:#008bb1;
    font-size:12px;
    font-weight:950;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.ex-kse-case__copy h3{
    max-width:620px;
    margin:0;
    color:#07111f;
    font-size:clamp(24px,2.85vw,40px);
    line-height:1.08;
    letter-spacing:-.052em;
    text-wrap:balance;
}
.ex-kse-case__copy p{
    max-width:720px;
    margin:0;
    color:#52637a;
    font-size:clamp(14px,1.05vw,16px);
    line-height:1.78;
}
.ex-kse-feature-row{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:4px;
}
.ex-kse-feature-row span{
    display:inline-flex;
    min-height:36px;
    align-items:center;
    padding:8px 12px;
    border:1px solid rgba(7,17,31,.075);
    border-radius:999px;
    background:linear-gradient(180deg,#fff,rgba(247,250,252,.9));
    color:#25344b;
    font-size:12px;
    font-weight:850;
}
.ex-kse-media{
    position:relative;
    overflow:hidden;
    isolation:isolate;
    border:1px solid rgba(7,17,31,.09);
    background:#07111f;
    box-shadow:0 24px 70px rgba(7,17,31,.13);
    transform:translateZ(0);
}
.ex-kse-media video,
.ex-kse-media canvas{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
}
.ex-kse-media video{
    z-index:1;
    object-fit:cover;
    filter:saturate(1.04) contrast(1.02);
}
.ex-kse-media canvas{
    z-index:2;
    opacity:.24;
    mix-blend-mode:screen;
    pointer-events:none;
}
.ex-kse-media:before{
    content:"";
    position:absolute;
    inset:0;
    z-index:3;
    background:
        linear-gradient(180deg,rgba(7,17,31,.02) 0%,rgba(7,17,31,.02) 50%,rgba(7,17,31,.58) 100%),
        linear-gradient(90deg,rgba(7,17,31,.13),rgba(7,17,31,0) 42%);
    pointer-events:none;
}
.ex-kse-media:after{
    content:"";
    position:absolute;
    inset:0;
    z-index:4;
    border-radius:inherit;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.16), inset 0 -80px 120px rgba(7,17,31,.28);
    pointer-events:none;
}
.ex-kse-media--landscape{
    min-height:clamp(280px,31vw,350px);
    aspect-ratio:16/9;
    border-radius:28px;
}
.ex-kse-media__caption{
    position:absolute;
    z-index:5;
    left:clamp(16px,2vw,26px);
    right:clamp(16px,2vw,26px);
    bottom:clamp(16px,2vw,24px);
    display:grid;
    gap:8px;
    color:#fff;
}
.ex-kse-media__caption span{
    width:max-content;
    max-width:100%;
    padding:7px 10px;
    border:1px solid rgba(255,255,255,.25);
    border-radius:999px;
    background:rgba(255,255,255,.13);
    backdrop-filter:blur(12px);
    color:rgba(255,255,255,.92);
    font-size:10px;
    font-weight:950;
    letter-spacing:.13em;
    text-transform:uppercase;
}
.ex-kse-media__caption strong{
    max-width:560px;
    font-size:clamp(18px,1.8vw,28px);
    line-height:1.08;
    letter-spacing:-.045em;
    text-wrap:balance;
}
.ex-kse-portrait-stage{
    position:relative;
    min-height:520px;
    display:flex;
    align-items:center;
    justify-content:center;
    overflow:hidden;
    border-radius:30px;

}
.ex-kse-portrait-stage__halo{
    position:absolute;
    width:min(78%,360px);
    aspect-ratio:1;
    border-radius:999px;
    background:radial-gradient(circle,rgba(0,185,216,.14),rgba(0,185,216,0) 68%);
    filter:blur(4px);
}
.ex-kse-media--portrait{
    width:min(74%,310px);
    max-width:310px;
    aspect-ratio:9/16;
    border-radius:34px;
    box-shadow:0 28px 70px rgba(7,17,31,.18);
}
.ex-kse-media--portrait:before{
    background:linear-gradient(180deg,rgba(7,17,31,.015) 0%,rgba(7,17,31,.04) 50%,rgba(7,17,31,.62) 100%);
}
.ex-kse-media--portrait .ex-kse-media__caption strong{font-size:clamp(17px,1.55vw,23px)}
.ex-kse-media--portrait .ex-kse-media__caption{left:16px;right:16px;bottom:16px}
.ex-kse-media--portrait video{object-fit:cover}
.ex-kse-media--portrait:after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.18), inset 0 -74px 110px rgba(7,17,31,.36)}
.ex-kse-media--portrait .ex-kse-media__caption span{font-size:9px}
@media (max-width:1120px){
    .ex-kse-balanced__header{grid-template-columns:1fr}
    .ex-kse-case--texturizing,.ex-kse-case--rewinder{grid-template-columns:1fr}
    .ex-kse-case--rewinder .ex-kse-portrait-stage{order:2}
    .ex-kse-case--rewinder .ex-kse-case__copy{order:1}
    .ex-kse-portrait-stage{min-height:auto;padding:28px 0}
    .ex-kse-media--portrait{width:min(68%,300px)}
}
@media (max-width:760px){
    #machine-engineering.ex-kse-balanced{padding:42px 0}
    .ex-kse-balanced__heading h2{font-size:clamp(26px,8vw,38px);letter-spacing:-.052em}
    .ex-kse-balanced__platforms{grid-template-columns:repeat(2,minmax(0,1fr))}
    .ex-kse-balanced__platforms span:last-child{grid-column:1/-1}
    .ex-kse-case{border-radius:26px;padding:16px;gap:18px}
    .ex-kse-media--landscape{min-height:250px;aspect-ratio:4/3;border-radius:22px}
    .ex-kse-case__copy h3{font-size:clamp(23px,7vw,32px)}
    .ex-kse-media--portrait{width:min(78%,270px)}
    .ex-kse-portrait-stage{border-radius:24px;padding:22px 0}
}
@media (max-width:480px){
    .ex-kse-balanced__platforms{grid-template-columns:1fr}
    .ex-kse-media--landscape{aspect-ratio:1/1;min-height:230px}
    .ex-kse-feature-row span{width:100%;justify-content:center}
    .ex-kse-media__caption strong{font-size:19px}
    .ex-kse-media--portrait{width:min(88%,250px)}
}
@media (prefers-reduced-motion:reduce){
    #machine-engineering .ex-kse-media canvas{display:none}
}
