/* Language control/dialog only. Original navigation and page CSS are preserved. */
.language-dialog{position:fixed;inset:auto 24px auto auto;top:64px;width:410px;max-width:calc(100vw - 24px);max-height:min(640px,calc(100dvh - 88px));margin:0;overflow:auto;overscroll-behavior:contain;color:#e8eaef;background:#060c15;border:1px solid #ffffff26;box-shadow:0 20px 80px #000c;border-radius:14px;padding:0;font-family:'IBM Plex Mono','Noto Sans JP',monospace}
.language-dialog[open]{display:flex;flex-direction:column}
.language-dialog>:not(.language-list){flex-shrink:0}
.language-dialog::backdrop{background:#0008}
.language-dialog [hidden],.language-status[hidden],.language-status [hidden]{display:none!important}
.language-dialog .dialog-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 20px 14px}
.language-dialog .dialog-header h2{font:500 15px/1.5 'IBM Plex Mono','Noto Sans JP',sans-serif}
.language-dialog .icon-close{min-width:40px;min-height:40px;background:#ffffff06;border:1px solid #ffffff18;border-radius:6px;color:#a9b6c6;font:24px/1 system-ui;cursor:pointer}
.language-dialog .search-label{display:block;margin:0 20px 6px;color:#a3afbd;font-size:10px}
#language-search{display:block;box-sizing:border-box;width:calc(100% - 40px);margin:0 20px 14px;padding:12px 13px;min-height:46px;border:1px solid #ffffff24;background:#0006;border-radius:7px;color:#fff;font:13px/1.5 'IBM Plex Mono','Noto Sans JP',sans-serif}
#language-search::placeholder{color:#87919f}
.language-list{overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#00e5ff50 transparent;flex:1 1 auto;min-height:58px;max-height:none;padding:6px 10px 12px;scroll-padding-block:10px}
.language-option{display:flex;align-items:center;gap:15px;text-align:start;width:100%;min-height:58px;padding:11px 13px;border:1px solid transparent;border-radius:7px;background:transparent;color:#e0e6ef;font:15px/1.45 'IBM Plex Mono','Noto Sans JP',sans-serif;cursor:pointer}
.language-option:hover{background:#ffffff06}.language-option[aria-selected=true]{background:#00e5ff0c;border-color:#00e5ff22;color:#00e5ff}
.language-names{min-width:0;flex:1}.language-native{display:block;overflow-wrap:anywhere}.language-supplement{display:block;font-size:10px;color:#949eac;margin-top:2px;overflow-wrap:anywhere}.language-check{width:20px;font-size:16px;color:#00e5ff}
.language-dialog .no-results{margin:4px 20px 25px;color:#a7b2c0;font-size:12px}.sheet-handle{display:none}
.language-dialog .inline-retry{margin:0 20px 20px;padding:10px 16px;min-height:44px;color:#00e5ff;background:#00e5ff09;border:1px solid #00e5ff55;border-radius:6px;cursor:pointer}
.language-status{position:fixed;inset:auto 15px 15px;z-index:30001;margin:auto;width:fit-content;max-width:calc(100vw - 30px);padding:14px 18px;border:1px solid #00e5ff55;background:#07121b;border-radius:8px;color:#d9e6ef;font:12px/1.5 'IBM Plex Mono','Noto Sans JP',sans-serif}
.language-status button{background:none;color:#00e5ff;border:1px solid #00e5ff55;border-radius:5px;margin-inline-start:12px;padding:8px;cursor:pointer}
/* RTL applies to translated text; branded navigation and scientific SVGs retain orientation. */
html[lang=ar] .hero-title{direction:ltr}
html[lang=ar] .category-section{text-align:right}
html[lang=ar] [data-i18n],html[lang=ar] .language-dialog,html[lang=ar] .language-dialog h2,html[lang=ar] #language-search{font-family:Tahoma,Arial,sans-serif;letter-spacing:0}
html[lang=ar] .category-action::after{content:'←'}
html[lang=ar] .home-category:hover .category-action::after{transform:translateX(-4px)}
html[lang=hi] [data-i18n]{letter-spacing:0}
@media(max-width:640px){.language-dialog{inset:auto 0 0;top:auto;width:100%;max-width:100%;height:86dvh;max-height:86dvh;border-radius:18px 18px 0 0;border-bottom:0;margin:0;padding-bottom:env(safe-area-inset-bottom)}.language-dialog .dialog-header{padding-top:8px}.sheet-handle{display:block;width:38px;height:4px;background:#ffffff35;border-radius:9px;margin:10px auto 3px}.language-list{max-height:none;min-height:58px;padding-bottom:16px}.language-option{min-height:59px}.language-dialog .search-label{font-size:11px}#language-search{font-size:16px}}

/* New Artemis translations must not push the original header controls. The
 * original English badge width is characters*(1ch+2px)+33px (padding/border,
 * dot and gap). Native EN/JA badge geometry stays exactly as published. */
html:not([lang="en"]):not([lang="ja"]) #live-badge{flex-shrink:0;min-width:0}
html:not([lang="en"]):not([lang="ja"]) #live-badge.complete{width:calc(9ch + 47px)}
html:not([lang="en"]):not([lang="ja"]) #live-badge.pre-launch{width:calc(10ch + 53px)}
html:not([lang="en"]):not([lang="ja"]) #live-badge.live{width:calc(4ch + 41px)}
html:not([lang="en"]):not([lang="ja"]) #live-text{min-width:0;overflow:hidden;text-overflow:ellipsis}
@media(max-width:768px){
 html:not([lang="en"]):not([lang="ja"]) #live-badge.complete{width:calc(9ch + 34px)}
 html:not([lang="en"]):not([lang="ja"]) #live-badge.pre-launch{width:calc(10ch + 37px)}
 html:not([lang="en"]):not([lang="ja"]) #live-badge.live{width:calc(4ch + 31px)}
}
html[lang="ar"] [data-os-copy]{direction:rtl;unicode-bidi:plaintext;font-family:Tahoma,Arial,sans-serif;letter-spacing:0}
/* Copy that contains Arabic reads as an Arabic paragraph even when it opens with a Latin name such as "OrbitSmith". */
html[lang="ar"] [data-os-copy][dir="rtl"]{unicode-bidi:isolate}
html[lang="ar"] [data-os-prose]{font-family:Tahoma,Arial,sans-serif;letter-spacing:0}
/* Navigation keeps the header's left-to-right layout so translated Arabic labels line up with the untranslated category labels; plaintext keeps the Arabic words themselves in reading order. */
html[lang="ar"] .os-category-nav [dir="rtl"]{direction:ltr;unicode-bidi:plaintext;text-align:left}
/* Short numbers, dates and names beside Arabic copy line up with it on the right; plaintext keeps their characters left-to-right. */
html[lang="ar"] [data-os-ar-peer]{unicode-bidi:plaintext;text-align:right}
/* Label/value blocks follow the right-aligned Arabic headings; plaintext keeps numbers, times and identifiers in their own left-to-right order. */
html[lang="ar"] :is(.detail-table,.gs-beginner-selected-satellite,.gs-beginner-summary){direction:rtl}
html[lang="ar"] .detail-table td,html[lang="ar"] :is(.gs-beginner-selected-satellite,.gs-beginner-summary) :is(span,strong,dt,dd){unicode-bidi:plaintext;text-align:right}
html[lang="ar"] .detail-table .dt-label{padding-right:0;padding-left:8px}
html[lang="hi"] [data-os-copy]{letter-spacing:0}
html[lang="ar"] .tl-time{direction:ltr;unicode-bidi:isolate}

/* os-review-header-language-fit */
html:not([lang="en"]):not([lang="ja"]):not([lang="zh-Hans"]):not([lang="es"]):not([lang="tr"]):not([lang="vi"]) .nav > [data-os-guide-width="43"]{width:43px;min-width:43px;max-width:43px;flex-shrink:0}
html:not([lang="en"]):not([lang="ja"]):not([lang="zh-Hans"]):not([lang="es"]):not([lang="tr"]):not([lang="vi"]) .nav > [data-os-guide-width="55"]{width:55px;min-width:55px;max-width:55px;flex-shrink:0;line-height:11px}
html:not([lang="en"]):not([lang="ja"]):not([lang="zh-Hans"]):not([lang="es"]):not([lang="tr"]):not([lang="vi"]) .nav > [data-os-guide-width] > .os-header-copy-label{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Turkish and Vietnamese guide labels need their intrinsic width, including letter spacing. */
html:is([lang="tr"],[lang="vi"]) .nav > [data-os-guide-width]{width:max-content;min-width:43px;max-width:none;flex-shrink:0}
html:is([lang="tr"],[lang="vi"]) .nav > [data-os-guide-width="55"]{min-width:55px}
html:is([lang="tr"],[lang="vi"]) .nav > [data-os-guide-width] > .os-header-copy-label{display:block;white-space:nowrap}
/* Mobile GUIDE controls are flex containers; center their localized label as an item. */
.nav > :is(.guide-reopen,.gs-planner-mobile-guide,.mmx-guide-mobile){justify-content:center}

/* Additional-language prose may break a word only when it cannot fit its box. break-word (not anywhere) keeps
   whole words in the box's minimum width, so flex and grid rows never squeeze a title to one letter per line.
   Original four-language geometry, navigation, controls and science stay intact. */
html:not([lang="en"]):not([lang="ja"]):not([lang="zh-Hans"]):not([lang="es"]) :is(main,.main) :is(h1,h2,h3,p,.intro,.subtitle,.section-sub,.tool-desc,.disclaimer){overflow-wrap:break-word}
html:not([lang="en"]):not([lang="ja"]):not([lang="zh-Hans"]):not([lang="es"]) :is(main,.main) .hero > div{min-width:0}
html:not([lang="en"]):not([lang="ja"]):not([lang="zh-Hans"]):not([lang="es"]) :is(main,.main) :is([data-i18n],[data-os-copy],[data-os-prose]):not(button):not(a):not(input):not(select):not(canvas):not(svg){overflow-wrap:break-word}
html[lang="ar"] :is(.article-title,.article-summary){text-align:start}
html:not([lang="en"]):not([lang="ja"]):not([lang="zh-Hans"]):not([lang="es"]) #gs-planner-v2-candidate .gs-beginner-run{white-space:normal;overflow-wrap:break-word}

/* German prose can use native hyphenation before the overflow fallback. */
html[lang="de"] :is(main,.main) :is(h1,h2,h3,p,.intro,.subtitle,.section-sub,.tool-desc){hyphens:auto}

/* Latin satellite identifiers keep the published type metrics in translated filters. */
html:is([lang="ar"],[lang="hi"]) #filter-row .pill:is([data-filter="iss"],[data-filter="tiangong"]){font-family:'IBM Plex Mono',monospace;letter-spacing:1px}

/* Arabic operations outcome is a sentence; numeric/unit runs are isolated by its renderer. */
html[lang="ar"] #task-execution > span{direction:rtl;unicode-bidi:plaintext;text-align:start}

/* Owned Arabic prose only: dynamic weekly paragraphs and Guided notices.
   HTML lang controls restoration; charts, controls and numeric isolates stay untouched. */
html[lang="ar"] #weekly-body > p,
html[lang="ar"] #message.message[role="alert"]{direction:rtl;text-align:start;unicode-bidi:plaintext;font-family:Tahoma,Arial,sans-serif;letter-spacing:0}

/* Restore the public Simplified-Chinese conditions after canonical lang=zh-Hans. */
html[lang="zh-Hans"] .controls .mode-flight-controls .vehicle-action-buttons button{white-space:nowrap;word-break:keep-all;letter-spacing:0}
html[lang="zh-Hans"] .notice-toggle::before{content:"来源"}
@media(max-width:620px){
 html[lang="zh-Hans"] .notice-toggle::before{content:"来源"}
 html[lang="zh-Hans"] .notice.expanded .notice-toggle::before{content:"来源"}
}

/* Joined scripts: Latin-style letter-spacing would pull Arabic and Devanagari letters apart. */
html[lang="ar"] [data-os-script-text],html[lang="hi"] [data-os-script-text]{letter-spacing:0!important}
/* Free-text fields follow what is typed (dir=auto); an empty field shows its Arabic placeholder from the right. */
html[lang="ar"] input[dir="auto"]:placeholder-shown,html[lang="ar"] textarea[dir="auto"]:placeholder-shown{direction:rtl}
/* Mission Designer summary terminal: in Arabic the label/value grid reads right to left as a whole.
 * Values without Arabic (numbers, units) keep their own order and align with the column. */
html[lang="ar"] .terminal{direction:rtl}
html[lang="ar"] .terminal .term-value:not([dir]),html[lang="ar"] .terminal .term-label:not([dir]){unicode-bidi:plaintext;text-align:right}

/* The site fonts have no Arabic letters; without these faces Arabic falls back to a monospaced
 * system font (Courier New on macOS) whose letters do not join. Only Arabic code points use them.
 * One face per weight: browsers combine unicode-range faces only when their weight matches exactly. */
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:100;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:200;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:300;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:400;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:500;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:600;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:700;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:800;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"IBM Plex Mono";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:900;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:100;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:200;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:300;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:400;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:500;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:600;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:700;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:800;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Noto Sans JP";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:900;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:100;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:200;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:300;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:400;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:500;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:600;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:700;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:800;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Outfit";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:900;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:100;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:200;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:300;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:400;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Regular"),local("GeezaPro"),local("Noto Sans Arabic"),local("NotoSansArabic-Regular"),local("Tahoma"),local("ArialMT"),local("Arial");font-weight:500;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:600;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:700;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:800;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
@font-face{font-family:"Orbitron";src:local("Geeza Pro Bold"),local("GeezaPro-Bold"),local("Noto Sans Arabic Bold"),local("NotoSansArabic-Bold"),local("Tahoma Bold"),local("Tahoma-Bold"),local("Arial Bold"),local("Arial-BoldMT");font-weight:900;unicode-range:U+0600-06FF,U+0750-077F,U+08A0-08FF,U+FB50-FDFF,U+FE70-FEFF}
/* Human-language prompts and Markdown: each line takes the direction of its own text. JSON stays left to right. */
html[lang="ar"] .prompt-block,html[lang="ar"] #guide-preview,html[lang="ar"] #brief-preview{unicode-bidi:plaintext}
/* Language list: every native name lines up with the dialog, including right-to-left scripts. */
.language-dialog[dir="ltr"] .language-native{text-align:left}.language-dialog[dir="rtl"] .language-native{text-align:right}

/* rev6.3: Arabic nav dropdown — keep every item on the same edge as the Latin items. */
:lang(ar) .nav-menu a{text-align:left;justify-content:left}
/* Planetary Labs: a panel header keeps its title in whole words; when a translated title and its action buttons
   do not fit on one row, the buttons move to a second row instead of squeezing the title. */
.hud .panel-head{flex-wrap:wrap;row-gap:4px}
.hud .panel-head-actions{flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
/* PC header CONTACT button: grow with the translated label (Japanese was cut off) and centre it (short labels sat at the left). */
.os-category-nav:not(.open)>.nav-contact{width:auto!important;min-width:65px!important;text-align:center!important}
/* Korean wraps between words (spaces), not inside a word such as 엔지니/어링. */
html[lang="ko"] body{word-break:keep-all}
/* When a Labs panel header wraps to two rows, keep the title clear of the panel's top border. */
.hud .panel-head{padding-top:4px;padding-bottom:4px}
/* Arabic: the page content area reads right-to-left as a whole, so icons, tags, times and buttons in each card
   line up with the right-aligned Arabic text. Maps, charts, 3D scenes, code and sliders keep their own geometry;
   in the planetary Labs only the panel contents are mirrored, not the screen layout around the 3D view. */
html[lang="ar"] main{direction:rtl}
html[lang="ar"] main :is(canvas,svg,.maplibregl-map,.leaflet-container,pre,code,input[type="range"],[data-os-preserve]){direction:ltr}
html[lang="ar"] main .hud{direction:ltr}
html[lang="ar"] main .hud .panel{direction:rtl}
html[lang="ar"] main .hud .controls{direction:ltr}

/* Orbitron has no Turkish G-breve, dotted/dotless I or S-cedilla. Keep the entire
 * affected text label in one supported face instead of swapping one glyph mid-word.
 * The brand and labels without these letters retain their original font. */
html[lang="tr"] [data-os-script-text]{font-family:"IBM Plex Mono","Noto Sans JP",monospace!important}

/* Briefings are reading surfaces inside the LTR 3D HUD, not scene controls. */
html[lang="ar"] main .hud #briefModal .report-card{direction:rtl;text-align:start}
/* Localized lighting/drive labels use the available mobile button width. */
@media(max-width:900px){
 .hud .controls #lightButton{font-size:10px;padding-inline:1px;line-height:1.15}
 .hud .controls #driveModeButton{padding-inline:1px;line-height:1.1;white-space:normal;overflow-wrap:anywhere}
}

/* A translated route header can occupy two rows. Keep the expanded mobile log
 * inside its panel; the log retains its own short scrollable viewport. */
@media(max-width:620px){
 .hud .route:not(.log-collapsed):not(#detailRoute):has(>#routeList):has(#routeLogToggle){max-height:none}
}

/* Long source URLs remain readable inside planetary mission reports. */
.hud #reportText{overflow-wrap:anywhere}

/* Reference-only site qualifiers stay readable in the mobile atlas list. */
@media(max-width:620px){
 .hud .atlas-site-button{white-space:normal;overflow-wrap:anywhere;line-height:1.3;padding-block:5px}
}
