/* Science & Research — Operational Excellence subpage. All rules scoped under .op */

@keyframes opSpin { to { transform: rotate(360deg); } }
@keyframes opRing { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.7); opacity: 0; } }

.op { position: relative; background: #046459; color: #fff; padding: 16vh 5vw 14vh; font-family: Poppins, sans-serif; }
.op *, .op *::before, .op *::after { box-sizing: border-box; }
.op a { color: #fff; }
.op a:hover { color: #8ff7dc; }
.op .op-icon { font-family: 'Material Symbols Outlined'; font-weight: 400; font-style: normal; line-height: 1; letter-spacing: normal; text-transform: none; white-space: nowrap; direction: ltr; -webkit-font-feature-settings: 'liga'; font-feature-settings: 'liga'; -webkit-font-smoothing: antialiased; }
.op .op-mint { color: #8ff7dc; }

.op .op-rv { opacity: 0; }
.op .op-clip { clip-path: inset(100% 0 0 0 round 28px); }
.op .op-px { position: absolute; left: 0; top: -12%; width: 100%; height: 124%; object-fit: cover; display: block; }

.op .op-eyebrow { display: flex; align-items: center; gap: 10px; font-family: 'JetBrains Mono', monospace; font-size: 11px; font-weight: 600; letter-spacing: 3px; color: #8ff7dc; }
.op .op-eyebrow__dot { width: 7px; height: 7px; border-radius: 50%; background: #8ff7dc; }
.op .op-eyebrow__rule { width: 28px; height: 1px; background: #8ff7dc; }

.op .op-intro { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); gap: 6vw; align-items: center; }
.op .op-intro__text { display: flex; flex-direction: column; gap: 3.2vh; min-width: 0; }
.op .op-intro__title { margin: 0; font-size: min(5vw, 8.6vh, 80px); line-height: .98; font-weight: 800; letter-spacing: -.05em; text-wrap: balance; }
.op .op-intro__lede { margin: 0; font-size: min(1.3vw, 2.6vh, 19px); line-height: 1.66; font-weight: 500; text-wrap: pretty; }
.op .op-intro__note { margin: 0; font-size: min(1.15vw, 2.4vh, 17px); line-height: 1.72; text-wrap: pretty; padding-left: 20px; border-left: 3px solid #8ff7dc; }
.op .op-intro__media { position: relative; height: min(80vh, 56vw); }
.op .op-intro__main { position: absolute; right: 0; top: 0; width: 82%; height: 86%; border-radius: 28px; overflow: hidden; }
.op .op-intro__inset { position: absolute; left: 0; bottom: 0; width: 42%; height: 48%; border-radius: 24px; overflow: hidden; border: 8px solid #046459; box-shadow: 0 30px 60px rgba(8, 60, 70, .3); }

.op .op-plat { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 4vw; align-items: center; margin-top: 14vh; }
.op .op-plat__text { display: flex; flex-direction: column; gap: 3.4vh; min-width: 0; }
.op .op-plat__title { margin: 0; display: flex; flex-direction: column; font-size: min(4.6vw, 8vh, 76px); line-height: .95; font-weight: 800; letter-spacing: -.05em; }
.op .op-plat__title-light { font-weight: 300; color: #8ff7dc; }
.op .op-plat__lede { margin: 0; max-width: 420px; font-size: min(1.2vw, 2.4vh, 18px); line-height: 1.6; font-weight: 500; color: #fff; text-wrap: pretty; }

.op .op-groups { display: flex; flex-direction: column; gap: 10px; }
.op .op-group { position: relative; display: flex; align-items: center; gap: 16px; padding: 14px 18px; border: 1px solid rgba(255, 255, 255, .14); border-radius: 18px; background: rgba(255, 255, 255, .04); color: #fff; font-family: Poppins, sans-serif; text-align: left; cursor: pointer; overflow: hidden; transform: translateX(0); transition: background .4s ease, border-color .4s ease, transform .4s cubic-bezier(.2, 0, 0, 1); }
.op .op-group.is-active { border-color: var(--op-c); background: rgba(143, 247, 220, .12); transform: translateX(8px); }
.op .op-group:focus-visible { outline: 2px solid #8ff7dc; outline-offset: 3px; }
.op .op-group__icon { width: 44px; height: 44px; flex: none; border-radius: 50%; background: var(--op-c); color: #081338; display: flex; align-items: center; justify-content: center; font-size: 22px; box-shadow: 0 0 0 var(--op-c); transition: box-shadow .4s ease; }
.op .op-group.is-active .op-group__icon { box-shadow: 0 0 24px var(--op-c); }
.op .op-group__copy { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.op .op-group__title { font-size: min(1.3vw, 2.5vh, 19px); font-weight: 700; letter-spacing: -.01em; }
.op .op-group__list { font-size: 12.5px; line-height: 1.4; color: rgba(255, 255, 255, .8); }

.op .op-orbit-wrap { position: relative; min-width: 0; display: flex; justify-content: center; }
.op .op-orbit { position: relative; width: min(44vw, 74vh, 680px); aspect-ratio: 1; }
.op .op-orbit__glow { position: absolute; left: 10%; right: 10%; bottom: -8%; height: 16%; border-radius: 50%; background: radial-gradient(ellipse at center, rgba(143, 247, 220, .35) 0%, rgba(143, 247, 220, 0) 70%); filter: blur(10px); pointer-events: none; }
.op .op-orbit__ring-dashed { position: absolute; inset: 11%; border-radius: 50%; border: 1px dashed rgba(143, 247, 220, .35); pointer-events: none; }
.op .op-orbit__ring-solid { position: absolute; inset: 26%; border-radius: 50%; border: 1px solid rgba(143, 247, 220, .2); pointer-events: none; }
.op .op-orbit__sweep { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(from 0deg, rgba(143, 247, 220, 0) 0deg, rgba(143, 247, 220, .16) 40deg, rgba(143, 247, 220, 0) 80deg); animation: opSpin 9s linear infinite; pointer-events: none; }

.op .op-core { position: absolute; inset: 36%; border-radius: 50%; }
.op .op-core__pulse { position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(143, 247, 220, .6); animation: opRing 3s ease-out infinite; }
.op .op-core__pulse--late { animation-delay: 1.5s; }
.op .op-core__ball { position: absolute; inset: 0; border-radius: 50%; overflow: hidden; background: radial-gradient(circle at 32% 28%, #1f4fff 0%, #000f9f 45%, #12103b 100%); box-shadow: 0 0 80px rgba(0, 15, 159, .9), 0 0 0 10px rgba(143, 247, 220, .08), inset 0 -20px 40px rgba(8, 19, 56, .5); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; }
.op .op-core__gloss { position: absolute; left: 14%; top: 8%; width: 46%; height: 30%; border-radius: 50%; background: radial-gradient(ellipse at center, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, 0) 70%); transform: rotate(-24deg); pointer-events: none; }
.op .op-core__label { position: relative; font-family: 'JetBrains Mono', monospace; font-size: 10.5px; font-weight: 600; letter-spacing: 2.5px; color: #8ff7dc; }
.op .op-core__name { position: relative; max-width: 80%; font-size: min(1.9vw, 3.4vh, 28px); line-height: 1.05; font-weight: 800; letter-spacing: -.03em; color: #fff; text-wrap: balance; }

.op .op-orbit__spin { position: absolute; inset: 0; animation: opSpin 70s linear infinite; }
.op .op-form-pos { position: absolute; transform: translate(-50%, -50%); }
.op .op-form-counter { animation: opSpin 70s linear infinite reverse; }
.op .op-form { display: flex; align-items: center; gap: 10px; padding: 7px 16px 7px 7px; border-radius: 999px; background: rgba(8, 19, 56, .5); border: 1px solid rgba(255, 255, 255, .18); color: #fff; font-size: min(1vw, 1.9vh, 15px); font-weight: 600; white-space: nowrap; opacity: .38; transform: scale(.92); box-shadow: none; -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); transition: opacity .5s ease, transform .5s cubic-bezier(.2, 0, 0, 1), box-shadow .5s ease, background .5s ease; }
.op .op-form.is-active { opacity: 1; transform: scale(1.08); background: rgba(8, 19, 56, .85); border-color: var(--op-c); box-shadow: 0 0 30px color-mix(in srgb, var(--op-c) 40%, transparent); }
.op .op-form__icon { width: 32px; height: 32px; border-radius: 50%; background: var(--op-c); color: #081338; display: flex; align-items: center; justify-content: center; font-size: 18px; }
