/* language switch (German default) */
.de { display:block; } .en { display:none; }
span.de, a.de, strong.de, em.de { display:inline; } span.en, a.en, strong.en, em.en { display:none; }
li.de { display:list-item; } li.en { display:none; }
.checks li.de { display:flex; } .checks li.en { display:none; }
body.lang-en .de { display:none !important; }
body.lang-en .en { display:block !important; }
body.lang-en span.en, body.lang-en a.en, body.lang-en strong.en, body.lang-en em.en { display:inline !important; }
body.lang-en li.en { display:list-item !important; }
body.lang-en .checks li.en { display:flex !important; }
/* DCS Chess frame */
.topbar .brand-logo img { height: 40px; width: auto; }
.lang-btn { border: 1.5px solid var(--line-2); background: #fff; border-radius: 8px; padding: 6px 11px; font: 600 .82rem 'IBM Plex Mono', monospace; cursor: pointer; }
.btn-disabled { background: var(--wash-2); color: var(--muted); border: 1.5px solid var(--line-2); cursor: default; }
/* czubatronic/ section additions on top of /products/products.css */
.formula .card { background: #131417; border-color: #26282E; }
.band-ink .outro { color: rgba(255,255,255,.72); margin-top: 26px; max-width: 760px; }
.movelist { margin: 0 0 18px; padding-left: 20px; color: var(--muted); }
.movelist li { margin: 6px 0; }
.pcard-how { display: flex; gap: 16px; align-items: flex-start; text-decoration: none; color: inherit; }
.pcard-how img { width: 84px; height: 84px; object-fit: cover; object-position: center 25%; border-radius: 10px; flex: none; }
.prose p { color: var(--muted); margin: 0 0 16px; font-size: 1.05rem; }
.sechead .claim { color: var(--ink); font-weight: 500; margin-top: 14px; border-left: 3px solid var(--coral); padding-left: 14px; }
.muted { color: var(--muted); }
.subhead { font-size: 1.3rem; letter-spacing: -.02em; margin: 0 0 18px; }
.ptags { display: flex; gap: 6px; flex-wrap: wrap; margin: 10px 0 14px; }
.ptag { font-family: 'IBM Plex Mono', monospace; font-size: .66rem; letter-spacing: .1em; text-transform: uppercase;
  color: var(--blue-dk); background: var(--blue-gh); border: 1px solid #D6E4FF; padding: 3px 8px; border-radius: 999px; }
.prodcard .thumb.portrait { aspect-ratio: 1/1; background: var(--wash-2); }
.prodcard .thumb.portrait img { object-position: center 25%; }
.personas.secondary .prodcard .thumb.portrait { aspect-ratio: 16/9; }
.packcard { text-decoration: none; color: inherit; display: block; }
.option .kicker { margin-bottom: 8px; }
.pricetag .amount { font-size: 2rem; }
.engine-card { background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 30px; max-width: 880px; }
.engine-card h3 { margin: 0 0 16px; font-size: 1.4rem; letter-spacing: -.03em; }
.persona-grid { display: grid; grid-template-columns: 300px 1fr; gap: 48px; align-items: center; }
.persona-portrait img { width: 100%; border-radius: var(--radius-lg); border: 1px solid var(--line-2); box-shadow: var(--sh-lg); }
@media (max-width: 760px) { .persona-grid { grid-template-columns: 1fr; gap: 24px; } .persona-portrait { max-width: 220px; } }
/* story gallery */
.story-main { display: grid; grid-template-columns: minmax(0, 2fr) minmax(280px, 1fr); gap: 28px; align-items: stretch; }
.story-stage { position: relative; aspect-ratio: 16/9; background: #15110d; border-radius: var(--radius-lg); border: 1px solid var(--line-2); box-shadow: var(--sh-lg); overflow: hidden; }
.story-slide { position: absolute; inset: 0; margin: 0; display: none; cursor: zoom-in; }
.story-slide.active { display: block; }
.story-slide img { width: 100%; height: 100%; object-fit: contain; }
.story-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px; border-radius: 50%;
  border: 0; background: rgba(255,255,255,.88); color: var(--ink); font-size: 1.6rem; line-height: 1; cursor: pointer; box-shadow: var(--sh-md); }
.story-nav.prev { left: 14px; } .story-nav.next { right: 14px; }
.story-nav:hover { background: #fff; }
.story-zoom { position: absolute; right: 14px; top: 14px; z-index: 2; width: 38px; height: 38px; border-radius: 9px; border: 0;
  background: rgba(255,255,255,.88); color: var(--ink); font-size: 1.1rem; cursor: pointer; }
.story-side { display: flex; flex-direction: column; justify-content: space-between; background: var(--white); border: 1px solid var(--line);
  border-radius: var(--radius-lg); padding: 26px; }
.story-cap { display: none; }
.story-cap.active { display: block; }
.story-cap h3 { margin: 0 0 10px; font-size: 1.35rem; letter-spacing: -.025em; line-height: 1.2; }
.story-cap p { margin: 0; color: var(--muted); font-size: .98rem; line-height: 1.6; }
.story-ctrl { display: flex; align-items: center; gap: 12px; margin-top: 22px; }
.story-play { width: 38px; height: 38px; border-radius: 50%; border: 1.5px solid var(--line-2); background: #fff; cursor: pointer; font-size: .8rem; }
.story-hint { font-size: .8rem; color: var(--muted); }
.story-thumbs { display: flex; gap: 10px; overflow-x: auto; padding: 18px 2px 6px; scrollbar-width: thin; }
.story-thumb { flex: none; width: 112px; aspect-ratio: 16/9; padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden;
  background: #15110d; cursor: pointer; opacity: .62; transition: opacity .15s ease, border-color .15s ease; }
.story-thumb img { width: 100%; height: 100%; object-fit: cover; object-position: top left; }
.story-thumb:hover { opacity: 1; }
.story-thumb.active { opacity: 1; border-color: var(--blue); }
@media (max-width: 900px) { .story-main { grid-template-columns: 1fr; } .story-side { padding: 20px; } }
.lightbox { position: fixed; inset: 0; z-index: 100; background: rgba(10,10,10,.94); display: flex; align-items: center; justify-content: center; }
.lightbox[hidden] { display: none; }
.lightbox figure { margin: 0; max-width: 94vw; max-height: 92vh; display: flex; flex-direction: column; align-items: center; gap: 14px; }
.lightbox img { max-width: 94vw; max-height: 80vh; width: auto; height: auto; border-radius: var(--radius); }
.lightbox figcaption { color: rgba(255,255,255,.85); font-size: .95rem; max-width: 900px; text-align: center; }
.lb-close { position: absolute; top: 18px; right: 22px; border: 0; background: transparent; color: #fff; font-size: 2.4rem; cursor: pointer; line-height: 1; }
.lb-nav { position: absolute; top: 50%; transform: translateY(-50%); width: 48px; height: 48px; border-radius: 50%; border: 0;
  background: rgba(255,255,255,.18); color: #fff; font-size: 1.8rem; cursor: pointer; }
.lb-nav.prev { left: 22px; } .lb-nav.next { right: 22px; }
.lb-nav:hover { background: rgba(255,255,255,.32); }
.doclist { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.namelist { list-style: none; padding: 0; margin: 0; columns: 3; column-gap: 32px; }
.namelist li { padding: 6px 0; border-bottom: 1px solid var(--line); break-inside: avoid; }
@media (max-width: 760px) { .namelist { columns: 1; } }
code { font-family: 'IBM Plex Mono', monospace; font-size: .85em; }
/* planned prices (2026-10-16): provisional until the product can be bought */
.pricetag.planned .terms { color: var(--coral-dk); font-weight: 600; }
.prep-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; background: #FBEFD6; color: #8A5A10; font-size: .78rem; font-weight: 700; letter-spacing: .02em; }
.planned-tag, .planned-mini { display: block; font-size: .8rem; font-weight: 600; color: var(--coral-dk); margin-top: 2px; }
.planned-note { font-size: .88rem; color: var(--muted); border-left: 3px solid #E3A24A; padding: 6px 0 6px 12px; margin: 16px 0 0; max-width: 760px; }
/* device gallery (2026-10-16) */
.gallery { margin: 0 0 36px; outline: none; }
.g-slide { display: none; margin: 0; }
.g-slide.active { display: block; }
.g-zoom { display: block; cursor: zoom-in; }
.g-slide img { width: 100%; height: auto; display: block; border-radius: var(--radius-lg); border: 1px solid var(--line-2); box-shadow: var(--sh-lg); }
.g-slide figcaption { padding: 18px 2px 4px; max-width: 780px; min-height: 118px; }
.g-kicker { font: 600 .74rem 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .06em; color: var(--blue); }
.g-slide figcaption h3 { margin: 6px 0 6px; font-size: 1.3rem; }
.g-slide figcaption p { margin: 0; color: var(--ink-2); }
.g-controls { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.g-thumbs { flex: 1; display: grid; grid-template-columns: repeat(var(--n, 8), 1fr); gap: 8px; }
.g-thumb { padding: 0; border: 2px solid transparent; border-radius: 8px; overflow: hidden; background: none; cursor: pointer; opacity: .6; transition: opacity .15s; }
.g-thumb.active, .g-thumb:hover { opacity: 1; border-color: var(--blue); }
.g-thumb img { width: 100%; height: auto; display: block; }
.g-nav { flex: none; width: 42px; height: 42px; border-radius: 50%; border: 1.5px solid var(--line-2); background: #fff; color: var(--ink); font-size: 1.6rem; line-height: 1; cursor: pointer; }
.g-nav:hover { border-color: var(--blue); color: var(--blue); }
@media (max-width: 760px) { .g-thumbs { grid-template-columns: repeat(5, 1fr); } .g-nav { width: 36px; height: 36px; } .g-slide figcaption { min-height: 0; } }
.g-lightbox { position: fixed; inset: 0; z-index: 1000; background: rgba(15,10,7,.92); display: flex; align-items: center; justify-content: center; padding: 16px; cursor: zoom-out; }
.g-lightbox[hidden] { display: none; }
.g-lightbox img { max-width: 100%; max-height: 100%; border-radius: 10px; }
.g-lightbox button { position: absolute; top: 14px; right: 18px; width: 44px; height: 44px; border-radius: 50%; border: 0; background: rgba(255,255,255,.18); color: #fff; font-size: 1.8rem; cursor: pointer; }
/* board connection table */
.table-wrap { overflow-x: auto; }
table.boards { width: 100%; border-collapse: collapse; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; font-size: .95rem; }
table.boards th { text-align: left; font: 600 .75rem 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); background: var(--wash); padding: 12px 14px; }
table.boards td { padding: 13px 14px; border-top: 1px solid var(--line); vertical-align: top; }
.bstat { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.bstat.tested { background: #E3F2E1; color: #22662B; }
.bstat.partly { background: #FBEFD6; color: #8A5A10; }
.bstat.built { background: var(--wash-2); color: var(--muted); }
@media (max-width: 760px) {
  table.boards thead { display: none; }
  table.boards, table.boards tbody, table.boards tr, table.boards td { display: block; width: 100%; }
  table.boards tr { border-top: 1px solid var(--line-2); padding: 8px 0; }
  table.boards td { border-top: 0; padding: 6px 14px; }
  table.boards td::before { content: attr(data-l); display: block; font: 600 .7rem 'IBM Plex Mono', monospace; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); }
}
/* family page (D-49) */
.fam-tiles { max-width: 960px; }
.ladder { list-style: none; padding: 0; margin: 8px 0 18px; display: grid; grid-template-columns: repeat(7, 1fr); gap: 10px; align-items: end; }
.ladder li { display: flex; flex-direction: column; justify-content: flex-end; gap: 6px; padding: 12px 10px;
  min-height: calc(44px + var(--step) * 22px); border-radius: 10px; color: #fff;
  background: linear-gradient(180deg, #C27A3A, #7F3D14); box-shadow: var(--sh-md); }
.ladder .lv-n { font: 600 .78rem 'IBM Plex Mono', monospace; opacity: .8; }
.ladder .lv-name { font-weight: 600; line-height: 1.2; }
.ladder-note { margin-top: 6px; }
@media (max-width: 760px) { .ladder { grid-template-columns: 1fr; } .ladder li { min-height: 0; flex-direction: row; align-items: center; margin-left: calc((7 - var(--step)) * 4%); } }
.lcd-box { margin: 0 0 26px; max-width: 760px; }
.lcd-box figcaption { font: 600 .78rem 'IBM Plex Mono', monospace; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.lcd { background: #1B140F; border: 6px solid #4A2E1C; border-radius: 12px; padding: 18px 22px; box-shadow: inset 0 0 26px rgba(0,0,0,.6), var(--sh-md); }
.lcd-line { font: 600 clamp(.85rem, 2.2vw, 1.15rem) 'IBM Plex Mono', monospace; color: #F2B54A; letter-spacing: .04em; text-shadow: 0 0 8px rgba(242,181,74,.45); }
.lcd-line + .lcd-line { margin-top: 8px; color: #8FE08A; text-shadow: 0 0 8px rgba(143,224,138,.45); }
.coach-step .step-n { display: inline-flex; width: 30px; height: 30px; border-radius: 50%; align-items: center; justify-content: center;
  background: var(--blue-gh); color: var(--blue-dk); font-weight: 700; margin-bottom: 10px; }
.coach-extra { margin-top: 18px; }
.wide-photo { width: 100%; height: auto; border-radius: var(--radius-lg); box-shadow: var(--sh-lg); margin: 0 0 26px; display: block; }
.history-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 36px; align-items: start; }
.history-photo { width: 100%; height: auto; border-radius: var(--radius-lg); box-shadow: var(--sh-lg); position: sticky; top: 90px; }
.timeline { list-style: none; margin: 0; padding: 0 0 0 22px; border-left: 3px solid var(--line-2); }
.timeline li { position: relative; padding: 0 0 22px 14px; }
.timeline li::before { content: ""; position: absolute; left: -31px; top: 4px; width: 15px; height: 15px; border-radius: 50%; background: var(--blue); border: 3px solid var(--wash); }
.timeline .when { font: 600 .82rem 'IBM Plex Mono', monospace; color: var(--blue-dk); text-transform: uppercase; letter-spacing: .05em; }
.timeline p { margin: 4px 0 0; }
@media (max-width: 760px) { .history-grid { grid-template-columns: 1fr; } .history-photo { position: static; max-height: 360px; object-fit: cover; } }
/* DCS Chess theme (2026-10-14): walnut, ivory and copper instead of blue; serif headings; chessboard pattern; photo heroes.
   Loaded last, so it overrides /products/products.css variables. Remove this block to return to the old look. */
:root {
  --white: #FFFDF8; --ink: #1D1510; --ink-2: #33261D; --muted: #6E5F53;
  --line: #E9DFCF; --line-2: #D8C8B0; --wash: #F6EFE3; --wash-2: #EEE3D1;
  --blue: #A4541F; --blue-dk: #7F3D14; --blue-hi: #E3A24A; --blue-gh: #F7EADB;
  --coral: #C8322B; --coral-dk: #A3241F; --coral-gh: #FBEDEA;
  --sh-blue: 0 12px 28px -10px rgba(164,84,31,.5);
}
body { background: var(--white); color: var(--ink); }
h1, .sechead h2, .callout h3, .pb-quote { font-family: 'Fraunces', Georgia, 'Times New Roman', serif; font-weight: 600; letter-spacing: -.015em; }
h1 em { font-style: italic; color: var(--blue); }
.topbar { background: rgba(255,253,248,.94); border-bottom-color: var(--line); }
.eyebrow, .eyebrow.coral { color: var(--blue-dk); background: var(--blue-gh); border-color: #EBD3B8; }
.kicker { color: var(--blue); }
.hero::before { background: radial-gradient(720px 340px at 88% -6%, rgba(227,162,74,.16), transparent 70%), radial-gradient(520px 280px at 4% 2%, rgba(164,84,31,.08), transparent 70%); }
/* sections: one large tilted board like the CZUBATRONIC splash screen (retro_chess_app/splash_game.py:
   light #DECDAC, dark #8C6848, frame #4A2E1C, leaning away to the right), not a small repeating pattern */
.band, .band-ink { position: relative; overflow: hidden; }
.band { background: var(--wash); }
.band-ink { background: #2A1D14; }
.band::after, .band-ink::after { content: ""; position: absolute; z-index: 0; pointer-events: none;
  width: 980px; height: 980px; right: -170px; bottom: -430px;
  background: conic-gradient(#8C6848 0 25%, #DECDAC 0 50%, #8C6848 0 75%, #DECDAC 0) 0 0 / 25% 25%;
  border: 22px solid #4A2E1C; border-radius: 6px;
  transform: perspective(1500px) rotateX(56deg) rotateZ(-24deg);
  -webkit-mask-image: linear-gradient(to top, #000 35%, transparent 92%); mask-image: linear-gradient(to top, #000 35%, transparent 92%); }
.band::after { opacity: .2; }
.band-ink .card { background: rgba(255,244,230,.05); border-color: rgba(255,244,230,.12); }
.card .ico { background: var(--blue-gh); color: var(--blue-dk); }
.band-ink .card .ico { background: rgba(227,162,74,.16); color: #F1C27D; }
.band-ink::after { opacity: .30; }
.band > .wrap, .band-ink > .wrap { position: relative; z-index: 1; }
@media (max-width: 900px) { .band::after, .band-ink::after { width: 640px; height: 640px; right: -220px; bottom: -300px; } }
.band-ink .kicker { color: var(--blue-hi); }
.card, .prodcard, .engine-card, .story-side, .edition, .ptile, .flag { background: #FFFEFB; }
.callout { background: #1D1510; }
/* photo hero */
.hero.hero-photo { color: #FBF4E8; padding: 120px 0 96px;
  background: linear-gradient(90deg, rgba(20,13,9,.94) 0%, rgba(20,13,9,.80) 42%, rgba(20,13,9,.35) 100%), var(--hero-img) var(--hero-pos, center) / cover no-repeat; }
.hero.hero-photo::before { display: none; }
.hero.hero-photo h1, .hero.hero-photo .sub { color: #FBF4E8; }
.hero.hero-photo h1 em { color: #F1C27D; }
.hero.hero-photo .lede { color: rgba(251,244,232,.84); }
.hero.hero-photo .eyebrow { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.2); color: #F1C27D; }
.hero.hero-photo .btn-ghost { background: transparent; color: #FBF4E8; border-color: rgba(251,244,232,.4); }
.hero.hero-photo .btn-ghost:hover { border-color: #FBF4E8; }
.hero.hero-photo a.more, .hero.hero-photo .more { color: #F1C27D; }
.hero.hero-photo .pricetag .amount { color: #FBF4E8; }
.hero.hero-photo .pricetag .terms { color: rgba(251,244,232,.7); }
.hero.hero-photo .heroshot img { border-color: rgba(255,255,255,.18); }
/* full-width photo band */
.photo-band { position: relative; padding: 130px 0; color: #FBF4E8;
  background: linear-gradient(0deg, rgba(20,13,9,.82), rgba(20,13,9,.55)), var(--band-img) center / cover no-repeat; }
.photo-band .pb-quote { font-size: clamp(1.9rem, 4vw, 3.1rem); line-height: 1.12; max-width: 820px; margin: 0 0 18px; color: #FBF4E8; }
.photo-band .pb-sub { max-width: 640px; color: rgba(251,244,232,.82); font-size: 1.1rem; margin: 0 0 26px; }
footer.site .credits { font-size: .75rem; color: rgba(255,255,255,.42); margin-top: 10px; }
.devices-shot { position: relative; z-index: 1; margin: 0 0 36px; }
.devices-shot img { width: 100%; height: auto; border-radius: var(--radius-lg); border: 1px solid var(--line-2); box-shadow: var(--sh-lg); }

