/* Scoped additions: the architectural scene and flight geometry are untouched. */
.catalog-tools{margin:26px 0 22px}
.catalog-categories{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.catalog-categories button{min-height:44px;padding:12px 18px;border:0;border-radius:0;background:#e5e1d9;color:#272922;font-size:14px;line-height:1.3}
#shopView .catalog-categories button[aria-pressed=true]{background:var(--shop-accent);color:#fff}
.catalog-categories button:focus-visible,.shoe-stage button:focus-visible{outline:2px solid var(--shop-accent);outline-offset:4px}
.catalog-count{font-size:14px;line-height:1.5;margin:16px 0 0;color:#505149;min-height:21px}
.catalog-empty{padding:40px 0 60px;max-width:540px}
.catalog-empty h3{font:400 28px/1.2 Georgia,serif;margin:0 0 14px}
.catalog-empty p{font-size:16px;line-height:1.65;color:#505149}
.catalog-empty button{border:0;padding:14px 22px;background:var(--shop-accent);color:white!important;min-height:44px;font-size:14px}
.catalog-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.shoe-shop #shopBanner,.shoe-shop #collections{display:none}
.shoe-shop .shop-intro{padding-bottom:24px}
.shoe-shop .shop-products{padding-top:18px}
.shoe-shop #productsKicker{display:none}
.shoe-gallery{margin:26px 0 0}
.shoe-stage{--gallery-surface:#e7e1d6;position:relative;isolation:isolate;height:620px;overflow:hidden;background:var(--gallery-surface);color:#272922;contain:layout paint}
.shoe-toolbar{position:absolute;z-index:5;top:20px;left:24px;right:24px;display:flex;align-items:center;justify-content:space-between;min-height:44px;pointer-events:none}
.shoe-back{margin-left:100px;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 12px 8px 0;border:0;background:transparent;font-size:14px;pointer-events:auto}
.shoe-back svg{width:22px;height:22px}
.shoe-stage-count{margin-left:auto;font-size:14px;color:#505149}
.shoe-object{position:absolute;left:0;top:0;margin:0;padding:0;border:0;background:transparent;color:#272922;transform-origin:center;touch-action:manipulation;mix-blend-mode:darken}
.shoe-object img{display:block;width:100%;height:100%;object-fit:contain;mix-blend-mode:normal;pointer-events:none;transition:transform 240ms cubic-bezier(.22,1,.36,1)}
.shoe-object-caption{position:absolute;top:calc(100% + 8px);left:-12px;right:-12px;display:grid;gap:8px;text-align:center;opacity:1;transition:opacity 160ms ease;pointer-events:none}
.shoe-object-caption>span:first-child{font:400 clamp(18px,2vw,24px)/1.2 Georgia,serif}
.shoe-object-caption>span:last-child{font-size:14px}
.has-selection .shoe-object-caption{opacity:0}
.shoe-object.is-thumbnail{opacity:.75}
.shoe-object.is-selected{cursor:default}
.shoe-object.is-thumbnail:focus-visible{opacity:1}
.shoe-object.is-selected:focus-visible{outline-offset:-10px}
.shoe-hint{position:absolute;bottom:30px;left:24px;right:24px;text-align:center;font-size:15px;line-height:1.5;margin:0;color:#505149}
.shoe-detail{position:absolute;z-index:4;left:65%;right:5%;top:29%;pointer-events:none;animation:shoe-detail-in 400ms cubic-bezier(.22,1,.36,1) both}
.shoe-detail h3{font:400 clamp(32px,3.6vw,54px)/1.08 Georgia,serif;letter-spacing:-.025em;margin:0 0 20px;overflow-wrap:break-word}
.shoe-detail>p{font-size:16px;line-height:1.65;margin:0 0 24px}
.shoe-detail-price{display:block;font-size:22px;font-weight:400;margin:0 0 24px}
.shoe-detail .shoe-detail-note{font-size:13px;color:#505149;line-height:1.6;max-width:32ch}
@keyframes shoe-detail-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
@media(hover:hover) and (pointer:fine){
 .shoe-object:not(.is-selected):hover img{transform:translateY(-8px) rotate(-3deg)}
 .shoe-object.is-thumbnail:hover{opacity:1}
 .catalog-categories button:not([aria-pressed=true]):hover{background:#d5d0c6}
 .shoe-back:hover span{text-decoration:underline;text-underline-offset:5px}
}
@media(max-width:700px){
 .catalog-categories{gap:6px}.catalog-categories button{padding:12px 14px;font-size:13px}
 .shoe-gallery{margin:22px -22px 0}.shoe-stage{height:640px}
 .shoe-toolbar{top:14px;left:22px;right:22px}
 .shoe-object-caption>span:first-child{font-size:18px}.shoe-object-caption>span:last-child{font-size:13px}
 .shoe-hint{bottom:24px;left:22px;right:22px;font-size:14px}
 .shoe-detail{left:26px;right:26px;top:382px;display:grid;grid-template-columns:1fr auto;gap:10px 14px}
 .shoe-detail h3{font-size:30px;margin:0;max-width:220px}
 .shoe-detail>p{grid-column:1/-1;font-size:14px;margin:0;max-width:40ch}
 .shoe-detail-price{grid-row:1;grid-column:2;font-size:17px;margin:6px 0 0;white-space:nowrap}
 .shoe-detail .shoe-detail-note{font-size:12px;max-width:42ch;margin:0}
}
@media(max-height:560px) and (min-width:701px){.shoe-stage{height:420px}.shoe-detail{top:25%}.shoe-detail h3{font-size:32px;margin-bottom:12px}.shoe-detail>p{font-size:14px;margin-bottom:12px}.shoe-detail-price{font-size:19px;margin-bottom:12px}.shoe-hint{bottom:18px}}
@media(prefers-reduced-motion:reduce){.shoe-object,.shoe-object img,.shoe-object-caption{transition:none!important}.shoe-detail{animation:none}.shoe-object:not(.is-selected):hover img{transform:none}}

/* Reference-led wall: stone, shallow metal shelves and orange light. */
.wall-stage{--wall-ink:#f6f1e9;--wall-muted:#d6cbc0;--wall-led:#ff792f;position:relative;isolation:isolate;height:660px;overflow:hidden;background:#292727;color:var(--wall-ink);contain:layout paint}
.wall-viewport{position:absolute;inset:0;perspective:1000px;perspective-origin:50% 50%;overflow:hidden}
.wall-world{-webkit-user-select:none;user-select:none;position:absolute;left:50%;top:50%;transform-origin:50% 50%;transform-style:preserve-3d}
.wall-material{position:absolute;inset:-1000px;background:#363331;transform:translateZ(-36px);box-shadow:inset 0 0 240px #080706}
.wall-material::before{content:"";position:absolute;inset:0;background-image:url("assets/cladding.jpg");background-size:1100px auto;background-position:var(--material-texture-offset,0 0);filter:grayscale(1) brightness(.5) contrast(.65);opacity:.34}
.wall-material::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 10%,#ded5c61f,transparent 70%)}
.wall-baseboard{position:absolute;left:-600px;right:-600px;bottom:-20px;height:46px;background:#171616;transform:translateZ(30px);box-shadow:0 22px 30px #07060699}
.wall-baseboard::after{content:"";position:absolute;top:6px;left:0;right:0;height:3px;background:#d46028;box-shadow:0 6px 20px #ff6b294d}
#shopView .wall-slot{position:absolute;display:block;padding:0;border:0;border-radius:0;background:transparent;color:var(--wall-ink);transform-style:preserve-3d;touch-action:manipulation;outline-offset:8px;transition:none}
.wall-slot:active:not(:disabled){transform:none}
.wall-shoe{position:absolute;left:3%;bottom:42px;width:94%;height:auto;max-width:none;transform:translateZ(31px);pointer-events:none;filter:drop-shadow(0 10px 8px #05040480)}
.wall-shelf{position:absolute;left:1%;right:1%;bottom:35px;height:13px;background:#45413e;transform:translateZ(49px);box-shadow:0 18px 17px #03020280;pointer-events:none}
.wall-shelf::before{content:"";position:absolute;left:2%;right:2%;top:2px;height:3px;background:#9f8c77;opacity:.55}
.wall-shelf::after{content:"";position:absolute;left:2%;right:2%;bottom:-1px;height:4px;background:#ffb16a;box-shadow:0 5px 15px #ff5c1bcc,0 14px 36px #fc5c2477;opacity:.06;transition:opacity 180ms ease}
.wall-shelf-top{position:absolute;left:1%;right:1%;bottom:48px;height:76px;background:#625d58;transform-origin:50% 100%;transform:translateZ(49px) rotateX(72deg);pointer-events:none}
.wall-light-spill{position:absolute;left:-12%;right:-12%;bottom:-95px;height:150px;background:radial-gradient(ellipse at 50% 0,#ff842d8c,transparent 73%);opacity:0;transform:translateZ(-32px);pointer-events:none;transition:opacity 220ms ease}
.wall-slot-label{position:absolute;left:0;right:0;bottom:-7px;text-align:center;font-size:16px;line-height:1.4;color:#e1d5c8;transform:translateZ(1px);pointer-events:none;transition:opacity 180ms ease}
.wall-slot.is-lit .wall-shelf::after,.wall-slot.is-preview .wall-shelf::after,.wall-slot:focus-visible .wall-shelf::after{opacity:1}
.wall-slot.is-lit .wall-light-spill,.wall-slot.is-preview .wall-light-spill,.wall-slot:focus-visible .wall-light-spill{opacity:.85}
.wall-slot.is-lit .wall-slot-label{color:white}
.wall-toolbar{position:absolute;z-index:5;top:20px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;min-height:44px;pointer-events:none}
#shopView .wall-back{display:flex;gap:10px;align-items:center;min-height:44px;padding:10px 15px;border:0;background:#292626;color:#f6f1e9;font-size:14px;pointer-events:auto}
.wall-back svg{width:22px;height:22px}.wall-brand{margin-left:auto;font:400 23px/1.2 Georgia,serif;color:#f6f1e9}
.wall-instruction{position:absolute;left:24px;right:24px;bottom:22px;margin:0;text-align:center;font-size:15px;line-height:1.5;color:var(--wall-muted);pointer-events:none}
.wall-detail{position:absolute;z-index:4;left:69%;right:4%;top:34%;pointer-events:none;color:var(--wall-ink)}
.wall-detail h3{font:400 clamp(30px,3.2vw,47px)/1.08 Georgia,serif;letter-spacing:-.025em;margin:0 0 18px;overflow-wrap:break-word}
.wall-detail>p{font-size:16px;line-height:1.55;margin:0 0 20px;color:var(--wall-muted)}
.wall-detail strong{font-size:23px;font-weight:400;display:block;margin-bottom:18px}
.wall-detail .wall-demo{font-size:12px;color:var(--wall-muted)}
.wall-stage.is-focused .wall-slot-label{opacity:0}
#shopView.wall-shop .shop-content{background:#252323;color:#f6f1e9}
#shopView.wall-shop .shop-masthead,#shopView.wall-shop .shop-intro{color:#f6f1e9}
#shopView.wall-shop .shop-kicker,#shopView.wall-shop .demo-note,#shopView.wall-shop .catalog-count{color:#d6cbc0}
#shopView.wall-shop .catalog-categories button{background:#393534;color:#f6f1e9}
#shopView.wall-shop .catalog-categories button[aria-pressed=true]{background:#f19865;color:#241e1a}
#shopView.wall-shop .shop-intro button{background:#f19865;color:#241e1a!important}
#shopView.wall-shop .shop-footer{border-color:#ffffff20}
@media(hover:hover) and (pointer:fine){
 .wall-slot:hover .wall-shelf::after{opacity:1}.wall-slot:hover .wall-light-spill{opacity:.85}
 #shopView .wall-back:hover{background:#443b36}
 #shopView.wall-shop .catalog-categories button:not([aria-pressed=true]):hover{background:#504742}
}
@media(max-width:700px){
 .wall-stage{height:600px}.wall-toolbar{top:18px;left:20px;right:20px}
 .wall-brand{font-size:21px}.wall-instruction{font-size:14px;bottom:24px}
 .wall-portrait .wall-detail{left:24px;right:24px;top:auto;bottom:42px;display:grid;grid-template-columns:1fr auto;gap:10px 16px}
 .wall-portrait .wall-detail h3{font-size:30px;margin:0}.wall-portrait .wall-detail strong{grid-column:2;grid-row:1;font-size:18px;white-space:nowrap;margin:6px 0 0}
 .wall-portrait .wall-detail>p{grid-column:1/-1;font-size:14px;line-height:1.5;margin:0}.wall-portrait .wall-detail .wall-demo{font-size:12px}
}
@media(max-height:560px) and (min-width:701px){.wall-stage{height:420px}.wall-detail{top:26%}.wall-detail h3{font-size:30px;margin-bottom:14px}.wall-detail>p{font-size:14px;margin-bottom:14px}.wall-detail strong{font-size:20px;margin-bottom:14px}.wall-brand{font-size:20px}}
@media(prefers-reduced-motion:reduce){.wall-light-spill,.wall-shelf::after,.wall-slot-label{transition:none}}

/* Native, bounded showroom scrolling; the page keeps its own scroll position. */
.wall-scroll{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:thin;scrollbar-color:#b5a59466 transparent;touch-action:pan-y pinch-zoom;outline-offset:-3px}
.wall-scroll::-webkit-scrollbar{width:6px}.wall-scroll::-webkit-scrollbar-thumb{background:#b5a59466;border-radius:3px}
.wall-scroll:focus-visible{outline:2px solid #e0c49b}
.wall-scroll-space{position:relative;min-height:100%}
.wall-scroll .wall-viewport{position:sticky;inset:auto;top:0;left:0;right:0;width:100%;overflow:hidden}
.wall-track{position:absolute;inset:0;transform-style:preserve-3d}
.wall-material{background:#393733;box-shadow:inset 0 0 190px #11110f80}
.wall-material::before{background-image:url("assets/wall-plaster.jpg");background-size:1300px 1300px;filter:brightness(.58) saturate(.28);opacity:.88}
.wall-material::after{background:linear-gradient(90deg,#11110e20,transparent 25%,#d8d1b20a 55%,transparent 80%,#11110e20)}
.wall-mount{position:absolute;left:2%;right:2%;bottom:68px;height:8px;background:linear-gradient(#676a65,#242927 45%,#747a73 52%,#343b36);box-shadow:0 4px 8px #0008;transform:translateZ(-2px);pointer-events:none}
.wall-mount::before,.wall-mount::after{content:"";position:absolute;top:-2px;width:14px;height:28px;border:1px solid #abb2a955;background:linear-gradient(90deg,#272d2a,#8e9489 44%,#3b4540 70%);box-shadow:0 4px 5px #0005}
.wall-mount::before{left:7%}.wall-mount::after{right:7%}
.wall-shelf-top{background:transparent url("assets/glass-shelf-off.svg") center/100% 100% no-repeat}
.wall-shelf-top::after{content:"";position:absolute;inset:0;background:url("assets/glass-shelf-on.svg") center/100% 100% no-repeat;opacity:0;transition:opacity 220ms ease}
.wall-slot.is-lit .wall-shelf-top::after,.wall-slot.is-preview .wall-shelf-top::after,.wall-slot:focus-visible .wall-shelf-top::after{opacity:1}
.wall-shelf{bottom:40px;height:8px;background:linear-gradient(#d2e5dc99,#62817966 40%,#b9d6c2bb 60%,#314b4180);border-bottom:1px solid #a9d0b566;box-shadow:0 10px 12px #05060555}
.wall-shelf::before{top:0;height:1px;background:#eef9ee;opacity:.62}
.wall-shelf::after{left:0;right:0;bottom:0;height:2px;background:#fff1d7;box-shadow:0 2px 5px #ffe2a5b3,0 6px 15px #ffc78066;opacity:0}
.wall-light-spill{background:radial-gradient(ellipse at 50% 0,#ffdda650,transparent 73%)}
.wall-shoe{filter:drop-shadow(0 3px 2px #04050380) drop-shadow(0 12px 8px #05050550)}
.wall-slot-label{white-space:normal;text-wrap:balance}
.wall-instruction{font-size:12px;pointer-events:none}
@media(hover:hover) and (pointer:fine){.wall-slot:hover .wall-shelf-top::after{opacity:1}}
@media(prefers-reduced-motion:reduce){.wall-shelf-top::after{transition:none}}
.wall-stage{max-height:calc(100svh - 110px)}
#shopView .wall-slot.is-neighbour > :is(.wall-shoe,.wall-mount,.wall-shelf-top,.wall-shelf){opacity:var(--neighbour-opacity,1)}
#shopView .wall-stage.is-focused .wall-slot:not(.is-lit){pointer-events:none}
@media(prefers-reduced-motion:reduce){#shopView .wall-slot{transition:none}}

/* Large collections retain the four-model editorial composition. */
.shoe-pages{display:flex;align-items:center;justify-content:center;gap:20px;padding:24px 0;flex-wrap:wrap}
#shopView .shoe-pages button{min-height:44px;border:1px solid #746b5d55;background:transparent;color:#35372e;padding:10px 18px;font-size:14px}
.shoe-pages button:disabled{opacity:.35;cursor:default}.shoe-pages span{font-size:14px;font-variant-numeric:tabular-nums}
.shoe-pages button:focus-visible{outline:2px solid var(--shop-accent);outline-offset:4px}
@media(hover:hover) and (pointer:fine){.shoe-object:not(.is-selected):hover img{transform:none}}

/* Lenis is scoped to the showroom, never the architecture or store page. */
.wall-scroll.lenis-smooth{scroll-behavior:auto!important;overflow-anchor:none}
.wall-scroll.lenis-stopped{overflow:hidden!important}
/* Phone backing laid out at 1/2 and scaled x2 in shoe-wall.js: halve its texture metrics. */
.wall-material.is-lowres{box-shadow:inset 0 0 95px #11110f80}.wall-material.is-lowres::before{background-size:650px 650px}
/* Shared wall sheet: the sprite takes the shoe's place; the photo element is used only for the close-up. */
.wall-shoe-sprite{display:block;background-repeat:no-repeat}
/* WebGL wall: the canvas draws every surface; DOM slots stay as invisible, focusable hit targets. */
.wall-gl{position:absolute;left:0;top:0;display:block;pointer-events:none}
.gl-wall .wall-material,.gl-wall .wall-baseboard,.gl-wall .wall-slot>*{display:none}
/* Close-up of a pair: hide the store's return-to-building control (it overlapped «К стене с обувью»). */
#shopView #backToTower{transition:opacity 180ms ease,visibility 0s}
#shopView.wall-focused #backToTower{opacity:0;visibility:hidden;pointer-events:none;transition:opacity 180ms ease,visibility 0s 180ms}
/* Detail House (store 3) — boutique motion, test page. Transform/opacity only (compositor). */
::view-transition-group(boutique-photo){animation-duration:520ms;animation-timing-function:cubic-bezier(.22,1,.36,1)}
::view-transition-old(boutique-photo),::view-transition-new(boutique-photo){animation-duration:520ms;height:100%;object-fit:contain}
::view-transition-old(root),::view-transition-new(root){animation-duration:260ms}
@supports (animation-timeline: view()){
 @media (prefers-reduced-motion:no-preference){
  #shopView.boutique-motion .product-card,#shopView.boutique-motion .collection-editorial>img,#shopView.boutique-motion .store-banner>div{
   animation:boutique-rise linear both;animation-timeline:view();animation-range:entry 0% entry 85%}
  #shopView.boutique-motion .store-banner{overflow:hidden}
  #shopView.boutique-motion .store-banner>img{animation:boutique-settle linear both;animation-timeline:view();animation-range:entry 0% cover 55%}
  #shopView.boutique-motion .product-card:nth-child(2n){animation-range:entry 8% entry 92%}
 }
}
@keyframes boutique-rise{from{opacity:0;transform:translate3d(0,34px,0)}to{opacity:1;transform:none}}
@keyframes boutique-settle{from{transform:scale(1.08)}to{transform:scale(1)}}
/* «show this product» from search (storefront.js reveal): a gold frame that fades out; nothing opens */
.shop-found{outline:2px solid #e1c797;outline-offset:6px;border-radius:12px;animation:shop-found 2.6s ease forwards}
@keyframes shop-found{0%,65%{outline-color:#e1c797}100%{outline-color:#e1c79700}}
.wall-slot.shop-found .wall-slot-label,.shoe-object.shop-found .shoe-object-caption{color:#e1c797}
@media(prefers-reduced-motion:reduce){.shop-found{animation:none}}
.look-item.shop-found,.product-card.shop-found{outline-offset:-2px}
.wall-slot.shop-found{outline:none;animation:none}
/* seller photos are cut-outs (background removed): show the whole product, never crop it like a full-bleed photo */
.product-card img[src^="blob:"],.product-card img[src*="/_blob/"]{object-fit:contain;padding:6%;box-sizing:border-box}
