:root{--wine:#8f211f;--deep:#3c0d0e;--ink:#30251f;--muted:#786956;--paper:#f0e9dc;--light:#f8f3e9;--line:#cbbba3;--red:#98232a;--gold:#aa8549}*{box-sizing:border-box}html{background:#100707;scroll-behavior:smooth}body{margin:0;overflow-x:hidden;color:var(--ink);background:#100707;font-family:"Songti SC","STSong","Noto Serif CJK SC","Source Han Serif SC",serif;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent}img{display:block;max-width:100%}figure{margin:0}
.sound{position:fixed;z-index:100;top:max(15px,env(safe-area-inset-top));right:15px;display:flex;align-items:center;gap:7px;padding:5px 10px 5px 5px;color:#f7eadc;border:1px solid #f7eadc55;border-radius:99px;background:#260b0b8a;backdrop-filter:blur(12px);font:10px/1 "PingFang SC",sans-serif}.sound-disc{width:28px;height:28px;display:grid;place-items:center;border:1px solid #f2dfcc;border-radius:50%}.sound-disc:before,.sound-disc:after,.sound-disc i{content:"";position:absolute;border:1px solid currentColor;border-radius:50%}.sound-disc:before{width:15px;height:15px;opacity:.6}.sound-disc:after{width:5px;height:5px;background:#f3e4d3}.sound-disc i{width:22px;height:22px;border-color:transparent transparent #f3e4d3 transparent}.sound[aria-pressed=true] .sound-disc{animation:spin 5.6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.prologue{position:relative;height:205vh;background:#1a0908}.stage{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;place-items:center;background:#24100c;perspective:1000px}.stage-glow{position:absolute;inset:0;background:radial-gradient(circle at 50% 43%,#d4a66555,transparent 56%),linear-gradient(#2a110d,#120706);transition:opacity .2s}.opening-poster{width:100%;height:100%;object-fit:contain;object-position:center;filter:brightness(.74) saturate(.88);transform:scale(.955);will-change:transform,filter}.curtain-half{position:absolute;z-index:5;top:-1%;bottom:-1%;width:58%;background:url("assets/curtain-warm-v3.webp") no-repeat;background-size:172.5% 100%;will-change:transform,filter,clip-path;filter:brightness(.9) saturate(.94) drop-shadow(0 0 14px #260300b8);backface-visibility:hidden}.curtain-half i{position:absolute;top:0;bottom:0;width:11%;opacity:.48;background:linear-gradient(90deg,transparent,#ffdca630 45%,#31000099);filter:blur(1px)}.curtain-half--left{left:-8%;background-position:left top;transform-origin:4% 46%;clip-path:polygon(0 0,100% 0,97% 11%,100% 23%,96% 37%,100% 51%,96% 65%,100% 79%,95% 100%,0 100%)}.curtain-half--left i{right:0}.curtain-half--right{right:-8%;background-position:right top;transform-origin:96% 46%;clip-path:polygon(0 0,100% 0,100% 100%,5% 100%,0 80%,4% 65%,0 51%,4% 37%,0 23%,3% 11%)}.curtain-half--right i{left:0;transform:scaleX(-1)}.curtain-shadow{position:absolute;z-index:6;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 23%,#16030175 67%,#090000c4 100%)}.swipe-cue{position:absolute;z-index:10;left:50%;bottom:max(8.5vh,54px);display:grid;justify-items:center;gap:9px;color:#ffe8ce;text-align:center;text-shadow:0 2px 14px #380504;transform:translateX(-50%);animation:cueGlow 2s ease-in-out infinite}.swipe-cue span{white-space:nowrap;font:14px/1 "PingFang SC",sans-serif;letter-spacing:.18em}.swipe-cue i{width:1px;height:45px;background:linear-gradient(#ffe8ce,transparent);animation:cueLine 1.8s ease-in-out infinite}.swipe-cue b{position:absolute;bottom:34px;width:9px;height:9px;border-top:1px solid;border-left:1px solid;transform:rotate(45deg)}@keyframes cueGlow{0%,100%{opacity:.46}50%{opacity:1}}@keyframes cueLine{0%,100%{transform:translateY(9px) scaleY(.55);opacity:.25}50%{transform:translateY(-2px) scaleY(1);opacity:1}}
.paper-world{position:relative;z-index:10;margin-top:-10vh;background:radial-gradient(circle at 20% 10%,#7e60340a 0 1px,transparent 1.5px),radial-gradient(circle at 80% 50%,#7e603408 0 1px,transparent 1.5px),var(--paper);background-size:12px 12px,17px 17px,auto;box-shadow:0 -40px 100px #00000091}.paper-top{position:absolute;top:-18px;left:0;right:0;height:22px;background:var(--paper);clip-path:polygon(0 35%,3% 22%,6% 46%,10% 25%,14% 44%,18% 20%,22% 41%,27% 24%,31% 43%,36% 18%,41% 39%,47% 22%,52% 43%,58% 20%,63% 41%,69% 22%,74% 44%,80% 18%,86% 40%,92% 23%,96% 44%,100% 29%,100% 100%,0 100%)}.sheet-section{position:relative;padding:92px 27px;max-width:520px;margin:0 auto}.paper-heading{display:flex;align-items:center;gap:12px;color:var(--red);font:8px/1 Georgia,serif;letter-spacing:.17em}.paper-heading i{height:1px;flex:1;background:#b8a88e}.vertical-note{position:absolute;top:162px;margin:0;color:#9a8770;font-size:10px;line-height:1.8;letter-spacing:.17em;writing-mode:vertical-rl}.vertical-note--left{left:19px}.vertical-note--right{right:19px}.invitation-title{margin:75px auto 68px;text-align:center}.invitation-title small{color:var(--red);font-size:11px;letter-spacing:.28em}.invitation-title h1{margin:19px 0 15px;font-size:clamp(42px,13vw,64px);font-weight:400;letter-spacing:.16em}.invitation-title p{color:var(--muted);font-size:13px;letter-spacing:.08em}.name-lockup{display:flex;align-items:center;justify-content:center;gap:13px;padding:29px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.name-lockup>span{position:absolute;margin-top:-60px;padding:0 11px;color:#917e65;background:var(--paper);font-size:10px;letter-spacing:.2em}.name-lockup strong{font-size:22px;font-weight:400;letter-spacing:.1em}.name-lockup i{color:var(--red);font-size:12px;font-style:normal}.screening-info{padding:62px 0 24px;display:grid;gap:39px;text-align:center}.screening-info div{display:grid;gap:9px}.screening-info span{color:var(--red);font-size:10px;letter-spacing:.22em}.screening-info strong{font-size:19px;font-weight:400;letter-spacing:.06em}.screening-info small{color:#887660;font-size:12px;letter-spacing:.08em}.family-sketch{position:relative;margin:48px auto 32px;max-width:390px;overflow:hidden;text-align:center}.family-sketch img{width:100%;mix-blend-mode:multiply;animation:familyFloat 6s ease-in-out infinite;transform-origin:50% 78%}.family-sketch figcaption{margin-top:6px;color:#8c7b66;font-size:9px;letter-spacing:.18em}.sketch-shine{position:absolute;inset:0;background:linear-gradient(110deg,transparent 25%,#fff9 43%,transparent 58%);mix-blend-mode:screen;transform:translateX(-120%);animation:sketchShine 7s ease-in-out infinite}.cat-wave{position:absolute;right:11%;top:55%;color:#5e4b3e;font:26px/1 Georgia;transform-origin:left center;animation:tailWave 2.8s ease-in-out infinite}@keyframes familyFloat{0%,100%{transform:rotate(-.35deg) translateY(0)}50%{transform:rotate(.35deg) translateY(-3px)}}@keyframes sketchShine{0%,62%{transform:translateX(-120%);opacity:0}72%{opacity:.45}92%,100%{transform:translateX(120%);opacity:0}}@keyframes tailWave{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(13deg)}}.red-seal{width:56px;height:56px;display:grid;align-content:center;justify-items:center;margin:44px auto 15px;color:var(--red);border:2px solid var(--red);transform:rotate(-4deg)}.red-seal span{font-size:25px;line-height:1}.red-seal small{font-size:7px;letter-spacing:.15em}
.ticket-scene{height:220vh;position:relative;margin-top:35px}.ticket-scene:before{content:"";position:absolute;z-index:2;left:0;right:0;top:-130px;height:170px;background:linear-gradient(var(--paper),#f5eee3 62%,#f8f3e9)}.ticket-sticky{position:sticky;top:0;height:100svh;overflow:hidden;background:#8e1f22}.ticket-underlay{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 34px 12vh;color:#f3dfc7;background:linear-gradient(155deg,#95272a,#4a0c0e)}.ticket-underlay p{margin:0 0 12px;font-size:12px;letter-spacing:.22em}.ticket-underlay h2{margin:0;font-size:44px;line-height:1.35;font-weight:400;letter-spacing:.05em}.ticket-page{position:absolute;z-index:3;inset:0 0 19%;display:grid;grid-template-columns:38px 1fr;background:var(--light);box-shadow:0 24px 65px #2500006b;will-change:transform}.ticket-rail{display:flex;align-items:center;justify-content:space-around;padding:20px 0;color:#f2e2c9;background:var(--red);font:11px/1 Georgia,serif;letter-spacing:.17em;writing-mode:vertical-rl}.ticket-content{padding:7vh 25px 2.2vh;text-align:center;border-right:1px solid #cfc0aa}.ticket-content header{display:grid;gap:8px;color:var(--red)}.ticket-content header span{font-size:14px;letter-spacing:.26em}.ticket-content header small{font:8px/1 Georgia,serif;letter-spacing:.25em}.ticket-title{margin:5.6vh 0 4vh}.ticket-title p{margin:0 0 8px;color:#81705c;font-size:12px;letter-spacing:.18em}.ticket-title h2{margin:0;font-size:clamp(52px,16vw,76px);font-weight:400;letter-spacing:.16em}.ticket-content dl{display:grid;grid-template-columns:1fr 1fr;margin:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.ticket-content dl div{min-height:12vh;padding:14px 7px;display:grid;align-content:center}.ticket-content dl div:nth-child(odd){border-right:1px solid var(--line)}.ticket-content dl div:nth-child(-n+2){border-bottom:1px solid var(--line)}.ticket-content dt{color:#8e775e;font-size:10px;letter-spacing:.18em}.ticket-content dd{display:grid;gap:5px;margin:8px 0 0;font-size:17px;line-height:1.4}.ticket-content dd small{color:#7e6d59;font-size:11px}.ticket-code{height:48px;display:flex;justify-content:center;gap:4px;margin:3.2vh auto 7px;opacity:.8}.ticket-code span{width:2px;background:#352820}.ticket-code span:nth-child(3n){width:6px}.ticket-code span:nth-child(4n){width:3px}.ticket-code span:nth-child(7n){width:8px}.ticket-number{color:#8a7761;font:9px/1 Georgia,serif;letter-spacing:.16em}.tear-line{position:absolute;z-index:6;left:0;right:0;bottom:19%;height:2px;background:repeating-linear-gradient(90deg,#9d6f5d 0 9px,transparent 9px 16px);pointer-events:none}.tear-line i{position:absolute;left:50%;top:50%;padding:8px 15px;color:var(--red);background:var(--light);font-size:11px;font-style:normal;font-weight:600;letter-spacing:.12em;white-space:nowrap;transform:translate(-50%,-50%);animation:tearGlow 1.7s ease-in-out infinite}@keyframes tearGlow{0%,100%{color:#98232a;text-shadow:none}50%{color:#bd2e32;text-shadow:0 0 12px #b78352aa}}.ticket-stub{position:absolute;z-index:4;left:0;right:0;bottom:0;height:19%;color:var(--ink);background:var(--light);transform-origin:8% 0;will-change:transform,opacity}.ticket-stub:before{content:"";position:absolute;top:-5px;left:0;right:0;height:9px;background:var(--light);clip-path:polygon(0 50%,2% 20%,4% 75%,6% 25%,8% 72%,10% 20%,12% 76%,14% 25%,16% 70%,18% 22%,20% 75%,22% 25%,24% 72%,26% 20%,28% 76%,30% 25%,32% 70%,34% 22%,36% 75%,38% 25%,40% 72%,42% 20%,44% 76%,46% 25%,48% 70%,50% 22%,52% 75%,54% 25%,56% 72%,58% 20%,60% 76%,62% 25%,64% 70%,66% 22%,68% 75%,70% 25%,72% 72%,74% 20%,76% 76%,78% 25%,80% 70%,82% 22%,84% 75%,86% 25%,88% 72%,90% 20%,92% 76%,94% 25%,96% 70%,98% 22%,100% 50%,100% 100%,0 100%)}.ticket-stub>div{height:100%;display:flex;align-items:center;justify-content:space-around;padding:10px 28px}.ticket-stub span,.ticket-stub small{color:#806e58;font-size:10px;letter-spacing:.16em}.ticket-stub strong{color:var(--red);font:30px/1 Georgia,serif;letter-spacing:.1em}
.guide{padding-top:110px;padding-bottom:105px}.chapter-heading{text-align:center}.editorial-heading{text-align:left;padding-left:8px}.chapter-heading small{color:var(--red);font:9px/1 Georgia,serif;letter-spacing:.2em}.chapter-heading h2{margin:18px 0 14px;font-size:43px;line-height:1.32;font-weight:400;letter-spacing:.07em}.chapter-heading p{margin:0;color:#796a57;font-size:12px;line-height:1.75;letter-spacing:.06em}.food-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:55px}.food-card{position:relative;min-height:245px;overflow:hidden;background:#291814;box-shadow:0 13px 26px #604a3417}.food-card--hero{grid-column:1/-1;min-height:390px}.food-card--wide{grid-column:1/-1;min-height:245px}.food-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.76) sepia(.08) contrast(.96);transition:transform 1.2s ease}.food-card:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 48%,#160705d9 100%)}.food-card figcaption{position:absolute;z-index:2;left:15px;right:15px;bottom:15px;display:grid;grid-template-columns:28px 1fr;align-items:end;color:#f7ead9}.food-card figcaption b{grid-row:1/3;font:10px Georgia,serif;color:#dcbf94}.food-card figcaption strong{font-size:17px;font-weight:400;letter-spacing:.05em}.food-card figcaption span{margin-top:5px;font:7px Georgia,serif;letter-spacing:.16em;opacity:.68}.food-card--hero figcaption strong{font-size:23px}.food-card.is-visible img,.enter.is-visible .food-card img{transform:scale(1.025)}
.see-guide{padding-top:115px;border-top:1px solid #cfbea6}.museum-feature{position:relative;margin-top:54px;padding-bottom:25px;border-bottom:1px solid var(--line)}.museum-feature>img{width:100%;height:245px;object-fit:cover;filter:saturate(.76) sepia(.06)}.museum-copy{padding:21px 3px 0}.museum-copy span{color:var(--red);font:9px Georgia,serif;letter-spacing:.18em}.museum-copy h3{margin:8px 0 8px;font-size:25px;font-weight:400;letter-spacing:.08em}.museum-copy p{margin:0;max-width:74%;color:#796a58;font-size:11px;line-height:1.8}.reservation-note{position:absolute;right:-4px;bottom:22px;width:145px;padding:14px 12px 12px;color:var(--red);text-align:center;transform:rotate(-2deg)}.reservation-note:before,.reservation-note:after{content:"";position:absolute;inset:0;border:2px solid var(--red);border-radius:48% 53% 49% 56%/51% 46% 58% 48%;transform:rotate(2deg)}.reservation-note:after{inset:3px -2px -2px 2px;border-width:1px;opacity:.45;transform:rotate(-3deg)}.reservation-note strong{font-size:14px;letter-spacing:.1em}.reservation-note p{margin:6px 0 0;font:9px/1.65 "PingFang SC",sans-serif}.sight-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px 12px;margin-top:32px}.sight-card img{width:100%;height:172px;object-fit:cover;filter:saturate(.76) sepia(.06);box-shadow:0 10px 22px #644f3812}.sight-card figcaption{position:relative;padding:13px 1px 0}.sight-card figcaption span{position:absolute;right:0;top:15px;color:#b7a68f;font:9px Georgia,serif}.sight-card strong{font-size:17px;font-weight:400;letter-spacing:.05em}.sight-card p{margin:7px 0 0;color:#7a6b59;font-size:10px;line-height:1.65}
.city-map{padding-top:115px}.map-heading{padding-bottom:42px}.map-heading h2{font-size:48px}.map-art{margin:0 -27px;overflow:hidden}.map-art img{width:100%;transform:scale(1.01)}.stay-notes{display:grid;margin-top:28px;border-top:1px solid var(--line)}.stay-notes a{display:grid;grid-template-columns:74px 1fr;gap:5px 12px;padding:19px 0;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}.stay-notes span{grid-row:1/3;align-self:center;color:var(--red);font-size:10px;letter-spacing:.1em}.stay-notes strong{font-size:14px;font-weight:400}.stay-notes small{color:#806f5b;font-size:9px;line-height:1.5}.map-note{margin:30px auto 0;max-width:335px;color:#877761;text-align:center;font-size:10px;line-height:1.8}.contact-strip{padding:48px 30px 110px;max-width:520px;margin:0 auto;text-align:center}.contact-strip p{margin:0 0 14px;color:#87765f;font-size:10px;letter-spacing:.17em}.contact-strip a{display:inline-flex;gap:14px;color:var(--ink);text-decoration:none}.contact-strip a span{font-size:15px}.contact-strip a strong{color:var(--red);font:15px/1 "PingFang SC",sans-serif}
.finale{position:relative;height:112vh;overflow:hidden;background:#790508}.finale img{width:100%;height:100%;object-fit:cover;object-position:center top}.finale-vignette{position:absolute;inset:0;background:linear-gradient(transparent 56%,#2d0002c7 100%)}.finale-copy{position:absolute;left:0;right:0;bottom:max(13vh,92px);color:#f6eadc;text-align:center;text-shadow:0 2px 18px #3a0002}.finale-copy p{margin:0 0 12px;font:14px Georgia,serif;letter-spacing:.22em}.finale-copy h2{margin:0;font-size:43px;font-weight:400;letter-spacing:.2em}.enter{opacity:0;transform:translateY(18px);transition:opacity 1s ease,transform 1s ease}.enter.is-visible{opacity:1;transform:none}
@media(min-width:600px){body{width:520px;margin:0 auto;box-shadow:0 0 90px #000b}.sound{right:calc(50% - 244px)}}@media(max-height:700px){.ticket-content{padding-top:4vh}.ticket-title{margin:3.4vh 0 2.5vh}.ticket-content dl div{min-height:10vh}.ticket-code{height:36px;margin-top:2vh}.ticket-page{inset-bottom:20%}.tear-line{bottom:20%}.ticket-stub{height:20%}}@media(max-width:355px){.sheet-section{padding-left:22px;padding-right:22px}.food-grid{gap:9px}.food-card{min-height:220px}.sight-card img{height:150px}.ticket-content{padding-left:18px;padding-right:18px}.ticket-content dd{font-size:15px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}.enter{opacity:1;transform:none}}

/* v4: tighter flow, fully closed curtain and a symmetrical ticket tear */
.prologue{height:175vh}.opening-poster{filter:brightness(.72) saturate(.88)}
.curtain-half{top:0;bottom:0;width:50.8%;background-size:220% 100%;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}
.curtain-half--left{left:0;transform-origin:left 46%}.curtain-half--right{right:0;transform-origin:right 46%}
.curtain-half i{width:10%;opacity:.58}
.swipe-cue{bottom:max(8vh,52px);gap:14px;animation:cueGlowV4 1.8s ease-in-out infinite}
.swipe-cue span{font-size:26px;font-weight:400;letter-spacing:.12em}
.swipe-cue i{position:relative;width:34px;height:48px;background:none;animation:cueArrowV4 1.45s ease-in-out infinite}
.swipe-cue i:after{content:"";position:absolute;left:50%;top:9px;width:1px;height:34px;background:linear-gradient(#ffe8ce,transparent);transform:translateX(-50%)}
.swipe-cue b{left:50%;top:3px;bottom:auto;width:15px;height:15px;border-width:2px;transform:translateX(-50%) rotate(45deg)}
@keyframes cueGlowV4{0%,100%{opacity:.62}50%{opacity:1}}@keyframes cueArrowV4{0%,100%{transform:translateY(8px);opacity:.45}50%{transform:translateY(-5px);opacity:1}}
.paper-world{margin-top:-6vh}.sheet-section{padding-top:76px;padding-bottom:76px}.invitation{padding-bottom:38px}
.invitation-title{margin:70px auto 62px}.invitation-title h1{margin:22px auto 0;font-size:clamp(25px,7.4vw,38px);letter-spacing:.09em;white-space:nowrap}.invitation-title p{display:none}
.ticket-scene{height:190vh;margin-top:0}.ticket-scene:before{top:-45px;height:70px;background:linear-gradient(transparent,var(--paper) 55%,#f4ede1)}
.ticket-page,.ticket-stub{background:radial-gradient(circle at 20% 10%,#7e60340a 0 1px,transparent 1.5px),radial-gradient(circle at 80% 50%,#7e603408 0 1px,transparent 1.5px),var(--paper);background-size:12px 12px,17px 17px,auto}
.ticket-page{overflow:visible}.ticket-page:after{content:"";position:absolute;left:0;right:0;bottom:-7px;height:12px;background:var(--paper);clip-path:polygon(0 0,2% 72%,4% 18%,6% 76%,8% 22%,10% 78%,12% 20%,14% 74%,16% 18%,18% 78%,20% 22%,22% 74%,24% 18%,26% 78%,28% 20%,30% 76%,32% 18%,34% 78%,36% 22%,38% 74%,40% 18%,42% 78%,44% 20%,46% 76%,48% 18%,50% 78%,52% 22%,54% 74%,56% 18%,58% 78%,60% 20%,62% 76%,64% 18%,66% 78%,68% 22%,70% 74%,72% 18%,74% 78%,76% 20%,78% 76%,80% 18%,82% 78%,84% 22%,86% 74%,88% 18%,90% 78%,92% 20%,94% 76%,96% 18%,98% 78%,100% 0)}
.ticket-content dl .ticket-place{grid-column:1/-1;min-height:12vh;border-right:0}.ticket-content dl .ticket-place dd{font-size:15px}.ticket-number{display:none}
.tear-line i{background:var(--paper)}.ticket-stub:before{background:var(--paper)}
.guide{padding-top:82px;padding-bottom:82px}.eat-guide{padding-top:46px}.food-grid{margin-top:0}.food-card--wide{grid-column:auto;min-height:245px}
.see-guide{padding-top:86px}.museum-feature>img{clip-path:inset(0 round 18px);transform:scale(1.035)}
.reservation-note{right:2px;bottom:24px;width:124px;padding:13px 10px 11px}.reservation-note p{margin-top:5px;font-size:10px}
.sight-card{overflow:hidden}.sight-card img{clip-path:inset(0 round 14px);transform:scale(1.055)}
.city-map{padding-top:82px;padding-bottom:58px}.map-heading{padding-bottom:24px}.map-heading h2{margin-top:0;font-size:46px}.map-heading p{font-size:11px}
.stay-notes{margin-top:18px}.stay-notes a{padding:15px 0}.map-note{display:none}
.contact-strip{padding:38px 30px 82px}.contact-strip a{display:inline-grid;grid-template-columns:auto auto;align-items:baseline;gap:16px}.contact-strip a span,.contact-strip a strong{line-height:1}

/* v5: share card, clearer opening cue and compact reservation labels */
.share-cover-probe{position:fixed;left:-10000px;top:-10000px;width:600px;height:600px;pointer-events:none}
.swipe-cue{gap:18px}.swipe-cue i{width:46px;height:76px}.swipe-cue i:after{top:12px;height:57px;width:2px}.swipe-cue b{top:4px;width:22px;height:22px;border-width:3px}
.invitation-title{margin:42px auto 48px}.invitation-title small{font-size:12px}.invitation-title h1{margin-top:18px}
.reservation-note{right:5px;bottom:28px;width:116px;padding:14px 10px 12px;color:#f8eddd;background:var(--red);border-radius:2px;box-shadow:0 8px 20px #6f171827;transform:rotate(-1.5deg)}
.reservation-note:before,.reservation-note:after{display:none}.reservation-note strong{font-size:14px}.reservation-note p{color:#f8eddd;margin:6px 0 0}
.sight-image{position:relative;height:172px;overflow:hidden;border-radius:14px}.sight-image img{height:100%}.sight-badge{position:absolute;z-index:2;right:10px;top:10px;padding:7px 10px;color:#f8eddd;background:var(--red);font-size:10px;font-weight:400;letter-spacing:.1em;box-shadow:0 6px 16px #5d13152c}
.city-map:before{content:"";position:absolute;left:27px;right:27px;top:0;height:1px;background:var(--line)}

/* v6: fabric deformation, poster hold and five-row food guide */
.prologue{height:240vh}.curtain-filters{position:absolute;pointer-events:none}.curtain-half{filter:url(#fabricWave) brightness(.9) saturate(.96) drop-shadow(0 0 16px #260300b8)}
.curtain-half:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(90deg,#23000038 0 4%,transparent 8% 14%,#ffe6bc1c 17%,transparent 21% 27%,#2a00004a 31% 36%);background-size:118% 100%;mix-blend-mode:soft-light;opacity:.75;transform:scaleX(var(--fold-scale,1));transform-origin:inherit}
.curtain-seam{position:absolute;z-index:7;top:0;bottom:0;left:50%;width:5px;background:linear-gradient(90deg,#3b0908,#6f1c16 47%,#2d0505);box-shadow:0 0 9px #220000cc;transform:translateX(-50%);will-change:opacity,transform}
.vertical-note{top:90px}.invitation-title{margin-top:35px}
.name-lockup{position:relative;display:grid;grid-template-columns:auto auto auto;justify-content:center;align-items:center;column-gap:14px;padding:42px 0}
.name-lockup>span{position:absolute;top:-9px;left:50%;margin:0;padding:0 13px;color:#917e65;background:var(--paper);font-size:16px;line-height:18px;letter-spacing:.24em;white-space:nowrap;transform:translateX(-50%)}
.name-lockup strong{font-size:23px}.ticket-content dl div.ticket-place{border-right:0!important}
.food-rows{display:grid;gap:37px}.food-row{padding-bottom:26px;border-bottom:1px solid var(--line)}.food-row:last-child{padding-bottom:0;border-bottom:0}
.food-row header{display:grid;grid-template-columns:25px 1fr auto;align-items:end;gap:8px;margin:0 1px 13px}.food-row header span{color:var(--red);font:10px/1 Georgia,serif}.food-row h3{margin:0;font-size:18px;font-weight:400;letter-spacing:.06em}.food-row header small{color:#9b876f;font:7px/1 Georgia,serif;letter-spacing:.12em}
.food-strip{display:grid;gap:5px;height:158px}.food-strip--four{grid-template-columns:1.28fr repeat(3,1fr)}.food-strip--three{grid-template-columns:1.28fr repeat(2,1fr)}.food-strip img{width:100%;height:158px;object-fit:cover;border-radius:5px;filter:saturate(.8) sepia(.04) contrast(.96)}.food-strip .food-scene{filter:saturate(.72) sepia(.08) contrast(.94)}
.museum-copy p{max-width:57%}.reservation-note{right:2px;bottom:27px;transform:none}.contact-list{display:grid;gap:13px;justify-content:center}.contact-strip .contact-list a{display:grid;grid-template-columns:58px 1fr;align-items:baseline;gap:16px;text-align:left}

/* v8: the opening cue belongs only to the closed curtain */
.swipe-cue{transition:opacity .28s ease,visibility 0s linear .28s}
.swipe-cue.is-hidden{visibility:hidden;opacity:0!important;animation:none!important;pointer-events:none}
