:root{--bg:#fbfaf7;--ink:#1d1d1f;--ink2:#6e6e73;--line:#e6e3dc;--brass:#b08d57;--brass2:#8f6f3e;--card:#fff;--soft:#f3f1ec;--r:18px;--ease:cubic-bezier(.22,.61,.36,1);
--sans:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue",Arial,sans-serif;--serif:"Cormorant Garamond","Noto Serif",Georgia,serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.5;font-size:16px}
a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer;border:0;background:none;color:inherit}
img,canvas{display:block;max-width:100%}
.serif{font-family:var(--serif);font-style:italic;font-weight:500;letter-spacing:0}
.muted{color:var(--ink2)}
.eyebrow{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass2);font-weight:600;margin-bottom:14px}
.eyebrow.light{color:#d9bf8f}
.demo-strip{background:var(--ink);color:#cfcac0;font-size:11.5px;letter-spacing:.06em;text-align:center;padding:6px 12px}
/* nav */
.nav{position:sticky;top:0;z-index:50;background:rgba(251,250,247,.78);backdrop-filter:saturate(180%) blur(18px);-webkit-backdrop-filter:saturate(180%) blur(18px);border-bottom:1px solid rgba(0,0,0,.06)}
.nav-in{max-width:1240px;margin:auto;height:68px;display:flex;align-items:center;gap:28px;padding:0 24px}
.brand{display:flex;align-items:center;gap:11px;font-weight:600;font-size:23px;letter-spacing:-.025em}
.brand em{font-style:normal;color:var(--brass);font-weight:400}
.brand-mark{width:29px;height:35px}
.links{display:flex;gap:34px;margin-left:auto;font-size:15.5px;font-weight:500}
.links a{color:#3a3a3d;transition:color .2s;position:relative;padding:4px 0}
.links a:hover,.links a.on{color:var(--ink)}
.links a.on:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:var(--brass)}
.cart-btn{position:relative;width:36px;height:36px;display:grid;place-items:center}
.cart-btn svg{width:22px;height:22px}
.cart-btn b{position:absolute;top:1px;right:-2px;background:var(--brass);color:#fff;font-size:10px;min-width:17px;height:17px;border-radius:9px;display:grid;place-items:center;padding:0 4px;transform:scale(0);transition:transform .3s var(--ease)}
.cart-btn b.show{transform:scale(1)}
.burger{display:none;width:36px;height:36px;position:relative}
.burger i{position:absolute;left:9px;right:9px;height:1.5px;background:var(--ink);transition:.3s var(--ease)}
.burger i:first-child{top:14px}.burger i:last-child{top:21px}
.nav.open .burger i:first-child{top:17.5px;transform:rotate(45deg)}.nav.open .burger i:last-child{top:17.5px;transform:rotate(-45deg)}
/* pages */
.page{display:none;max-width:1240px;margin:0 auto;padding:0 24px 100px}
.page.active{display:block;animation:pageIn .6s var(--ease)}
@keyframes pageIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translate3d(0,36px,0) scale(.985);transition:opacity 1.1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.reveal.in{opacity:1;transform:none}
h1{font-size:clamp(40px,6.2vw,80px);line-height:1.02;letter-spacing:-.035em;font-weight:600}
h1 .serif{font-size:1.08em;color:var(--brass2)}
h2{font-size:clamp(30px,4vw,48px);letter-spacing:-.03em;line-height:1.08;font-weight:600}
h3{font-size:21px;letter-spacing:-.015em;font-weight:600;margin-bottom:8px}
.lead{font-size:clamp(18px,1.7vw,21px);color:var(--ink2);max-width:560px;margin-top:22px;line-height:1.45}
.btn{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 26px;border-radius:999px;background:var(--ink);color:#fff;font-size:15px;font-weight:500;transition:transform .25s var(--ease),background .25s,box-shadow .25s;white-space:nowrap}
.btn:hover{background:#000;transform:translateY(-1px);box-shadow:0 8px 24px rgba(0,0,0,.15)}
.btn:active{transform:scale(.97)}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px #c9c5bc}
.btn.ghost:hover{box-shadow:inset 0 0 0 1px var(--ink)}
.btn.light{background:#fff;color:var(--ink)}
.ctas{display:flex;gap:12px;margin-top:36px;flex-wrap:wrap}
/* hero */
.hero{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:center;min-height:calc(100vh - 100px);padding:40px 0 60px}
.hero-wall{position:relative;height:min(78vh,640px);border-radius:28px;background:radial-gradient(120% 90% at 30% 20%,#f4f1ea 0%,#e9e4da 60%,#e1dbcf 100%);overflow:hidden}
.hero-wall:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.35),transparent 45%);pointer-events:none}
.hero-a{position:absolute;left:8%;top:9%;width:62%;height:80%}
.hero-b{position:absolute;right:5%;top:22%;width:34%;height:46%}
.hero-b canvas{animation:float 7s ease-in-out infinite}
.hero-a canvas,.hero-b canvas{width:100%;height:100%}
.px{transform:translate3d(var(--px,0),var(--py,0),0);transition:transform .9s cubic-bezier(.2,.7,.2,1);will-change:transform}
.hero-light{position:absolute;inset:-20%;background:radial-gradient(40% 35% at 30% 20%,rgba(255,250,235,.55),transparent 70%);pointer-events:none;mix-blend-mode:soft-light}
@keyframes float{50%{translate:0 -8px}}
/* entrada del hero */
.intro>*{opacity:0;animation:rise 1.1s var(--ease) forwards}
.intro .i1{animation-delay:.05s}.intro .i4{animation-delay:.55s}.intro .i5{animation-delay:.7s}
.intro h1{opacity:1;animation:none}
.ln{display:block;overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}
.ln>span{display:inline-block;transform:translate3d(0,105%,0);animation:lineUp 1.2s var(--ease) forwards}
.i2{animation-delay:.15s!important}.i3{animation-delay:.32s!important}
@keyframes rise{from{opacity:0;transform:translate3d(0,22px,0)}to{opacity:1;transform:none}}
@keyframes lineUp{to{transform:none}}
.intro-wall{opacity:0;transform:scale(.97);animation:wallIn 1.4s var(--ease) .2s forwards}
.intro-wall .hero-a{opacity:0;animation:frameIn 1.3s var(--ease) .55s forwards}
.intro-wall .hero-b{opacity:0;animation:frameIn 1.3s var(--ease) .8s forwards}
@keyframes wallIn{to{opacity:1;transform:none}}
@keyframes frameIn{from{opacity:0;translate:0 28px}to{opacity:1;translate:0 0}}
.btn-arr{display:inline-block;margin-left:8px;transition:transform .35s var(--ease)}
.btn:hover .btn-arr{transform:translateX(4px)}
.cta-card .arrow{display:inline-block;transition:transform .4s var(--ease)}
.cta-card:hover .arrow{transform:translateX(6px)}
/* configurador: transición entre molduras */
.wall .ghost{opacity:0;pointer-events:none}
.wall .ghost.fade{animation:ghostOut .55s var(--ease) forwards}
@keyframes ghostOut{from{opacity:1}to{opacity:0}}
#cfgCanvas.swap,#frCanvas.swap{animation:settle .6s var(--ease)}
@keyframes settle{from{transform:scale(.985)}to{transform:none}}
.mo canvas{transition:transform .5s var(--ease)}
.mo:hover canvas{transform:scale(1.06) rotate(-2deg)}
.mo.on canvas{transform:scale(1.04)}
.ms{transform-style:preserve-3d}
.ms canvas{transition:transform .7s var(--ease)}
.ms:hover canvas{transform:scale(1.07) rotate(-3deg)}
.chip,.opt,.dot i{transition:transform .25s var(--ease),background .25s,box-shadow .25s,color .25s}
.chip:active,.opt:active,.mo:active{transform:scale(.96)}
/* progreso de lectura */
.progress{position:fixed;left:0;top:0;height:2px;width:100%;background:var(--brass);transform-origin:0 50%;transform:scaleX(0);z-index:60;pointer-events:none}
/* WhatsApp */
.wa-fab{cursor:pointer;position:fixed;right:22px;bottom:22px;z-index:45;height:52px;min-width:52px;border-radius:26px;display:flex;align-items:center;gap:0;padding:0 15px;background:rgba(29,29,31,.88);color:#fff;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 10px 30px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.08);transition:transform .4s var(--ease),box-shadow .4s,background .3s,bottom .4s var(--ease),opacity .4s;opacity:0;transform:translate3d(0,16px,0);animation:fabIn .8s var(--ease) 1.4s forwards}
.wa-fab svg{width:22px;height:22px;color:#25d366;flex:none}
.wa-fab span{max-width:0;overflow:hidden;white-space:nowrap;font-size:14px;font-weight:500;transition:max-width .5s var(--ease),margin .5s var(--ease)}
.wa-fab:hover{transform:translate3d(0,-2px,0);box-shadow:0 16px 36px rgba(0,0,0,.24)}
@media(hover:hover) and (pointer:fine){.wa-fab:hover span{max-width:170px;margin-left:10px}}
@keyframes fabIn{to{opacity:1;transform:none}}
.foot-wa{cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:500;border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .3s}
.foot-wa:hover{border-color:var(--brass)}
.foot-wa svg{width:16px;height:16px;color:#1faa53}
.band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:56px 0;margin:20px 0 110px}
.feats{display:grid;grid-template-columns:repeat(4,1fr);gap:40px}
.feat p,.philo p{color:var(--ink2);font-size:16px}
.num{display:block;font-size:13px;color:var(--brass2);font-weight:600;letter-spacing:.08em;margin-bottom:14px}
.section-head{text-align:center;margin-bottom:48px}
.mould-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.ms{background:var(--card);border-radius:var(--r);padding:22px 18px 20px;text-align:center;transition:transform .4s var(--ease),box-shadow .4s;cursor:pointer;border:1px solid var(--line)}
.ms:hover{transform:translateY(-4px);box-shadow:0 20px 40px rgba(60,45,20,.08)}
.ms canvas{width:100%;aspect-ratio:1;margin-bottom:14px}
.ms b{display:block;font-size:15px;font-weight:600}.ms small{color:var(--ink2);font-size:13px}
.cta-split{display:grid;grid-template-columns:1.3fr 1fr;gap:18px;margin-top:110px}
.cta-card{border-radius:28px;padding:48px;background:var(--soft);min-height:300px;display:flex;flex-direction:column;justify-content:flex-end;transition:transform .5s var(--ease)}
.cta-card:hover{transform:scale(1.01)}
.cta-card.dark{background:linear-gradient(140deg,#24221f,#121212);color:#f3efe7}
.cta-card.dark p{color:#b9b3a8}.cta-card.dark .eyebrow{color:#d9bf8f}
.cta-card h3{font-size:30px;letter-spacing:-.025em}
.cta-card p{color:var(--ink2)}
.arrow{margin-top:20px;font-weight:500;color:var(--brass)}
/* configurator */
.cfg{display:grid;grid-template-columns:1.25fr 1fr;gap:48px;padding-top:32px;align-items:start}
.cfg-stage{position:sticky;top:92px}
.wall{position:relative;height:calc(100vh - 140px);min-height:480px;border-radius:28px;background:radial-gradient(120% 90% at 35% 15%,#f5f2ec 0%,#e8e3d9 65%,#ddd6c9 100%);overflow:hidden}
.wall:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(0,0,0,.012) 0 2px,transparent 2px 5px);pointer-events:none}
.wall-warm{background:radial-gradient(120% 90% at 35% 15%,#eef0ef 0%,#dfe3e1 65%,#d2d7d5 100%)}
.wall canvas{position:absolute;inset:0;width:100%;height:100%}
.stage-meta{position:absolute;left:22px;right:22px;bottom:18px;display:flex;justify-content:space-between;font-size:13px;color:#5c574f;gap:10px}
.stage-meta span{white-space:nowrap}.stage-meta span:first-child{font-weight:500;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.cfg-h{margin-bottom:8px}.sub{color:var(--ink2);margin-bottom:6px}
.step{padding:26px 0;border-bottom:1px solid var(--line)}
.step-h{display:flex;align-items:center;gap:12px;font-weight:600;font-size:16px;margin-bottom:16px}
.step-h>span{width:24px;height:24px;border-radius:50%;background:var(--ink);color:#fff;font-size:12px;display:grid;place-items:center}
.drop{display:flex;align-items:center;gap:16px;padding:20px;border:1.5px dashed #cdc8bd;border-radius:16px;cursor:pointer;transition:.25s}
.drop:hover,.drop.over{border-color:var(--brass);background:#fffdf8}
.drop svg{width:30px;height:30px;color:var(--brass);flex:none}
.drop b{display:block;font-weight:600}.drop small{color:var(--ink2);font-size:13px}
.link-sm{display:inline-block;margin-top:12px;font-size:14px;color:var(--brass2)}
.moulds{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
.mo{border-radius:14px;padding:8px 6px 10px;text-align:center;border:1.5px solid transparent;background:var(--card);box-shadow:0 0 0 1px var(--line);transition:.25s var(--ease)}
.mo canvas{width:100%;aspect-ratio:1}
.mo span{display:block;font-size:11.5px;line-height:1.25;margin-top:6px;color:#424245}
.mo.on{border-color:var(--ink);box-shadow:none}
.mo:hover{transform:translateY(-2px)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{height:38px;padding:0 16px;border-radius:999px;box-shadow:inset 0 0 0 1px #d6d2c9;font-size:14px;transition:.2s}
.chip.on{background:var(--ink);color:#fff;box-shadow:none}
.custom{display:none;gap:14px;margin-top:14px;font-size:14px;color:var(--ink2)}
.custom.show{display:flex}
.custom input{width:70px;height:38px;border:1px solid #d6d2c9;border-radius:10px;padding:0 10px;font:inherit;color:var(--ink);margin:0 4px;background:#fff}
.seg{display:inline-flex;margin-top:14px;background:var(--soft);border-radius:999px;padding:3px}
.seg button{height:32px;padding:0 16px;border-radius:999px;font-size:13px;color:var(--ink2);transition:.25s}
.seg button.on{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(0,0,0,.1)}
.switch{margin-left:auto;position:relative;width:46px;height:28px}
.switch input{opacity:0;position:absolute}
.switch i{position:absolute;inset:0;border-radius:99px;background:#d6d2c9;transition:.3s;cursor:pointer}
.switch i:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:.3s var(--ease)}
.switch input:checked+i{background:var(--ink)}.switch input:checked+i:after{transform:translateX(18px)}
#matOpts{transition:opacity .3s}#matOpts.off{opacity:.35;pointer-events:none}
.dots{display:flex;gap:14px;margin-bottom:16px}
.dot{display:flex;align-items:center;gap:8px;font-size:14px;color:#424245}
.dot i{width:30px;height:30px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15);outline:1.5px solid transparent;outline-offset:3px;transition:.2s}
.dot.on i{outline-color:var(--ink)}
.range{display:flex;align-items:center;gap:14px;font-size:14px;color:var(--ink2)}
.range input{flex:1;accent-color:var(--ink)}
.range output{min-width:44px;text-align:right;color:var(--ink);font-weight:500}
.opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.opt{text-align:left;padding:12px 14px;border-radius:14px;box-shadow:inset 0 0 0 1px #dcd8cf;transition:.2s}
.opt b{display:block;font-size:14px;font-weight:600}.opt small{font-size:12px;color:var(--ink2)}
.opt.on{box-shadow:inset 0 0 0 1.5px var(--ink);background:#fff}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.ck{display:flex;align-items:center;gap:10px;font-size:14px;cursor:pointer}
.ck input{width:18px;height:18px;accent-color:var(--ink)}
.ck small{color:var(--ink2);margin-left:auto}
.price-box{margin-top:26px;padding:22px;border-radius:20px;background:#fff;box-shadow:0 1px 0 var(--line),0 10px 30px rgba(60,45,20,.05);border:1px solid var(--line)}
.price-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.price-row small,.mobile-bar small{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass2);font-weight:600}
.price-row strong{font-size:34px;letter-spacing:-.03em;font-weight:600;transition:color .3s}
.price-box details{margin-top:12px;font-size:14px;color:var(--ink2)}
.price-box summary{cursor:pointer}
.price-box ul{list-style:none;margin-top:10px}
.price-box li{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px dashed var(--line)}
.fine{font-size:12px;color:#8e8a82;margin-top:10px}
.mobile-bar{display:none}
.bump{animation:bump .4s var(--ease)}@keyframes bump{40%{transform:scale(1.06)}}
/* gallery */
.page-head{padding:80px 0 50px;max-width:980px}.page-head.small{padding:56px 0 32px}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:36px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:40px 28px}
.art{cursor:pointer;transition:opacity .4s,transform .4s var(--ease)}
.art.hide{display:none}
.art .pic{background:linear-gradient(160deg,#efebe3,#e3ddd1);border-radius:20px;aspect-ratio:4/5;display:grid;place-items:center;padding:12%;transition:.5s var(--ease);position:relative}
.art .pic img{max-height:100%;max-width:100%;object-fit:contain;border:7px solid #1f1d1b;padding:7%;background:#fbf9f4;box-shadow:0 14px 26px rgba(40,30,15,.25),0 2px 4px rgba(0,0,0,.2);transition:transform .6s var(--ease)}
.art:hover .pic img{transform:scale(1.035)}
.art .pic em{position:absolute;bottom:14px;left:50%;transform:translate(-50%,8px);opacity:0;background:var(--ink);color:#fff;font-style:normal;font-size:13px;padding:7px 14px;border-radius:99px;transition:.35s var(--ease);white-space:nowrap}
.art:hover .pic em{opacity:1;transform:translate(-50%,0)}
.art h4{margin-top:14px;font-size:16px;font-weight:600;letter-spacing:-.01em}
.art p{font-size:13.5px;color:var(--ink2)}
.art .tag{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass2);font-weight:600;margin-top:4px;display:block}
.artists{margin-top:100px;border-radius:28px;background:linear-gradient(140deg,#24221f,#141414);color:#f3efe7;padding:60px;display:grid;grid-template-columns:1.4fr 1fr;gap:50px;align-items:center}
.artists p{color:#bdb6aa;margin:16px 0 28px;max-width:540px}
.artists ul{list-style:none;border-left:1px solid #3a3631;padding-left:30px}
.artists li{padding:12px 0;color:#e7e0d3;font-size:15px}
.artists li:before{content:"—";color:var(--brass);margin-right:10px}
/* philosophy */
.philo{display:grid;grid-template-columns:repeat(2,1fr);gap:0;border-top:1px solid var(--line)}
.philo article{padding:44px 40px 44px 0;border-bottom:1px solid var(--line)}
.philo article:nth-child(even){padding-left:40px;border-left:1px solid var(--line)}
.philo h3{font-size:26px;letter-spacing:-.02em}
.quote{text-align:center;padding:110px 0 20px}
.quote p{font-size:clamp(34px,4.5vw,56px);margin-bottom:32px;color:var(--ink)}
/* cart */
.cart{display:grid;grid-template-columns:1.6fr 1fr;gap:40px;align-items:start}
.ci{display:grid;grid-template-columns:120px 1fr auto;gap:22px;padding:22px 0;border-bottom:1px solid var(--line);align-items:center;animation:pageIn .5s var(--ease)}
.ci canvas{width:120px;height:120px;background:var(--soft);border-radius:14px}
.ci h4{font-size:17px;font-weight:600}.ci p{font-size:13.5px;color:var(--ink2);line-height:1.5}
.ci .r{text-align:right}.ci .r strong{display:block;font-size:18px;font-weight:600}
.qty{display:inline-flex;align-items:center;gap:6px;margin-top:8px;background:var(--soft);border-radius:99px;padding:3px}
.qty button{width:28px;height:28px;border-radius:50%}.qty button:hover{background:#fff}
.rm{font-size:12.5px;color:var(--ink2);text-decoration:underline;margin-top:6px;display:block;margin-left:auto}
.empty{padding:60px 0;text-align:center;color:var(--ink2)}.empty .btn{margin-top:20px}
.summary{position:sticky;top:90px;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px}
.sum-row{display:flex;justify-content:space-between;padding:8px 0;font-size:15px;color:#424245}
.sum-row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:16px;font-size:19px;font-weight:600;color:var(--ink)}
.demo-pay{margin:18px 0 12px;text-align:center;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#a0522d;background:#fbf1e8;border-radius:99px;padding:6px}
.pay{width:100%;height:52px;border-radius:14px;margin-top:10px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:15px;transition:.25s var(--ease);opacity:.92}
.pay:hover{opacity:1;transform:translateY(-1px)}
.pay.mp{background:#00b1ea;color:#fff}.pay.yape{background:#742284;color:#fff}.pay.card{background:var(--ink);color:#fff}
.pay svg{width:22px;height:22px}
/* footer */
.foot{border-top:1px solid var(--line);padding:44px 24px 60px;font-size:13px;color:var(--ink2)}
.foot-in{max-width:1240px;margin:auto;display:grid;gap:8px}
.brand.small{font-size:17px;color:var(--ink);margin-bottom:6px}
.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,30px);opacity:0;background:rgba(29,29,31,.92);color:#fff;padding:13px 22px;border-radius:99px;font-size:14px;z-index:99;transition:.4s var(--ease);pointer-events:none;backdrop-filter:blur(10px);max-width:90vw;width:max-content;text-align:center}
.toast.show{opacity:1;transform:translate(-50%,0)}
/* responsive */
@media(max-width:1020px){
 .links{display:none;position:absolute;top:68px;left:0;right:0;flex-direction:column;gap:0;background:var(--bg);box-shadow:0 20px 30px rgba(0,0,0,.06);padding:8px 24px 18px;border-bottom:1px solid var(--line)}
 .nav.open .links{display:flex}
 .links a{padding:14px 0;font-size:18px;border-bottom:1px solid var(--line)}.links a.on:after{display:none}
 .burger{display:block}.cart-btn{margin-left:auto}
 .hero{grid-template-columns:1fr;min-height:0;padding-top:36px;gap:36px}
 .hero-wall{height:min(110vw,520px)}
 .cfg{grid-template-columns:1fr;gap:10px}
 .moulds{grid-template-columns:repeat(5,1fr)}
}
@media(max-width:1020px){
 .cfg-stage{top:68px;z-index:5;margin:0 -24px;background:var(--bg);padding:10px 16px}
 .wall{height:42vh;min-height:280px;border-radius:20px}
 .mobile-bar{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:40;background:rgba(255,255,255,.9);backdrop-filter:blur(16px);border:1px solid var(--line);border-radius:20px;padding:10px 10px 10px 18px;align-items:center;justify-content:space-between;box-shadow:0 12px 30px rgba(0,0,0,.12)}
 .mobile-bar strong{font-size:22px;font-weight:600;letter-spacing:-.02em}
 #p-marcos .mobile-bar{display:none}
}
@media(max-width:720px){
 body{font-size:15px}
 .page{padding:0 20px 100px}
 .feats{grid-template-columns:1fr;gap:32px}.band{margin-bottom:80px}
 .mould-strip{grid-template-columns:repeat(2,1fr)}.mould-strip .ms:last-child{grid-column:1/-1;max-width:50%;justify-self:center;width:100%}
 .cta-split,.artists,.cart{grid-template-columns:1fr}
 .cta-card{padding:32px;min-height:240px}
 .artists{padding:36px 28px;gap:24px}.artists ul{border-left:0;padding-left:0;border-top:1px solid #3a3631;padding-top:10px}
 .philo{grid-template-columns:1fr}.philo article,.philo article:nth-child(even){padding:34px 0;border-left:0}
 .grid{grid-template-columns:1fr 1fr;gap:28px 14px}
 .art .pic{border-radius:14px}.art .pic img{border-width:4px}.art h4{font-size:14px}.art p{font-size:12px}
 .page-head{padding:48px 0 32px}
 .moulds{grid-template-columns:repeat(5,1fr);gap:6px}.mo{padding:5px 3px 7px}.mo span{font-size:10px}
 .opts,.checks{grid-template-columns:1fr}
 .ci{grid-template-columns:84px 1fr;gap:14px}.ci canvas{width:84px;height:84px}.ci .r{grid-column:2;text-align:left;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.ci .r .rm{margin:0}
 .price-row strong{font-size:28px}
 .cfg-stage{margin:0 -20px}
 .stage-meta{font-size:11px;bottom:10px;left:14px;right:14px}.stage-meta span:first-child{max-width:40%}
}

.lead.center{margin:18px auto 0;text-align:center}
.note{font-size:13px;color:var(--ink2);margin-top:12px;line-height:1.5}
.print-ck{margin-top:16px}
@media(min-width:1021px){
 .cfg-stage{position:relative;top:0}
 .cfg-panel{position:sticky;top:92px;height:calc(100vh - 116px);overflow-y:auto;padding-right:14px;scrollbar-width:thin;scrollbar-color:#d6d2c9 transparent}
 .cfg{padding-top:24px;align-items:start}
 .wall{height:calc(100vh - 116px)}
 .cfg-panel .price-box{position:sticky;bottom:0;z-index:2;margin-bottom:0}
 .cfg-panel .price-box details ul{max-height:30vh;overflow:auto}
}
@media(max-width:1020px){.feats{grid-template-columns:1fr 1fr}}
@media(max-width:720px){.links a{font-size:18px}.brand{font-size:21px}.brand-mark{width:26px;height:31px}}

@media(max-width:1020px){body.on-enmarcar .wa-fab{bottom:96px}.wa-fab{right:16px;bottom:16px;height:48px;min-width:48px;padding:0 13px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.px{transform:none!important}html{scroll-behavior:auto}}
.ms.reveal,.cta-card.reveal{transition:opacity 1.1s var(--ease) var(--d,0s),transform 1.1s var(--ease) var(--d,0s),box-shadow .4s}
.ms.reveal.in:hover{transform:translate3d(0,-6px,0)}
@media(max-width:1020px){.toast{bottom:84px}body.on-enmarcar .toast{bottom:160px}}
/* ===== Features con presencia ===== */
.band{padding:72px 0 64px}
.feats{gap:0}
.feat{padding:8px 36px 8px 0;position:relative}
.feat+.feat{padding-left:36px;border-left:1px solid var(--line)}
.f-top{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px}
.fnum{font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(64px,6vw,92px);line-height:.8;letter-spacing:-.02em;background:linear-gradient(160deg,#c9a46a 0%,#9a7740 55%,#7d5f30 100%);-webkit-background-clip:text;background-clip:text;color:transparent;transition:transform .7s var(--ease);display:inline-block;padding-right:.08em}
.f-top svg{width:26px;height:26px;fill:none;stroke:var(--ink2);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round;margin-bottom:6px;transition:stroke .4s,transform .6s var(--ease)}
.fline{display:block;height:1px;background:var(--brass);margin-bottom:22px;transform:scaleX(0);transform-origin:0 50%;transition:transform 1.2s var(--ease) calc(var(--d,0s) + .25s)}
.feat.in .fline{transform:scaleX(.28)}
.feat h3{font-size:22px;letter-spacing:-.02em;margin-bottom:10px}
.feat p{line-height:1.55}
.feat:hover .fline{transform:scaleX(1);transition-delay:0s}
.feat:hover .fnum{transform:translate3d(0,-4px,0)}
.feat:hover svg{stroke:var(--brass2);transform:rotate(-6deg)}
@media(max-width:1020px){.feat:nth-child(3){padding-left:0;border-left:0}.feats{row-gap:48px}}
@media(max-width:720px){.feat,.feat+.feat{padding:0;border-left:0}.feats{row-gap:44px}.fnum{font-size:68px}}
/* ===== Galería ===== */
.g-sec{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin:10px 0 22px}
.g-sec h3{font-size:24px;letter-spacing:-.02em;margin:0}.g-sec p{font-size:13px}
.featured{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:84px}
.feat-art{cursor:pointer;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,#2a2723,#151413);color:#f1ece3;display:flex;flex-direction:column;transition:transform .6s var(--ease),box-shadow .6s}
.feat-art:hover{transform:translate3d(0,-6px,0);box-shadow:0 28px 50px rgba(30,20,10,.22)}
.fa-pic{aspect-ratio:4/5;display:grid;place-items:center;padding:14%;background:radial-gradient(90% 70% at 50% 30%,#3a352f,#1b1917)}
.fa-pic img{max-height:100%;max-width:100%;object-fit:contain;border:6px solid #0e0d0c;outline:1px solid #4a443c;padding:6%;background:#f6f2ea;box-shadow:0 18px 30px rgba(0,0,0,.45);transition:transform .8s var(--ease)}
.feat-art:hover .fa-pic img{transform:scale(1.04)}
.fa-txt{padding:18px 20px 22px}.fa-txt h3{font-size:18px;margin:6px 0 2px}.fa-txt p{font-size:13px;color:#b5ad9f}
.fa-txt .tag,.art .tag,.am-info .tag{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:#c9a46a;font-weight:600}
.fa-txt .ed{color:#d9bf8f;margin-top:8px;font-size:12px}
.filters .chip sup{font-size:10px;margin-left:5px;opacity:.55;vertical-align:super}
.art .art-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:14px}
.art .tag{color:var(--brass2)}
.art .ed{font-size:11px;color:var(--ink2);border:1px solid var(--line);border-radius:99px;padding:2px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:60%}
.art h4{margin-top:8px}
.art .tech{font-size:12.5px;color:#8e8a82}
.art .from{margin-top:6px;font-size:13px;color:var(--ink2)}.art .from b{color:var(--ink);font-weight:600;font-size:15px}
.art.pop{animation:pageIn .5s var(--ease)}
/* modal detalle */
.modal{position:fixed;inset:0;z-index:80;background:rgba(20,18,16,.5);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:28px;opacity:0;pointer-events:none;transition:opacity .4s var(--ease)}
.modal.open{opacity:1;pointer-events:auto}
.am{position:relative;background:var(--bg);border-radius:28px;max-width:1100px;width:100%;max-height:calc(100vh - 56px);overflow:auto;display:grid;grid-template-columns:1.1fr 1fr;transform:translate3d(0,24px,0) scale(.98);transition:transform .55s var(--ease);box-shadow:0 40px 80px rgba(0,0,0,.3)}
.modal.open .am{transform:none}
.am-close{position:absolute;top:14px;right:14px;width:40px;height:40px;border-radius:50%;background:rgba(0,0,0,.06);font-size:24px;line-height:1;z-index:2;transition:background .3s}
.am-close:hover{background:rgba(0,0,0,.12)}
.am-pic{background:radial-gradient(110% 80% at 40% 20%,#f4f1ea,#e2dccf);display:grid;place-items:center;padding:10%;min-height:420px}
.am-pic img{max-height:62vh;max-width:100%;object-fit:contain;border:8px solid #1f1d1b;padding:7%;background:#fbf9f4;box-shadow:0 26px 44px rgba(40,30,15,.3)}
.am-info{padding:48px 44px 36px}
.am-info h2{font-size:clamp(28px,3vw,38px);margin:8px 0 4px}
.am-by{color:var(--ink2);font-size:16px}.am-d{margin:18px 0 22px;color:#424245}
.am-info dl{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;font-size:14px;border-top:1px solid var(--line);padding-top:18px}
.am-info dt{color:var(--ink2)}.am-info dd{color:var(--ink)}
.am-buy{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;padding-top:22px;border-top:1px solid var(--line)}
.am-buy small{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--brass2);font-weight:600}
.am-buy strong{font-size:30px;letter-spacing:-.02em;font-weight:600}
@media(max-width:1020px){.featured{grid-template-columns:repeat(6,72%);overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -24px 64px;padding:0 24px 8px;scrollbar-width:none}.feat-art{scroll-snap-align:start}}
@media(max-width:720px){.featured{grid-template-columns:repeat(6,78%);margin:0 -20px 56px;padding:0 20px 8px}
 .modal{padding:0;align-items:flex-end}.am{grid-template-columns:1fr;border-radius:24px 24px 0 0;max-height:92vh}.am-pic{min-height:0;padding:10% 14%}.am-pic img{max-height:40vh}.am-info{padding:26px 22px 30px}.am-buy{flex-direction:column;align-items:stretch}.am-buy .btn{width:100%}
 .art .art-meta{flex-direction:column;align-items:flex-start;gap:4px}.art .ed{max-width:100%;font-size:10px}}
@media(max-width:720px){.feats{grid-template-columns:1fr}.f-top{max-width:none}}
@media(max-width:1020px){.featured{scroll-padding-inline:24px}}@media(max-width:720px){.featured{scroll-padding-inline:20px}}

/* ===== Hero: más vida ===== */
.ln>span{transform:none!important;animation:none!important}
.w{display:inline-block;opacity:0;transform:translate3d(0,105%,0) rotate(3deg);transform-origin:0 100%;animation:wordUp 1.1s var(--ease) forwards;animation-delay:calc(.12s + var(--i)*.075s)}
@keyframes wordUp{to{opacity:1;transform:none}}
.hero-wall{background:#ebe6dc}
.hero-wall:before{content:"";position:absolute;inset:-30%;background:radial-gradient(35% 30% at 50% 50%,rgba(255,252,242,.9),rgba(255,252,242,0) 70%);animation:wallLight 14s ease-in-out infinite alternate;pointer-events:none;will-change:transform}
@keyframes wallLight{0%{transform:translate3d(-18%,-14%,0)}100%{transform:translate3d(16%,10%,0)}}
.sw{position:absolute;inset:0}
.hero-b canvas{animation:none}
.hero-a .sw{transform-origin:50% 0;animation:sway 9s ease-in-out infinite}
.hero-b .sw{transform-origin:50% 0;animation:float 7s ease-in-out infinite,swayB 11s ease-in-out infinite}
@keyframes sway{0%,100%{rotate:-.35deg}50%{rotate:.35deg}}
@keyframes swayB{0%,100%{rotate:.5deg}50%{rotate:-.4deg}}
.hero-a,.hero-b{position:absolute}
.sheen{position:absolute;overflow:hidden;pointer-events:none;mix-blend-mode:screen}
.sheen i{position:absolute;top:-20%;bottom:-20%;left:0;width:45%;background:linear-gradient(100deg,transparent 0%,rgba(255,255,255,.0) 30%,rgba(255,255,255,.38) 50%,rgba(255,255,255,0) 70%,transparent 100%);transform:translate3d(-140%,0,0) skewX(-12deg);animation:sheen 7s cubic-bezier(.45,.05,.25,1) 1.8s infinite}
.hero-b .sheen i{animation-delay:2.6s}
@keyframes sheen{0%{transform:translate3d(-140%,0,0) skewX(-12deg)}38%,100%{transform:translate3d(330%,0,0) skewX(-12deg)}}
/* ===== Hero móvil: armonía tipográfica y tarjeta compacta ===== */
@media(max-width:720px){
 .hero{padding:30px 0 34px;gap:30px}
 .hero .eyebrow{font-size:10.5px;letter-spacing:.14em;line-height:1.7;margin-bottom:14px;text-wrap:balance;max-width:300px}
 .hero h1{font-size:clamp(38px,11vw,46px);line-height:1.04;letter-spacing:-.035em}
 .hero h1 .serif{font-size:1.1em}
 .hero .lead{font-size:16.5px;line-height:1.6;color:#5d5d62;margin-top:16px;max-width:34ch}
 .hero .ctas{margin-top:26px;gap:10px;flex-wrap:nowrap}
 .hero .ctas .btn{flex:1;height:50px;padding:0 12px;font-size:14.5px}
 .hero-wall{height:auto;aspect-ratio:1/0.82;border-radius:22px}
 .hero-a{left:5%;top:9%;width:60%;height:82%}
 .hero-b{left:63%;right:auto;top:17%;width:32%;height:66%}
}
@media(min-width:721px) and (max-width:1020px){.hero-wall{height:auto;aspect-ratio:1/.72}.hero-a{left:7%;top:8%;width:60%;height:84%}.hero-b{left:64%;right:auto;top:18%;width:30%;height:64%}}
@media(prefers-reduced-motion:reduce){.w{opacity:1;transform:none}}

/* ===== Hero v3: composición superpuesta, todo dentro de la tarjeta ===== */
.hero-wall{overflow:hidden}
.hero-a{left:7%!important;right:auto!important;top:10%!important;width:64%!important;height:80%!important}
.hero-b{left:59%!important;right:auto!important;top:21%!important;width:34%!important;height:58%!important;z-index:2}
.hero-a .sw,.hero-b .sw{transform-origin:50% 50%}
.hero-a .sw{animation:sway 10s ease-in-out infinite}
.hero-b .sw{animation:floatS 8s ease-in-out infinite,swayB 12s ease-in-out infinite}
@keyframes sway{0%,100%{rotate:-.2deg}50%{rotate:.2deg}}
@keyframes swayB{0%,100%{rotate:.25deg}50%{rotate:-.2deg}}
@keyframes floatS{50%{translate:0 -3px}}
.intro-wall .hero-a{animation:settleIn 1.4s var(--ease) .5s both}
.intro-wall .hero-b{animation:settleIn 1.4s var(--ease) .75s both}
@keyframes settleIn{from{opacity:0;scale:.94}to{opacity:1;scale:1}}
@media(max-width:720px){.hero-wall{aspect-ratio:1/0.84}}
@media(min-width:721px) and (max-width:1020px){.hero-wall{aspect-ratio:1/.74}}
.g-sec p{max-width:640px}
/* ===== Micro-interacciones ===== */
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}
.btn{position:relative;isolation:isolate;overflow:hidden}
.btn:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;background:conic-gradient(from var(--ang),transparent 0 62%,#d9bf8f 78%,#b08d57 88%,transparent 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box exclude,linear-gradient(#000 0 0);opacity:0;transition:opacity .4s var(--ease);pointer-events:none}
.btn:hover:before,.btn:focus-visible:before{opacity:1;animation:trace 2.4s linear infinite}
@keyframes trace{to{--ang:360deg}}
.btn:focus-visible{outline:none}
.ripple{position:absolute;border-radius:50%;width:12px;height:12px;margin:-6px 0 0 -6px;background:rgba(217,191,143,.45);transform:scale(0);opacity:1;animation:ripple .6s var(--ease) forwards;pointer-events:none;z-index:-1}
.btn.ghost .ripple,.chip .ripple,.opt .ripple,.mo .ripple{background:rgba(176,141,87,.22)}
@keyframes ripple{to{transform:scale(28);opacity:0}}
.btn,.chip,.opt,.mo,.pay,.dot{-webkit-tap-highlight-color:transparent}
.chip,.opt,.mo,.pay{position:relative;overflow:hidden}
.btn:active,.pay:active{transform:scale(.97)}
@media(hover:hover){
 .chip:not(.on):hover{box-shadow:inset 0 0 0 1px var(--brass);color:var(--brass2)}
 .opt:not(.on):hover{box-shadow:inset 0 0 0 1px var(--brass)}
 .mo:not(.on):hover{box-shadow:0 0 0 1px var(--brass),0 10px 22px rgba(60,45,20,.10)}
 .art .pic{transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
 .art:hover .pic{transform:translate3d(0,-4px,0);box-shadow:0 22px 40px rgba(60,45,20,.12)}
 .ci:hover canvas{transform:scale(1.03)}
 .dot:hover i{outline-color:var(--brass)}
}
.mo.on{box-shadow:0 0 0 1.5px var(--ink),0 0 0 4px rgba(176,141,87,.25)}
.ci canvas{transition:transform .4s var(--ease)}
/* subrayado que se dibuja */
.links a:not(.on):after,.link-sm,.foot-wa{background-image:linear-gradient(var(--brass),var(--brass));background-repeat:no-repeat;background-position:0 100%;background-size:0 1px;transition:background-size .45s var(--ease),color .25s}
.links a:not(.on):after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background-size:0 100%}
.links a:not(.on):hover:after{background-size:100% 100%}
.link-sm:hover,.foot-wa:hover{background-size:100% 1px}
.foot-wa{border-bottom:0}
@media(max-width:1020px){.links a:not(.on):after{display:none}}
@media(prefers-reduced-motion:reduce){.btn:hover:before{animation:none}.ripple{display:none}}
.fa-pic{aspect-ratio:5/4;padding:11%}

/* ===== Hero: texto de apoyo más compacto ===== */
.hero .lead{line-height:1.38;margin-top:18px;max-width:30em;text-wrap:pretty}
@media(max-width:720px){.hero .lead{font-size:16.5px;line-height:1.42;margin-top:14px;max-width:34ch}.hero .ctas{margin-top:24px}}
/* titular: movimiento ligado al scroll (JS escribe transform/opacity) */
.hero h1 .ln{will-change:transform,opacity}

/* ===== Antes y después ===== */
.ba-sec{margin-top:110px}
.ba-sec .section-head{margin-bottom:36px}
.ba{position:relative;max-width:1100px;margin:0 auto;aspect-ratio:3/2;border-radius:28px;overflow:hidden;background:#e9e4da;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize;isolation:isolate;box-shadow:0 30px 60px -30px rgba(60,45,20,.25)}
.ba-in{position:absolute;left:0;top:50%;width:100%;aspect-ratio:4/3;transform:translate3d(0,-46%,0)}
.ba-img{position:absolute;inset:0;width:100%;height:100%;max-width:none;pointer-events:none;-webkit-user-drag:none}
.ba-art{position:absolute}
.ba-art canvas{width:100%;height:100%}
.ba-art .sheen{mix-blend-mode:screen}
.ba-art .sheen i{animation:none;transform:translate3d(-140%,0,0) skewX(-12deg)}
.ba.seen .ba-art .sheen i{animation:sheenOnce 2.4s cubic-bezier(.45,.05,.25,1) .5s 1 forwards}
@keyframes sheenOnce{to{transform:translate3d(330%,0,0) skewX(-12deg)}}
.ba-before{position:absolute;inset:0;clip-path:inset(0 50% 0 0);z-index:1}
.ba-tag{position:absolute;top:18px;z-index:3;font-size:11px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#4a4540;background:rgba(251,250,247,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:6px 12px;border-radius:99px;pointer-events:none}
.ba-tag.l{left:18px}.ba-tag.r{right:18px}
.ba-handle{position:absolute;top:0;bottom:0;left:0;width:44px;margin-left:-22px;z-index:4;transform:translate3d(var(--x,0),0,0);outline:none;cursor:ew-resize}
.ba-handle i{position:absolute;left:21.25px;top:0;bottom:0;width:1.5px;background:rgba(255,255,255,.92);box-shadow:0 0 10px rgba(0,0,0,.18)}
.ba-handle b{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;display:grid;place-items:center;background:rgba(251,250,247,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--ink);box-shadow:0 8px 24px rgba(40,30,15,.22),inset 0 0 0 1px rgba(255,255,255,.6);transition:transform .35s var(--ease),box-shadow .35s}
.ba-handle b svg{width:20px;height:20px}
.ba.drag .ba-handle b,.ba-handle:hover b{transform:scale(1.08)}
.ba-handle:focus-visible b{box-shadow:0 0 0 3px rgba(176,141,87,.55),0 8px 24px rgba(40,30,15,.22)}
.ba-cap{text-align:center;margin-top:18px;font-size:14px;color:var(--ink2);letter-spacing:.01em}
.ba-sec+.cta-split{margin-top:90px}
@media(max-width:720px){
 .ba-sec{margin-top:80px}
 .ba{aspect-ratio:4/5;border-radius:22px;margin:0 -4px}
 .ba-in{left:50%;top:0;height:100%;width:auto;transform:translate3d(-54%,0,0)}
 .ba-tag{top:12px;font-size:10px;padding:5px 10px}.ba-tag.l{left:12px}.ba-tag.r{right:12px}
 .ba-sec+.cta-split{margin-top:70px}
}

/* ===== Ambientes en el configurador ===== */
.rooms{position:absolute;inset:0;pointer-events:none}
.room{position:absolute;inset:0;overflow:hidden;opacity:0;transition:opacity .6s var(--ease);background:#e8e3d9}
.room.on{opacity:1;z-index:2}.room.prev{opacity:1;z-index:1;transition:none}
.room img{position:absolute;left:0;top:0;max-width:none;transform-origin:0 0}
.room .ra{position:absolute}
.room .ra canvas{position:absolute;inset:0;width:100%;height:100%}
.room .ra canvas.swap{animation:settle .6s var(--ease)}
.wall .stage-meta{z-index:3;transition:color .4s}
.wall.in-room .stage-meta span{background:rgba(251,250,247,.78);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:5px 11px;border-radius:99px;flex:0 1 auto;color:#3f3b36}
.wall.in-room .stage-meta{justify-content:space-between}
.room-seg{display:flex;width:max-content;max-width:100%;margin:12px auto 0}
.room-seg button{height:32px;padding:0 15px;font-size:13px;white-space:nowrap}
@media(min-width:1021px){.cfg-stage .wall{height:calc(100vh - 116px - 46px)}}
@media(max-width:1020px){.cfg-stage .wall{height:38vh;min-height:260px}.room-seg{margin-top:8px}}
@media(max-width:720px){.room-seg button{height:30px;padding:0 12px;font-size:12.5px}}
@media(prefers-reduced-motion:reduce){.room{transition:none}.ba-handle b{transition:none}}

/* ===== Hero v4: cuadros que respiran + inclinación 3D sutil (siempre dentro de la tarjeta) ===== */
.tilt{position:absolute;inset:0;transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform 1.1s cubic-bezier(.2,.7,.2,1);will-change:transform}
.tilt:before{content:"";position:absolute;inset:18% 14% 10%;border-radius:50%;background:radial-gradient(closest-side,rgba(40,28,12,.16),rgba(40,28,12,0));transform:translate3d(var(--sx,0px),var(--sy,4px),0);transition:transform 1.1s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.hero-a .sw{animation:breatheA 11s ease-in-out infinite}
.hero-b .sw{animation:breatheB 9s ease-in-out -3.5s infinite}
@keyframes breatheA{0%,100%{transform:translate3d(0,0,0) rotate(-.3deg)}50%{transform:translate3d(0,-4px,0) rotate(.3deg)}}
@keyframes breatheB{0%,100%{transform:translate3d(0,0,0) rotate(.45deg)}50%{transform:translate3d(-1px,-5px,0) rotate(-.35deg)}}


/* ===== Antes/después: solo se arrastra desde el círculo ===== */
.ba{cursor:default;touch-action:pan-y}
.ba-handle{pointer-events:none;cursor:default}
.ba-handle b{pointer-events:auto;cursor:grab;touch-action:none}
.ba-handle b:before{content:"";position:absolute;inset:-6px;border-radius:50%}
.ba.drag .ba-handle b{cursor:grabbing}

/* ===== Configurador: marco vacío ===== */
.ph-hit{position:absolute;z-index:4;display:none;border-radius:2px;cursor:pointer;transition:background .3s}
.wall.empty .ph-hit{display:block}
.ph-hit:hover{background:rgba(176,141,87,.06)}
.ph-hit:focus-visible{outline:2px solid rgba(176,141,87,.6);outline-offset:2px}
.wall.over{box-shadow:inset 0 0 0 2px var(--brass)}
.wall.empty .stage-meta span:first-child{visibility:hidden}

/* ===== Features: misma línea corta en los cuatro puntos ===== */
.fline{width:120px;max-width:100%;transform:scaleX(0)}
.feat.in .fline{transform:scaleX(1)}
.feat:hover .fline{transform:scaleX(1)}
@media(hover:hover) and (pointer:fine){.feat:hover .fline{transform:scaleX(1.45)}}

/* ===== Transición a Galería ===== */
.g-trans{position:fixed;inset:0;z-index:70;pointer-events:none;display:none;contain:strict}
.g-trans.on{display:block}
.g-trans i{position:absolute;inset:0;opacity:0;will-change:opacity,transform}
.gt-dark{background:radial-gradient(120% 90% at 50% 35%,#2a221b 0%,#1c1712 55%,#14110d 100%)}
.gt-spot{transform-origin:50% 0;background:radial-gradient(ellipse 34% 58% at 50% -6%,rgba(255,234,194,.40) 0%,rgba(236,202,148,.17) 40%,rgba(236,202,148,0) 72%),radial-gradient(ellipse 26% 9% at 50% 74%,rgba(255,226,176,.16) 0%,rgba(255,226,176,0) 70%)}


/* ===== v6: antes/después más contenido en escritorio; divisor con transform en % ===== */
.ba{width:min(100%,920px,calc(68vh * 1.5))}
@media(max-width:720px){.ba{width:auto}}
.ba-handle{left:0;right:0;width:auto;margin-left:0;transform:translate3d(50%,0,0)}
.ba-handle i{left:-.75px}
.ba-handle b{left:0}
/* cuadros del hero: respiración algo más visible */
@keyframes breatheA{0%,100%{transform:translate3d(0,0,0) rotate(-.4deg)}50%{transform:translate3d(0,-6px,0) rotate(.4deg)}}
@keyframes breatheB{0%,100%{transform:translate3d(0,0,0) rotate(.55deg)}50%{transform:translate3d(-1px,-7px,0) rotate(-.45deg)}}

/* ===== v7 ===== */
/* Galería: transición más especial (capa temporal) */
.g-trans{contain:strict}
.gt-dark{background:radial-gradient(130% 100% at 50% 30%,#2b231b 0%,#1d1813 52%,#110e0b 100%)}
.gt-grain{background-size:140px 140px;mix-blend-mode:overlay}
.gt-spot{transform-origin:50% -10%;background:radial-gradient(ellipse 30% 62% at 50% -8%,rgba(255,236,198,.46) 0%,rgba(238,204,150,.2) 38%,rgba(238,204,150,0) 72%),radial-gradient(ellipse 24% 8% at 50% 76%,rgba(255,226,176,.18) 0%,rgba(255,226,176,0) 70%)}
.gt-frame{position:absolute;left:50%;top:50%;width:min(62vw,560px);height:min(54vh,420px);margin:calc(min(54vh,420px)/-2) 0 0 calc(min(62vw,560px)/-2);will-change:transform,opacity}
.gt-frame b{position:absolute;background:linear-gradient(90deg,#8f6f3e,#d9bf8f 50%,#8f6f3e);opacity:.9}
.gt-frame .t,.gt-frame .bt{left:0;right:0;height:1px}.gt-frame .t{top:0;transform-origin:0 50%}.gt-frame .bt{bottom:0;transform-origin:100% 50%}
.gt-frame .r,.gt-frame .l{top:0;bottom:0;width:1px;background:linear-gradient(180deg,#8f6f3e,#d9bf8f 50%,#8f6f3e)}.gt-frame .r{right:0;transform-origin:50% 0}.gt-frame .l{left:0;transform-origin:50% 100%}
.gt-label{position:absolute;left:50%;top:50%;margin-top:-.6em;font-family:var(--serif);font-style:italic;font-weight:400;font-size:clamp(34px,5vw,56px);letter-spacing:.01em;color:#e6cf9f;opacity:0;white-space:nowrap;transform:translate3d(-50%,0,0)}
@media(max-width:720px){.gt-frame{width:72vw;height:46vh;margin:-23vh 0 0 -36vw}}
/* movimiento suave aunque el sistema pida reducir movimiento (deseo explícito del dueño): solo hero */
@media(prefers-reduced-motion:reduce){
 .hero-a .sw{animation:breatheAs 14s ease-in-out infinite!important}
 .hero-b .sw{animation:breatheBs 12s ease-in-out -4s infinite!important}
 .tilt,.tilt:before{transition-duration:1.1s!important}
 .sheen i{animation-duration:9s!important;animation-delay:2s!important}
}
@keyframes breatheAs{0%,100%{transform:translate3d(0,0,0) rotate(-.2deg)}50%{transform:translate3d(0,-3px,0) rotate(.2deg)}}
@keyframes breatheBs{0%,100%{transform:translate3d(0,0,0) rotate(.25deg)}50%{transform:translate3d(0,-3.5px,0) rotate(-.2deg)}}

/* Galería: destacados en crema cálido (antes casi negro) */
.feat-art{background:linear-gradient(160deg,#f4ede2,#ece3d4);color:var(--ink);box-shadow:inset 0 0 0 1px #e3d8c5}
.feat-art:hover{box-shadow:inset 0 0 0 1px #d8c9b0,0 24px 44px rgba(90,65,30,.13)}
.fa-pic{background:radial-gradient(90% 70% at 50% 30%,#f7f2ea,#e6dccb)}
.fa-pic img{border-color:#1f1d1b;outline:1px solid rgba(0,0,0,.08);box-shadow:0 16px 28px rgba(60,42,18,.22),0 2px 4px rgba(0,0,0,.12)}
.fa-txt h3{color:var(--ink)}.fa-txt p{color:#6b6257}
.fa-txt .tag{color:var(--brass2)}.fa-txt .ed{color:#8a6b3c}
/* Galería: cabecera más equilibrada y texto de categorías más pequeño */
#p-galeria .page-head .lead{font-size:clamp(16px,1.3vw,18px);line-height:1.5}
@media(min-width:1021px){
 #p-galeria .page-head{max-width:none;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:72px;align-items:end}
 #p-galeria .page-head .eyebrow{grid-column:1/-1}
 #p-galeria .page-head h1{margin:0}
 #p-galeria .page-head .lead{margin:0 0 .45em;max-width:440px;justify-self:end}
}
/* Hero móvil compacto: cabe la tarjeta de cuadros en la primera pantalla */
@media(max-width:720px){
 .hero{padding:16px 0 30px;gap:20px}
 .hero .eyebrow{font-size:9.6px;letter-spacing:.115em;line-height:1.5;margin-bottom:9px;max-width:none;white-space:nowrap}
 .hero h1{font-size:clamp(34px,10.2vw,42px);line-height:1.02}
 .hero .lead{font-size:17px;line-height:1.4;margin-top:10px;max-width:none}
 .hero .ctas{margin-top:16px;gap:8px}
 .hero .ctas .btn{height:44px;font-size:14px;padding:0 10px}
}
@media(max-width:360px){.hero .eyebrow{white-space:normal}}
/* rejilla de la galería: evita que una etiqueta larga ensanche la columna en móvil */
.art{min-width:0}
@media(max-width:720px){.grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(min-width:1021px){
 #p-galeria .page-head{grid-template-columns:minmax(0,1fr) minmax(300px,380px);column-gap:56px}
 #p-galeria .page-head h1{font-size:clamp(44px,4.5vw,66px)}
}
/* v8: hero móvil un poco más compacto */
@media(max-width:720px){
 .hero .lead{font-size:16px;line-height:1.34}
 .hero .ctas .btn{height:42px;font-size:13.5px;padding:0 8px}
}
/* ===== v9: Galería con movimiento sobrio ===== */
.feat-art.gm{opacity:0;transform:translate3d(0,28px,0);transition:opacity .95s var(--ease) var(--gd,0s),transform .95s var(--ease) var(--gd,0s),box-shadow .6s var(--ease)}
.feat-art.gm.in{opacity:1;transform:translate3d(0,0,0)}
.feat-art.gm.in:hover{transform:translate3d(0,-6px,0);transition-delay:0s}
.fa-pic{position:relative;overflow:hidden}
.fa-pic img,.art .pic img{transform:translate3d(0,var(--py,0px),0) perspective(800px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) scale(var(--ks,1));transition:transform .7s var(--ease),box-shadow .6s var(--ease)}
.feat-art:hover .fa-pic img,.art:hover .pic img{--ks:1.03;transform:translate3d(0,var(--py,0px),0) perspective(800px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) scale(var(--ks));transition:transform 1.6s var(--ease),box-shadow .6s var(--ease)}
.feat-art:hover .fa-pic img{box-shadow:0 24px 40px rgba(60,42,18,.28),0 3px 6px rgba(0,0,0,.14)}
.fa-sheen{position:absolute;inset:11%;overflow:hidden;pointer-events:none;mix-blend-mode:screen}
.fa-sheen b{position:absolute;top:-25%;bottom:-25%;left:0;width:40%;background:linear-gradient(100deg,rgba(255,250,235,0) 0%,rgba(255,250,235,.32) 50%,rgba(255,250,235,0) 100%);transform:translate3d(-160%,0,0) skewX(-14deg);opacity:0}
.fa-sheen.go b{animation:faSheen 1.9s cubic-bezier(.45,.05,.25,1) forwards}
@keyframes faSheen{0%{opacity:0;transform:translate3d(-160%,0,0) skewX(-14deg)}12%{opacity:1}100%{opacity:1;transform:translate3d(360%,0,0) skewX(-14deg)}}
@media(prefers-reduced-motion:reduce){
 .feat-art.gm{transform:translate3d(0,10px,0);transition-duration:.7s!important,.7s!important,.6s!important}
 .fa-sheen.go b{animation-duration:2.4s!important}
}
/* v10: más aire entre la cabecera y el eyebrow en móvil (+40%) */
@media(max-width:720px){.hero{padding-top:24px}}
