:root{--paper:#f7eee5;--red:#ff0038;--ink:#1a1a1a;font-family:Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{border:0;background:none}button:disabled{cursor:not-allowed}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--ink);outline-offset:5px}button:disabled{opacity:.55}img{max-width:100%;display:block}h1,h2,p{margin:0}body:has(dialog[open]){overflow:hidden}.skip{position:fixed;top:-100px;left:15px;background:var(--paper);padding:15px;z-index:20}.skip:focus{top:10px}.header{height:116px;padding:26px 34px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--ink);background:var(--paper);position:sticky;top:0;z-index:5}.brand{display:block;width:345px;max-width:47%}.brand img{width:100%;height:auto}.header nav{display:flex;align-items:center;gap:38px;font-size:16px}.header nav a{padding:10px 0}.header nav a.active{text-decoration:underline;text-underline-offset:5px}.bag-toggle{border:1px solid var(--ink);padding:12px 19px;min-width:101px}.bag-toggle:hover{background:var(--red)}.shop-intro{display:flex;justify-content:space-between;align-items:center;padding:24px 34px;gap:20px}.shop-intro h1{font-size:16px;font-weight:400}.shop-intro span{font-size:14px}.products{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--ink)}.product-card{min-width:0;border-bottom:1px solid var(--ink);border-right:1px solid var(--ink);display:flex;flex-direction:column;position:relative;padding:20px 22px 24px;transition:background .2s}.product-card:nth-child(4n){border-right:0}.card-top{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;font-size:12px;line-height:1.35}.card-top .destination{text-align:right}.card-image{width:100%;aspect-ratio:1/1.16;display:flex;align-items:center;justify-content:center;padding:12px 8px 10px}.card-image img{height:100%;width:100%;object-fit:contain;transition:transform .3s ease}.product-card:hover .card-image img{transform:translateY(-7px) rotate(-2deg)}.card-bottom{display:flex;gap:12px;justify-content:space-between;align-items:flex-end;min-height:54px}.card-bottom h2{font-size:20px;font-weight:400;line-height:1.13;letter-spacing:-.5px;max-width:90%}.card-plus{font-size:29px;line-height:1;font-weight:400;flex-shrink:0}.product-card:hover .card-plus{color:var(--red)}.product-card:focus-visible{outline-offset:-5px}.shop-bottom{display:flex;justify-content:space-between;padding:23px 34px;font-size:14px;border-bottom:1px solid var(--ink)}footer{display:flex;align-items:center;justify-content:center;gap:24px;padding:32px 34px;font-size:12px}footer a{text-decoration:underline;text-underline-offset:3px}footer span:first-child{font-size:16px}.route-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 34px;border-bottom:1px solid var(--ink);font-size:14px}.back:hover{text-decoration:underline}.detail{display:grid;grid-template-columns:1.3fr 1fr;min-height:calc(100svh - 242px);border-bottom:1px solid var(--ink)}.detail-visual{border-right:1px solid var(--ink);position:relative;display:flex;align-items:center;justify-content:center;min-height:600px;padding:32px}.detail-visual img{width:100%;height:560px;max-height:72svh;object-fit:contain}.image-number{position:absolute;bottom:26px;left:34px;font-size:12px}.detail-content{padding:50px 42px;display:flex;flex-direction:column;align-items:stretch;justify-content:center}.eyebrow{font-size:13px;margin-bottom:20px}.detail-content h1{font-size:clamp(36px,4.1vw,66px);line-height:.98;letter-spacing:-2.5px;font-weight:400;margin-bottom:25px}.origin{font-size:16px;line-height:1.45;margin-bottom:28px}.price{font-size:20px;margin-bottom:28px}.price small{font-size:12px;margin-left:8px}.info{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-bottom:25px}.info summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:18px 0;font-size:16px}.info summary::-webkit-details-marker{display:none}.info summary:after{content:'+';font-size:25px;line-height:1}.info[open] summary:after{content:'−'}.info p{font-size:16px;line-height:1.6;padding:1px 0 24px;max-width:42ch}.info .product-note{font-size:13px}.primary{background:var(--red);border:1px solid var(--ink);width:100%;padding:19px 22px;font-size:17px;text-align:center;display:flex;justify-content:space-between;align-items:center}.primary:hover{background:var(--ink);color:var(--paper)}.other-products{display:flex;gap:30px;justify-content:space-between;padding:24px 34px;border-bottom:1px solid var(--ink);font-size:14px}.other-products a:hover{text-decoration:underline}.faq-page{max-width:1050px;margin:auto;padding:65px 34px 80px;min-height:70svh}.faq-page h1{font-size:clamp(46px,7vw,92px);font-weight:400;letter-spacing:-3px;margin-bottom:50px}.faq-item{border-top:1px solid var(--ink)}.faq-item:last-child{border-bottom:1px solid var(--ink)}.faq-item summary{font-size:20px;padding:24px 0}.faq-item p{max-width:none}.faq-item ul{line-height:1.65;padding:0 0 20px 20px;margin-top:0;font-size:16px}dialog{color:var(--ink);background:var(--paper);border:0;border-left:1px solid var(--ink);height:100svh;max-height:100svh;width:520px;max-width:100%;margin:0 0 0 auto;padding:0;position:fixed;inset:0;overflow-y:auto}dialog::backdrop{background:rgb(26 26 26 / .4)}.bag-heading{display:flex;align-items:center;justify-content:space-between;padding:24px;border-bottom:1px solid var(--ink);position:sticky;top:0;background:var(--paper);z-index:1}.bag-heading h2{font-size:24px;font-weight:400;letter-spacing:-.7px}.close{font-size:32px;line-height:1;padding:7px;min-width:44px}.empty-bag{padding:55px 25px}.empty-bag h3{font-size:32px;font-weight:400;letter-spacing:-1px;margin:0 0 16px}.empty-bag p{font-size:16px;margin-bottom:35px}.bag-item{display:grid;grid-template-columns:95px 1fr;gap:16px;padding:23px 25px;border-bottom:1px solid var(--ink)}.bag-item img{height:135px;width:95px;object-fit:contain}.bag-item h3{font-size:19px;font-weight:400;margin:5px 0 9px}.bag-price{font-size:14px}.bag-actions{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-top:20px}.quantity{display:flex;align-items:center;border:1px solid var(--ink)}.quantity button{min-width:36px;min-height:36px;font-size:19px}.quantity span{min-width:25px;text-align:center;font-size:14px}.remove{font-size:13px;text-decoration:underline;text-underline-offset:3px;padding:9px 0}.bag-summary{padding:27px 25px}.subtotal{display:flex;justify-content:space-between;font-size:18px;margin-bottom:24px}.bag-summary p{font-size:14px;line-height:1.5;margin:16px 0 24px}.checkout{background:var(--ink);color:var(--paper);opacity:1!important;justify-content:center}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:var(--paper);padding:15px 25px;z-index:15;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center;min-width:230px;font-size:14px}.toast.show{opacity:1;transform:translate(-50%,0)}
@media(min-width:1600px){.card-image{aspect-ratio:1/1.05}.product-card{padding:24px 30px 30px}.card-bottom h2{font-size:24px}}
@media(max-width:1000px){.header{padding:23px 25px;height:100px}.brand{width:300px}.header nav{gap:24px}.products{grid-template-columns:repeat(2,minmax(0,1fr))}.product-card:nth-child(2n){border-right:0}.card-image{aspect-ratio:1/1.04;max-height:420px}.card-bottom h2{font-size:23px}.detail{grid-template-columns:1fr 1fr}.detail-content{padding:35px 25px}.detail-visual{padding:20px;min-height:520px}.detail-visual img{height:480px}.detail-content h1{font-size:42px;letter-spacing:-1.8px}footer{flex-wrap:wrap}footer span:last-child{margin-left:auto}}
@media(max-width:600px){.header{height:auto;min-height:110px;padding:19px 18px 14px;flex-wrap:wrap;gap:20px}.brand{width:270px;max-width:100%}.header nav{width:100%;gap:24px;font-size:14px}.bag-toggle{margin-left:auto;padding:8px 12px;min-width:85px}.shop-intro{padding:19px 18px}.shop-intro span{font-size:12px;max-width:135px;text-align:right}.product-card{padding:14px 12px 18px}.card-top{font-size:12px;gap:5px;min-height:33px}.card-image{aspect-ratio:1/1.28;padding:8px 0}.card-bottom{min-height:55px;gap:5px;align-items:flex-start}.card-bottom h2{font-size:17px;letter-spacing:-.3px;line-height:1.18}.card-plus{font-size:24px}.shop-bottom{padding:19px 18px;font-size:12px}footer{padding:27px 18px;gap:20px;align-items:flex-start}footer span:first-child{width:100%;font-size:20px}footer span:last-child{margin-left:0}.route-bar{padding:17px 18px;font-size:12px}.detail{display:flex;flex-direction:column}.detail-visual{min-height:0;height:440px;border-right:0;border-bottom:1px solid var(--ink);padding:20px}.detail-visual img{height:390px;max-height:none}.image-number{left:18px;bottom:15px}.detail-content{padding:30px 22px 35px}.detail-content h1{font-size:48px;letter-spacing:-2px}.eyebrow{margin-bottom:17px}.origin{margin-bottom:20px}.price{margin-bottom:25px}.other-products{padding:22px 18px;font-size:12px}.faq-page{padding:38px 20px 55px}.faq-page h1{margin-bottom:35px;letter-spacing:-2px}.faq-item summary{font-size:18px;padding:21px 0;gap:20px}.toast{bottom:18px;max-width:90%;width:max-content}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}

/* Open product stage, with an independent full-width information reveal. */
.product-page{min-height:100svh;min-height:100dvh;display:flex;flex-direction:column}
.product-page #main{flex:1;display:flex;flex-direction:column}
.product-page .other-products{margin-top:auto}
.product-page>footer{flex:none;padding:16px 18px;align-items:center}
.product-page .header{position:absolute;inset:0 0 auto;height:0;min-height:0;padding:0;border:0;background:none}
.product-page .brand,.product-page .header nav>a{display:none}
.product-page .header nav{width:auto;margin:0}
.product-page .bag-toggle{position:fixed;top:22px;right:28px;background:var(--paper)}
.product-page .bag-toggle:hover{background:var(--red)}
.souvenir-top{height:80px;display:flex;align-items:center;gap:28px;padding:20px 30px}
.souvenir-top .back{font-size:28px;display:flex;align-items:center;gap:14px}
.souvenir-top .back span{font-size:14px}
.souvenir-index{font-size:12px}
.souvenir-stage{display:grid;grid-template-columns:minmax(130px,1fr) minmax(0,2fr) minmax(230px,1fr);align-items:center;gap:18px;padding:80px 6vw 20px;min-height:530px;height:67svh;max-height:880px}
.info-control{display:flex;align-items:center;justify-content:center}
.info-circle{width:clamp(100px,10vw,190px);aspect-ratio:1;border:4px solid var(--red);border-radius:50%;color:var(--red);display:grid;place-items:center;transition:background .2s,color .2s}
.info-circle span{font-family:Helvetica,sans-serif;font-size:clamp(66px,7vw,132px);font-weight:700;line-height:1}
.info-circle:hover{color:var(--paper);background:var(--red)}
.info-open .info-circle{border-color:var(--ink);color:var(--ink)}
.info-open .info-circle:hover{background:var(--ink);color:var(--paper)}
.souvenir-object{height:100%;min-height:0;display:flex;align-items:center;justify-content:center}
.souvenir-object img{width:100%;height:100%;object-fit:contain}
.souvenir-buy{width:100%;max-width:320px;justify-self:center;text-align:center;display:flex;flex-direction:column;align-items:center;gap:27px}
.souvenir-price{font-size:18px;letter-spacing:1px}
.souvenir-price small{font-size:12px;letter-spacing:0}
.souvenir-origin{font-size:16px;line-height:1.5}
.souvenir-origin span{font-size:14px}
.souvenir-add{width:100%;min-height:58px;padding:15px 24px;border:1px solid var(--ink);border-radius:100px;background:var(--red);font-size:18px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.souvenir-add:hover{background:var(--ink);color:var(--paper)}
.souvenir-add span{font-size:25px;line-height:1}
.souvenir-story{padding:25px 28px 65px;color:var(--red);overflow-wrap:break-word}
.souvenir-story h1,.souvenir-copy{font-size:clamp(32px,3.25vw,70px);line-height:1.05;letter-spacing:-1.4px;font-weight:700;text-transform:uppercase}
.souvenir-story h1{margin:0}
.souvenir-copy{margin-top:28px}
.souvenir-note{font-size:14px;line-height:1.5;color:var(--ink);margin-top:25px;max-width:55ch}
.info-close{position:fixed;z-index:6;top:88px;right:30px;width:clamp(96px,10vw,185px);aspect-ratio:1;border:4px solid var(--red);border-radius:50%;color:var(--red);background:var(--paper);display:grid;place-items:center}

.info-close:hover{background:var(--red);color:var(--paper)}
[hidden]{display:none!important}
@media(max-width:1000px){
 .souvenir-stage{grid-template-columns:100px minmax(0,1fr) 230px;gap:12px;padding:65px 28px 20px;min-height:470px;height:65svh}
 .info-circle{width:95px;border-width:3px}.info-circle span{font-size:65px}
 .souvenir-buy{gap:23px}.souvenir-story h1,.souvenir-copy{font-size:40px}
 .info-close{width:96px;border-width:3px}
}
@media(max-width:700px){
 .product-page .bag-toggle{top:16px;right:18px}
 .souvenir-top{height:70px;padding:17px 18px;gap:18px}
 .souvenir-top .back span{display:none}
 .souvenir-stage{height:auto;max-height:none;min-height:0;grid-template-columns:64px minmax(0,1fr) 32px;gap:0;padding:40px 18px 10px}
 .info-control{grid-column:1;grid-row:1;align-self:center;z-index:1}
 .info-circle{width:60px;border-width:2px}.info-circle span{font-size:42px}
 .souvenir-object{grid-column:2;grid-row:1;height:45svh;min-height:280px;max-height:430px}
 .souvenir-buy{grid-column:1/-1;grid-row:2;max-width:400px;display:grid;grid-template-columns:1fr auto;text-align:left;gap:18px 12px;margin-top:12px}
 .souvenir-origin{grid-column:1;grid-row:1;font-size:14px}.souvenir-origin span{font-size:12px}
 .souvenir-price{grid-column:2;grid-row:1;font-size:16px;letter-spacing:0;text-align:right}
 .souvenir-add{grid-column:1/-1;min-height:54px;font-size:17px}
 .souvenir-story{padding:28px 18px 40px}
 .souvenir-story h1,.souvenir-copy{font-size:clamp(28px,6.3vw,40px);line-height:1.08;letter-spacing:-.8px}
 .souvenir-copy{margin-top:24px}
 .info-close{top:73px;right:18px;width:62px;border-width:2px}
}

/* Homepage composition follows the supplied 1996 × 1248 artwork. */
.home-page .header{position:static;height:80px;min-height:0;padding:18px 28px;justify-content:flex-end}
.home-page .header .brand{display:none}
.home-page .header nav{width:100%;justify-content:flex-end}
.souvenir-home{position:relative;width:100%;aspect-ratio:1996/1154;isolation:isolate}
.home-wordmark{position:absolute;left:1.25%;top:2.5%;width:97.5%;margin:0;z-index:0}
.home-wordmark img{width:100%;height:auto}
.home-objects{position:absolute;inset:0}
.floating-souvenir{position:absolute;left:var(--x);top:var(--y);width:var(--w);transform:translateX(-50%);z-index:1;display:block;outline-offset:12px!important;cursor:pointer}
.floating-art{position:relative;display:block;width:100%;aspect-ratio:var(--ratio);isolation:isolate}
.object-crop{display:block;position:absolute;inset:0;overflow:hidden;z-index:1}
.object-crop img{position:absolute;width:var(--crop-width);height:var(--crop-height);max-width:none;left:var(--crop-left);top:var(--crop-top)}
.object-halo{position:absolute;left:50%;top:50%;width:max(105%,9.5vw);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--red) 0%,var(--red) 22%,transparent 70%);filter:blur(1vw);opacity:0;transform:translate(-50%,-50%) scale(.45);transition:opacity .35s ease,transform .5s cubic-bezier(.18,.8,.25,1);pointer-events:none;z-index:0}
.floating-souvenir:hover .object-halo,.floating-souvenir:focus-visible .object-halo{opacity:.88;transform:translate(-50%,-50%) scale(1.12)}
.floating-souvenir:active .object-halo{opacity:1;transform:translate(-50%,-50%) scale(1.2)}
.shop-label{position:relative;left:50%;transform:translateX(-50%);display:block;width:max-content;margin-top:1.5vw;text-align:center;line-height:1;pointer-events:none}
.shop-label>span{display:block;font-family:Helvetica,sans-serif;font-weight:700;font-size:clamp(18px,1.6vw,46px);letter-spacing:-.075em;line-height:1.05;white-space:nowrap;border-bottom:2px solid currentColor;padding-bottom:2px;transform:scaleX(.53) scaleY(1.4);transform-origin:center top}
.drop-ribbon{height:4.71vw;min-height:50px;overflow:hidden;background:var(--red);color:var(--paper);display:flex;align-items:center}

@media(max-width:700px){
 .souvenir-home{aspect-ratio:auto;min-height:0;padding:18vw 6vw 48px}
 .home-wordmark{top:12px;left:2%;width:96%}
 .home-objects{position:relative;inset:auto;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px 28px;align-items:start}
 .floating-souvenir{position:relative;left:auto;top:auto;transform:none;width:100%;min-width:0;display:flex;flex-direction:column;align-items:center}
 .floating-art{width:var(--mobile-w,76%);flex-shrink:0}
 .floating-our-first-trip{margin-top:10px;--mobile-w:66%}
 .floating-prenup-towel{margin-top:35px;--mobile-w:94%}
 .floating-stupid-juice{--mobile-w:30%}
 .floating-oopsie-tshirt{--mobile-w:95%}
 .floating-you-were-a-mistake{margin-top:20px;--mobile-w:90%}
 .floating-onion-magnet{margin-top:45px;--mobile-w:82%}
 .floating-haemorrhoid-vanish{--mobile-w:38%}
 .floating-emo-music-box{margin-top:10px;--mobile-w:82%}
 .shop-label{left:auto;transform:none;margin-top:18px;height:37px}
 .shop-label>span{font-size:25px}
 .object-halo{width:max(115%,28vw);filter:blur(3vw)}
 .drop-ribbon{height:60px}
 .home-page .header{height:auto;padding:18px}
}
@media(prefers-reduced-motion:reduce){.object-halo{transition:none}}

/* Duplicated equal-width groups make the ribbon loop without a seam. */
.drop-track{display:flex;flex:none;width:max-content;height:100%;animation:drop-loop 26s linear infinite;will-change:transform}
.drop-group{display:flex;flex:none;height:100%}
.drop-word{display:block;flex:none;width:55vw;min-width:420px;height:100%}
.drop-word svg{display:block;width:100%;height:100%;overflow:hidden}
@keyframes drop-loop{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.home-faq{padding:clamp(65px,6vw,120px) 24px 100px;scroll-margin-top:20px;text-align:center}
.home-faq h2{font-family:Helvetica,sans-serif;font-size:clamp(100px,8vw,170px);font-weight:700;line-height:1;height:1.5em;margin:0 0 64px;letter-spacing:-.045em}
.home-faq h2 span{display:inline-block;transform:scaleX(.58) scaleY(1.45);transform-origin:center top;color:var(--red);-webkit-text-stroke:2px var(--ink);paint-order:stroke fill}
.home-faq-list{width:min(100%,820px);margin:0 auto}
.home-faq-item{margin:0 0 20px}
.home-faq-item summary{position:relative;cursor:pointer;list-style:none;padding:16px 12px;font-family:Helvetica,sans-serif;font-size:22px;font-weight:700;line-height:1.5}
.home-faq-item summary::-webkit-details-marker{display:none}
.home-faq-item summary>span{display:block;width:89.2857%;margin:0 auto;transform:scaleX(1.12) scaleY(.85);transform-origin:center}


.home-faq-answer{max-width:640px;margin:0 auto;padding:5px 22px 24px;font-size:16px;line-height:1.65}
.home-faq-answer ul{list-style:none;margin:16px 0 0;padding:0}
.home-faq-answer li{margin:5px 0}
.location-map-link{display:inline-block;text-underline-offset:.18em}
.location-map-link:hover,.location-map-link:focus-visible{text-decoration:underline}
@media(max-width:700px){.drop-track{animation-duration:20s}.home-faq{padding:64px 18px 65px}.home-faq h2{margin-bottom:38px}.home-faq-item summary{font-size:18px;padding:12px 8px}.home-faq-answer{padding:4px 10px 20px}.home-faq-item{margin-bottom:12px}}
@media(prefers-reduced-motion:reduce){.drop-track{animation:none;will-change:auto}}

/* Product headings keep their stretched glyphs inside reserved line boxes. */
.souvenir-title{width:100%;font-family:Helvetica,sans-serif;font-size:clamp(36px,3.2vw,58px);font-weight:700;line-height:1;letter-spacing:-.035em;color:var(--red);-webkit-text-stroke:1.5px var(--ink);paint-order:stroke fill;text-align:center;margin:0}
.title-line{display:block;height:1.45em}
.title-line>span{display:block;width:153.846%;margin-left:-26.923%;white-space:nowrap;transform:scaleX(.65) scaleY(1.35);transform-origin:center top}
.info-close{padding:0}
.info-close svg{display:block;width:65%;height:65%;overflow:visible}
@media(max-width:700px){
 .souvenir-buy .souvenir-title{grid-column:1/-1;grid-row:1;font-size:clamp(34px,7.5vw,48px);margin-bottom:4px}
 .souvenir-buy .souvenir-origin,.souvenir-buy .souvenir-price{grid-row:2}
 .souvenir-buy .souvenir-add{grid-row:3}
}

/* The question itself is the disclosure control. */
.home-faq-item summary:hover>span,.home-faq-item summary:focus-visible>span{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em}
/* Keep the whole product composition centered with equal side columns. */
@media(min-width:1001px){
 .souvenir-stage{width:calc(100% - 80px);max-width:1280px;margin-inline:auto;grid-template-columns:minmax(230px,1fr) minmax(0,1.4fr) minmax(230px,1fr);gap:32px;padding:48px 0}
}
@media(min-width:701px) and (max-width:1000px){
 .souvenir-stage{width:calc(100% - 48px);margin-inline:auto;grid-template-columns:230px minmax(0,1fr) 230px;gap:12px;padding:40px 0}
}
.souvenir-copy{width:100%;transform:none;letter-spacing:-.035em;line-height:1.12}
@media(max-width:700px){
 .souvenir-stage{grid-template-columns:64px minmax(0,1fr) 64px}
 .souvenir-buy{justify-self:center;text-align:center}
 .souvenir-buy .souvenir-origin,.souvenir-buy .souvenir-price{grid-column:1/-1;text-align:center}
 .souvenir-buy .souvenir-price{grid-row:2}
 .souvenir-buy .souvenir-origin{grid-row:3}
 .souvenir-buy .souvenir-add{grid-row:4}

}

/* Separate entrance and scroll transforms keep hover and link placement intact. */
.floating-souvenir{transform:translate3d(-50%,var(--parallax-y,0px),0);will-change:transform}
.souvenir-motion{display:block;width:100%;animation:souvenir-rise 1000ms cubic-bezier(.16,1,.3,1) var(--enter-delay,0ms) both}
@keyframes souvenir-rise{
 from{opacity:0;transform:translateY(clamp(45px,7vw,120px))}
 to{opacity:1;transform:translateY(0)}
}
.floating-souvenir:focus-visible .souvenir-motion{animation:none}
@media(max-width:700px){.floating-souvenir{transform:translate3d(0,var(--parallax-y,0px),0)}.souvenir-motion{display:flex;flex-direction:column;align-items:center}}
@media(prefers-reduced-motion:reduce){
 .floating-souvenir{--parallax-y:0px!important;will-change:auto}
 .souvenir-motion{animation:none}
}

/* Floating information cloud, above the softly faded product page. */
body.info-open{overflow:hidden}
.souvenir-stage{transition:opacity .3s ease}
.info-open .souvenir-stage{opacity:.1}
.info-open .other-products{visibility:hidden}
.info-open footer{opacity:.1}
.souvenir-story:not([hidden]){position:fixed;inset:0;z-index:6;display:flex;align-items:center;justify-content:center;padding:150px 7vw 110px;margin:0;min-height:0;overflow:auto;pointer-events:none;color:var(--paper)}
.souvenir-story-content{position:relative;isolation:isolate;flex:none;width:min(72vw,1320px);text-align:center;pointer-events:auto;animation:info-float 7s ease-in-out infinite;will-change:transform}
.souvenir-story-content::before{content:"";position:absolute;z-index:-1;inset:-65px -55px;background:var(--red);border-radius:50%;filter:blur(24px);pointer-events:none}
.souvenir-story .souvenir-copy{width:84.746%;margin:0 auto;font-family:Helvetica,sans-serif;font-size:clamp(20px,1.65vw,34px);font-weight:700;line-height:1.12;letter-spacing:-.035em;text-transform:none;transform:scaleX(1.18);transform-origin:center;color:var(--paper)}
.souvenir-story .souvenir-note{max-width:60ch;margin:20px auto 0;font-size:13px;color:var(--paper)}
.info-open .info-close{z-index:8;background:transparent}
.info-open .info-close:hover{background:var(--red);color:var(--paper)}
@keyframes info-float{
 0%,100%{transform:translate3d(-3px,3px,0) rotate(-.3deg)}
 25%{transform:translate3d(4px,-5px,0) rotate(.2deg)}
 50%{transform:translate3d(1px,6px,0) rotate(.35deg)}
 75%{transform:translate3d(-4px,-3px,0) rotate(-.15deg)}
}
@media(max-width:700px){
 .souvenir-story:not([hidden]){padding:155px 24px 90px}
 .souvenir-story-content{width:100%;max-width:520px;margin:auto}
 .souvenir-story-content::before{inset:-40px -10px;filter:blur(18px)}
 .souvenir-story .souvenir-copy{width:100%;font-size:clamp(18px,4.5vw,24px);line-height:1.2;transform:none}
 .souvenir-story .souvenir-note{font-size:12px}
}
@media(prefers-reduced-motion:reduce){
 .souvenir-story-content{animation:none;will-change:auto}
 .souvenir-stage{transition:none}
}

/* Keep the checkout punchline on the same line on narrow screens. */
.checkout{white-space:nowrap;font-size:clamp(14px,3.7vw,17px);padding-inline:12px}

/* Destination silhouettes match the supplied location reference sheet. */
.souvenir-origin .souvenir-from{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:10px;font-size:inherit}
.souvenir-from strong{font-weight:700}
.souvenir-location-icon{display:block;width:52px;height:32px;object-fit:contain}
