/* Naty London · Mystery Box
   Logo N.LONDON (monograma ornamental + palabra ensanchada) y línea de sus campañas:
   versales geométricas muy espaciadas, collage de recortes troquelados, garabatos a mano,
   estampillas con matasellos y la paleta vino · rosa · crema de la caja. */

:root{
 --vino:#5c1b24;--vino-hondo:#3e1219;--vino-claro:#7d2c37;
 --rosa:#e2a1b3;--rosa-palo:#f3d6de;--rosa-tinta:#b8576f;
 --crema:#f6efe3;--papel:#fcf8f1;--tinta:#3b2320;--gris:#7c6a64;
 --arena:#c7a15d;--cielo:#b4c8dc;--oliva:#a3a368;
 --serif:'Fraunces',Georgia,serif;--sans:'Jost','Futura','Century Gothic',sans-serif;
 --grano:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .23 0 0 0 0 .14 0 0 0 0 .12 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)'/%3E%3C/svg%3E");
 --trebol:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='72' height='72' viewBox='0 0 72 72'%3E%3Cg fill='none' stroke='%23f3d6de' stroke-opacity='.16' stroke-width='1.6'%3E%3Cpath d='M36 14a9 9 0 0 1 9 9 9 9 0 0 1 4-1 9 9 0 0 1 0 18 9 9 0 0 1-4-1 9 9 0 0 1-18 0 9 9 0 0 1-4 1 9 9 0 0 1 0-18 9 9 0 0 1 4 1 9 9 0 0 1 9-9z' transform='translate(0 5)'/%3E%3C/g%3E%3Cpath d='M36 37l3 3-3 3-3-3z' fill='%23f3d6de' fill-opacity='.22'/%3E%3Cpath d='M0 0l3 3-3 3M72 0l-3 3 3 3M0 72l3-3-3-3M72 72l-3-3 3-3' fill='%23f3d6de' fill-opacity='.18'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--crema);color:var(--tinta);font:400 15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body:before{content:'';position:fixed;inset:0;background:var(--grano);opacity:.2;mix-blend-mode:multiply;pointer-events:none;z-index:50}
[hidden]{display:none!important}
button,a{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;font:inherit;color:inherit;min-height:44px}
button:disabled{opacity:.55;cursor:wait}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--rosa-tinta);outline-offset:4px}
a{color:inherit}
img{max-width:100%}
::selection{background:var(--rosa-palo);color:var(--vino)}

/* ---------- Tipografía ---------- */
h1,h2{font-family:var(--serif);font-weight:380;font-variation-settings:'opsz' 144,'SOFT' 60,'WONK' 0;letter-spacing:-.022em;line-height:1.04;margin:0;color:var(--vino)}
h1 em,h2 em{font-style:italic;font-weight:330;font-variation-settings:'opsz' 144,'SOFT' 100,'WONK' 1;color:var(--rosa-tinta)}
.kicker{font:500 10.5px/1.6 var(--sans);letter-spacing:.34em;text-transform:uppercase;margin:0;color:var(--tinta);display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.spotted{font:italic 600 13px/1 var(--serif);letter-spacing:0;text-transform:none;color:var(--papel);background:var(--vino);padding:6px 11px 7px;border-radius:999px;transform:rotate(-3deg);display:inline-block}

/* ---------- Logo (máscara del logo oficial, se tiñe con currentColor) ---------- */
.logo{display:inline-flex;flex-direction:column;align-items:center;gap:8px;color:var(--vino);text-decoration:none}
.logo-mono,.logo-word{display:block;background:currentColor;-webkit-mask:var(--m) center/contain no-repeat;mask:var(--m) center/contain no-repeat}
.logo-mono{--m:url(media/brand/n-london-monograma.png);width:30px;aspect-ratio:714/682}
.logo-word{--m:url(media/brand/n-london-palabra.png);width:124px;aspect-ratio:2258/462}

/* ---------- Barra superior ---------- */
.brandbar{height:96px;padding:0 clamp(20px,4.5vw,64px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;position:relative}
.brandbar:after{content:'';position:absolute;left:clamp(20px,4.5vw,64px);right:clamp(20px,4.5vw,64px);bottom:0;height:1px;background:#5c1b2422}
.edition{white-space:nowrap;font:500 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gris)}
.edition i{font-style:normal;color:var(--rosa-tinta);margin:0 4px}
.help-link{justify-self:end;border:0;background:none;padding:10px 0;font:500 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--tinta);text-decoration:underline;text-decoration-color:var(--rosa);text-underline-offset:6px;text-decoration-thickness:1.5px}
.help-link:hover{color:var(--vino);text-decoration-color:var(--vino)}

/* ---------- Bienvenida ---------- */
.welcome{position:relative;overflow:clip;display:flex;align-items:center;min-height:max(720px,calc(100svh - 96px));padding:clamp(40px,5vw,72px) clamp(20px,4.5vw,64px);background:var(--vino)}
.invitation{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;width:min(540px,44%);padding:44px 46px 40px;background:var(--papel);border-radius:3px;transform:rotate(-1.2deg);box-shadow:0 1px 0 #00000026,0 6px 10px -4px #00000040}
.tape-card-a{width:110px;left:-26px;top:18px;transform:rotate(-38deg)}
.tape-card-b{width:96px;right:-22px;bottom:30px;transform:rotate(-34deg)}
.lettering{display:block;width:min(100%,470px);height:auto;margin:26px 0 24px}
.welcome h1{font-size:clamp(30px,3.1vw,46px);max-width:16ch;text-wrap:balance}
.welcome h1 em{display:block}
.intro-copy{font-size:15px;line-height:1.75;color:var(--gris);margin:18px 0 28px;max-width:40ch}
.cta-row{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.primary{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:58px;padding:0 34px;border:0;border-radius:999px;background:var(--vino);color:var(--papel);font:500 12px var(--sans);letter-spacing:.26em;text-transform:uppercase;box-shadow:4px 4px 0 var(--rosa);transition:transform .25s cubic-bezier(.2,.8,.2,1),background .2s,box-shadow .25s}
.primary:hover{background:var(--vino-claro);transform:translate(-1px,-1px);box-shadow:5px 5px 0 var(--rosa)}
.primary:active{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--rosa)}
.cta-note{display:inline-flex;align-items:center;gap:6px;font:italic 400 17px var(--serif);font-variation-settings:'SOFT' 100,'WONK' 1;color:var(--rosa-tinta);transform:rotate(-4deg)}
.cta-note svg{width:62px;height:32px;transform:scaleX(-1) rotate(8deg);order:-1}
.signoff{margin:30px 0 0;font:500 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gris)}
.signoff span{display:inline-block;margin-left:8px;font:italic 400 26px/1 var(--serif);letter-spacing:0;text-transform:none;color:var(--vino);font-variation-settings:'SOFT' 100,'WONK' 1;transform:translateY(5px) rotate(-6deg)}

/* Trazos a mano */
.doodle{position:absolute;overflow:visible}
.cut{fill:var(--papel);stroke:var(--papel);stroke-width:9;stroke-linejoin:round}
.ink{fill:var(--rosa-palo);stroke:var(--tinta);stroke-width:2.3;stroke-linejoin:round;stroke-linecap:round}
.stroke{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Pared de stickers ----------
   Superficies planas, sin degradados ni halos: pegatinas de vinilo sobre una pared vino.
   Cada sticker lleva su troquel blanco y una sombra corta, como pegado de verdad. */
.sticker-wall,.exp-wall{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.stk{position:absolute;left:var(--x);top:var(--y);width:var(--w,auto);transform:rotate(var(--r,0deg));filter:drop-shadow(0 1px 0 #00000026) drop-shadow(0 3px 3px #00000030)}
.stk-tote{height:auto}
.stk-mb{display:block;padding:1.1% 1.4%;background:#fff;border-radius:12px;box-shadow:0 0 0 1px #0000000d}
.stk-mb img{display:block;width:100%;height:auto}
.stk-logo{display:block;padding:12px 20px;background:var(--rosa-palo);border-radius:999px;box-shadow:0 0 0 5px var(--papel)}
.stk-logo i{display:block;width:clamp(96px,9vw,140px);aspect-ratio:2258/462;background:var(--vino);-webkit-mask:url(media/brand/n-london-palabra.png) center/contain no-repeat;mask:url(media/brand/n-london-palabra.png) center/contain no-repeat}
.stk-seal{display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:var(--vino-hondo);box-shadow:0 0 0 5px var(--papel)}
.stk-seal i{width:56%;aspect-ratio:714/682;background:var(--rosa);-webkit-mask:url(media/brand/n-london-monograma.png) center/contain no-repeat;mask:url(media/brand/n-london-monograma.png) center/contain no-repeat}
.stk-seal-pink{background:var(--rosa)}
.stk-seal-pink i{background:var(--vino)}
.stk-cloud,.stk-star{display:grid;place-items:center;aspect-ratio:1;text-align:center;isolation:isolate}
.stk-cloud:before,.stk-cloud:after,.stk-star:before,.stk-star:after{content:'';position:absolute;z-index:-1;-webkit-mask:var(--forma) center/100% 100% no-repeat;mask:var(--forma) center/100% 100% no-repeat}
.stk-cloud{--forma:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Ccircle cx='50' cy='14' r='14'/%3E%3Ccircle cx='75' cy='22' r='14'/%3E%3Ccircle cx='86' cy='47' r='14'/%3E%3Ccircle cx='78' cy='74' r='14'/%3E%3Ccircle cx='52' cy='86' r='14'/%3E%3Ccircle cx='26' cy='78' r='14'/%3E%3Ccircle cx='14' cy='52' r='14'/%3E%3Ccircle cx='23' cy='26' r='14'/%3E%3Ccircle cx='50' cy='50' r='34'/%3E%3C/svg%3E")}
.stk-star{--forma:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cpath d='M50 0 59.1 10 71.7 5 75.6 17.9 89.1 18.8 86.9 32.2 98.7 38.9 91 50 98.7 61.1 86.9 67.8 89.1 81.2 75.6 82.1 71.7 95 59.1 90 50 100 40.9 90 28.3 95 24.4 82.1 10.9 81.2 13.1 67.8 1.3 61.1 9 50 1.3 38.9 13.1 32.2 10.9 18.8 24.4 17.9 28.3 5 40.9 10Z'/%3E%3C/svg%3E");--c:var(--arena);--ink:var(--vino-hondo)}
.stk-cloud:before,.stk-star:before{inset:-6px;background:var(--papel)}
.stk-cloud:after,.stk-star:after{inset:0;background:var(--c)}
.stk-cloud b,.stk-star b{font:800 clamp(11px,1.05vw,16px)/1 var(--serif);font-variation-settings:'opsz' 30,'SOFT' 100,'WONK' 1;text-transform:uppercase;color:var(--ink,var(--papel))}
.stk-cloud b em{font-style:italic;font-weight:600;text-transform:none;font-size:1.2em}
.stk-rect{display:block;padding:9px 16px 10px;background:var(--papel);color:var(--rosa-tinta);font:800 clamp(12px,1vw,15px)/1 var(--serif);font-variation-settings:'opsz' 30,'SOFT' 100,'WONK' 1;text-transform:uppercase;white-space:nowrap;border-radius:3px}
.stk-rect-wine{background:var(--rosa-tinta);color:var(--papel);box-shadow:0 0 0 5px var(--papel)}
.stk-stamp{display:block;padding:7px;background:radial-gradient(circle,transparent 3.2px,var(--papel) 3.7px) -6px -6px/11px 11px}
.stk-stamp>span{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10% 8% 8%;background:var(--cielo)}
.stk-stamp em{font:600 clamp(6px,.55vw,8px) var(--serif);font-style:normal;letter-spacing:.14em;color:var(--tinta)}
.stk-stamp img{width:86%;height:auto}
.stk-doodle{overflow:visible;aspect-ratio:64/60;height:auto;filter:drop-shadow(0 2px 2px #00000030)}
.stk-bow{aspect-ratio:90/70}
.stk-bow .ink{fill:var(--rosa)}
.stk-tape{display:block;height:24px;background:#f3d6dedd;filter:none;clip-path:polygon(0 12%,5% 0,9% 14%,14% 0,100% 6%,96% 34%,100% 58%,95% 82%,100% 100%,6% 92%,0 78%,4% 52%)}
.tape{position:absolute;height:24px;background:#f3d6dedd;clip-path:polygon(0 12%,5% 0,9% 14%,14% 0,100% 6%,96% 34%,100% 58%,95% 82%,100% 100%,6% 92%,0 78%,4% 52%);z-index:3}
.sticker-wall>*{animation:pegar .7s cubic-bezier(.2,.9,.25,1.12) backwards}
.sticker-wall>:nth-child(3n+1){animation-delay:.08s}
.sticker-wall>:nth-child(3n+2){animation-delay:.2s}
.sticker-wall>:nth-child(3n){animation-delay:.32s}
@keyframes pegar{from{opacity:0;scale:1.08}to{opacity:1;scale:1}}
.exp-wall{z-index:0}
.ar-active .exp-wall{display:none}

/* ---------- Correa (como la cinta jacquard de los totes) ---------- */
footer{margin-top:auto}
.strap{height:34px;background:var(--rosa-palo);position:relative;border-block:1px solid #b8576f2e;overflow:hidden}
.strap:before{content:'';position:absolute;top:8px;bottom:8px;left:0;right:-44px;background:var(--rosa);-webkit-mask:url(media/brand/correa-nl.png) 0 50%/44px auto repeat-x;mask:url(media/brand/correa-nl.png) 0 50%/44px auto repeat-x;animation:correa 18s linear infinite}
.strap:after{content:'';position:absolute;inset:3px 0;border-block:1px dashed #b8576f40}
@keyframes correa{to{translate:-44px 0}}
.foot-line{padding:18px clamp(20px,4.5vw,64px) calc(18px + env(safe-area-inset-bottom));display:flex;justify-content:space-between;gap:16px;font:500 9.5px var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--gris)}

/* ---------- Preparación ---------- */
.prepare{max-width:1240px;margin:0 auto;padding:22px clamp(20px,4.5vw,64px) 72px}
.step-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:34px}
.back,.text-button{border:0;background:none;padding:10px 0;font:500 10.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--tinta)}
.back:hover,.text-button:hover{color:var(--vino)}
.step-index{font:500 10px var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--gris)}
.step-index i{font:italic 400 14px var(--serif);letter-spacing:0;text-transform:none;color:var(--rosa-tinta);margin:0 3px}
.preparation-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.sticker-display{position:relative;min-height:470px;border-radius:4px;background:var(--vino);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 36px 40px;overflow:hidden}
.sticker-paper{position:relative;width:100%;max-width:380px;padding:18px 20px;background:#fff;border-radius:14px;transform:rotate(-5deg);box-shadow:0 0 0 1px #0000000d,0 1px 0 #00000026,0 4px 6px -2px #00000040;z-index:2}
.sticker-paper img{display:block;width:100%;height:auto}
.tape-c{width:30%;left:35%;top:-13px;transform:rotate(3deg)}
.sticker-note{position:relative;z-index:2;margin:34px 0 4px;font:italic 400 24px/1 var(--serif);font-variation-settings:'SOFT' 100,'WONK' 1;color:var(--rosa-palo);display:flex;align-items:center;gap:10px}
.sticker-note svg{width:60px;height:30px;color:var(--rosa);transform:rotate(-150deg) scaleY(-1)}
.sticker-sub{position:relative;z-index:2;margin:6px 0 0;font:500 9.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;color:#f3d6deb0;text-align:center}
.heart-c{width:46px;height:43px;right:12%;top:12%;transform:rotate(14deg)}
.burst-b{width:44px;height:36px;left:10%;bottom:16%;color:var(--rosa);transform:rotate(180deg)}
.preparation-copy .kicker{margin-bottom:18px;color:var(--rosa-tinta)}
.preparation-copy h2{font-size:clamp(32px,3.4vw,50px)}
.preparation-copy h2 em{display:block}
.title-swash{display:block;width:210px;height:18px;color:var(--rosa);margin:10px 0 0 4px}
.instructions{list-style:none;padding:0;margin:30px 0 32px;display:grid;gap:22px}
.instructions li{display:grid;grid-template-columns:42px 1fr;gap:18px;align-items:start}
.num{width:42px;height:42px;display:grid;place-items:center;border-radius:50%;border:0;font:italic 400 20px/1 var(--serif);font-variation-settings:'SOFT' 100,'WONK' 1;color:var(--vino);background:var(--rosa-palo);transform:rotate(-6deg)}
.instructions h3{font:500 12px var(--sans);letter-spacing:.2em;text-transform:uppercase;margin:4px 0 6px;color:var(--tinta)}
.instructions p{font-size:14px;line-height:1.65;margin:0;color:var(--gris);max-width:40ch}
.preparation-copy .primary{width:100%}
.status{font-size:12.5px;line-height:1.6;min-height:20px;color:var(--gris);margin:16px 0 0;text-align:center}
.alternative{border-top:1px solid #5c1b2420;margin-top:22px;padding-top:8px;display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;align-items:center}
.alternative a{font:500 10.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;text-decoration:underline;text-decoration-color:var(--rosa);text-underline-offset:6px;text-decoration-thickness:1.5px;padding:10px 0}

/* ---------- Experiencia 3D / AR ---------- */
.experience{position:fixed;inset:0;z-index:10;background:var(--crema);overflow:hidden}
.experience:before{content:'';position:absolute;inset:0;background:var(--grano);opacity:.28;mix-blend-mode:multiply;pointer-events:none}
#stage{position:absolute;inset:0;touch-action:none;z-index:1}
#stage canvas{display:block;width:100%;height:100%}
.experience-top{position:absolute;top:0;left:0;right:0;padding:calc(18px + env(safe-area-inset-top)) 22px 18px;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;z-index:3;gap:12px;pointer-events:none}
.experience-top>*{pointer-events:auto}
.logo-sm .logo-mono{width:38px}
#mode{justify-self:center;font:500 9.5px var(--sans);letter-spacing:.32em;text-transform:uppercase;color:var(--tinta)}
.close{width:44px;height:44px;border-radius:50%;border:1px solid #5c1b2433;background:var(--papel);color:var(--vino);font-size:15px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.experience-bottom{position:absolute;bottom:calc(20px + env(safe-area-inset-bottom));left:14px;right:14px;z-index:4;display:grid;justify-items:center;gap:12px}
.swatches{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}
.swatches button{display:inline-flex;align-items:center;gap:9px;padding:5px 15px 5px 5px;border-radius:999px;border:1px solid #5c1b2426;background:#fcf8f1e6;font:500 10px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--tinta);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:background .2s,color .2s,box-shadow .2s}
.swatches img{width:34px;height:34px;border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--papel),0 0 0 3px #5c1b2422}
.swatches button[aria-pressed=true]{background:var(--vino);color:var(--papel);border-color:var(--vino);box-shadow:0 10px 18px -12px #3e1219}
.model-tools{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.model-tools button{min-height:40px;padding:0 16px;border-radius:999px;border:1px solid #5c1b2426;background:#fcf8f1cc;font:500 10px var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--tinta);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.model-tools button:hover{border-color:var(--vino);color:var(--vino)}
#reset{width:40px;padding:0;font-size:16px;letter-spacing:0}
.viewer-hint{font:italic 400 14px var(--serif);font-variation-settings:'SOFT' 100;color:var(--gris);margin:0}
.loading{position:absolute;top:46%;width:100%;text-align:center;font:italic 400 26px var(--serif);font-variation-settings:'SOFT' 100,'WONK' 1;color:var(--vino);pointer-events:none;animation:latir 1.8s ease-in-out infinite}
@keyframes latir{50%{opacity:.45}}
.ar-active .experience{background:transparent}
.ar-active .experience:before{display:none}
.ar-active .experience-top{color:var(--papel);background:linear-gradient(#1b0d1180,transparent)}
.ar-active .experience-top .logo{color:var(--papel)}
.ar-active #mode{color:var(--papel)}
.ar-active .experience-bottom{display:none}
.ar-active video{object-fit:cover}
.scan-guide{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none;color:var(--papel);padding:24px;background:linear-gradient(transparent 50%,#1b0d1190)}
.scan-frame{position:relative;width:min(80vw,420px);aspect-ratio:2.55;display:grid;place-items:center}
.scan-frame img{width:78%;opacity:.3;filter:grayscale(1) brightness(2);mix-blend-mode:screen}
.scan-frame i{position:absolute;width:28px;height:28px;border:0 solid var(--rosa-palo)}
.scan-frame i:nth-child(1){left:0;top:0;border-width:2px 0 0 2px;border-top-left-radius:10px}
.scan-frame i:nth-child(2){right:0;top:0;border-width:2px 2px 0 0;border-top-right-radius:10px}
.scan-frame i:nth-child(3){left:0;bottom:0;border-width:0 0 2px 2px;border-bottom-left-radius:10px}
.scan-frame i:nth-child(4){right:0;bottom:0;border-width:0 2px 2px 0;border-bottom-right-radius:10px}
#camera-status{font:italic 400 24px/1.3 var(--serif);font-variation-settings:'SOFT' 100,'WONK' 1;text-align:center;margin:30px 0 8px;text-shadow:0 1px 10px #000a}
#camera-hint{font:500 10px/1.7 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-align:center;text-shadow:0 1px 8px #000a;max-width:300px}
.target-found .scan-frame{visibility:hidden}
.target-found .scan-guide{justify-content:flex-end;padding-bottom:calc(42px + env(safe-area-inset-bottom));background:linear-gradient(transparent 72%,#1b0d1190)}
.target-found #camera-status{font-size:21px}
.ar-replay{display:none;pointer-events:auto;margin-top:18px;min-height:46px;padding:0 26px;border-radius:999px;border:0;background:var(--papel);color:var(--vino);font:500 10.5px var(--sans);letter-spacing:.22em;text-transform:uppercase;box-shadow:0 10px 24px -10px #000a}
.target-found .ar-replay{display:block}
body[data-screen=experience]{overflow:hidden}

/* ---------- Ayuda: una postal ---------- */
dialog{border:0;padding:46px 40px 36px;width:min(520px,calc(100% - 32px));max-height:86svh;color:var(--tinta);background:var(--papel);box-shadow:6px 6px 0 var(--rosa);overflow:auto}
dialog::backdrop{background:#2a0c1299;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.airmail{position:absolute;left:0;right:0;top:0;height:8px;background:repeating-linear-gradient(-45deg,var(--vino) 0 14px,var(--papel) 14px 22px,var(--rosa) 22px 36px,var(--papel) 36px 44px)}
.dialog-close{position:absolute;right:12px;top:16px;width:44px;border:0;background:none;color:var(--vino);font-size:15px}
dialog .kicker{color:var(--rosa-tinta)}
dialog h2{font-size:36px;margin:14px 0 22px}
details{border-top:1px solid #5c1b241f;padding:14px 0}
summary{cursor:pointer;font:500 11.5px/1.6 var(--sans);letter-spacing:.16em;text-transform:uppercase;list-style:none;display:flex;justify-content:space-between;gap:12px}
summary::-webkit-details-marker{display:none}
summary:after{content:'+';font:400 20px/1 var(--serif);color:var(--rosa-tinta);transition:transform .2s}
details[open] summary:after{transform:rotate(45deg)}
details p{font-size:14px;line-height:1.75;color:var(--gris);margin:10px 0 0}
.help-sticker{width:100%;max-width:240px;display:block;margin:18px auto 4px;padding:10px 12px;background:#fff;border-radius:10px;transform:rotate(-3deg);box-shadow:0 0 0 1px #0000000f,0 1px 0 #00000026,0 4px 6px -3px #00000040}
.download{display:inline-block;margin-top:18px;font:500 10.5px var(--sans);letter-spacing:.26em;text-transform:uppercase;text-decoration:underline;text-decoration-color:var(--rosa);text-underline-offset:6px;text-decoration-thickness:1.5px}
.dialog-sign{margin:26px 0 0;display:flex;align-items:center;gap:10px;font:italic 400 20px var(--serif);font-variation-settings:'SOFT' 100,'WONK' 1;color:var(--vino)}
.dialog-sign .logo-mono{width:30px;color:var(--vino)}

/* ---------- Móvil ---------- */
@media (max-width:820px){
 .brandbar{height:76px;padding:0 18px;grid-template-columns:1fr auto 1fr}
 .brandbar:after{left:18px;right:18px}
 .edition{font-size:8.5px;letter-spacing:.22em}
 .edition i{display:none}
 .logo-mono{width:24px}
 .logo-word{width:98px}
 .logo{gap:6px}
 .help-link{font-size:9px;letter-spacing:.22em}
 .welcome{display:block;min-height:0;padding:150px 16px 410px}
 .invitation{width:auto;padding:34px 24px 30px;transform:rotate(-.8deg)}
 .tape-card-a{width:80px;left:-18px;top:10px}
 .tape-card-b{width:70px;right:-16px;bottom:20px}
 .stk{left:var(--mx,var(--x));top:var(--my,var(--y));width:var(--mw,var(--w,auto))}
 .d-only,.stk-stamp{display:none}
 .stk-cloud b,.stk-star b{font-size:12px}
 .stk-rect{font-size:12px;padding:8px 12px 9px}
 .stk-logo{padding:9px 15px}
 .stk-logo i{width:92px}
 .stk-mb{border-radius:9px}
 .kicker{font-size:9px;letter-spacing:.26em;gap:10px}
 .lettering{margin:22px 0 22px;width:92%}
 .welcome h1{font-size:31px}
 .intro-copy{font-size:14px;margin:16px 0 26px}
 .cta-row{width:100%}
 .primary{box-shadow:3px 3px 0 var(--rosa)}
 .primary{width:100%;font-size:11.5px;letter-spacing:.22em}
 .cta-note{display:none}
 .signoff{margin-top:26px}
 .foot-line{flex-direction:column;gap:6px;font-size:8px;letter-spacing:.22em;padding-left:18px;padding-right:18px}
 .prepare{padding:12px 18px 40px}
 .step-heading{margin-bottom:18px}
 .preparation-grid{grid-template-columns:minmax(0,1fr);gap:30px}
 .sticker-display{min-height:0;padding:44px 26px 30px}
 .sticker-paper{max-width:290px;padding:12px 14px}
 .sticker-note{font-size:20px;margin-top:26px}
 .heart-c{width:34px;height:32px;right:8%;top:7%}
 .burst-b{width:32px;left:6%;bottom:10%}
 .preparation-copy h2{font-size:32px}
 .instructions{gap:18px;margin:26px 0}
 .instructions li{grid-template-columns:38px 1fr;gap:14px}
 .num{width:38px;height:38px;font-size:18px}
 .instructions p{font-size:13.5px}
 .alternative{justify-content:center;text-align:center}
 .experience-top{padding-left:16px;padding-right:16px}
 #mode{font-size:8px;letter-spacing:.24em}
 .logo-sm .logo-mono{width:32px}
 .swatches button{padding-right:12px;font-size:9px;letter-spacing:.12em;gap:7px}
 .swatches img{width:28px;height:28px}
 .model-tools button{font-size:9px;letter-spacing:.1em;padding:0 12px;min-height:38px}
 #reset{width:38px}
 .experience-bottom{gap:10px}
 .viewer-hint{font-size:13px}
 dialog{padding:40px 24px 28px}
 dialog h2{font-size:30px}
}
@media (max-width:380px){.edition{font-size:7.5px;letter-spacing:.16em}.help-link{font-size:8.5px;letter-spacing:.16em}}
@media (prefers-reduced-motion:reduce){
 *,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

.sticker-display .stk{z-index:3}
