/* Server-rendered catalogue pages: usable before JavaScript and shared with the existing visual language. */
body.catalog-page { background: #f6f8ff; padding-top: 104px; }
.catalog-header { position: fixed; top: 0; left: 0; right: 0; z-index: 10000; padding: 18px 24px; background: rgba(255,255,255,.44); border-bottom:1px solid rgba(221,228,242,.6); box-shadow: 0 5px 24px rgba(25,36,80,.08); -webkit-backdrop-filter:blur(22px) saturate(155%); backdrop-filter:blur(22px) saturate(155%); }
.catalog-header-inner { max-width: 1400px; margin: 0 auto; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.catalog-brand { color:#322d78; font-size:1.05rem; font-weight:800; text-decoration:none; letter-spacing:-.02em; }
.catalog-nav { display:flex; flex-wrap:wrap; gap:14px; }
.catalog-nav a { color:#45456a; text-decoration:none; font-weight:700; font-size:.9rem; }
.catalog-shell { max-width:1240px; margin:0 auto; padding:28px 20px 64px; }
.catalog-hero { border-radius:26px; padding:clamp(28px,6vw,72px); color:#fff; background:linear-gradient(115deg,rgba(24,29,83,.94),rgba(95,59,172,.86)),url('assets/hero-landing.png') center/cover; box-shadow:0 22px 45px rgba(43,34,116,.18); }
.catalog-eyebrow { margin:0 0 12px; color:#cbd2ff; text-transform:uppercase; font-size:.75rem; font-weight:800; letter-spacing:.12em; }
.catalog-hero h1 { -webkit-text-fill-color:initial; background:none; color:#fff; margin:0; white-space:normal; overflow:visible; font-size:clamp(2rem,5vw,4.1rem); line-height:1.05; max-width:850px; }
.catalog-hero p { max-width:730px; margin:18px 0 0; color:#eef0ff; font-size:1.08rem; line-height:1.7; }
.catalog-breadcrumb { margin:0 0 18px; color:#5b5b83; font-size:.9rem; }
.catalog-breadcrumb a { color:#5142b7; text-decoration:none; }
.catalog-section { padding:38px 0 0; }
.catalog-section h2 { color:#202042; font-size:clamp(1.5rem,3vw,2.2rem); margin:0 0 10px; }
.catalog-section-lead { color:#62627d; max-width:760px; line-height:1.7; margin:0 0 25px; }
.catalog-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:18px; }
.catalog-card { min-width:0; background:#fff; border:1px solid #e8e8f5; border-radius:16px; overflow:hidden; box-shadow:0 8px 22px rgba(36,33,94,.06); transition:transform .2s ease,box-shadow .2s ease; }
.catalog-card:hover { transform:translateY(-4px); box-shadow:0 14px 28px rgba(36,33,94,.13); }
.catalog-card a { display:block; color:inherit; text-decoration:none; height:100%; }
.catalog-card img,.catalog-card-placeholder { display:block; width:100%; aspect-ratio:16/10; object-fit:cover; background:linear-gradient(135deg,#292357,#7560cf); }
.catalog-card a { position:relative; overflow:hidden; }.catalog-card-gif { position:absolute; top:0; left:0; opacity:0; z-index:1; transition:opacity .2s ease; }.catalog-card.has-gif:hover .catalog-card-gif,.catalog-card.has-gif:focus-within .catalog-card-gif { opacity:1; }.catalog-card-body { position:relative; z-index:2; background:#fff; }
.catalog-card-placeholder { color:#fff; font-size:2.2rem; font-weight:800; display:grid; place-items:center; }
.catalog-card-body { padding:14px 15px 16px; }
.catalog-card-body p { margin:0 0 5px; color:#7168ba; font-size:.74rem; font-weight:800; text-transform:uppercase; letter-spacing:.06em; }
.catalog-card-body h3 { margin:0; color:#262542; font-size:1rem; line-height:1.35; overflow-wrap:anywhere; }
.catalog-card-body span { display:block; margin-top:10px; color:#5c4ac4; font-weight:800; font-size:.82rem; }
.catalog-card-good { display:block; margin-top:8px; color:#e15c90; font-size:.76rem; font-weight:800; }
.catalog-chips { display:flex; flex-wrap:wrap; gap:10px; margin-top:23px; }
.catalog-chips a,.catalog-chip { display:inline-flex; border-radius:999px; background:#eceaff; color:#443ca0; padding:9px 13px; font-size:.86rem; font-weight:750; text-decoration:none; }
.catalog-copy { max-width:850px; padding:30px; background:#fff; border:1px solid #e8e8f5; border-radius:18px; color:#50506a; line-height:1.8; }
.collection-page .catalog-shell { padding-top:42px; }.collection-heading { max-width:900px; padding:14px 0 20px; }.collection-heading .catalog-eyebrow { color:#625bd4; }.collection-heading h1 { margin:0; color:#252440; font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-.055em; line-height:1.08; }.collection-heading > p:not(.catalog-eyebrow) { max-width:720px; margin:14px 0 0; color:#687087; line-height:1.75; }.collection-grid-heading { display:flex; justify-content:space-between; align-items:end; }.collection-grid-heading h2 { margin-bottom:6px; }
.catalog-copy h2 { color:#252440; margin:0 0 10px; }
.catalog-copy p { margin:0; }
.catalog-viewer { margin-top:28px; overflow:hidden; background:#1c1c26; border-radius:20px; box-shadow:0 15px 35px rgba(23,20,63,.16); }
.catalog-viewer iframe { display:block; width:100%; min-height:780px; border:0; background:#202020; }
.catalog-facts { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; padding:0; margin:24px 0; list-style:none; }
.catalog-facts li { background:#fff; border:1px solid #e7e7f4; border-radius:14px; padding:16px; color:#565571; }
.catalog-facts strong { display:block; color:#262542; margin-bottom:4px; }
.catalog-footer { padding:30px 20px; text-align:center; color:#6a6a81; }
@media (max-width:640px) { body.catalog-page { padding-top:87px; } .catalog-header { padding:15px 18px; } .catalog-nav { display:none; } .catalog-shell { padding:18px 14px 44px; } .catalog-hero { border-radius:18px; } .catalog-viewer iframe { min-height:650px; } }

/* Home page: editorial catalogue layout with the same light, asset-first direction. */
body.home-redesign { background:#fff; padding-top:0; color:#253047; }
.home-header { position:sticky; top:0; z-index:1000; height:68px; background:rgba(255,255,255,.42); border-bottom:1px solid rgba(221,228,242,.58); box-shadow:0 8px 26px rgba(52,71,114,.07); -webkit-backdrop-filter:blur(24px) saturate(155%); backdrop-filter:blur(24px) saturate(155%); display:flex; align-items:center; }
.home-header-inner { width:min(1500px,calc(100% - 48px)); margin:0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:22px; }
.home-brand { color:#5b5de7; text-decoration:none; font-size:.93rem; font-weight:850; letter-spacing:-.03em; }
.home-nav { display:flex; align-items:center; gap:28px; height:68px; }
.home-nav a { color:#38455d; font-size:.78rem; font-weight:750; text-decoration:none; height:68px; display:grid; place-items:center; border-bottom:2px solid transparent; }
.home-nav a:hover,.home-nav .is-active { color:#4c51d9; border-color:#6366f1; }
.home-language-menu { justify-self:end; z-index:1001; }
.home-lang-btn { width:auto; min-width:42px; height:38px; padding:0 13px; border-radius:999px; gap:7px; font-size:.78rem; font-weight:800; line-height:1; box-shadow:0 5px 14px rgba(86,101,206,.23); }
.home-lang-btn span { white-space:nowrap; }
.home-language-menu .language-dropdown { z-index:1100; min-width:168px; margin-top:9px; border:1px solid rgba(215,222,239,.9); border-radius:12px; box-shadow:0 16px 35px rgba(37,48,84,.18); overflow:hidden; }
.home-main { width:min(1500px,calc(100% - 48px)); margin:22px auto 0; }
.home-hero { --hero-parallax-y:0px; position:relative; min-height:0; aspect-ratio:2048/683; overflow:hidden; border-radius:22px; background:#d9e9ff url('assets/hero-landing.png') center top/cover no-repeat; isolation:isolate; }
.home-hero-image { position:absolute; inset:0; z-index:-2; width:100%; height:100%; object-fit:cover; object-position:center top; transform:translate3d(0,calc(var(--hero-parallax-y) * .42),0) scale(1.42); transform-origin:center top; will-change:transform; }
.home-hero-wash { position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 30%,rgba(255,255,255,.15) 60%,rgba(255,255,255,0) 100%); }
.home-hero-copy { width:min(620px,55%); padding:68px 0 48px 42px; }
.home-badge { display:inline-flex; border:1px solid #d9e4ff; background:rgba(255,255,255,.85); color:#6570d9; border-radius:999px; padding:7px 12px; font-size:.7rem; font-weight:800; }
.home-hero h1 { margin:15px 0 12px; color:#5a5bd5; font-size:clamp(1.75rem,3.4vw,3.25rem); letter-spacing:-.07em; line-height:1.2; background:none; -webkit-text-fill-color:currentColor; white-space:normal; overflow:visible; }
.home-hero p { margin:0; color:#536276; font-size:.86rem; line-height:1.75; max-width:510px; }
.home-search { max-width:492px; height:45px; margin-top:19px; padding:4px 5px 4px 14px; display:flex; align-items:center; gap:9px; background:#fff; border:1px solid #e3e8f3; border-radius:12px; box-shadow:0 7px 18px rgba(85,106,162,.1); }
.home-search span { color:#8290a8; font-size:1.25rem; line-height:1; }
.home-search input { min-width:0; flex:1; border:0; outline:0; color:#354157; font:inherit; font-size:.78rem; }
.home-search button { height:32px; min-width:62px; border:0; border-radius:9px; background:linear-gradient(135deg,#6e70ee,#7865d6); color:#fff; font-weight:800; cursor:pointer; }
.home-tag-row { display:flex; flex-wrap:wrap; gap:8px; margin-top:15px; }
.home-tag-row a { padding:6px 11px; border-radius:999px; background:rgba(255,255,255,.86); border:1px solid #e7ebf5; color:#556276; text-decoration:none; font-size:.68rem; font-weight:750; }
.home-content-layout { display:grid; grid-template-columns:232px minmax(0,1fr); gap:28px; margin-top:28px; align-items:start; }
.home-category-panel { padding:15px 11px; border:1px solid #e8ecf4; border-radius:13px; background:#fff; box-shadow:0 5px 17px rgba(50,63,100,.04); }
.home-category-heading { display:flex; justify-content:space-between; align-items:center; padding:0 8px 10px; }
.home-category-heading h2 { margin:0; color:#334158; font-size:.92rem; }
.home-category-heading span { color:#9aa5b5; font-size:.7rem; }
.home-category-all,.home-category-list a { display:flex; align-items:center; gap:8px; padding:9px 8px; color:#4c5a70; text-decoration:none; border-radius:8px; font-size:.74rem; font-weight:700; }
.home-category-all { background:#eaf3ff; border:1px solid #c9dcff; color:#4167a8; }
.home-category-all small,.home-category-list small { margin-left:auto; color:#9ba6b8; font-size:.68rem; font-weight:600; }
.home-category-list { margin-top:5px; }
.home-category-list a:hover { background:#f5f7fc; color:#4e55d7; }
.home-category-dot { width:8px; height:8px; border-radius:50%; background:linear-gradient(135deg,#c08c66,#835938); box-shadow:0 1px 2px rgba(0,0,0,.16); }
.home-category-collection { display:flex; flex-direction:column; gap:5px; margin:13px 3px 1px; padding:13px; border-radius:10px; background:linear-gradient(140deg,#f1f0ff,#f6f9ff); color:#5650ba; text-decoration:none; font-size:.7rem; }
.home-category-collection strong { font-size:.73rem; }.home-category-collection span { color:#7476a8; }
.home-models-heading { display:flex; justify-content:space-between; align-items:end; gap:20px; margin:0 0 15px; }
.home-models-heading p { margin:0 0 3px; color:#6c78dd; font-size:.7rem; font-weight:850; }.home-models-heading p span { margin-left:7px; padding:3px 7px; border-radius:999px; background:#edf0ff; font-size:.61rem; }
.home-models-heading h2 { margin:0; color:#2f3b50; font-size:1.2rem; letter-spacing:-.04em; }.home-models-heading small { color:#94a0b1; font-size:.68rem; }.home-models-heading > a { color:#5a65d7; font-size:.72rem; font-weight:800; text-decoration:none; white-space:nowrap; }
.home-model-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.home-model-card { overflow:hidden; min-width:0; border:1px solid #e6e9f0; border-radius:10px; background:#fff; transition:transform .18s ease,box-shadow .18s ease; }.home-model-card:hover { transform:translateY(-4px); box-shadow:0 12px 22px rgba(41,51,89,.13); }
.home-model-card a { display:block; height:100%; color:inherit; text-decoration:none; }.home-model-card img,.home-model-placeholder { display:block; width:100%; aspect-ratio:1.36; object-fit:cover; background:#d8d8d8; }.home-model-placeholder { display:grid; place-items:center; color:white; font-size:1.7rem; font-weight:900; background:linear-gradient(135deg,#7774a6,#b8b7db); }
.home-model-card a { position:relative; overflow:hidden; }.home-model-gif { position:absolute; top:0; left:0; opacity:0; transition:opacity .2s ease; }.home-model-card.has-gif:hover .home-model-gif,.home-model-card.has-gif:focus-within .home-model-gif { opacity:1; }.home-model-card-body { position:relative; z-index:2; background:#fff; }
.home-model-card-body { position:relative; padding:12px 11px 13px; }.home-new-label { position:absolute; top:-12px; left:9px; padding:4px 7px; border-radius:5px; background:#625ce7; color:white; font-size:.56rem; font-weight:900; }.home-model-card-body p { margin:1px 0 5px; color:#a0654d; font-size:.58rem; font-weight:800; }.home-model-card-body h3 { margin:0; min-height:34px; color:#3b465a; font-size:.72rem; line-height:1.32; overflow-wrap:anywhere; }.home-model-card-body small { display:block; margin-top:8px; color:#5a66d6; font-size:.6rem; font-weight:800; }
.home-reassurance { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:38px 0 50px; padding:20px; border-top:1px solid #edf0f5; border-bottom:1px solid #edf0f5; }.home-reassurance div { display:flex; flex-direction:column; gap:4px; padding:0 17px; border-right:1px solid #edf0f5; }.home-reassurance div:last-child { border:0; }.home-reassurance strong { color:#3c4860; font-size:.82rem; }.home-reassurance span { color:#8b96a7; font-size:.69rem; }
@media (max-width:1050px) { .home-nav { gap:16px; }.home-model-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.home-hero-copy { width:62%; } }
@media (max-width:760px) { .home-header { height:57px; }.home-header-inner { width:calc(100% - 28px); grid-template-columns:1fr auto; }.home-nav { display:none; }.home-lang-btn { height:34px; min-width:34px; padding:0 10px; }.home-lang-btn span { display:none; }.home-main { width:calc(100% - 28px); margin-top:14px; }.home-hero { min-height:420px; aspect-ratio:auto; border-radius:16px; }.home-hero-image { object-position:65% center; transform:translate3d(0,calc(var(--hero-parallax-y) * .2),0) scale(1.28); transform-origin:center top; }.home-hero-wash { background:linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,.78) 64%,rgba(255,255,255,.1)); }.home-hero-copy { width:100%; padding:38px 21px; }.home-hero h1 { font-size:2rem; }.home-content-layout { grid-template-columns:1fr; gap:20px; }.home-category-panel { display:none; }.home-model-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }.home-models-heading small { display:none; }.home-reassurance { grid-template-columns:1fr; gap:14px; }.home-reassurance div { padding:0; border:0; }.catalog-footer { padding-top:0; } }
@media (prefers-reduced-motion: reduce) { .home-hero-image { transform:none; will-change:auto; } }

/* Direct 3D detail page: the viewer is now part of the document, never an iframe. */
body.model-detail-page { background:#f4f7fc; color:#27334a; padding:0; }
.model-detail-page .detail-lang-btn { width:auto; min-width:42px; height:38px; padding:0 13px; border-radius:999px; gap:7px; font-size:.8rem; font-weight:800; line-height:1; }
.model-detail-page .detail-lang-btn span { white-space:nowrap; }
.model-good-button { position:absolute; z-index:20; top:22px; right:22px; display:flex; align-items:center; gap:8px; min-width:42px; height:42px; padding:0; border:0; color:#121212; background:transparent; font:inherit; cursor:pointer; transition:transform .18s ease; }
.model-good-button:hover:not(:disabled) { transform:translateY(-2px) scale(1.08); }
.model-good-button:disabled,.model-good-button.is-good { cursor:default; }
.model-good-button .good-icon { font-size:2.55rem; line-height:1; font-family:system-ui,"Segoe UI Symbol",sans-serif; }
.model-good-button .good-icon-outline { color:#fff; }
.model-good-button .good-icon-filled { display:none; color:#e62222; }
.model-good-button.is-good .good-icon-outline { display:none; }
.model-good-button.is-good .good-icon-filled { display:block; }
.model-good-button strong { color:#fff; font-size:1rem; font-weight:850; line-height:1; text-shadow:0 1px 3px rgba(0,0,0,.65); }
.model-detail-page > header { position:sticky; padding:16px 0; margin:0; background:rgba(255,255,255,.44); border-bottom:1px solid rgba(221,228,242,.6); box-shadow:0 8px 26px rgba(45,57,91,.08); -webkit-backdrop-filter:blur(22px) saturate(155%); backdrop-filter:blur(22px) saturate(155%); }
.model-detail-page > header .header-container { max-width:1320px; padding:0 24px; }.model-detail-page > header h1 { font-size:1rem; background:none; -webkit-text-fill-color:#4548b8; color:#4548b8; white-space:normal; }
.model-direct-main.container { max-width:1320px; padding:28px 24px 68px; }.model-direct-intro { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:22px; padding:0 0 24px; }.model-direct-breadcrumb { grid-column:1/-1; display:flex; flex-wrap:wrap; gap:8px; margin:0; color:#8490a6; font-size:.76rem; }.model-direct-breadcrumb a { color:#5964d7; text-decoration:none; }.model-direct-eyebrow { margin:0 0 8px; color:#6168dd; font-size:.72rem; font-weight:850; letter-spacing:.08em; text-transform:uppercase; }.model-direct-intro h1 { margin:0; color:#28334a; font-size:clamp(1.8rem,3.5vw,3.2rem); line-height:1.1; letter-spacing:-.055em; background:none; -webkit-text-fill-color:currentColor; white-space:normal; overflow:visible; }.model-direct-description { max-width:780px; margin:12px 0 0; color:#69758a; line-height:1.75; }.model-direct-meta { display:flex; flex-wrap:wrap; align-content:end; justify-content:end; gap:8px; }.model-direct-meta span { padding:8px 11px; border:1px solid #dfe5f1; border-radius:999px; background:#fff; color:#56637b; font-size:.72rem; font-weight:750; white-space:nowrap; }
.model-detail-page .detail-container { max-width:none; margin:0; display:grid; grid-template-columns:minmax(0,1fr); gap:18px; }.model-detail-page .viewer-container { min-height:clamp(470px,65vh,760px); height:clamp(470px,65vh,760px); border:0; border-radius:20px; box-shadow:0 20px 42px rgba(36,42,76,.15); overflow:hidden; }.model-detail-page .viewer-controls { bottom:20px; }.model-detail-page .light-controls,.model-detail-page .lod-controls,.model-detail-page .model-seo-panel,.model-detail-page .related-models-panel { margin:0; border:1px solid #e0e6f1; border-radius:16px; background:#fff; box-shadow:none; }.model-detail-page .light-controls { padding:16px 20px; }.model-detail-page .lod-controls { padding:18px 20px; }.model-detail-page .model-seo-panel { padding:26px; }.model-detail-page .related-models-panel { display:none; }.model-detail-page .action-buttons { margin:0; padding:4px 0 6px; }.model-detail-page .adsense-container { display:none; }.model-detail-page .model-ad-slot { min-height:100px; margin:12px auto; padding:8px; max-width:970px; background:#fff; border:1px solid #e2e7f1; border-radius:14px; }.model-detail-page .model-ad-slot + .model-ad-fallback { display:none; }
.model-direct-related { margin-top:46px; padding-top:32px; border-top:1px solid #e0e5ef; }.model-direct-related > div:first-child { display:flex; align-items:end; justify-content:space-between; margin-bottom:18px; }.model-direct-related p { margin:0 0 5px; color:#6569dc; font-size:.72rem; font-weight:850; text-transform:uppercase; letter-spacing:.08em; }.model-direct-related h2 { margin:0; color:#303a51; font-size:1.5rem; }.model-detail-page footer { margin:0; border-radius:0; box-shadow:none; }
@media (max-width:760px) { .model-detail-page > header .header-container { padding:0 16px; }.model-detail-page .detail-lang-btn { min-width:34px; height:34px; padding:0 10px; }.model-detail-page .detail-lang-btn span { display:none; }.model-direct-main.container { padding:20px 14px 42px; }.model-direct-intro { grid-template-columns:1fr; }.model-direct-meta { justify-content:start; }.model-good-button { top:14px; right:14px; width:auto; min-width:42px; height:42px; }.model-good-button .good-icon { font-size:2.2rem; }.model-detail-page .viewer-container { min-height:440px; height:58vh; border-radius:14px; }.model-detail-page .lod-buttons { gap:8px; }.model-detail-page .lod-btn { min-width:0; flex:1; }.model-detail-page .model-seo-panel { padding:20px 15px; }.model-direct-related { margin-top:28px; }.model-detail-page .spec-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }

.catalog-ad-slot { min-height:100px; max-width:970px; margin:28px auto; padding:8px; border:1px solid #e2e7f1; border-radius:14px; background:#fff; }.model-detail-page .catalog-ad-slot + .model-ad-fallback { display:none; }
