/* Black Mango Studio · warm motion layer (served on public pages). */
:root{--bmw-ink:#352b24;--bmw-muted:#756757;--bmw-paper:#fbf7ef;--bmw-card:#fffdf8;--bmw-line:#e1d6c6;--bmw-mango:#f5b95c;--bmw-mango-deep:#eaaa47;--bmw-mango-pale:#f8e6c6;--bmw-ease:cubic-bezier(.2,.75,.2,1);--bmw-serif:"Bree Serif","Bree Serif Fallback",Georgia,serif}

/* ---------- Reveal on scroll ---------- */
.bmw-reveal{opacity:0!important;transform:translate3d(0,22px,0)!important;transition:opacity .8s var(--bmw-ease) calc(var(--bmw-i,0)*90ms),transform .9s var(--bmw-ease) calc(var(--bmw-i,0)*90ms)!important}
.bmw-reveal.is-in{opacity:1!important;transform:none!important}

/* Catalogue photos "develop" like a print as they arrive. */
.bms-template.bmw-reveal .bms-after{filter:sepia(.5) saturate(.55) brightness(1.1) contrast(.9) blur(5px);transform:scale(1.03);transition:filter 1.5s var(--bmw-ease) calc(var(--bmw-i,0)*90ms + .15s),transform 1.6s var(--bmw-ease) calc(var(--bmw-i,0)*90ms + .15s)}
.bms-template.bmw-reveal.is-in .bms-after{filter:none;transform:none}

/* ---------- Catalogue cards: pick up a print, peek at the original ---------- */
@media (hover:hover) and (pointer:fine){
 .bms-template{transition:transform .5s var(--bmw-ease),box-shadow .5s var(--bmw-ease)}
 .bms-template:hover{transform:translateY(-6px) rotate(-.35deg)}
 .bms-template:nth-child(even):hover{transform:translateY(-6px) rotate(.35deg)}
 .bms-template-photo{position:relative;overflow:hidden}
 .bms-template:hover .bms-after{transform:scale(1.025);transition:transform 1.2s var(--bmw-ease)}
}
.bmw-peek{position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .45s var(--bmw-ease);background:#f3ece0;display:grid;place-items:center;overflow:hidden;border-radius:inherit}
.bmw-peek.is-on{opacity:1}
.bmw-peek>img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.4s var(--bmw-ease)}
.bmw-peek.is-on>img{transform:none}
.bmw-peek-prints{display:flex;justify-content:center;align-items:center;padding:12%;width:100%;height:100%}
.bmw-peek-prints img{width:44%;aspect-ratio:4/5;object-fit:cover;background:#fff;border:6px solid #fff;border-bottom-width:16px;box-shadow:0 12px 28px #2a1d1130;margin:0 -7%;transform:rotate(calc((var(--i) - (var(--n) - 1)/2)*7deg)) translateY(calc(var(--i)*2px))}
.bmw-peek-label{position:absolute;left:12px;top:12px;background:#fffdf8ee;color:var(--bmw-ink);font:600 12px/1 "Nunito Sans",Arial,sans-serif;letter-spacing:.02em;padding:8px 12px;border-radius:999px;box-shadow:0 4px 14px #2a1d111f}
.bmw-peek-hint{position:absolute;right:10px;top:10px;z-index:2;pointer-events:none;background:#fffdf8e6;color:var(--bmw-ink);font:600 11px/1 "Nunito Sans",Arial,sans-serif;padding:7px 10px;border-radius:999px;opacity:0;transform:translateY(-4px);transition:opacity .35s,transform .35s}
.bms-template:hover .bmw-peek-hint{opacity:1;transform:none}
.bms-template:hover .bmw-peek.is-on~.bmw-peek-hint{opacity:0}

/* ---------- Hero ---------- */
.bmw-hero-glow{position:relative;isolation:isolate}
.bmw-hero-glow::before{content:"";position:absolute;z-index:-1;left:50%;top:38%;width:min(760px,90vw);height:min(420px,60vw);transform:translate(-50%,-50%);background:radial-gradient(closest-side,#f8d9a3cc,#f8e6c655 55%,transparent 75%);filter:blur(12px);animation:bmw-breathe 9s ease-in-out infinite;pointer-events:none}
@keyframes bmw-breathe{0%,100%{opacity:.75;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-52%) scale(1.06)}}
.bmw-scribble-host{position:relative;display:inline-block}
.bmw-scribble{position:absolute;left:4%;right:4%;bottom:-.34em;width:92%;height:.32em;overflow:visible;pointer-events:none}
.bmw-scribble path{fill:none;stroke:var(--bmw-mango);stroke-width:4.5;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;animation:bmw-draw 1.3s var(--bmw-ease) .55s forwards;opacity:.9}
@keyframes bmw-draw{to{stroke-dashoffset:0}}

/* Primary actions: a soft sheen and a nudge. */
[class*="__primaryButton"],.bmw-cta,.seo-action{position:relative;overflow:hidden;isolation:isolate;transition:transform .35s var(--bmw-ease),box-shadow .35s var(--bmw-ease)}
[class*="__primaryButton"]::after,.bmw-cta::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(105deg,transparent 35%,#fff7 50%,transparent 65%);transform:translateX(-120%);animation:bmw-sheen 7s ease-in-out 2.5s infinite}
@keyframes bmw-sheen{0%,78%{transform:translateX(-120%)}92%,100%{transform:translateX(120%)}}
@media (hover:hover){[class*="__primaryButton"]:hover,.bmw-cta:hover{transform:translateY(-2px);box-shadow:0 12px 28px #c98a2a40}[class*="__primaryButton"]:hover svg,.bmw-cta:hover span{transform:translateX(3px);transition:transform .3s var(--bmw-ease)}}

/* ---------- Promises strip ---------- */
.bmw-promises{list-style:none;margin:8px auto 0;padding:0 20px;max-width:1040px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bmw-promises li{display:grid!important;grid-template-columns:38px minmax(0,1fr);column-gap:12px;align-items:center;margin:0;background:var(--bmw-card);border:1px solid var(--bmw-line);border-radius:20px;padding:16px 18px}
.bmw-promises li>span:last-child{display:block;min-width:0}
.bmw-promise-icon{flex:none;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--bmw-mango-pale);color:#a0621a;font-size:17px;line-height:1}
.bmw-promises strong{display:block;color:var(--bmw-ink);font:600 15px/1.3 "Nunito Sans",Arial,sans-serif}
.bmw-promises small{display:block;margin-top:3px;color:var(--bmw-muted);font:400 13.5px/1.4 "Nunito Sans",Arial,sans-serif}
@media (max-width:900px){.bmw-promises{grid-template-columns:1fr;gap:8px;padding:0 16px}.bmw-promises li{grid-template-columns:32px minmax(0,1fr);padding:12px 14px;border-radius:16px;column-gap:12px}.bmw-promise-icon{width:32px;height:32px;font-size:15px}.bmw-promises strong{font-size:14.5px}.bmw-promises small{font-size:13px}}

/* ---------- Before / after showcase ---------- */
.bmw-showcase{padding:88px 0 72px;background:linear-gradient(180deg,transparent,#f6eddd 18%,#f6eddd 82%,transparent)}
.bmw-shell{width:min(1180px,calc(100% - 40px));margin:0 auto}
.bmw-head{text-align:center;max-width:640px;margin:0 auto 26px}
.bmw-eyebrow{margin:0 0 10px;color:#a0621a;font:700 12px/1 "Nunito Sans",Arial,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.bmw-head h2{margin:0;color:var(--bmw-ink);font:400 clamp(34px,4.4vw,52px)/1.08 var(--bmw-serif)}
.bmw-head p:last-child{margin:14px auto 0;color:var(--bmw-muted);font:400 17px/1.55 "Nunito Sans",Arial,sans-serif}
.bmw-tabs{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 auto 28px}
.bmw-tabs button{appearance:none;border:1px solid var(--bmw-line);background:var(--bmw-card);color:var(--bmw-ink);font:600 14.5px/1 "Nunito Sans",Arial,sans-serif;padding:12px 18px;border-radius:999px;cursor:pointer;min-height:44px;transition:background .3s,border-color .3s,transform .3s var(--bmw-ease)}
.bmw-tabs button:hover{transform:translateY(-1px);border-color:#d9c3a3}
.bmw-tabs button[aria-selected="true"]{background:var(--bmw-ink);border-color:var(--bmw-ink);color:#fffaf1}
.bmw-tabs button:focus-visible,.bmw-replay:focus-visible,.bmw-cta:focus-visible{outline:3px solid var(--bmw-mango);outline-offset:3px}
.bmw-panel{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:48px;align-items:center}
.bmw-panels{display:grid}
.bmw-panels>.bmw-panel{grid-area:1/1}
.bmw-panel.is-off{visibility:hidden;pointer-events:none}
.bmw-panel.is-entering{animation:bmw-panel-in .7s var(--bmw-ease)}
@keyframes bmw-panel-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.bmw-panel-line{margin:0;color:var(--bmw-ink);font:400 clamp(24px,2.4vw,30px)/1.25 var(--bmw-serif)}
.bmw-panel-look{margin:14px 0 22px;color:var(--bmw-muted);font:400 15px/1.5 "Nunito Sans",Arial,sans-serif}
.bmw-panel-look a{color:var(--bmw-ink);text-underline-offset:3px}
.bmw-cta{display:inline-flex;align-items:center;gap:10px;min-height:52px;padding:0 26px;border-radius:999px;background:var(--bmw-mango);color:#342719;font:700 16px/1 "Nunito Sans",Arial,sans-serif;text-decoration:none}
.bmw-cta span{display:inline-block}
.bmw-note{margin:26px 0 0;text-align:center;color:var(--bmw-muted);font:400 13px/1.5 "Nunito Sans",Arial,sans-serif}
.bmw-tag{position:absolute;top:14px;z-index:3;background:#fffdf8ee;color:var(--bmw-ink);font:700 12px/1 "Nunito Sans",Arial,sans-serif;padding:8px 12px;border-radius:999px;box-shadow:0 4px 14px #2a1d111f;pointer-events:none}
.bmw-tag-before{left:14px}.bmw-tag-after{right:14px}

.bmw-compare,.bmw-gather{position:relative;width:min(100%,calc(74vh * var(--r,1)));margin:0 auto;border-radius:26px;overflow:hidden;background:#efe4d2;box-shadow:0 30px 70px #3a28161f,0 2px 0 #fff inset;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.bmw-compare{touch-action:pan-y;cursor:ew-resize;--pos:50%}
.bmw-compare img,.bmw-gather-result img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.bmw-compare-before{position:absolute;inset:0;clip-path:inset(0 calc(100% - var(--pos)) 0 0);z-index:1}
.bmw-compare-handle{position:absolute;top:0;bottom:0;left:var(--pos);z-index:2;width:0;pointer-events:none}
.bmw-compare-handle::before{content:"";position:absolute;top:0;bottom:0;left:-1.5px;width:3px;background:#fffdf8;box-shadow:0 0 18px #0003}
.bmw-compare-handle i{position:absolute;top:50%;left:-26px;width:52px;height:52px;margin-top:-26px;border-radius:50%;background:#fffdf8;box-shadow:0 8px 24px #2a1d1140;display:grid;place-items:center}
.bmw-compare-handle i::before{content:"‹ ›";color:var(--bmw-ink);font:700 18px/1 "Nunito Sans",Arial,sans-serif;letter-spacing:4px;margin-left:4px}
.bmw-compare input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;pointer-events:none}
.bmw-compare:has(input:focus-visible) .bmw-compare-handle i{outline:3px solid var(--bmw-mango);outline-offset:3px}
.bmw-compare.is-hinting .bmw-compare-before{transition:clip-path .9s var(--bmw-ease)}
.bmw-compare.is-hinting .bmw-compare-handle{transition:left .9s var(--bmw-ease)}

.bmw-gather-result{position:absolute;inset:0;transition:opacity 1.1s var(--bmw-ease) .35s,filter 1.2s var(--bmw-ease) .35s,transform 1.4s var(--bmw-ease) .35s}
.bmw-gather-prints{position:absolute;inset:0;z-index:2;display:flex;justify-content:center;align-items:center;pointer-events:none}
.bmw-print{position:absolute;left:50%;top:50%;margin:0;width:calc(min(26%, 86% / var(--n)));background:#fff;padding:6px 6px 20px;border-radius:4px;box-shadow:0 18px 40px #2a1d1133;
 --spread:calc(var(--i) - (var(--n) - 1) / 2);
 transform:translate(-50%,-50%) translate(calc(var(--spread) * 104%),calc(var(--spread) * var(--spread) * 5px)) rotate(calc(var(--spread) * 5deg));
 transition:transform 1.05s var(--bmw-ease) calc(var(--i) * 70ms),opacity .8s ease calc(var(--i) * 70ms + .25s)}
.bmw-print img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#f3ece0}
.bmw-gather.is-scattered .bmw-gather-result{opacity:.18;filter:blur(8px) saturate(.6);transform:scale(1.04)}
.bmw-gather.is-together .bmw-print{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(0)}
.bmw-gather.is-together .bmw-tag-before{opacity:.0}
.bmw-gather.is-scattered .bmw-tag-after{opacity:0}
.bmw-tag{transition:opacity .5s}
.bmw-replay{position:absolute;left:50%;bottom:16px;z-index:4;transform:translateX(-50%);appearance:none;border:0;cursor:pointer;background:#352b24e6;color:#fffaf1;font:700 13.5px/1 "Nunito Sans",Arial,sans-serif;padding:12px 18px;border-radius:999px;min-height:44px;box-shadow:0 8px 22px #0003;white-space:nowrap}

@media (min-width:901px){.bmw-panel{grid-template-columns:minmax(0,max-content) minmax(260px,400px);justify-content:center;gap:56px}.bmw-compare,.bmw-gather{width:min(700px,60vw,calc(74vh * var(--r,1)))}}
@media (max-width:900px){
 .bmw-showcase{padding:56px 0 48px}
 .bmw-shell{width:calc(100% - 32px)}
 .bmw-head{margin-bottom:18px}.bmw-head p:last-child{font-size:15.5px}
 .bmw-tabs{flex-wrap:nowrap;overflow-x:auto;justify-content:flex-start;margin:0 -16px 18px;padding:2px 16px 6px;scrollbar-width:none}
 .bmw-tabs::-webkit-scrollbar{display:none}
 .bmw-tabs button{flex:none;font-size:14px;padding:11px 15px}
 .bmw-panel{grid-template-columns:1fr;gap:20px;align-content:start}
 .bmw-compare,.bmw-gather{border-radius:20px;width:100%}
 .bmw-panel-copy{text-align:left}
 .bmw-panel-line{font-size:22px}
 .bmw-panel-look{margin:8px 0 16px}
 .bmw-cta{width:100%;justify-content:center}
 .bmw-print{padding:4px 4px 13px}
 .bmw-compare-handle i{width:44px;height:44px;left:-22px;margin-top:-22px}
}

/* ---------- How it works: steps light up in turn ---------- */
[class*="__steps"]>li.bmw-reveal{transform:translate3d(0,26px,0) scale(.98)!important}
[class*="__steps"]>li.bmw-reveal.is-in{transform:none!important}

/* Closing photograph drifts slowly, like a held moment. */
[class*="__closingPhoto"] img{transition:transform 9s ease-out;transform:scale(1.06)}
[class*="__closingPhoto"].is-in img{transform:scale(1)}

/* Reading progress for journal articles. */
.bmw-progress{position:fixed;left:0;top:0;height:3px;width:100%;z-index:9999;transform-origin:0 50%;transform:scaleX(0);background:linear-gradient(90deg,var(--bmw-mango),#e59a3a);pointer-events:none}

@media (prefers-reduced-motion:reduce){
 .bmw-reveal{opacity:1!important;transform:none!important;transition:none!important}
 .bms-template.bmw-reveal .bms-after{filter:none;transform:none}
 .bmw-hero-glow::before,[class*="__primaryButton"]::after,.bmw-cta::after{animation:none}
 .bmw-scribble path{animation:none;stroke-dashoffset:0}
 .bmw-print,.bmw-gather-result,.bmw-panel.is-entering{transition:none;animation:none}
 [class*="__closingPhoto"] img{transform:none;transition:none}
 .bms-template,.bms-template:hover{transform:none}
}
@media print{.bmw-reveal{opacity:1!important;transform:none!important}}
.bms-template-photo .bms-start{z-index:3}
