/* Translation expansion and added locale control; source composition is retained. */
.language-picker{position:relative;flex-shrink:0;margin:0;border:0;font-size:12px}
.language-picker summary{padding:10px 6px;cursor:pointer;list-style:none;font:inherit;border:0}
.language-picker summary::after{display:none}.language-picker summary::-webkit-details-marker{display:none}
.language-options{position:absolute;right:0;top:100%;z-index:50;min-width:160px;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:6px;box-shadow:0 8px 24px #24252118}
.language-options a{display:block!important;padding:9px 12px;white-space:nowrap}.language-options a:hover,.language-options a[aria-current]{background:var(--yellow);border-radius:3px}
.duck-header nav{gap:20px}.duck-header .button-small{max-width:230px}.hero-copy,.hero-portrait,.kit-option,.film-copy,.preorder-summary,.user-path,.system-node,.system-inspector{min-width:0}
h1,h2,h3,h4,h5,.system-node-title,.button,.repo-label{overflow-wrap:break-word}.hero-sale-status{flex-wrap:wrap}.character-strip .wrap{flex-wrap:wrap}.kit-options,.idea-grid{min-width:0}
@media(min-width:801px){html:not([lang=ja]):not([lang=ko]) h1{font-size:clamp(46px,5.2vw,76px)}.hero-user-paths{grid-template-columns:1fr 1fr}.user-path-button{gap:10px}}
@media(max-width:1100px){.duck-header nav{gap:12px}.duck-header .nav-section{font-size:11px}.duck-header .button-small{max-width:180px}}
@media(max-width:800px){.duck-header{gap:12px}.duck-header nav{flex-wrap:wrap;justify-content:flex-end}.duck-header .button-small{display:none}.language-picker summary{padding:8px}.character-strip .wrap{gap:12px;font-size:10px}.system-node-title{font-size:18px}}
@media(max-width:600px){html:not([lang=ja]):not([lang=ko]) h1{font-size:clamp(38px,10.8vw,62px)}.hero-sale-shipping{font-size:16px}.hero-user-paths{grid-template-columns:1fr}.user-path-button{white-space:normal}.hero-open-source .open-source-links{grid-template-columns:1fr}.system-node-tags{flex-wrap:wrap}.system-board-heading{flex-wrap:wrap}.system-lane-heading{flex-wrap:wrap;gap:8px}.footer-top nav{flex-wrap:wrap}.software-footer{overflow-wrap:anywhere}.language-picker{font-size:12px}.hero-sale-status{font-size:13px}.kit-stock{font-size:10px}.preorder-section h2{font-size:38px}.system-node-description{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}

.video-play .play-icon{width:24px;height:24px;object-fit:contain}

/* Technical labels can be much longer in German and Russian. */
dt,dd,.notice-facts p,.notice-facts span{overflow-wrap:anywhere;min-width:0}
@media(max-width:360px){.contact-card,.contact-card-copy{min-width:0}.contact-card{grid-template-columns:minmax(0,1fr)}.contact-card h3,.contact-card .button{overflow-wrap:anywhere;max-width:100%}.software-usage>summary{flex-wrap:wrap;gap:12px}.usage-summary-copy{min-width:0}.usage-toggle{white-space:normal}}
/* Research-led project provenance; shares the original page tokens. */
.project-guide{padding-block:64px 0}.project-guide h2{max-width:940px;margin-top:14px}.project-guide>.section-description{max-width:920px;margin-top:22px}.project-sources{display:flex;flex-wrap:wrap;gap:16px 28px;margin-top:24px;font-size:13px;font-weight:600}.project-sources a{text-decoration:underline;text-underline-offset:4px}.project-identity{max-width:920px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);font-size:12px;line-height:1.8;color:var(--muted)}
@media(max-width:600px){.project-guide{padding-top:40px}.project-guide h2{font-size:30px}.project-sources{gap:16px;font-size:12px}.project-guide>.section-description{font-size:14px}.faq-section summary{padding-right:25px}}
.guide-hub{padding-block:32px 72px}.guide-hub h2{margin:12px 0 28px}.guide-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.guide-card{padding:28px;border:1px solid var(--line);border-radius:10px;display:block;background:#e9eddf}.guide-card:hover{border-color:var(--ink);background:#f8e9a4}.guide-card h3{font-size:23px;line-height:1.3;margin:18px 0 14px}.guide-card p{font-size:14px;line-height:1.8;color:#525a49}.guide-page{max-width:940px;padding-block:36px 72px}.guide-breadcrumb{margin-bottom:36px;font-size:13px}.guide-page h1{font-size:clamp(34px,4.2vw,60px)!important;line-height:1.15;margin:18px 0 28px;letter-spacing:-.04em}.guide-lead{font-size:20px;line-height:1.7}.guide-toc{padding:24px 30px;background:#e9eddf;border-radius:8px;margin:36px 0}.guide-toc h2{font-size:23px}.guide-page li{padding-block:7px;line-height:1.8}.guide-page a{text-decoration:underline;text-underline-offset:4px}.guide-page article>section{padding-top:40px;scroll-margin-top:110px}.guide-page h2{font-size:clamp(25px,3vw,36px);margin-bottom:20px}.guide-page article p{font-size:17px;line-height:1.9;margin-bottom:18px}.guide-page figure{margin:28px 0;background:#e9eddf;padding:20px;border-radius:8px}.guide-page figure img{width:auto;max-width:100%;max-height:520px;margin:auto}.guide-page figcaption{font-size:13px;line-height:1.6;margin-top:16px}.guide-table{overflow-x:auto;margin-block:24px}.guide-table table{width:100%;border-collapse:collapse;font-size:15px;min-width:520px}.guide-table th,.guide-table td{padding:16px;text-align:left;border:1px solid var(--line);line-height:1.6}.guide-table thead{background:var(--yellow)}.guide-sources,.guide-related{border-top:1px solid var(--line);margin-top:40px;padding-top:32px}.guide-related a{display:block;margin:16px 0}.guide-page~footer p{font-size:12px;line-height:1.8;margin-top:20px}
@media(max-width:800px){.guide-cards{grid-template-columns:1fr}.guide-hub{padding-bottom:40px}.guide-page{padding-top:28px}.guide-lead{font-size:17px}.guide-page article p{font-size:16px}.guide-toc{padding:22px}.guide-page ol{padding-left:22px}.guide-page figure{padding:12px}.duck-header:has(+.guide-page) nav>a{display:none}}
.guide-page article .guide-table-hint{display:none}@media(max-width:800px){.guide-page article .guide-table-hint{display:block;font-size:12px;color:var(--muted);margin-bottom:8px}.guide-table{margin-top:8px}}
/* Keep the portrait beside the start of the copy, then below the sticky header. */
@media(min-width:601px){.hero-portrait{position:sticky;top:calc(var(--header-height,90px) + 20px);align-self:start;margin-top:30px;max-height:calc(100svh - var(--header-height,90px) - 40px)}}
@media(min-width:601px) and (max-width:800px){.hero-portrait{margin-top:10px}}
@media(max-width:600px){.wordmark>span{font-size:21px;letter-spacing:-.8px}.footer-brand{font-size:25px}}

/* Direct contact replaces the upstream QR-card channel. */
.contact-card.community-card,.contact-card.payment-card{grid-template-columns:minmax(0,1fr)}.community-card h3+.button{margin-top:18px}.contact-email{display:block;margin-top:16px;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}.contact-phone{margin:12px 0;font-size:13px}.contact-card-copy{min-width:0}.contact-card .button{max-width:100%;white-space:normal}.guide-contact{display:flex;flex-wrap:wrap;gap:16px 24px;margin-top:22px}.guide-contact a{overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px}.footer-top nav a{overflow-wrap:anywhere}
.software-card>.section-description{margin-block:16px 24px}.software-card>.button{font-size:13px;padding:14px 16px;gap:12px}

.language-options{max-height:calc(100svh - var(--header-height,90px) - 24px);overflow-y:auto;overscroll-behavior:contain}

.site-page-nav,
.site-page-jumps {
  display: flex;
  flex-wrap: wrap;
  gap: 10px 24px;
}

.site-page-nav {
  margin-block: 18px;
  font-size: 14px;
}

.site-page-nav a {
  text-decoration: underline;
  text-underline-offset: 4px;
}

.site-page-nav [aria-current="page"] { font-weight: 700; }

.shop-page { max-width: 1100px; }
.shop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 20px;
  padding: 0;
  margin: 32px 0 0;
  list-style: none;
}
.shop-grid > li { padding: 0; }
.shop-page .shop-card {
  display: block;
  height: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #e9eddf;
  text-decoration: none;
}
.shop-card:hover, .shop-card:focus-visible { border-color: var(--ink); }
.shop-card img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.shop-card > div { padding: 16px; }
.shop-card h2 { margin: 6px 0 0; font-size: 19px; line-height: 1.35; }
.shop-category { color: #525a49; font-weight: 600; font-size: 14px; }
.shop-detail {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, .85fr);
  align-items: start;
  gap: clamp(20px, 4vw, 48px);
}
.shop-copy h1 { overflow-wrap: anywhere; }
.shop-page .shop-image { margin: 0; }
.shop-image img { height: auto; border-radius: 6px; }
.shop-availability { margin-top: 20px; color: #525a49; }
.shop-inquiry { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 18px; }
.shop-inquiry .button {
  max-width: 100%;
  padding: 15px 18px;
  color: var(--ink);
  background: var(--yellow);
  text-decoration: none;
  white-space: normal;
}
.shop-information { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 36px; }
.shop-information > section:last-child { grid-column: 1 / -1; }
.shop-information ul { padding-inline-start: 20px; }
.shop-specs > div {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1fr);
  gap: 12px;
  padding-block: 12px;
  border-top: 1px solid var(--line);
  overflow-wrap: anywhere;
}
.shop-specs dt { font-weight: 600; }
.shop-specs dd { margin: 0; }
@media (max-width: 760px) {
  .shop-detail, .shop-information { grid-template-columns: minmax(0, 1fr); }
}

.site-page-jumps {
  margin-block: 26px;
  padding: 16px 20px;
  border-radius: 8px;
  background: #e9eddf;
  line-height: 1.8;
}

.site-page .kit-options { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-page .kit-option { scroll-margin-top: 108px; }
.site-page .kit-option h2 { font-size: clamp(23px, 3vw, 32px); }
.site-page .kit-full .kit-inquiry { background: var(--yellow); color: var(--ink); }
.site-page .kit-inquiry { align-self: flex-start; margin-top: 16px; text-decoration: none; }
.site-page .bom-table-note { font-size: 12px; margin-bottom: 0; }
.site-page .bom-table :is(th, td) { overflow-wrap: anywhere; }
.site-page .bom-quantity { white-space: normal; overflow-wrap: anywhere; }
.site-page #full-bom, .site-page #base-bom { scroll-margin-top: 108px; }
.site-page .kit-order,
.site-page .order-pay-link { background: var(--yellow); color: var(--ink); text-decoration: none; }
.site-page .kit-order:hover,
.site-page .order-pay-link:hover { background: #edbd2e; }
.site-page .kit-order { align-self: flex-start; margin-top: 8px; }
.home-order-button { background: var(--yellow); color: var(--ink); }
.home-order-button:hover { background: #edbd2e; transform: none; }
.home-order-button:active { background: #dfac20; }
.kit-editions-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 16px 24px;
  margin: 12px 0 28px;
}
.kit-editions-heading h2 { position: relative; }
.kit-editions-heading h2::after {
  content: "";
  position: absolute;
  inset-inline-start: 0;
  bottom: -8px;
  width: 56px;
  height: 4px;
  border-radius: 2px;
  background: var(--yellow);
  opacity: 0;
  transform-origin: left center;
}
.kit-editions:is(:target, .comparison-visible) .kit-editions-heading h2::after { opacity: 1; }
.kit-editions .kit-option { outline: 2px solid transparent; outline-offset: 2px; }
.kit-editions .kit-option:focus-within { outline-color: #956900; }

@media (hover: hover) {
  .kit-editions .kit-option:hover { outline-color: #956900; }
}

@media (prefers-reduced-motion: no-preference) {
  .kit-compare-link > span { transition: transform 160ms ease-out; }
  .kit-compare-link:is(:hover, :focus-visible) > span { transform: translateY(3px); }
  .kit-editions.comparison-visible .kit-editions-heading h2::after { animation: kit-comparison-arrive 320ms cubic-bezier(0.16, 1, 0.3, 1); }
  .kit-editions .kit-option { transition: outline-color 180ms ease, transform 180ms ease-out; }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .kit-editions .kit-option:hover { transform: translateY(-3px); }
}

@keyframes kit-comparison-arrive {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}
.site-page-order {
  max-width: 1240px;
  padding-block: clamp(24px, 4vw, 44px) 48px;
}
.site-page-order .guide-breadcrumb { margin-bottom: 16px; }
.site-page-order h1 { margin-block: 0 12px; text-wrap: balance; }
.site-page-order .guide-lead { margin-bottom: 28px; }
.order-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.18fr) minmax(0, 1fr);
  grid-template-areas: "product payment";
  gap: clamp(16px, 2vw, 24px);
  align-items: start;
}
.site-page-order .order-product,
.order-card {
  border: 1px solid var(--line);
  border-radius: 16px;
  background: #fff;
}
.site-page-order .order-product { grid-area: product; margin: 0; padding: 4px; }
.site-page-order .order-product img {
  display: block;
  width: 100%;
  height: auto;
  max-height: none;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
}
.order-product figcaption {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 14px;
  margin: 0;
  padding: 12px 16px;
  color: #4d5145;
}
.order-product strong { color: var(--ink); font-size: 16px; }
.order-card {
  grid-area: payment;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  min-width: 0;
  padding: clamp(16px, 3vw, 36px);
  scroll-margin-top: 108px;
}
.order-card-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.order-card-heading h2 { margin: 0; }
.order-currency {
  flex-shrink: 0;
  padding: 4px 12px;
  border-radius: 99px;
  background: #fff0b5;
  font-size: 13px;
  font-weight: 700;
}
.order-card .order-terms { margin: 12px 0 16px; font-size: 15px; line-height: 1.6; }
.order-purchase { display: grid; gap: 12px; }
.order-purchase label { display: flex; align-items: center; gap: 12px; font-size: 15px; }
.order-purchase input {
  width: 76px;
  min-height: 44px;
  padding: 8px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: var(--paper);
  font: inherit;
  font-size: 16px;
}
.order-card .order-pay-link { justify-self: start; gap: 16px; white-space: normal; }
.order-card .order-pay-link:disabled { opacity: .6; cursor: not-allowed; }
.order-card .order-pay-link:hover { transform: none; }
.order-card .order-pay-link:active { background: #dfac20; }
.order-checklist { margin: 18px 0 24px; padding: 0; list-style: none; }
.order-checklist li {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-block: 12px;
  font-size: 16px;
  line-height: 1.5;
}
.order-checklist li + li { border-top: 1px solid var(--line); }
.order-checklist li::before {
  content: "";
  flex: 0 0 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--yellow) center / 12px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='m2 6 2.5 2.5L10 3' fill='none' stroke='%2324251f' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
@media (prefers-reduced-motion: no-preference) {
  .home-order-button > span,
  .order-card .order-pay-link > span { transition: transform 160ms ease-out; }
  .home-order-button:is(:hover, :focus-visible) > span,
  .order-card .order-pay-link:is(:hover, :focus-visible) > span { transform: translateX(4px); }
  .home-order-button:active,
  .order-card .order-pay-link:active { transform: translateY(1px); }
}

.order-card .order-receipt {
  margin: 14px 0 0;
  color: #4d5145;
  font-size: 14px;
}
.site-page-order .order-support {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px 20px;
  margin-top: 24px;
  padding: 18px clamp(16px, 3vw, 28px);
  border-radius: 12px;
  background: #e9eddf;
}
.order-support h2 { margin: 0; font-size: 20px; }
.site-page-order .order-support p {
  flex-basis: 100%;
  margin: 0;
  color: #4d5145;
  font-size: 14px;
}
.order-support .guide-contact { margin: 0; gap: 8px 20px; }
.order-support .kit-links { margin: 0; }
.site-page-order :is(a, summary):focus-visible { outline: 2px solid var(--ink); outline-offset: 4px; }

@media (max-width: 800px) {
  .order-grid {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "payment" "product";
  }
  .site-page-order .order-product {
    display: grid;
    grid-template-columns: minmax(72px, 25%) 1fr;
    align-items: center;
  }
  .site-page-order .order-product img { aspect-ratio: 1; }
  .site-page-order .guide-lead { margin-bottom: 20px; }
  .order-card .order-pay-link { justify-self: stretch; }
  .order-checklist { margin-block: 12px 16px; }
}

@media (max-width: 760px) {
  .site-page .kit-options { grid-template-columns: minmax(0, 1fr); }
  .site-page .bom-table thead th:first-child { width: 54px; }
  .site-page .bom-table thead th:first-child,
  .site-page .bom-table .bom-number { padding-inline: 7px; }
}

.related-parts a { max-width: 100%; overflow-wrap: anywhere; }
.shop-card-prices { display: grid; gap: 8px; margin-top: 10px; font-size: .92rem; line-height: 1.5; }
.shop-card-option, .shop-card-option > span, .shop-card-option > small { display: block; }
.shop-price [data-price-usd], .shop-card-prices [data-price-usd] { font-weight: 700; }
.shop-price small, .shop-card-prices small { color: #525a49; }
.shop-related { margin-top: 16px; }
.shop-options { margin-top: 24px; }
.shop-options h2 { margin-bottom: 0; }
.shop-options .shop-availability { margin-top: 4px; }
.shop-option { padding-block: 16px; border-bottom: 1px solid var(--line); scroll-margin-top: 110px; }
.shop-option h3 { font-size: 1.05rem; margin: 0 0 8px; }
.shop-option .shop-inquiry { margin-top: 10px; }

.duck-header .header-shop-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: 10px 14px;
  background: var(--yellow);
  border-radius: 6px;
  font-weight: 700;
  white-space: nowrap;
}
.duck-header .header-shop-link:focus-visible { outline: 2px solid var(--ink); outline-offset: 3px; }
@media (max-width: 1100px) {
  .duck-header:has(.header-shop-link) .nav-section { display: none; }
}
@media (max-width: 600px) {
  .duck-header:has(.header-shop-link) { flex-wrap: wrap; }
  .duck-header:has(.header-shop-link) nav { width: 100%; justify-content: space-between; gap: 8px; }
}

.floating-contact {
  position: fixed;
  inset-inline-end: max(16px, env(safe-area-inset-right));
  bottom: max(16px, env(safe-area-inset-bottom));
  z-index: 40;
  color: var(--ink);
}
.floating-contact summary {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 52px;
  padding: 8px 14px 8px 10px;
  border: 1px solid var(--ink);
  border-radius: 999px;
  background: var(--yellow);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.3;
  list-style: none;
  cursor: pointer;
}
.floating-contact summary::-webkit-details-marker { display: none; }
.floating-contact summary img { flex: none; width: 32px; height: 32px; }
.floating-contact summary > span { font: inherit; transform: none; }
.floating-contact[open] summary > span { transform: none; }
.floating-contact-links {
  position: absolute;
  inset-inline-end: 0;
  bottom: calc(100% + 8px);
  min-width: 160px;
  max-width: calc(100vw - 32px);
  padding: 4px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: var(--paper);
  box-shadow: 0 6px 18px #24252122;
}
.floating-contact-links a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 8px 12px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
}
.floating-contact-links a:hover { background: #e9eddf; }
.floating-contact :is(summary, a):focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
body:has(.floating-contact) { --floating-contact-clearance: 64px; }
body:has(.floating-contact[open]) { --floating-contact-clearance: 164px; }
@media (max-width: 600px) {
  .floating-contact summary { justify-content: center; width: 52px; padding: 8px; }
  .floating-contact summary > span { display: none; }
  body:has(.floating-contact) { padding-bottom: max(72px, calc(56px + env(safe-area-inset-bottom))); }
}

@media(min-width:801px) and (max-width:1150px) { .guide-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
.tutorial-reading { padding-inline-start:20px; margin:0; }

@media (max-width:650px) {
  .guide-page:not(.shop-page) h1 {
    font-size:clamp(25px,7.2vw,36px)!important;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    overflow-wrap:anywhere
  }
  html:not([lang=ja]):not([lang=ko]) #hero-title,
  #hero-title {
    font-size:clamp(25px,7.6vw,42px);
    line-height:1.16;
    letter-spacing:-.035em;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow:hidden;
    text-wrap:balance
  }
  #hero-title br {display:none}
  #hero-title>span {
    display:inline;
    background:linear-gradient(transparent 77%,var(--yellow) 77%) no-repeat;
    box-decoration-break:clone;
    -webkit-box-decoration-break:clone
  }
  #hero-title>span::after {display:none}
}
