:root {
  color-scheme: dark;
  --ink: #22251b;
  --ink-muted: #56614f;
  --muted: #b0bbc1;
  --gold: #ffd32b;
  --blue: #73d2ff;
  --paper: #faf4c4;
  --paper-highlight: #fffbd8;
  --paper-edge: #f2e39b;
  --paper-link: #006193;
  --news-title: #ad4000;
  --serif: Georgia, "Times New Roman", serif;
}
* { box-sizing: border-box; }
/* Keep the shared frame steady when navigation, filtering or dialogs remove the scrollbar. */
html { background: #050708; scroll-behavior: smooth; scrollbar-gutter: stable; }
body {
  margin: 0;
  min-height: 100vh;
  color: #e1e7e9;
  background-color: #050708;
  /* The archive shows its sky at full color; fade only the lower terrain. */
  background-image: linear-gradient(transparent 680px, #050708 1280px), url("/assets/fom/web/fom-backdrop-wide-v2-wide.webp");
  background-position: center top;
  /* Keep the scene proportional and cover even ultrawide viewports. */
  background-size: 100% 100%, max(100vw, 2100px) auto;
  background-repeat: no-repeat;
  font: 14px/1.65 Arial, Helvetica, sans-serif;
}
a { color: var(--blue); text-decoration: none; }
a:visited { color: var(--blue); }
a:hover { color: #fff0c0; }
button, input { font: inherit; }
button { cursor: pointer; }
button, a, input, summary { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible { outline: 3px solid #46bffc; outline-offset: 4px; }
button { color: inherit; }
img { display: block; max-width: 100%; height: auto; }
figure, p, h1, h2, h3, dl { margin: 0; }
p + p { margin-top: 14px; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: 8px; left: 8px; transform: translateY(-160%); z-index: 20; padding: 10px 20px; background: #090f14; }
.skip-link:focus { transform: none; }
.site-wrap { width: min(1100px, calc(100% - 40px)); margin: 0 auto; }
.site-header { position: relative; height: 239px; }
.brand-lockup { position: absolute; top: 8px; left: 0; right: 0; width: 244px; margin-inline: auto; display: flex; flex-direction: column; align-items: center; text-align: center; }
.brand-lockup::before { content: ""; position: absolute; z-index: 0; inset: 108px 10px -4px; border-radius: 12px; background: #06101bba; box-shadow: 0 0 18px 12px #06101bba; pointer-events: none; }
.brand-lockup img, .brand-name, .brand-subtitle { position: relative; z-index: 2; }
.brand-lockup img { width: 108px; height: 108px; object-fit: contain; mix-blend-mode: screen; }
.brand-name { font: bold 55px/.95 var(--serif); color: #e4e6df; text-transform: uppercase; letter-spacing: 5px; text-indent: 5px; text-shadow: 0 2px 1px #030405, 0 3px 0 #858b8b, 0 6px 18px #000; }
.brand-subtitle { margin-top: 10px; color: var(--gold); font: 12px/1.2 var(--serif); text-transform: uppercase; letter-spacing: 3px; text-shadow: 0 2px 2px #000; white-space: nowrap; }
.primary-nav { position: absolute; inset: 106px 0 auto; height: 121px; background: url("/assets/fom/fom-nav.png") center / 100% 100% no-repeat; display: grid; grid-template-columns: repeat(3, 1fr) 250px repeat(3, 1fr); align-items: center; padding: 0 26px 2px; }
.primary-nav a, .primary-nav button { position: relative; justify-self: stretch; text-align: center; color: #ffe866; border: 0; background: transparent; padding: 12px 1px; font: bold 14px/1.2 var(--serif); text-transform: uppercase; text-shadow: 0 2px 2px #000; }
.primary-nav a::after, .primary-nav button::after { content: ""; position: absolute; height: 2px; bottom: 0; inset-inline: 23%; background: transparent; }
.primary-nav a[aria-current="page"]::after { background: #74caff; }
.primary-nav a:hover, .primary-nav button:hover, .primary-nav a[aria-current="page"] { color: #fff38b; }
.primary-nav a:hover::after, .primary-nav button:hover::after { background: #cca758; }
.portal-layout { display: grid; grid-template-columns: 252px minmax(0, 1fr); gap: 20px; align-items: start; }
.sidebar, .main-column { min-width: 0; }
.sidebar { display: grid; gap: 17px; }
.main-column:focus { outline: none; }
.metal-panel { background: linear-gradient(115deg, #25333e, #080f18 70%); border: 1px solid #8799a3; border-radius: 4px; box-shadow: 0 2px 6px #0006; overflow: hidden; }
.panel-heading { display: flex; justify-content: space-between; gap: 12px; align-items: center; min-height: 44px; padding: 10px 18px; background: #131717 url("/assets/fom/fom-heading.png") center / 100% 100% no-repeat; color: var(--gold); font: normal 18px/1.3 var(--serif); text-shadow: 0 2px 1px #000; }
.panel-heading h1, .panel-heading h2 { font: inherit; }
.panel-heading a { font: 10px/1.4 Arial, sans-serif; text-transform: uppercase; letter-spacing: 1px; color: #bfced3; text-shadow: none; }
.panel-heading a:hover { color: #fff4ce; }
.panel-body { padding: 20px 19px; }
.member-panel .panel-body { background: linear-gradient(#273d4c, #101c29); }
.eyebrow { display: block; color: var(--blue); font-size: 10px; font-weight: bold; letter-spacing: 1.6px; text-transform: uppercase; }
.member-panel p { color: #e0e9ef; font-size: 13px; line-height: 1.7; }
.button { min-height: 40px; display: inline-flex; justify-content: center; align-items: center; gap: 14px; padding: 9px 17px; border-radius: 2px; border: 1px solid #899592; font: bold 12px/1.5 Arial, sans-serif; text-shadow: 0 1px #0008; box-shadow: inset 0 1px #ffffff24, 0 1px 2px #0006; transition: border-color .15s; }
.button-blue, .button-blue:visited { color: #fff; background: linear-gradient(#0a6399, #064878); border-color: #8adfff; }
.button-metal, .button-metal:visited { color: #f6f1d8; background: linear-gradient(#435565, #243442); border-color: #97a9b9; }
.button-gold, .button-gold:visited { color: #382507; background: linear-gradient(#ffe8a0, #e6ad40); border-color: #fff1a6; text-shadow: none; }
.button:hover { color: #fff; border-color: #d9e6e9; }
.button-gold:hover { color: #281900; border-color: #fff; }
.member-panel .button { width: 100%; margin-top: 15px; }
.member-divider { display: flex; align-items: center; gap: 10px; font-size: 10px; color: #a4aead; margin-top: 18px; }
.member-divider::before, .member-divider::after { content: ""; height: 1px; background: #62707155; flex: 1; }
.member-divider + .button { margin-top: 9px; }
.small-note, .member-panel .small-note { color: #aab6bb; font-size: 12px; line-height: 1.7; margin-top: 12px; }
.download-banner { display: flex; gap: 15px; align-items: center; padding: 16px 15px; background: linear-gradient(115deg, #076ca7, #035184 48%, #03182f); border: 1px solid #84d9ff; border-top: 2px solid #b4efff; box-shadow: 0 2px 5px #0005; }
.download-glyph { color: #aff0ff; font: 50px/1 Georgia, serif; }
.download-banner small { display: block; font-size: 9px; text-transform: uppercase; color: #e4f8ff; letter-spacing: .7px; }
.download-banner strong { display: block; font: bold 23px/1.4 var(--serif); color: #fff; text-shadow: 0 2px 2px #000; }
.download-banner em { color: #e4f8ff; font-style: normal; font-size: 10px; }
.download-banner:hover { border-color: #e0faff; background: linear-gradient(115deg, #0871ab, #066399 48%, #052343); }
.build-facts > div { display: flex; justify-content: space-between; gap: 8px; border-bottom: 1px solid #73818828; padding: 8px 0; font-size: 12px; }
.build-facts > div:first-child { padding-top: 0; }
.build-facts dt { color: #9da9ad; }
.build-facts dd { margin: 0; color: #e4e4d6; text-align: right; }
.text-link { display: inline-block; margin-top: 12px; color: #a9d6ee; font-size: 11px; }
.snapshot-note { font-size: 11px; letter-spacing: .2px; }
.sidebar-links { padding: 0 15px; }
.sidebar-links a { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid #7e807b35; color: #adb7bc; font-size: 11px; }
.sidebar-links a:hover { color: #f4e3ac; }
.hero-frame { padding: 5px; border-radius: 5px; background: #293c46; box-shadow: 0 3px 8px #0007; border: 1px solid #899b9f; }
.hero-stage { position: relative; aspect-ratio: 16 / 9; background: #070e15; border: 1px solid #080f13; overflow: hidden; }
.hero-slide { position: absolute; inset: 0; }
.hero-slide img { height: 100%; width: 100%; object-fit: contain; }
.hero-controls { display: flex; gap: 15px; min-height: 43px; padding: 0 12px; align-items: center; background: linear-gradient(#19354e, #050d19); border-top: 1px solid #52a9df; }
.hero-controls button { border: 0; background: transparent; color: #9abdcf; min-width: 28px; min-height: 34px; padding: 0; }
.hero-controls button:hover { color: #fff; }
.slide-dots { display: flex; gap: 1px; }
.slide-dots button::before { content: ""; display: block; width: 7px; height: 7px; margin: auto; border: 1px solid #b8cbd7; background: #2b3942; transform: rotate(45deg); }
.slide-dots button[aria-pressed="true"]::before { background: #8ed5ff; border-color: #c4e9ff; }
#slide-caption { color: #aebfc5; font-size: 10px; margin-right: auto; }
#slide-count { font-size: 10px; color: #819aaa; letter-spacing: 1px; }
.slide-arrows { display: flex; }
.slide-arrows button { font: 24px/1 var(--serif); }
.paper-panel { margin-top: 21px; border: 1px solid #c1b16f; border-radius: 3px; background: var(--paper); box-shadow: 0 2px 6px #0006; overflow: hidden; color: var(--ink); color-scheme: light; }
.paper-panel .panel-heading { color-scheme: dark; border-bottom: 2px solid #168bd0; }
.paper-content { padding: 26px 29px; background: radial-gradient(ellipse at 25% 0, var(--paper-highlight), var(--paper) 70%, var(--paper-edge)); }
.paper-content a, .paper-content a:visited { color: var(--paper-link); }
.paper-content a:hover { color: #0c3149; text-decoration: underline; }
.news-item { padding: 23px 0; border-bottom: 1px solid #b6af9877; }
.news-item:first-child { padding-top: 0; }
.news-item:last-child { border-bottom: 0; padding-bottom: 0; }
.news-meta { color: #65571c; font-size: 12px; display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.news-meta .tag { color: #00598e; font-size: 11px; text-transform: uppercase; letter-spacing: 1px; font-weight: bold; }
.news-meta .tag::after { content: " /"; color: #98967f; margin-left: 7px; }
.news-item h2 { font: normal 24px/1.3 var(--serif); margin: 7px 0 10px; }
.news-item h2 a, .news-item h2 a:visited { color: var(--news-title); }
.news-item p { font-size: 14px; line-height: 1.8; color: var(--ink); }
.read-more { display: inline-block; margin-top: 12px; font-size: 11px; font-weight: bold; text-transform: uppercase; letter-spacing: .6px; }
.news-with-image { display: grid; grid-template-columns: minmax(0, 1fr) 168px; gap: 22px; align-items: start; }
.patch-media { display: grid; gap: 18px; align-content: start; }
.patch-screenshot { min-width: 0; }
.screenshot-link { display: block; border: 2px solid #69705a; background: #09141a; }
.screenshot-link:hover { border-color: #006193; }
.screenshot-link img { width: 100%; aspect-ratio: 16/9; object-fit: contain; }
.screenshot-enlarge { display: block; padding: 5px 8px; background: var(--paper-highlight); color: var(--paper-link); font-size: 11px; font-weight: bold; }
.patch-screenshot figcaption { margin-top: 7px; color: var(--ink); font-size: 12px; line-height: 1.6; overflow-wrap: anywhere; }
.news-item + .news-item h2 { font-size: 21px; }
.home-footnote { margin: 18px 4px 0; display: flex; justify-content: space-between; gap: 15px; color: #9badb5; font-size: 11px; }
.page-heading { padding: 20px 25px 23px; border: 1px solid #8babc0; border-top: 2px solid #4ac8ff; background: linear-gradient(120deg, #123653, #070f1c); }
.page-heading h1 { font: normal 40px/1.2 var(--serif); color: #fff0a6; margin: 6px 0 12px; }
.page-heading p { color: #b9cbd3; max-width: 650px; font-size: 14px; }
.page-heading .eyebrow { font-size: 9px; }
.prose p, p.prose { font-size: 14px; line-height: 1.8; color: var(--ink); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px 18px; margin-top: 20px; }
.gallery-grid a { display: block; }
.gallery-grid img { border: 3px solid #555950; width: 100%; aspect-ratio: 16/9; object-fit: contain; background: #09141a; transition: border-color .15s; }
.gallery-grid a:hover img { border-color: #317c9c; }
.gallery-grid strong { display: block; margin-top: 8px; font: normal 17px/1.3 var(--serif); }
.gallery-grid small { color: var(--ink-muted); font-size: 12px; }
/* Text outside the paper panels needs a stable surface over the bright sky. */
.patch-tools, #no-results, .page-patch-notes .main-column > .small-note { background: #102434; border: 1px solid #65879b; border-radius: 3px; color: #d5e2e9; }
.patch-tools { margin: 20px 0 13px; padding: 16px 18px; }
.patch-filters { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 1px solid #65879b; margin-bottom: 16px; padding-bottom: 8px; }
.patch-filters button { min-height: 40px; padding: 8px 12px; border: 0; border-bottom: 2px solid transparent; background: transparent; color: #c8d9e3; font: bold 12px/1.5 Arial, sans-serif; }
.patch-filters button:hover { color: #fff; background: #1b3c52; }
.patch-filters button[aria-pressed="true"] { color: #ffe866; background: #1b3c52; border-bottom-color: #ffe866; }
.page-patch-notes .main-column > .small-note { padding: 10px 16px; }
.search-label { display: block; color: #c8cfcd; font-size: 12px; margin-bottom: 7px; }
.search-row { display: flex; align-items: center; gap: 10px; }
.search-row input { width: 100%; min-width: 0; min-height: 42px; padding: 10px 14px; background: #101921; border: 1px solid #71828a; border-radius: 2px; color: #e3eef3; font-size: 16px; }
.search-row input::placeholder { color: #93a4b0; }
.search-row .button { white-space: nowrap; }
#patch-count { display: block; margin-top: 8px; color: #94a8b3; font-size: 12px; }
.patch-list { border: 1px solid #c1b16f; border-radius: 3px; overflow: hidden; }
.patch-post { background: var(--paper); color: var(--ink); border-bottom: 1px solid #cbbb80; scroll-margin-top: 15px; color-scheme: light; }
.patch-post:last-child { border-bottom: 0; }
.patch-post summary { position: relative; cursor: pointer; list-style: none; padding: 18px 50px 18px 24px; background: linear-gradient(110deg, var(--paper-highlight), var(--paper)); }
.patch-post summary::-webkit-details-marker { display: none; }
.patch-post summary::after { content: "+"; position: absolute; right: 21px; top: 22px; font: normal 23px/1 Arial, sans-serif; color: #586b6c; }
.patch-post[open] summary::after { content: "−"; }
.patch-post summary:hover { background: #fffbdc; }
.patch-post summary h2 { font: normal 22px/1.35 var(--serif); color: var(--news-title); }
.patch-post summary .news-meta { margin-top: 7px; }
.patch-post[open] summary { border-bottom: 1px solid #bab7a3; }
.patch-body { padding: 23px 27px; background: var(--paper); }
.patch-body.has-media { display: grid; grid-template-columns: minmax(0, 1fr) 168px; gap: 22px; align-items: start; }
.patch-copy > p { color: var(--ink); font-size: 14px; }
.patch-body h3 { font: bold 14px/1.5 Arial, sans-serif; color: #005c92; margin: 22px 0 8px; }
.patch-body ul { margin: 0; padding-left: 20px; }
.patch-body li { padding: 3px 0; font-size: 14px; line-height: 1.8; color: var(--ink); }
.patch-version { border-top: 1px solid #bfc3b4; margin-top: 22px; padding-top: 10px; color: var(--ink-muted); font-size: 12px; overflow-wrap: anywhere; }
.patch-body.has-media .patch-version { grid-column: 1 / -1; margin-top: 0; }
.patch-version a { color: #175b7d; margin-right: 14px; }
#no-results { padding: 25px; font-size: 13px; }
.download-intro { display: flex; align-items: center; gap: 22px; }
.download-intro > img { width: 92px; height: 92px; border: 1px solid #758078; }
.download-intro h2 { font: normal 27px/1.2 var(--serif); margin-bottom: 8px; }
.download-intro p { color: #5e675a; font-size: 14px; }
.release-strip { display: flex; flex-wrap: wrap; gap: 15px 25px; font-size: 12px; margin: 24px 0; padding: 13px 0; border-block: 1px solid #afaF9870; }
.release-strip strong { color: #233e4a; }
.paper-content .button-blue, .paper-content .button-blue:visited { color: #f4fbff; text-decoration: none; }
.paper-content .small-note { color: var(--ink-muted); }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: steps; }
.steps li { position: relative; padding: 0 0 23px 53px; margin-top: 23px; border-bottom: 1px solid #b6b69e80; counter-increment: steps; }
.steps li::before { content: "0" counter(steps); position: absolute; top: 1px; left: 0; font: normal 29px/1 var(--serif); color: #537381; }
.steps li:first-child { margin-top: 0; }
.steps li:last-child { border: 0; padding-bottom: 0; }
.steps h3 { font: normal 20px/1.35 var(--serif); margin: 0 0 5px; }
.steps p { color: #556154; font-size: 14px; line-height: 1.8; }
.steps code { font-size: 13px; color: #2d4c5a; }
.requirements { display: grid; gap: 9px; margin-top: 22px; }
.requirements > div { display: grid; grid-template-columns: 105px 1fr; gap: 14px; font-size: 14px; padding-bottom: 9px; border-bottom: 1px solid #adae9855; }
.requirements dt { color: #5a695e; }
.requirements dd { margin: 0; color: #343e36; }
.help-details { border-top: 1px solid #b5b49e; padding: 13px 0; }
.help-details:first-of-type { border-top: 0; padding-top: 0; }
.help-details summary { cursor: pointer; color: #2b4c58; font-size: 14px; font-weight: bold; }
.help-details p { font-size: 14px; color: #555e52; margin-top: 10px; }
.site-footer { margin: 35px auto 0; padding: 24px 12px 32px; border-top: 1px solid #7c887155; text-align: center; background: linear-gradient(#12171955, transparent); }
.footer-brand { color: #e2dfce; font: normal 24px/1.5 var(--serif); text-transform: uppercase; letter-spacing: 4px; }
.footer-brand span { display: block; color: #949f9e; font: 8px/1.4 Arial, sans-serif; letter-spacing: 3px; }
.site-footer nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 22px; margin-top: 19px; }
.site-footer a, .site-footer button { color: #b1bdc3; font-size: 10px; padding: 0; border: 0; background: transparent; }
.site-footer a:hover, .site-footer button:hover { color: var(--gold); }
.site-footer p { font-size: 9px; color: #879293; margin-top: 16px; }
dialog { background: linear-gradient(135deg, #22323b, #0a121b); color: #d2dfe3; border: 1px solid #91acb6; border-top: 2px solid #82c9ed; border-radius: 4px; padding: 36px; box-shadow: 0 15px 100px #000; max-width: calc(100% - 32px); max-height: calc(100dvh - 32px); }
dialog::backdrop { background: #000a; backdrop-filter: blur(4px); }
body:has(dialog[open]) { overflow: hidden; }
.account-dialog { width: 490px; }
.account-dialog h2 { font: normal 29px/1.25 var(--serif); color: #f3e4b9; margin: 8px 0 18px; padding-right: 10px; }
.account-dialog p { font-size: 14px; }
.account-dialog .button { margin-top: 23px; }
.account-dialog .small-note { font-size: 12px; }
.close-dialog { position: absolute; right: 9px; top: 6px; width: 36px; height: 36px; border: 0; background: transparent; color: #bcd6e3; font: 28px/1 Arial, sans-serif; }
.close-dialog:hover { color: white; }
.gallery-dialog { width: 1200px; padding: 45px 18px 18px; }
.gallery-dialog figure img { width: 100%; max-height: calc(100dvh - 200px); object-fit: contain; background: #050a0d; }
.gallery-dialog figcaption { font-size: 12px; margin-top: 12px; text-align: center; }
.gallery-controls { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 17px; }
.gallery-controls button:disabled { opacity: .45; cursor: default; }
#gallery-count { font-size: 12px; color: #b1c8d4; }
@media (min-width: 721px) and (max-width: 1150px) {
  .primary-nav a, .primary-nav button { background: linear-gradient(transparent, #02081040 25%, #02081040 75%, transparent); }
}
@media (max-width: 1150px) {
  .primary-nav { grid-template-columns: repeat(3, 1fr) 230px repeat(3, 1fr); }
  .primary-nav a, .primary-nav button { font-size: 12px; }
  .portal-layout { grid-template-columns: 237px minmax(0, 1fr); gap: 16px; }
}
@media (max-width: 900px) {
  .primary-nav { grid-template-columns: repeat(3, 1fr) 195px repeat(3, 1fr); padding-inline: 12px; }
  .primary-nav a, .primary-nav button { font-size: 11px; }
  .news-with-image, .patch-body.has-media { grid-template-columns: 1fr; }
  .news-media { max-width: 260px; }
  .patch-media { grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr)); }
  .paper-content { padding: 22px; }
  .gallery-grid { grid-template-columns: 1fr; }
  .gallery-grid img { aspect-ratio: 16/9; }
}
@media (max-width: 720px) {
  .site-wrap { width: calc(100% - 24px); }
  body { background-size: 100% 100%, max(100vw, 1800px) auto; }
  .site-header { height: 249px; }
  .brand-lockup { top: 10px; width: 210px; }
  .brand-lockup::before { top: 79px; }
  .brand-lockup img { width: 79px; height: 79px; }
  .brand-name { font-size: 44px; }
  .brand-subtitle { margin-top: 8px; font-size: 10px; letter-spacing: 2.5px; }
  .primary-nav { inset: auto 0 12px; height: 83px; grid-template-columns: repeat(3, 1fr); padding: 0; border: 1px solid #77837f; border-bottom: 2px solid #559bd2; border-radius: 3px; background: repeating-linear-gradient(0deg, #0000, #0000 2px, #080f1233 3px), linear-gradient(#303839, #111a20); box-shadow: inset 0 0 0 3px #0006, 0 5px 12px #0008; }
  .nav-spacer { display: none; }
  .primary-nav a, .primary-nav button { font-size: 12px; min-height: 39px; padding-block: 10px; }
  .primary-nav a::after, .primary-nav button::after { inset-inline: 33%; bottom: 4px; }
  .portal-layout { grid-template-columns: minmax(0, 1fr); }
  .main-column { grid-row: 1; }
  .sidebar { grid-row: 2; margin-top: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .member-panel { grid-row: span 2; }
  .sidebar-links { align-self: center; }
  .hero-controls { gap: 7px; padding-inline: 7px; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 14px; }
  .gallery-grid strong { font-size: 15px; }
  .home-footnote { flex-direction: column; gap: 3px; }
}
@media (max-width: 480px) {
  .patch-filters { gap: 2px; }
  .patch-filters button { padding-inline: 7px; }
  #slide-caption { max-width: 155px; line-height: 1.4; font-size: 9px; }
  #slide-count { display: none; }
  .hero-controls { justify-content: space-between; }
  .slide-dots button { min-width: 24px; }
  .panel-heading { font-size: 17px; padding-inline: 15px; }
  .panel-heading a { font-size: 9px; letter-spacing: .5px; }
  .paper-content { padding: 20px 18px; }
  .news-item h2 { font-size: 24px; }
  .news-item + .news-item h2 { font-size: 22px; }
  .sidebar { grid-template-columns: 1fr; }
  .member-panel { grid-row: auto; }
  .sidebar-links { padding-inline: 10px; }
  .page-heading { padding: 20px; }
  .page-heading h1 { font-size: 34px; }
  .gallery-grid { grid-template-columns: 1fr; gap: 22px; }
  .gallery-grid strong { font-size: 20px; }
  .patch-post summary { padding-left: 18px; }
  .patch-post summary h2 { font-size: 21px; }
  .patch-body { padding: 20px 18px; }
  .download-intro { gap: 15px; align-items: start; }
  .download-intro > img { width: 64px; height: 64px; }
  .download-intro h2 { font-size: 23px; }
  .requirements > div { grid-template-columns: 74px 1fr; }
  .site-footer nav { gap: 12px 18px; }
  dialog { padding: 32px 21px 24px; }
  .gallery-dialog { padding: 44px 12px 16px; }
  .gallery-controls .button { padding: 7px 10px; font-size: 11px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}
/* Production shell additions; the imported presentation above remains shared. */
.site-wide .site-wrap { width: min(1440px, calc(100% - 40px)); }
.site-wide .site-header { max-width: 1100px; margin-inline: auto; }
.site-wide .portal-layout { grid-template-columns: 252px minmax(0, 1fr); }
.site-status { padding: 13px 17px; background: #102434; border: 1px solid #65879b; border-radius: 3px; color: #e1e7e9; margin-block: 16px; }
.site-error { color: #ffd6c7; }
.paper-content .site-status { color: var(--ink); background: #fffbd8; border-color: #bcae76; }
.paper-content .site-error { color: #8b260b; }
.site-status button { margin-left: 10px; }
#site-account-nav { overflow-wrap: anywhere; }
.site-account-links { display: flex; flex-direction: column; gap: 8px; }
.site-form label { display: block; margin: 14px 0 5px; }
.site-form input:not([type=checkbox]), .site-form select, .site-form textarea { width: 100%; min-height: 42px; padding: 9px 12px; color: #e3eef3; background: #101921; border: 1px solid #71828a; border-radius: 2px; font: inherit; }
.site-form input[type=checkbox] { width: auto; accent-color: #4ab6e6; }
.site-form .check-row { display: flex; align-items: center; gap: 9px; }
.site-form button:disabled { opacity: .6; cursor: wait; }
.site-form [role=status], .site-form [role=alert] { margin-top: 15px; overflow-wrap: anywhere; }
@media (max-width: 900px) { .site-wide .portal-layout { grid-template-columns: minmax(0, 1fr); } .site-wide .main-column { grid-row: 1; } .site-wide .sidebar { grid-row: 2; grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 720px) { .site-wide .site-wrap { width: calc(100% - 24px); } }
@media (max-width: 480px) { .site-wide .sidebar { grid-template-columns: minmax(0, 1fr); } }
