/* Quiet surfaces and small, purposeful motion. Product source files stay intact. */
:root{--motion-ease:cubic-bezier(.22,1,.36,1);--stage:#dfe2df;--card-shadow:0 1px 2px #00000012;--card-hover-shadow:0 8px 22px #00000024}
html[data-theme="light"]{--stage:#eceeea;--card-edge:#d2d6d0;--card-shadow:0 1px 2px #1d292908;--card-hover-shadow:0 8px 22px #1d292910}
html[data-theme="dark"]{--stage:#bdc5c0;--card-edge:#50575a;--nav-hover:#303735}
.topbar,html[data-theme="dark"] .topbar{background:var(--page)}
.topbar .header-inner nav a{position:relative;border-radius:8px}
.topbar .header-inner nav a.active{color:var(--ink);background:var(--nav-hover)}
.topbar .header-inner nav a::after{content:"";display:block;position:absolute;left:24px;right:24px;bottom:4px;height:2px;background:var(--accent-fill);transform:scaleX(0);transform-origin:center}
.topbar .header-inner nav a.active::after{transform:scaleX(1)}
.topbar .header-contact,.topbar .header-contact.active{border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);font-weight:600;outline:none}
.topbar .header-contact:hover{background:var(--nav-hover);border-color:var(--control-line);filter:none}
.topbar .header-contact.active{border-color:var(--accent)}
.topbar .theme-toggle,.topbar .language-toggle{border-radius:8px;background:transparent}
.topbar .brand small{letter-spacing:.02em}
.category-navigation{border-radius:12px;box-shadow:none}
.category-nav-scroll{position:relative;isolation:isolate;border-radius:7px}
.category-nav-button{position:relative;z-index:1;border-radius:7px}
.category-nav-button.active{background:var(--soft);color:var(--ink);box-shadow:inset 0 -2px var(--accent-fill)}
.category-nav-button.active b{color:var(--muted)}
.category-nav-button.active:focus-visible{outline-color:var(--accent)}
.category-nav-scroll.has-motion-indicator .category-nav-button.active{background:transparent;box-shadow:none}
.category-motion-indicator{position:absolute;z-index:0;left:0;top:0;height:100%;pointer-events:none;border-radius:7px;background:var(--soft);box-shadow:inset 0 -2px var(--accent-fill)}
.product-card,.news-home .release-grid .release-card,.news-home .hotspot-card,.news-home .news-card{border-radius:10px}
.filters,.detail-image,.compare-product-image,.variant-section{border-radius:10px}
.product-card .manufacturer{font-weight:600}
.product-card .card-title{margin-top:6px}
.product-description{line-height:1.75}
.news-home .release-hero h2{line-height:1.4;letter-spacing:-.025em}
.news-home .release-hero-feature{line-height:1.8}
.news-home .release-hero-image{border-radius:10px}
/* Pale studio canvases retain contrast for both white and black hardware. */
:is(.product-visual,.detail-image,.release-image,.release-hero-image,.compare-product-image,.list-product-image){isolation:isolate}
.news-home .release-hero-image{background:radial-gradient(ellipse at 50% 36%,color-mix(in srgb,var(--stage) 92%,white),var(--stage));border:1px solid color-mix(in srgb,var(--stage) 85%,var(--ink))}
:is(.product-visual,.detail-image,.release-image,.release-hero-image,.compare-product-image):has(img[data-image-canvas="white"]),html[data-theme="dark"] :is(.product-visual,.detail-image,.release-image,.release-hero-image,.compare-product-image):has(img[data-image-canvas="neutral"]){background:var(--stage)}
/* Only the two reviewed white studio images use blending; documentary photos do not. */
html :is(.product-visual,.detail-image,.release-image,.release-hero-image,.compare-product-image) img.media-product[data-image-canvas="white"]{mix-blend-mode:multiply;background:transparent}
.news-home .release-grid [data-news-photo="zeroth-bridge-geek"] .release-image{background:var(--image-soft)}
.news-home .release-grid .release-links,.news-home .hotspot-links{border-top-color:color-mix(in srgb,var(--line) 65%,transparent)}
.carousel-brief{border-radius:6px;padding-inline:16px}
.carousel-brief::before{width:2px}
.carousel-brief[aria-current="true"],html[data-theme="dark"] .carousel-brief[aria-current="true"]{background:var(--nav-hover)}
.carousel-brief-name{font-weight:600}
.release-carousel-progress{display:block;flex:1;max-width:160px;height:2px;overflow:hidden;background:var(--line);margin-inline:8px auto;align-self:center}
.release-carousel-progress i{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}
.release-carousel-track[data-animating="true"]{scroll-snap-type:none;scroll-behavior:auto}
.release-carousel-dots button span{height:5px}
.release-carousel-dots button[aria-current="true"] span{width:24px}
.news-home .recent-releases>.section-heading{padding-top:34px}
@media(prefers-reduced-motion:no-preference){
 .topbar .header-inner nav a::after{transition:transform 220ms var(--motion-ease)}
 .topbar :is(nav a,.header-contact,.theme-toggle,.language-toggle),.category-nav-button{transition:background-color 200ms ease,color 200ms ease,border-color 200ms ease}
 .product-card,.news-home .release-grid .release-card,.news-home .hotspot-card,.news-home .news-card{transition:translate 240ms var(--motion-ease),border-color 240ms ease,box-shadow 240ms ease}
 :is(.product-visual,.release-image,.hotspot-image,.release-hero-image) img{transition:scale 400ms var(--motion-ease)}
 .carousel-brief{transition:background-color 240ms ease}
 .carousel-brief-arrow{transition:opacity 220ms ease,translate 220ms var(--motion-ease);translate:-4px 0}
 .carousel-brief[aria-current="true"] .carousel-brief-arrow,.carousel-brief:hover .carousel-brief-arrow{translate:0 0}
 .button{transition:background-color 180ms ease,border-color 180ms ease,translate 180ms var(--motion-ease)}
 .button:active{translate:0 1px}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .product-card:hover,.news-home .release-grid .release-card:hover,.news-home .hotspot-card:hover,.news-home .news-card:hover{translate:0 -3px}
 :is(.product-visual,.release-image,.hotspot-image,.release-hero-image):hover img{scale:1.02}
 /* Use independent scale so the source-specific placement remains untouched. */
 .news-home .release-grid .release-image:hover img{transform:none}
}
@media(max-width:680px){
 .release-carousel-progress{max-width:64px;margin-inline:0 4px}
 .carousel-brief::before{width:auto;height:2px}
 .topbar .header-inner nav a::after{left:12px;right:12px}
 .news-home .recent-releases>.section-heading{padding-top:26px}
}
@media(prefers-reduced-motion:reduce){
 .release-carousel-progress{display:none}
 .category-motion-indicator{transition:none}
 .product-card,.news-home .release-grid .release-card,.news-home .hotspot-card,.news-home .news-card{translate:none!important}
}
@media(forced-colors:active){
 .category-nav-button.active b{color:ButtonText}
 .category-motion-indicator{outline:2px solid Highlight;outline-offset:-2px}
 .category-nav-button.active,.topbar .header-inner nav a.active{outline:2px solid Highlight;outline-offset:-2px}
 .release-carousel-progress{display:none}
}

/* v71: the products lead; secondary controls and repeated metadata recede. */
:root{--header-clearance:112px;--card-shadow:none;--card-hover-shadow:0 4px 16px #00000012;--studio:#e2e4e0}
html[data-theme="light"]{--card-shadow:none;--card-hover-shadow:0 4px 16px #1d29290c}
.topbar .header-inner{min-height:92px;padding-block:12px;gap:24px}
.topbar .brand{font-size:27px}
.topbar .brandmark{width:48px;height:48px;min-width:48px;font-size:36px;border-radius:10px}
.topbar .brand small{font-size:12px;margin-top:5px}
.topbar .header-inner nav{gap:20px}
.topbar .header-inner nav a{min-height:48px;font-size:20px;padding:10px 20px}
.topbar .header-actions{gap:8px}
.topbar :is(.theme-toggle,.language-toggle){min-height:44px;min-width:44px;padding:10px 12px;border-color:transparent;font-size:15px}
.topbar .header-contact,.topbar .header-contact.active{min-height:44px;min-width:110px;padding:10px 18px;font-size:16px}
main{padding-top:28px}
.news-home{padding-top:0}
.news-home .release-heading{padding-bottom:16px}
.news-home .release-heading h1{font-size:30px}
.news-home .release-heading p{margin-top:4px}
.news-home .news-controls{margin-bottom:24px}
.news-home .release-hero{gap:24px}
.news-home .release-hero h2{font-size:clamp(26px,2vw,38px);line-height:1.35;margin-bottom:12px}
.news-home .release-hero-kicker{margin-bottom:12px}
.news-home .release-hero-feature{margin:12px 0 18px;line-height:1.7}
.news-home .release-hero-image{height:clamp(340px,25vw,460px);padding:20px;background:var(--studio);border:0}
.news-home .release-hero-image img.media-product{height:100%;max-height:100%;padding:0}
.news-home .news-lead-layout{margin-bottom:36px;gap:28px}
.news-home .carousel-brief{padding-block:12px}
.news-home .carousel-brief-name{font-size:20px}
.news-home .release-grid .release-card,.news-home .hotspot-card{height:100%}
.news-home .hotspot-image{aspect-ratio:16/9}
.news-home .release-grid .release-image{height:auto;min-height:0;aspect-ratio:4/3;padding:16px}
.news-home .release-grid .release-image img{height:100%;max-height:100%}
.news-home .release-grid .release-body,.news-home .hotspot-body{padding:20px;display:flex;flex-direction:column;flex:1}
.news-home .release-grid .release-body>p,.news-home .hotspot-body>p{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;line-height:1.7}
.news-home .hotspot-body h3{font-size:22px;line-height:1.45}
.news-home .release-grid .release-links,.news-home .hotspot-links{margin-top:auto;padding-top:12px;border-top:0}
.news-home .release-delta-note{display:none}

.catalog-heading{padding-bottom:18px}
.catalog-heading h1{font-size:32px}
.category-navigation{margin-bottom:24px;padding:6px;border-radius:10px}
.category-nav-button{min-height:54px;padding:10px 24px;font-size:22px}
.search-row{margin-bottom:18px}
.catalog-layout .product-grid{align-items:stretch;gap:24px}
.product-card{display:flex;flex-direction:column;min-width:0}
.catalog-layout .product-card .product-visual,.product-card .product-visual{height:clamp(228px,17vw,300px);flex:none;background:var(--studio);border-bottom:0}
.product-card .product-visual img.media-product{height:100%;width:100%;padding:38px 18px 16px;object-fit:contain}
/* The low-resolution Q1 reference keeps its original cap; remove extra inset inside it. */
.product-card .product-visual img[data-image-canvas="neutral"]{padding:0;max-height:220px;width:auto;max-width:85%;margin-top:20px}
:is(.product-visual,.detail-image,.release-image,.release-hero-image,.compare-product-image):has(img[data-image-canvas="neutral"]),html[data-theme="dark"] :is(.product-visual,.detail-image,.release-image,.release-hero-image,.compare-product-image):has(img[data-image-canvas="neutral"]){background:var(--studio)}
html :is(.product-visual,.detail-image,.release-image,.release-hero-image,.compare-product-image):has(img[data-image-canvas="white"]){background:var(--studio)}
.product-card .card-content{display:flex;flex-direction:column;flex:1;padding:18px 20px 20px}
.product-card .card-heading{padding:0}
.product-card .card-title,.product-card .card-brand-row .manufacturer{font-size:22px;line-height:1.35}
.product-card .card-brand-row .manufacturer{font-weight:500;color:var(--muted)}
.product-card .card-brand-row .model-meta{font-size:12px;line-height:1.5;margin:0}
.product-card .card-title{margin-top:4px}
.product-card .card-classification{gap:6px;margin-top:10px;min-height:24px}
.product-card .card-classification :is(.size-badge,.maturity-badge){font-size:12px;font-weight:500;padding:2px 6px;line-height:1.5;border:0;box-shadow:none;color:var(--muted);background:var(--soft)}
.product-card .product-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;min-height:3.4em;margin:12px 0;font-size:15px;line-height:1.7;color:var(--muted)}
.product-card .card-facts{margin:0;padding:12px 0 0;border-top:1px solid var(--line)}
.product-card .card-facts .card-version-context{font-size:12px;margin-bottom:8px;line-height:1.5}
.product-card .card-specs{gap:12px}
.product-card .card-specs>div+div{border:0;padding-left:0}
.product-card .card-specs dt,.product-card .card-spec-note{font-size:12px;line-height:1.5}
.product-card .card-specs strong,.product-card .card-specs .is-compact{font-size:18px;line-height:1.5}
.product-card .card-price{margin-top:auto;padding:16px 0 0;gap:8px;flex-direction:row;flex-wrap:wrap;align-items:baseline}
.product-card .card-price>span{font-size:12px}
.product-card .card-price>strong{font-size:18px}
.product-card .card-price>strong.is-unreported{font-size:14px;font-weight:400;color:var(--muted)}
.results-section>.coverage-note{margin-top:24px;border-top:1px solid var(--line);padding-top:16px;font-size:14px}
.filter-close,.filter-sheet-actions{display:none}
#catalog-filter-dialog:not([open]){display:none}

.detail-top{align-items:start}
.detail-top .detail-image{height:clamp(360px,29vw,520px);background:var(--studio)}
.detail-intro .product-heading{margin-bottom:16px}
.detail-intro .detail-lede{font-size:18px;line-height:1.75;margin:0 0 20px;max-width:44em;color:var(--muted)}
.detail-intro>.card-specs{display:flex;gap:32px;margin:0 0 24px;padding:0}
.detail-intro>.card-specs>div{border:0;padding:0}
.detail-intro>.card-specs strong{font-size:24px;line-height:1.5}
.detail-intro>.card-specs-empty{margin:0 0 16px;font-size:14px}
.detail-intro .price-box{margin-block:16px}
.detail-intro .selected-version-summary{margin-block:12px}
.detail-intro .detail-actions{margin-top:16px}

/* Desktop comparison uses the page scroll; narrow screens keep horizontal scrolling. */
.comparison-scroll{max-height:none;max-block-size:none;overflow:visible;overscroll-behavior:auto}
.comparison-scroll .compare-table{width:100%;min-width:0;table-layout:fixed}
.comparison-scroll .compare-table thead th{top:calc(var(--header-clearance) - 16px)}
.comparison-scroll .compare-product-image{height:140px}
.parameter-toolbar .differences-control{position:relative;display:flex;gap:0;padding:4px;border:1px solid var(--line);border-radius:6px;cursor:pointer}
.differences-control input{position:absolute;inset:0;opacity:0;width:100%!important;height:100%!important;margin:0;cursor:pointer}
.differences-control span{display:block;padding:8px 12px;border-radius:4px;font-size:14px;color:var(--muted);pointer-events:none}
.differences-control input:checked+span{background:var(--soft);color:var(--ink);font-weight:650}
.differences-control:focus-within{outline:3px solid var(--accent);outline-offset:3px}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .product-card:hover,.news-home .release-grid .release-card:hover,.news-home .hotspot-card:hover,.news-home .news-card:hover{translate:0 -2px}
}
@media(min-width:1800px){.topbar .header-inner{min-height:96px}.topbar .header-inner nav{gap:36px}.news-home .release-hero-feature{font-size:17px}}
@media(min-width:1101px) and (max-width:1399px){
 .topbar .header-inner{gap:12px}.topbar .brand{font-size:24px}.topbar .header-inner nav{gap:8px}.topbar .header-inner nav a{font-size:18px;padding-inline:14px}.topbar .header-contact,.topbar .header-contact.active{min-width:96px;padding-inline:12px}
}
@media(max-width:1100px){
 :root{--header-clearance:136px}
 .topbar .header-inner{min-height:0;padding-block:10px;row-gap:8px}
 .topbar .header-inner nav a{min-height:44px;padding-block:8px}
 .news-home .release-hero-image{height:330px}
 .comparison-scroll{overflow-x:auto;overflow-y:visible}
 .comparison-scroll .compare-table{min-width:720px}
}
@media(max-width:760px){
 main{padding-top:20px}
 .catalog-heading{padding-bottom:14px}
 .catalog-heading h1{font-size:28px}
 .category-navigation{position:relative;margin-bottom:16px;padding:4px}
 .category-navigation::after{content:"";position:absolute;right:4px;top:5px;bottom:5px;width:18px;background:linear-gradient(90deg,transparent,var(--surface));pointer-events:none;border-radius:6px}
 .category-nav-button{min-height:46px;min-width:100px;padding:9px 14px;font-size:17px}
 .search-row{gap:10px;margin-bottom:14px}
 .search-box{height:46px;padding-inline:12px;box-shadow:none}
 .search-box input{font-size:15px}
 .filter-mobile{min-height:46px;padding:10px 12px;font-size:15px}
 .results-toolbar{gap:8px 12px;margin-bottom:14px}
 .results-toolbar #results-count{font-size:14px;line-height:1.5}
 .results-toolbar #results-count span{font-size:12px}
 .results-toolbar :is(.catalog-layout-toggle button,.sort-control select){min-height:40px;padding-block:6px;font-size:13px}
 .product-card .product-visual,.catalog-layout .product-card .product-visual{height:246px}
 .product-card .product-visual img[data-image-canvas="neutral"]{max-height:200px}
 .product-card .card-content{padding:18px}
 #catalog-filter-slot>.filters{display:none}
 #catalog-filter-dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:600px;max-height:88vh;max-height:88dvh;padding:0;border:1px solid var(--line);border-bottom:0;border-radius:16px 16px 0 0;background:var(--surface);color:var(--ink);overflow:auto;overscroll-behavior:contain}
 #catalog-filter-dialog::backdrop{background:#0008;backdrop-filter:blur(3px)}
 #catalog-filter-dialog .filters{display:block!important;width:100%;max-height:none;padding:0 20px;border:0;background:var(--surface)}
 #catalog-filter-dialog .filter-title{position:sticky;top:0;z-index:2;margin:0 -20px;padding:16px 20px;background:var(--surface);gap:16px}
 #catalog-filter-dialog .filter-title>.text-button{display:none}
 #catalog-filter-dialog .filter-close{display:inline-flex;align-items:center;justify-content:center;margin-left:auto;width:44px;height:44px;font-size:28px}
 #catalog-filter-dialog .filter-section{padding-block:18px}
 #catalog-filter-dialog .filter-sheet-actions{display:flex;position:sticky;bottom:0;z-index:2;gap:12px;margin:0 -20px;padding:14px 20px max(14px,env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface)}
 #catalog-filter-dialog .filter-sheet-actions .primary{flex:1}
 body.filters-modal-open{overflow:hidden}
 .detail-top .detail-image{height:300px}
 .detail-intro .detail-lede{font-size:16px}
}
@media(max-width:600px){
 :root{--header-clearance:120px}
 .topbar .header-inner{padding:8px 0;gap:6px 8px}
 .topbar .brand{font-size:20px;gap:9px}
 .topbar .brandmark{width:38px;min-width:38px;height:38px;font-size:29px}
 .topbar .brand small{font-size:10px;margin-top:3px}
 .topbar .header-inner nav{gap:2px}
 .topbar .header-inner nav a{font-size:14px;min-height:42px;padding:8px 9px}
 .topbar .header-actions{gap:4px}
 .topbar :is(.theme-toggle,.language-toggle){padding:10px;width:44px;font-size:14px}
 .news-home .release-heading{padding-bottom:10px}
 .news-home .release-heading h1{font-size:26px}
 .news-home .news-controls{margin-bottom:16px;row-gap:6px}
 .news-home .news-feedback-row{min-height:24px;font-size:12px}
 .news-home .release-hero{gap:16px}
 .news-home .release-hero-image{height:224px;min-height:224px;padding:14px}
 .news-home .release-hero-image img.media-product{height:100%;max-height:100%}
 .news-home .release-hero-kicker{display:none}
 .news-home .release-hero h2,html[data-locale="en"] .news-home .release-hero h2{font-size:25px;line-height:1.35;margin-bottom:8px}
 .news-home .release-hero-feature{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:15px;line-height:1.6;margin:10px 0 14px}
 .news-home .release-hero-meta{font-size:13px}
 .news-home .release-hero-source{margin-top:8px}
 .news-home .release-grid .release-image{aspect-ratio:4/3;height:auto;min-height:0}
 .news-home .release-grid{gap:24px}
 .news-home .hotspot-body h3{font-size:22px;min-height:0}
}

@media(min-width:1101px){.topbar .header-inner{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}
/* RP1 is a wide scene. Crop empty side space, preserving the complete robot. */
.product-card .product-visual img[src*="rp1-hero.webp"]{object-fit:cover;object-position:42% 50%;padding:0;transform:none}
.detail-intro .reference-price.unknown{padding:12px 0;margin:12px 0;border:0;background:none}
.detail-intro .reference-price.unknown>strong{font-size:16px;font-weight:400;color:var(--muted)}

@media(min-width:1101px) and (max-width:1399px){
 .news-home .carousel-brief{padding-block:9px}
 .news-home .carousel-brief-name{font-size:18px;margin-top:4px}
}

.parameter-toolbar .differences-control{margin:0;min-width:0}
.parameter-toolbar .differences-control label{position:relative;display:block;width:auto;margin:0}
@media(max-width:1100px){.comparison-scroll .compare-table thead th{top:0}}
.topbar .language-toggle{white-space:nowrap}
@media(max-width:600px){.topbar .language-toggle{padding-inline:8px}}

/* Release cards have one byline; old row-wrap metadata must not wrap into columns. */
.news-home .release-grid .release-body{flex-flow:column nowrap;align-items:stretch;gap:0}
.news-home .release-grid .release-byline{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;font-size:13px}
.news-home .release-grid .release-body>:is(h2,p,.release-links){flex-basis:auto;flex-shrink:0;width:100%}
.news-home .release-grid .release-links{align-self:stretch;margin-top:auto}
.news-home .release-grid .release-body>p{margin-bottom:10px}

.news-home .release-grid [data-news-photo="roboparty-rp1"] .release-image{padding:0}
.news-home .release-grid [data-news-photo="roboparty-rp1"] .release-image img{object-fit:cover;object-position:42% 50%}
