:root {
  color-scheme: dark;
  --page-width: 1000px;
  --content-width: 972px;
  --red: #ff2a2a;
  --line: #464646;
  --muted: #c6c6c6;
  --black: #050505;
  --paper: #f2f2ef;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 8px; }
body {
  margin: 8px;
  background-color: #000;
  background-image: linear-gradient(to bottom, #010101 0, #0d0d0d 12.5%, #1d1d1d 25%, #2e2e2e 37.5%, #3a3a3a 50%, #2d2d2d 62.5%, #1d1d1d 75%, #0c0c0c 87.5%, #010101 100%);
  background-size: 100% 800px;
  background-repeat: repeat-y;
  color: #fff;
  font: 13px/1.25 "Times New Roman", Times, serif;
}
a { color: #fff; text-decoration: underline; text-underline-offset: 2px; }
a:visited { color: #e6e6e6; }
a:hover, a:focus-visible { color: #ff3737; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.skip-link { position: fixed; z-index: 100; top: -80px; left: 10px; padding: 7px 10px; background: #fff; color: #000; }
.skip-link:focus { top: 10px; color: #000; }
.catalog-frame { width: var(--page-width); max-width: 100%; margin: 0 auto; }
.catalog-content { width: var(--content-width); max-width: calc(100% - 28px); margin: 0 auto; }
.breadcrumb { height: 22px; padding-top: 4px; text-align: right; font-size: 13px; white-space: nowrap; }
.breadcrumb span { color: #bbb; }
.title-strip { display: grid; width: 100%; height: 25px; grid-template-columns: 88px minmax(0, 1fr); overflow: hidden; background: #050505; border-top: 1px solid #575757; border-bottom: 1px solid #575757; }
.strip-brand, .strip-title { display: flex; align-items: center; height: 25px; color: #fff; white-space: nowrap; }
.strip-brand { justify-content: center; border-right: 1px solid #555; font-weight: 700; letter-spacing: .05em; text-decoration: none; }
.strip-title { padding-left: 12px; font-style: italic; letter-spacing: .08em; }
.catalog-banner { position: relative; width: 100%; height: 348px; overflow: hidden; border-bottom: 1px solid #666; background: radial-gradient(circle at 73% 45%, #555 0, #272727 33%, #0a0a0a 67%, #020202 100%); }
.catalog-banner::before { position: absolute; inset: 0; content: ""; background-image: linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.02) 1px, transparent 1px); background-size: 22px 22px; mask-image: linear-gradient(90deg, #000, transparent 90%); }
.banner-copy { position: relative; z-index: 2; width: 52%; padding: 58px 0 0 42px; text-shadow: 0 2px 5px #000; }
.banner-kicker { margin: 0 0 13px; color: #efefef; font-size: 11px; letter-spacing: .22em; }
.banner-copy h1 { max-width: 470px; margin: 0 0 17px; color: #fff; font-size: 38px; font-style: italic; font-weight: 400; line-height: 1.02; }
.banner-copy > p:not(.banner-kicker):not(.banner-note) { max-width: 410px; margin: 0; font-size: 15px; line-height: 1.42; }
.banner-note { display: inline-block; margin: 21px 0 0; padding: 5px 8px; border: 1px solid #aaa; color: #fff; font-size: 10px; letter-spacing: .08em; }
.banner-machines { position: absolute; z-index: 1; inset: 0; pointer-events: none; }
.banner-machine { position: absolute; bottom: -38px; width: 250px; height: 250px; object-fit: contain; filter: drop-shadow(0 10px 18px rgba(0,0,0,.58)); opacity: .96; }
.machine-mini { right: 264px; width: 200px; height: 200px; bottom: -18px; opacity: .75; }
.machine-tower { right: 115px; width: 255px; height: 255px; }
.machine-large { right: -43px; width: 285px; height: 285px; bottom: -56px; opacity: .76; }
.announcement { min-height: 35px; margin: 0; padding-top: 12px; text-align: center; font-size: 16px; }
.section-links { display: flex; min-height: 35px; align-items: flex-start; justify-content: center; gap: 6px; padding-top: 2px; font-size: 10px; text-align: center; }
.section-links span { color: #fff; font-size: 6px; line-height: 18px; }
.ranking-guide { scroll-margin-top: 8px; margin-bottom: 17px; padding: 0 8px 24px; border-bottom: 1px dotted #686868; }
.ranking-guide h2 { margin: 0 0 10px; color: var(--red); font-size: 16px; font-style: italic; line-height: 1.25; }
.ranking-guide > p { max-width: 860px; margin: 0 0 10px; line-height: 1.38; }
.price-note { padding: 8px; border: 1px solid #686868; background: rgba(0,0,0,.32); }
.ranking-table-wrap { max-width: 100%; margin: 12px 0; overflow-x: auto; }
.ranking-table { width: 100%; min-width: 820px; border-collapse: collapse; font-size: 12px; }
.ranking-table th, .ranking-table td { padding: 6px 8px; border-top: 1px dotted #606060; text-align: left; vertical-align: top; }
.ranking-table thead th { border-top: 1px solid #707070; border-bottom: 1px solid #707070; color: var(--red); font-style: italic; }
.ranking-table tbody th { width: 180px; color: #fff; }
.ranking-note { padding: 8px; border: 1px solid #686868; background: rgba(0,0,0,.32); }
.benchmark-guide { scroll-margin-top: 8px; }
.benchmark-guide .ranking-table { margin-bottom: 4px; }
.benchmark-guide .benchmark-table strong { color: #c9ffc9; font-size: 14px; }
.product-section { scroll-margin-top: 8px; padding: 0 0 30px; background-image: radial-gradient(circle, #5a5a5a 1px, transparent 1.2px); background-position: left bottom; background-size: 5px 5px; background-repeat: repeat-x; }
.product-section + .product-section { padding-top: 17px; }
.product-section h2, .catalog-status h2 { height: 20px; margin: 0 0 10px; color: var(--red); font-size: 16px; font-style: italic; font-weight: 700; line-height: 20px; }
.product-section h2 span { display: inline-block; min-width: 25px; margin-right: 5px; color: #a6a6a6; font-size: 12px; }
.product-grid { display: grid; grid-template-columns: 300px minmax(0, 1fr); gap: 15px; }
.product-media figure { margin: 0; }
.main-shot { width: 300px; height: 200px; overflow: hidden; border: 1px solid #5f5f5f; background: var(--paper); }
.main-shot[data-zoom] { cursor: zoom-in; }
.main-shot[data-zoom]:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.product-illustration { width: 100%; height: 100%; object-fit: contain; transition: transform 150ms ease, object-position 150ms ease; }
.product-illustration.mirror[data-view="full"] { transform: scaleX(-1); }
.product-illustration[data-view="front"] { transform: scale(1.48) translate(11%, 3%); }
.product-illustration.mirror[data-view="front"] { transform: scaleX(-1) scale(1.48) translate(11%, 3%); }
.product-illustration[data-view="detail"] { transform: scale(1.7) translate(-9%, 6%); }
.product-illustration.mirror[data-view="detail"] { transform: scaleX(-1) scale(1.7) translate(-9%, 6%); }
.product-media figcaption { height: 16px; padding-top: 3px; color: #bdbdbd; font-size: 10px; text-align: center; }
.thumb-row { display: flex; width: 300px; max-width: 100%; gap: 6px; margin-top: 8px; padding-bottom: 4px; overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-width: thin; }
.thumb { position: relative; width: 68px; height: 60px; flex: 0 0 68px; overflow: hidden; padding: 0; border: 1px solid #565656; border-radius: 0; background: var(--paper); color: #fff; cursor: pointer; }
.thumb img { width: 100%; height: 100%; object-fit: contain; }
.thumb img.mirror { transform: scaleX(-1); }
.thumb[data-view="front"] img { transform: scale(1.45) translate(10%, 3%); }
.thumb[data-view="front"] img.mirror { transform: scaleX(-1) scale(1.45) translate(10%, 3%); }
.thumb[data-view="detail"] img { transform: scale(1.65) translate(-8%, 6%); }
.thumb[data-view="detail"] img.mirror { transform: scaleX(-1) scale(1.65) translate(-8%, 6%); }
.thumb span { position: absolute; right: 1px; bottom: 1px; padding: 1px 3px; background: rgba(0,0,0,.82); font: 9px/1 "Times New Roman", Times, serif; }
.thumb.is-active { border-color: var(--red); box-shadow: inset 0 0 0 1px var(--red); }
.memory-diagram { display: flex; min-height: 240px; flex-direction: column; justify-content: center; }
.memory-box { display: grid; width: 300px; max-width: 100%; min-height: 200px; grid-template-columns: 2fr 1fr; align-content: center; overflow: hidden; border: 1px solid #666; background: #ededeb; color: #111; text-align: center; }
.memory-box > strong, .memory-box > span { grid-column: 1 / -1; }
.memory-box > strong { font-size: 34px; line-height: 1; }
.memory-box > span { margin: 4px 0 14px; color: #444; font-size: 11px; text-transform: uppercase; letter-spacing: .07em; }
.memory-box > div { display: flex; min-height: 80px; flex-direction: column; align-items: center; justify-content: center; padding: 8px; border-top: 1px solid #aaa; }
.memory-box > div + div { border-left: 1px solid #aaa; }
.memory-box b { font-size: 17px; }
.memory-box small { margin-top: 4px; color: #444; }
.memory-box.zgx { grid-template-columns: 1fr 1fr; }
.diagram-note { margin: 6px 0 0; color: #bbb; font-size: 10px; text-align: center; }
.product-copy { min-width: 0; }
.product-copy > p { margin: 0 0 9px; line-height: 1.36; }
.status-line { padding-bottom: 6px; border-bottom: 1px dotted #777; color: #fff; font-size: 11px; letter-spacing: .035em; }
.status-line strong { color: #c9ffc9; }
.status-line.draft strong { color: #ff9d9d; }
.spec-table { width: 100%; margin: 12px 0 9px; border-collapse: collapse; border-top: 1px solid #707070; border-bottom: 1px solid #707070; font-size: 12px; }
.spec-table th, .spec-table td { padding: 5px 7px; border-bottom: 1px dotted #585858; text-align: left; vertical-align: top; }
.spec-table tr:last-child > * { border-bottom: 0; }
.spec-table th { width: 150px; color: #d7d7d7; font-weight: 700; }
.spec-table td { color: #fff; }
.compact-links { font-size: 10px; }
.catalog-status { scroll-margin-top: 8px; margin-top: 17px; padding: 0 8px 20px; border-bottom: 1px dotted #686868; }
.catalog-status p { max-width: 820px; margin: 0 0 10px; line-height: 1.38; }
.page-links { display: flex; min-height: 55px; align-items: center; justify-content: center; gap: 12px; font-size: 13px; }
.page-links strong { font-style: italic; }
.image-lightbox { width: min(1100px, 94vw); max-width: none; height: min(850px, 92vh); max-height: none; margin: auto; padding: 42px 16px 14px; border: 1px solid #777; background: #111; color: #fff; }
.image-lightbox::backdrop { background: rgba(0,0,0,.88); }
.image-lightbox img { display: block; width: 100%; height: calc(100% - 28px); object-fit: contain; background: #f2f2ef; }
.image-lightbox p { height: 22px; margin: 6px 0 0; overflow: hidden; color: #ddd; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.lightbox-close { position: absolute; top: 9px; right: 12px; padding: 4px 8px; border: 1px solid #aaa; background: #000; color: #fff; font: 11px/1.2 "Times New Roman", Times, serif; cursor: pointer; }
.catalog-footer { min-height: 57px; padding: 11px 0 18px; border-top: 1px solid #555; color: #c7c7c7; text-align: center; }
.catalog-footer p, .catalog-footer address { margin: 0 0 4px; }
.catalog-footer address { font-style: normal; }
.hp-partner-panel { width: 233px; margin: 18px auto 10px; padding: 24px; border: 1px solid #777; background: #fff; }
.hp-partner-panel img { display: block; width: 185px; height: auto; margin: 0 auto; }
.partner-status { color: #fff; font-weight: 700; }
.legal-copy { width: min(100%, 820px); margin: 7px auto !important; color: #aaa; font-size: 10px; line-height: 1.35; }

@media (max-width: 760px) {
  html, body { max-width: 100%; overflow-x: hidden; }
  body { margin: 0; background-size: 100% 650px; font-size: 14px; overflow-wrap: anywhere; }
  .catalog-frame, .catalog-content { width: 100%; max-width: 100%; }
  .breadcrumb { height: auto; min-height: 31px; padding: 8px 10px 6px; white-space: normal; }
  .title-strip { grid-template-columns: 84px minmax(0, 1fr); }
  .strip-title { overflow: hidden; padding-left: 8px; font-size: 11px; text-overflow: ellipsis; }
  .catalog-banner { height: auto; min-height: 348px; }
  .banner-copy { width: 100%; padding: 34px 24px 168px; }
  .banner-copy h1 { max-width: 330px; font-size: 32px; }
  .banner-copy > p:not(.banner-kicker):not(.banner-note) { max-width: 340px; }
  .banner-note { margin-top: 14px; }
  .banner-machine { bottom: -42px; width: 190px; height: 190px; }
  .machine-mini { right: auto; left: -22px; bottom: -31px; width: 160px; height: 160px; }
  .machine-tower { right: 57px; width: 205px; height: 205px; }
  .machine-large { right: -67px; width: 220px; height: 220px; }
  .announcement { height: auto; min-height: 35px; padding: 12px 10px 4px; font-size: 15px; white-space: normal; }
  .section-links { flex-wrap: wrap; min-height: 61px; padding: 7px 12px 14px; line-height: 1.8; }
  .ranking-guide { padding-inline: 10px; }
  .product-section { padding: 0 10px 29px; }
  .product-section + .product-section { padding-top: 17px; }
  .product-section h2, .catalog-status h2 { height: auto; min-height: 20px; padding-right: 5px; line-height: 1.25; }
  .product-grid { width: 100%; max-width: 100%; grid-template-columns: minmax(0, 1fr); gap: 13px; }
  .product-media { width: 300px; max-width: 100%; margin: 0 auto; }
  .main-shot { width: 100%; }
  .thumb-row { gap: 6px; }
  .product-copy { font-size: 14px; }
  .spec-table { font-size: 13px; }
  .spec-table th { width: 116px; }
  .compact-links { font-size: 11px; line-height: 1.7 !important; }
  .image-lightbox { width: 96vw; height: 88vh; padding-inline: 8px; }
  .catalog-status { padding-inline: 10px; }
  .page-links { flex-wrap: wrap; gap: 8px 12px; padding: 12px 8px; }
  .catalog-footer { padding-inline: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .product-illustration { transition: none; }
}
