/* ==== app.wxss ==== */
body{
  background-color:#f8f1e7;
  background-size:calc(188*var(--r)) calc(188*var(--r));
  color:#5b5550;
  font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;
  font-size:calc(27*var(--r));
  line-height:1.75;
  letter-spacing:1px;
}
div,button,input,span{box-sizing:border-box}
button{padding:0;margin:0;background:transparent;border:0;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;border-radius:0;letter-spacing:inherit}
button::after{border:0}
button:not([size=mini]){width:auto;margin-left:0;margin-right:0;padding-left:0;padding-right:0;font-size:inherit;font-weight:inherit;line-height:inherit}
img{display:block}
span{overflow-wrap:break-word}
input{font-family:inherit}
.serif{font-family:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;font-weight:400}
.wf,.wf .serif{font-family:"WeddingSerif","Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif}
.wine{color:#8a3833}
.muted{color:#a39a91}
.en-label{display:block;font-family:"Courier New",Courier,"Courier Prime",monospace;font-weight:700;font-size:calc(23*var(--r));letter-spacing:calc(3*var(--r));color:#8a3833;line-height:1.3}
.cn-label{display:block;font-size:calc(19*var(--r));letter-spacing:calc(6*var(--r));color:#b1a89f;line-height:1.6;margin-top:calc(4*var(--r))}
.page-head{text-align:center;padding:calc(56*var(--r)) calc(40*var(--r)) calc(34*var(--r))}
.script-title{height:calc(66*var(--r));margin:0 auto}
.cn-title{font-size:calc(40*var(--r));font-weight:600;letter-spacing:calc(14*var(--r));text-indent:calc(14*var(--r));color:#3a3531;line-height:1.4;margin-top:calc(18*var(--r))}
.head-sub{font-size:calc(23*var(--r));color:#8b847d;letter-spacing:calc(6*var(--r));text-indent:calc(6*var(--r));margin-top:calc(18*var(--r));line-height:1.8}
.rule{height:1px;background:#d9d1c6;margin:0}
.rule-short{width:calc(96*var(--r));height:1px;background:#c29a91;margin:calc(26*var(--r)) auto}
.frame{position:relative;border:1px solid #c29a91;padding:calc(8*var(--r));margin:0 calc(6*var(--r))}
.frame-in{border:1px solid #dcc5bc;padding:calc(30*var(--r)) calc(26*var(--r))}
.frame .dia{position:absolute;width:calc(11*var(--r));height:calc(11*var(--r));border:1px solid #c29a91;background:#f8f1e7;transform:rotate(45deg)}
.frame .dia.tl{left:calc(-6*var(--r));top:calc(-6*var(--r))}
.frame .dia.tr{right:calc(-6*var(--r));top:calc(-6*var(--r))}
.frame .dia.bl{left:calc(-6*var(--r));bottom:calc(-6*var(--r))}
.frame .dia.br{right:calc(-6*var(--r));bottom:calc(-6*var(--r))}
.photo-frame{background:#fffdf9;padding:calc(12*var(--r));box-shadow:0 calc(10*var(--r)) calc(30*var(--r)) rgba(80,60,40,.14),0 calc(2*var(--r)) calc(6*var(--r)) rgba(80,60,40,.08)}
.info-block{padding:0 calc(44*var(--r))}
.info-line{display:flex;align-items:flex-start;justify-content:space-between;gap:calc(24*var(--r));padding:calc(30*var(--r)) 0 calc(30*var(--r));border-top:1px solid #d9d1c6}
.info-line:last-child{border-bottom:1px solid #d9d1c6}
.info-key{flex:none;width:calc(190*var(--r))}
.info-value{flex:1;min-width:0;text-align:right;color:#3f3a36;font-size:calc(27*var(--r));line-height:1.75}
.info-value .big{font-size:calc(36*var(--r));letter-spacing:calc(2*var(--r));color:#3a3531}
.info-value .big-gap{margin-left:calc(22*var(--r))}
.info-value .sub{display:block;font-size:calc(21*var(--r));color:#8b847d;letter-spacing:1px}
button.primary{display:flex;align-items:center;justify-content:center;gap:calc(12*var(--r));background:#8a3833;color:#f8f1e7;border-radius:calc(6*var(--r));padding:calc(22*var(--r)) calc(26*var(--r));font-size:calc(26*var(--r));letter-spacing:calc(4*var(--r));line-height:1.4}
button.primary img{width:calc(30*var(--r));height:calc(30*var(--r))}
button.outline{display:inline-flex;align-items:center;justify-content:center;border:1px solid #8a3833;border-radius:calc(6*var(--r));color:#8a3833;padding:calc(14*var(--r)) calc(26*var(--r));font-size:calc(23*var(--r));letter-spacing:calc(3*var(--r));line-height:1.4}
button.text-button{font-size:calc(22*var(--r));color:#9a5a54;padding:calc(18*var(--r)) 0;text-align:center;letter-spacing:calc(3*var(--r))}
button.primary.is-pressed,button.outline.is-pressed{opacity:.82}
.body-copy{display:block;color:#6d6660;font-size:calc(24*var(--r));line-height:1.95}
.soft-note{color:#8b847d;font-size:calc(22*var(--r));line-height:1.95;letter-spacing:1px;padding:calc(22*var(--r)) 0;margin:calc(26*var(--r)) 0;border-top:1px dashed #d9d1c6;border-bottom:1px dashed #d9d1c6}
.bullet-title{display:flex;align-items:center;justify-content:center;gap:calc(12*var(--r));color:#8a3833;font-size:calc(25*var(--r));letter-spacing:calc(6*var(--r))}
.bullet-title::before{content:"";width:calc(9*var(--r));height:calc(9*var(--r));border-radius:50%;background:#8a3833}
.step-title{display:block;font-size:calc(27*var(--r));color:#3f3a36;margin-bottom:calc(6*var(--r));letter-spacing:calc(2*var(--r))}
.page-foot{text-align:center;padding:calc(56*var(--r)) 0 calc(20*var(--r))}
.page-foot img{height:calc(60*var(--r));margin:0 auto}
.page-foot .foot-line{font-size:calc(21*var(--r));color:#9a5a54;letter-spacing:calc(6*var(--r));margin-top:calc(10*var(--r))}
.fade-in{animation:fade .4s ease-out}
@keyframes fade{from{opacity:.2;transform:translateY(calc(10*var(--r)))}
to{opacity:1;transform:translateY(0)}
}
.invitation-home-greeting{display:flex;flex-wrap:wrap;align-items:center;align-content:center;justify-content:center;text-align:center;line-height:1.3}
.g-word{font-size:calc(30*var(--r));color:#3f3a36;letter-spacing:calc(6*var(--r))}
.g-name{font-size:calc(40*var(--r));font-weight:600;color:#3f3a36;letter-spacing:calc(5*var(--r));margin:0 calc(10*var(--r)) 0 calc(4*var(--r))}
.invitation-home-greeting.is-long .g-word{font-size:calc(26*var(--r));letter-spacing:calc(4*var(--r))}
.invitation-home-greeting.is-long .g-name{font-size:calc(34*var(--r));letter-spacing:calc(3*var(--r));margin:0 calc(6*var(--r)) 0 calc(2*var(--r))}
.invitation-home-greeting.is-xlong .g-word{font-size:calc(22*var(--r));letter-spacing:calc(2*var(--r))}
.invitation-home-greeting.is-xlong .g-name{font-size:calc(27*var(--r));letter-spacing:1px;margin:0 calc(4*var(--r))}
.page{padding-bottom:calc(calc(140*var(--r)) + env(safe-area-inset-bottom))}
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background-color:rgba(248,241,231,.97);border-top:1px solid #d9d1c6;padding:calc(14*var(--r)) calc(16*var(--r)) calc(calc(10*var(--r)) + env(safe-area-inset-bottom));display:flex;z-index:20}
button.nav-item{width:25%;display:flex;flex-direction:column;align-items:center;gap:calc(4*var(--r));color:#a39a91;font-size:calc(21*var(--r));letter-spacing:calc(3*var(--r));line-height:1.5}
button.nav-item img{width:calc(40*var(--r));height:calc(40*var(--r))}
button.nav-item.active{color:#8a3833}
.nav-dot{height:calc(4*var(--r));width:calc(22*var(--r));background:transparent;margin-top:calc(2*var(--r))}
.active .nav-dot{background:#8a3833}
button.music-toggle{position:fixed;top:calc(22*var(--r));right:calc(24*var(--r));z-index:40;width:calc(68*var(--r));height:calc(68*var(--r));border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid #c29a91;background:rgba(248,241,231,.92);color:#8a3833;box-shadow:0 calc(4*var(--r)) calc(14*var(--r)) rgba(80,60,40,.12)}
button.music-toggle::before{content:"";position:absolute;top:calc(6*var(--r));left:calc(6*var(--r));right:calc(6*var(--r));bottom:calc(6*var(--r));border-radius:50%;border:1px solid #dcc5bc}
.music-note{font-family:Georgia,"Times New Roman",serif;font-size:calc(34*var(--r));line-height:1;transform:translateY(-1px)}
.music-text{display:none}
.music-dot{display:none}
button.music-toggle.is-on .music-note{animation:music-spin 4.8s linear infinite}
button.music-toggle.is-off{color:#b1a89f;border-color:#d9d1c6}
button.music-toggle.is-off .music-note{position:relative}
button.music-toggle.is-off::after{content:"";position:absolute;width:calc(44*var(--r));height:calc(2*var(--r));background:#b1a89f;transform:rotate(-45deg)}
button.music-toggle.is-pressed{background:#efe5d8}
@keyframes music-spin{from{transform:rotate(0)}
to{transform:rotate(360deg)}
}

/* ==== styles/paper.wxss ==== */
body{background-image:url("data:image/jpeg;base64,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")}

/* ==== pages/home/index.wxss ==== */
.home{width:100%;overflow-x:hidden;padding-bottom:calc(40*var(--r))}
.h-hero{text-align:center;padding:calc(88*var(--r)) calc(64*var(--r)) 0}
.h-welcome{width:calc(470*var(--r));margin:0 auto}
.h-motto{margin-top:calc(30*var(--r));font-size:calc(30*var(--r));letter-spacing:calc(14*var(--r));text-indent:calc(14*var(--r));color:#3a3531;line-height:1.6}
.h-dot{margin:0 calc(22*var(--r)) 0 calc(8*var(--r));color:#8a3833}
.h-photo{margin:calc(84*var(--r)) calc(64*var(--r)) 0;padding:calc(12*var(--r))}
.h-photo img{width:100%}
.h-verse{padding:calc(92*var(--r)) calc(56*var(--r)) 0;text-align:center}
.h-line{display:block;font-size:calc(28*var(--r));line-height:2.1;letter-spacing:calc(4*var(--r));color:#3f3a36}
.h-greet{margin:calc(96*var(--r)) calc(104*var(--r)) 0}
.h-greet-in{min-height:calc(120*var(--r));padding:calc(18*var(--r)) calc(16*var(--r));display:flex;align-items:center;justify-content:center}
.h-couple{text-align:center;padding:calc(100*var(--r)) calc(40*var(--r)) 0}
.h-our{height:calc(66*var(--r));margin:0 auto}
.h-title{margin-top:calc(18*var(--r));font-size:calc(38*var(--r));font-weight:600;letter-spacing:calc(18*var(--r));text-indent:calc(18*var(--r));color:#3a3531;line-height:1.5}
.h-names{display:flex;align-items:center;justify-content:center;margin-top:calc(44*var(--r))}
.h-role{font-size:calc(23*var(--r));color:#8b847d;letter-spacing:calc(4*var(--r));margin-right:calc(14*var(--r))}
.h-name{font-size:calc(36*var(--r));font-weight:600;color:#3a3531;letter-spacing:calc(6*var(--r))}
.h-amp{width:calc(46*var(--r));margin:0 calc(24*var(--r)) 0 calc(22*var(--r))}
.h-info{margin:calc(92*var(--r)) calc(64*var(--r)) 0;border-top:1px solid #d9d1c6}
.h-row{display:flex;justify-content:space-between;gap:calc(20*var(--r));padding:calc(34*var(--r)) 0;border-bottom:1px solid #d9d1c6}
.h-key{flex:none;width:calc(170*var(--r))}
.h-key .en-label{font-size:calc(24*var(--r))}
.h-key .cn-label{font-size:calc(21*var(--r))}
.h-val{flex:1;min-width:0;text-align:right}
.h-big{display:block;font-size:calc(34*var(--r));letter-spacing:calc(2*var(--r));color:#3a3531;line-height:1.5}
.h-gap{display:inline-block;width:calc(24*var(--r))}
.h-sub{display:block;margin-top:calc(8*var(--r));font-size:calc(23*var(--r));color:#8b847d;letter-spacing:1px;line-height:1.7}
.h-bar{margin:0 calc(14*var(--r));color:#c9c0b6}
.h-place{display:block;font-size:calc(28*var(--r));line-height:1.85;letter-spacing:calc(2*var(--r));color:#3f3a36}
.h-process{align-items:flex-start}
.h-steps{flex:1;min-width:0}
.h-step{display:flex;align-items:flex-start;padding:calc(6*var(--r)) 0 calc(16*var(--r))}
.h-step:last-child{padding-bottom:0}
.h-icon{flex:none;width:calc(40*var(--r));height:calc(40*var(--r));margin:calc(4*var(--r)) calc(14*var(--r)) 0 calc(-4*var(--r))}
.h-time{flex:none;width:calc(136*var(--r));font-size:calc(27*var(--r));line-height:1.75;color:#3f3a36;letter-spacing:1px;white-space:nowrap}
.h-what{flex:1;min-width:0}
.h-label{display:block;font-size:calc(27*var(--r));line-height:1.75;color:#3f3a36;letter-spacing:calc(2*var(--r))}
.h-note{display:block;font-size:calc(21*var(--r));line-height:1.7;color:#8b847d;letter-spacing:1px;margin-top:calc(2*var(--r))}
.h-closing{padding-top:calc(96*var(--r))}
.h-wish{padding:calc(56*var(--r)) calc(56*var(--r)) 0;text-align:center}
.h-wish .h-line{color:#8a3833;letter-spacing:calc(8*var(--r))}
.h-illustration{width:calc(560*var(--r));margin:calc(96*var(--r)) auto 0}
.h-thanks{height:calc(66*var(--r));margin:calc(18*var(--r)) auto 0}
.h-rsvp{margin:calc(96*var(--r)) calc(52*var(--r)) 0}
.h-rsvp-in{padding:calc(44*var(--r)) calc(40*var(--r)) calc(40*var(--r));text-align:center}
.h-rsvp-script{height:calc(62*var(--r));margin:0 auto}
.h-rsvp-title{margin-top:calc(10*var(--r));font-size:calc(36*var(--r));font-weight:600;letter-spacing:calc(14*var(--r));text-indent:calc(14*var(--r));color:#3a3531}
.h-rsvp-sub{margin-top:calc(14*var(--r));font-size:calc(23*var(--r));line-height:1.8;color:#8b847d;letter-spacing:calc(2*var(--r))}
.h-rsvp-form{margin-top:calc(30*var(--r));text-align:left}
.h-field{display:flex;align-items:center;justify-content:space-between;min-height:calc(96*var(--r));border-bottom:1px solid #d9d1c6}
.h-field-key{flex:none;width:calc(150*var(--r));font-size:calc(27*var(--r));color:#3f3a36;letter-spacing:calc(3*var(--r))}
.h-input{flex:1;height:calc(96*var(--r));font-size:calc(28*var(--r));color:#3a3531;text-align:right;letter-spacing:calc(2*var(--r))}
.h-ph{color:#b9b0a7}
.h-stepper{display:flex;align-items:center}
button.h-step-btn{width:calc(64*var(--r));height:calc(64*var(--r));line-height:calc(60*var(--r));border:1px solid #c29a91;border-radius:50%;color:#8a3833;font-size:calc(34*var(--r));text-align:center}
button.h-step-btn[disabled]{color:#cfc6bc;border-color:#e0d8ce;background:transparent}
.h-count{width:calc(84*var(--r));text-align:center;font-size:calc(34*var(--r));color:#3a3531}
.h-rsvp-hint{margin-top:calc(12*var(--r));font-size:calc(21*var(--r));color:#a39a91;letter-spacing:1px;text-align:right}
.h-choice{display:flex;gap:calc(16*var(--r))}
button.h-choice-btn{margin:0;padding:0 calc(24*var(--r));height:calc(64*var(--r));line-height:calc(62*var(--r));border:1px solid #c29a91;border-radius:calc(32*var(--r));background:transparent;color:#8a3833;font-size:calc(25*var(--r));letter-spacing:calc(2*var(--r))}
button.h-choice-btn.is-on{background:#8a3833;border-color:#8a3833;color:#f8f1e7}
.h-reveal{animation:h-reveal .35s ease-out}
@keyframes h-reveal{from{opacity:0;transform:translateY(calc(-10*var(--r)))}
to{opacity:1;transform:none}
}
button.h-submit{margin-top:calc(36*var(--r));width:100%;font-size:calc(28*var(--r));padding:calc(24*var(--r))}
button.h-submit[disabled]{background:#b98a85;color:#f8f1e7}
.h-rsvp-done{margin-top:calc(30*var(--r))}
.h-rsvp-ok{display:block;font-size:calc(30*var(--r));color:#8a3833;letter-spacing:calc(6*var(--r))}
.h-rsvp-line{display:block;margin-top:calc(10*var(--r));font-size:calc(26*var(--r));color:#5b5550;letter-spacing:calc(2*var(--r));line-height:1.8}
.h-end{text-align:center;padding:calc(56*var(--r)) 0 calc(10*var(--r));font-size:calc(22*var(--r));color:#9a5a54;letter-spacing:calc(8*var(--r))}
.guide-map{margin:calc(44*var(--r)) calc(44*var(--r)) 0}
.live-map{width:100%;height:calc(340*var(--r));display:block}
.guide-actions{padding:calc(34*var(--r)) calc(44*var(--r)) 0}
.section{padding:calc(56*var(--r)) calc(44*var(--r)) 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:calc(18*var(--r));border-bottom:1px solid #d9d1c6;margin-bottom:calc(28*var(--r))}
.section-cn{font-size:calc(30*var(--r));font-weight:600;color:#3a3531;letter-spacing:calc(6*var(--r))}
.route-step{display:flex;gap:calc(26*var(--r));padding-bottom:calc(28*var(--r))}
.step-no{flex:none;width:calc(52*var(--r));font-family:Georgia,"Times New Roman",serif;font-size:calc(30*var(--r));color:#8a3833;line-height:1.5}
button.map-preview{display:block;width:100%;margin-top:calc(10*var(--r));text-align:left}
button.map-preview img{width:100%}
.map-caption{display:flex;justify-content:space-between;padding:calc(16*var(--r)) calc(6*var(--r)) calc(4*var(--r));font-size:calc(23*var(--r));color:#5b5550;letter-spacing:calc(2*var(--r))}
.icon-row{display:flex;gap:calc(26*var(--r));padding:calc(22*var(--r)) 0 calc(24*var(--r));border-bottom:1px solid #e4ddd3}
.icon-row:last-child{border-bottom:0}
.icon-row img{width:calc(44*var(--r));height:calc(44*var(--r));flex:none;margin-top:calc(4*var(--r))}
.nearby{margin-top:calc(8*var(--r))}
.nearby-name{display:block;font-size:calc(30*var(--r));font-weight:600;color:#3a3531;letter-spacing:calc(4*var(--r));margin-bottom:calc(8*var(--r))}
.nearby-actions{display:flex;align-items:center;gap:calc(30*var(--r));margin-top:calc(22*var(--r))}
.nearby-actions button.text-button{padding:calc(14*var(--r)) 0}
button.mum-cover{position:relative;display:block;margin:calc(-6*var(--r)) calc(-6*var(--r)) calc(26*var(--r));padding:0;overflow:hidden;border-radius:calc(4*var(--r))}
button.mum-cover img{width:100%;display:block}
.mum-cover-tag{position:absolute;right:calc(14*var(--r));top:calc(14*var(--r));padding:calc(4*var(--r)) calc(16*var(--r));border-radius:calc(20*var(--r));background:rgba(138,56,51,.88);color:#f8f1e7;font-size:calc(20*var(--r));letter-spacing:calc(2*var(--r))}
.mum-tagline{display:block;margin:calc(2*var(--r)) 0 calc(14*var(--r));font-size:calc(26*var(--r));color:#8a3833;letter-spacing:calc(3*var(--r));line-height:1.7}
button.mum-open{padding:calc(16*var(--r)) calc(34*var(--r))}
.mum-sheet{height:86vh;max-height:86vh;display:flex;flex-direction:column;padding:0 0 calc(26*var(--r));overflow:hidden}
.mum-sheet button.mum-close{position:absolute;right:calc(14*var(--r));top:calc(10*var(--r));z-index:3;width:calc(64*var(--r));height:calc(64*var(--r));line-height:calc(60*var(--r));font-size:calc(44*var(--r));color:#8a3833;background:rgba(248,241,231,.9);border-radius:50%;padding:0}
.mum-scroll{flex:1;height:0;padding:0 calc(36*var(--r));box-sizing:border-box}
.mum-head{text-align:center;padding:calc(44*var(--r)) 0 calc(26*var(--r))}
.mum-head .en-label{font-size:calc(19*var(--r));letter-spacing:calc(5*var(--r))}
.mum-title{margin-top:calc(12*var(--r));font-size:calc(38*var(--r));font-weight:600;letter-spacing:calc(12*var(--r));text-indent:calc(12*var(--r));color:#3a3531}
.mum-slogan{margin-top:calc(16*var(--r))}
.mum-slogan span{display:block;font-size:calc(30*var(--r));line-height:1.75;letter-spacing:calc(6*var(--r));text-indent:calc(6*var(--r));color:#8a3833}
.mum-hero{padding:calc(10*var(--r))}
.mum-hero img,.mum-kinds img{width:100%;display:block}
.mum-edition{margin-top:calc(22*var(--r));text-align:center;font-size:calc(22*var(--r));color:#9a5a54;letter-spacing:calc(2*var(--r))}
.mum-p{margin-top:calc(20*var(--r));font-size:calc(26*var(--r));line-height:1.95;color:#4a4540;letter-spacing:1px;text-align:justify}
.mum-stats{display:flex;flex-wrap:wrap;margin-top:calc(28*var(--r));border-top:1px solid #d9d1c6;border-left:1px solid #d9d1c6}
.mum-stat{width:50%;box-sizing:border-box;padding:calc(22*var(--r)) calc(10*var(--r)) calc(20*var(--r));text-align:center;border-right:1px solid #d9d1c6;border-bottom:1px solid #d9d1c6}
.mum-num{font-size:calc(44*var(--r));font-weight:600;color:#8a3833;line-height:1.3}
.mum-unit{font-size:calc(22*var(--r));font-weight:400;margin-left:calc(4*var(--r))}
.mum-label{display:block;margin-top:calc(6*var(--r));font-size:calc(22*var(--r));color:#6d6660;letter-spacing:calc(2*var(--r))}
.mum-sec{margin-top:calc(46*var(--r));text-align:center}
.mum-sec .en-label{display:block;font-size:calc(19*var(--r));letter-spacing:calc(6*var(--r))}
.mum-sec-cn{display:block;margin-top:calc(6*var(--r));font-size:calc(30*var(--r));font-weight:600;color:#3a3531;letter-spacing:calc(8*var(--r));text-indent:calc(8*var(--r))}
.mum-kinds{margin-top:calc(22*var(--r));padding:calc(10*var(--r))}
.mum-kind-names{display:flex;padding:calc(10*var(--r)) 0 calc(4*var(--r))}
.mum-kind-names span{flex:1;text-align:center;font-size:calc(23*var(--r));color:#8a3833;letter-spacing:calc(3*var(--r))}
.mum-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:calc(14*var(--r));margin-top:calc(22*var(--r))}
.mum-chip{padding:calc(8*var(--r)) calc(22*var(--r));border:1px solid #c29a91;border-radius:calc(30*var(--r));font-size:calc(23*var(--r));color:#8a3833;letter-spacing:calc(2*var(--r));background:#fbf6ee}
.mum-chip.is-more{border-color:transparent;background:transparent;color:#a39a91}
.mum-rows{margin-top:calc(30*var(--r));border-top:1px solid #d9d1c6}
.mum-row{display:flex;padding:calc(18*var(--r)) 0;border-bottom:1px solid #d9d1c6;font-size:calc(25*var(--r))}
.mum-row-key{flex:none;width:calc(96*var(--r));color:#9a5a54;letter-spacing:calc(4*var(--r))}
.mum-row-val{flex:1;color:#3f3a36}
.mum-note{margin:calc(22*var(--r)) 0 calc(36*var(--r));font-size:calc(21*var(--r));line-height:1.8;color:#a39a91}
.mum-actions{display:flex;gap:calc(20*var(--r));padding:calc(20*var(--r)) calc(36*var(--r)) 0;border-top:1px solid #d9d1c6}
.mum-actions button.primary,.mum-actions button.outline{flex:1;margin:0;display:flex;align-items:center;justify-content:center;box-sizing:border-box;height:calc(88*var(--r));font-size:calc(26*var(--r));padding:0}
.contact-block{margin-top:calc(56*var(--r))}
button.contact-line{display:flex;width:100%;align-items:center;justify-content:space-between;padding:calc(30*var(--r)) 0;border-top:1px solid #d9d1c6;border-bottom:1px solid #d9d1c6;text-align:left}
.contact-value{display:flex;align-items:center;gap:calc(12*var(--r));color:#8a3833;font-size:calc(26*var(--r));letter-spacing:calc(3*var(--r))}
.contact-value img{width:calc(32*var(--r));height:calc(32*var(--r))}
.hall-tabs{display:flex;margin:0 calc(44*var(--r));border-bottom:1px solid #d9d1c6}
button.hall-tab{width:50%;padding:calc(12*var(--r)) calc(8*var(--r)) calc(18*var(--r));border-bottom:calc(3*var(--r)) solid transparent;margin-bottom:-1px;text-align:center;color:#a39a91}
.hall-floor{display:block;font-family:"Courier New",Courier,monospace;font-weight:700;font-size:calc(19*var(--r));letter-spacing:calc(4*var(--r))}
.hall-name{display:block;font-size:calc(30*var(--r));letter-spacing:calc(6*var(--r))}
button.hall-tab.selected{border-bottom-color:#8a3833;color:#8a3833}
button.hall-tab.selected .hall-name{font-weight:600}
.seat-wrap{padding:calc(36*var(--r)) calc(44*var(--r)) 0}
.seating-heading{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:calc(22*var(--r))}
.seat-hall-name{font-size:calc(34*var(--r));font-weight:600;color:#3a3531;letter-spacing:calc(4*var(--r))}
.table-search{display:flex;align-items:center;border-bottom:1px solid #8a3833}
.table-search input{flex:1;width:0;height:calc(78*var(--r));padding:0 calc(6*var(--r));font-size:calc(27*var(--r));color:#3a3531;letter-spacing:calc(2*var(--r))}
.search-ph{color:#b9b0a7;letter-spacing:calc(2*var(--r))}
.table-search button{padding:calc(12*var(--r)) calc(26*var(--r));background:#8a3833;color:#f8f1e7;border-radius:calc(4*var(--r));font-size:calc(24*var(--r));letter-spacing:calc(4*var(--r))}
.table-message{font-size:calc(22*var(--r));color:#8b847d;line-height:1.7;min-height:calc(62*var(--r));padding:calc(16*var(--r)) 0 calc(14*var(--r));letter-spacing:1px}
.table-message.found{color:#8a3833}
.plan-frame{padding:calc(10*var(--r))}
.floorplan{position:relative;width:100%}
.floorplan-image{position:absolute;left:0;top:0;width:100%;height:100%}
button.table-hit{position:absolute;border-radius:50%;z-index:1;display:flex;align-items:center;justify-content:center;font:calc(26*var(--r)) Georgia,serif}
.floorplan::after{content:'';position:absolute;left:0;top:0;right:0;bottom:0;background:rgba(24,12,8,0);transition:background .3s;pointer-events:none;z-index:2}
.floorplan.has-pick::after{background:rgba(24,12,8,.5)}
button.table-hit.highlight{z-index:5;overflow:visible;background:radial-gradient(circle at 40% 35%,#fff3c4 0%,#ffd766 45%,#f0ad1f 100%);border:calc(5*var(--r)) solid #fff;box-shadow:0 0 0 calc(6*var(--r)) rgba(255,214,102,.7),0 0 calc(40*var(--r)) calc(14*var(--r)) rgba(255,205,80,.85);animation:hit-pop .45s ease-out}
.hit-num{position:relative;z-index:2;font:bold calc(34*var(--r)) Georgia,serif;color:#7a1f1c}
.hit-ring{position:absolute;left:calc(-5*var(--r));top:calc(-5*var(--r));right:calc(-5*var(--r));bottom:calc(-5*var(--r));border:calc(6*var(--r)) solid #ffd766;border-radius:50%;animation:hit-ring 1.6s ease-out infinite;pointer-events:none}
.hit-ring.r2{animation-delay:.8s}
.hit-tag{position:absolute;left:50%;bottom:100%;margin-bottom:calc(22*var(--r));transform:translateX(-50%);white-space:nowrap;padding:calc(8*var(--r)) calc(20*var(--r));border-radius:calc(8*var(--r));background:#fff;color:#8a3833;font-size:calc(24*var(--r));font-weight:600;letter-spacing:calc(2*var(--r));box-shadow:0 calc(6*var(--r)) calc(18*var(--r)) rgba(0,0,0,.35);z-index:3}
.hit-tag::after{content:'';position:absolute;left:50%;top:100%;margin-left:calc(-10*var(--r));border:calc(10*var(--r)) solid transparent;border-top-color:#fff}
.hit-tag.below{bottom:auto;top:100%;margin:calc(22*var(--r)) 0 0}
.hit-tag.below::after{top:auto;bottom:100%;border-top-color:transparent;border-bottom-color:#fff}
@keyframes hit-ring{from{transform:scale(1);opacity:1}
to{transform:scale(2.1);opacity:0}
}
@keyframes hit-pop{0%{transform:scale(.6)}
70%{transform:scale(1.15)}
100%{transform:scale(1)}
}
.plan-legend{display:flex;align-items:center;gap:calc(20*var(--r));font-size:calc(20*var(--r));color:#8b847d;flex-wrap:wrap;padding:calc(14*var(--r)) calc(2*var(--r)) 0;letter-spacing:1px}
.plan-legend button.text-button{margin-left:auto;font-size:calc(21*var(--r));padding:calc(8*var(--r)) 0}
.legend-dot{display:inline-block;width:calc(14*var(--r));height:calc(14*var(--r));border:1px solid #9a5a54;border-radius:50%;vertical-align:middle}
.legend-dot.active{background:#ffd766;border-color:#f0ad1f;box-shadow:0 0 0 calc(3*var(--r)) rgba(255,214,102,.5)}
.modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(58,53,49,.45);z-index:50;display:flex;align-items:flex-end;justify-content:center;padding:calc(24*var(--r)) calc(20*var(--r)) calc(calc(24*var(--r)) + env(safe-area-inset-bottom))}
.modal-sheet{position:relative;background:#f8f1e7;border:1px solid #c29a91;border-radius:calc(8*var(--r));width:100%;max-height:88vh;padding:calc(34*var(--r)) calc(34*var(--r)) calc(30*var(--r))}
.sheet-heading{text-align:center;padding-bottom:calc(22*var(--r));border-bottom:1px solid #d9d1c6}
.sheet-heading .script-title{height:calc(56*var(--r))}
.sheet-heading .cn-title{font-size:calc(34*var(--r))}
button.close{position:absolute;top:calc(18*var(--r));right:calc(18*var(--r));width:calc(56*var(--r));height:calc(56*var(--r));font-size:calc(40*var(--r));line-height:calc(52*var(--r));color:#9a5a54}
.sheet-scroll{max-height:56vh}
.timeline{padding:calc(26*var(--r)) 0 calc(10*var(--r))}
.timeline-event{display:flex;gap:calc(22*var(--r));padding:calc(16*var(--r)) 0;border-bottom:1px solid #e4ddd3}
.timeline-time{width:calc(130*var(--r));flex:none;font-size:calc(27*var(--r));color:#8a3833;letter-spacing:1px}
.timeline-body{flex:1;min-width:0}
.modal-sheet button.primary{margin-top:calc(22*var(--r))}
button.studio-toggle{position:fixed;top:calc(22*var(--r));left:calc(24*var(--r));z-index:40;width:calc(68*var(--r));height:calc(68*var(--r));border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid #dcc5bc;background:rgba(248,241,231,.9);color:#b98a85;font-size:calc(30*var(--r));line-height:1;box-shadow:0 calc(4*var(--r)) calc(14*var(--r)) rgba(80,60,40,.10)}
button.studio-toggle.is-pressed{background:#efe5d8;color:#8a3833}
.arrive-sub{margin:calc(-8*var(--r)) 0 calc(26*var(--r));font-size:calc(23*var(--r));color:#8b847d;letter-spacing:calc(2*var(--r))}
button.route-card{display:block;width:100%;margin-bottom:calc(26*var(--r));padding:calc(30*var(--r)) calc(30*var(--r)) calc(26*var(--r));border-radius:calc(14*var(--r));text-align:left;color:#fbf3e8;background:linear-gradient(135deg,#9b4640 0%,#8a3833 55%,#74302b 100%);box-shadow:0 calc(12*var(--r)) calc(30*var(--r)) rgba(138,56,51,.28);position:relative;overflow:hidden}
button.route-card::before{content:"";position:absolute;right:calc(-60*var(--r));top:calc(-60*var(--r));width:calc(220*var(--r));height:calc(220*var(--r));border-radius:50%;border:1px solid rgba(251,243,232,.18)}
button.route-card.is-pressed{transform:scale(.985);box-shadow:0 calc(6*var(--r)) calc(16*var(--r)) rgba(138,56,51,.25)}
.rc-top{display:flex;align-items:center}
.rc-badge{flex:none;width:calc(76*var(--r));height:calc(76*var(--r));border-radius:50%;border:1px solid rgba(251,243,232,.55);display:flex;align-items:center;justify-content:center}
.rc-badge img{width:calc(44*var(--r));height:calc(44*var(--r))}
.rc-head{flex:1;min-width:0;margin-left:calc(22*var(--r))}
.rc-kicker{display:block;font-family:"Courier New",Courier,monospace;font-weight:700;font-size:calc(20*var(--r));letter-spacing:calc(4*var(--r));color:rgba(251,243,232,.72)}
.rc-name{display:block;margin-top:calc(4*var(--r));font-size:calc(34*var(--r));font-weight:600;letter-spacing:calc(4*var(--r));line-height:1.4}
.rc-time{flex:none;text-align:right;line-height:1}
.rc-big{font-family:Georgia,"Times New Roman",serif;font-size:calc(60*var(--r));font-weight:600}
.rc-unit{font-size:calc(22*var(--r));margin-left:calc(6*var(--r));color:rgba(251,243,232,.8)}
.rc-track{position:relative;height:calc(44*var(--r));margin:calc(30*var(--r)) calc(8*var(--r)) 0}
.rc-dot{position:absolute;left:0;top:calc(14*var(--r));width:calc(16*var(--r));height:calc(16*var(--r));border-radius:50%;background:#fbf3e8}
.rc-line{position:absolute;left:calc(14*var(--r));right:calc(20*var(--r));top:calc(21*var(--r));border-top:calc(3*var(--r)) dashed rgba(251,243,232,.7)}
.rc-pin{position:absolute;right:0;top:calc(8*var(--r));width:calc(24*var(--r));height:calc(24*var(--r));border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:#fbf3e8}
.rc-car{position:absolute;top:0;left:0;width:calc(44*var(--r));height:calc(44*var(--r));animation:rc-drive 3.6s ease-in-out infinite}
@keyframes rc-drive{0%{left:0;opacity:0}
12%{opacity:1}
80%{opacity:1}
100%{left:calc(100% - calc(64*var(--r)));opacity:0}
}
.rc-ends{display:flex;justify-content:space-between;margin-top:calc(10*var(--r));font-size:calc(21*var(--r));color:rgba(251,243,232,.82);letter-spacing:1px}
.rc-cta{margin-top:calc(24*var(--r));padding-top:calc(20*var(--r));border-top:1px solid rgba(251,243,232,.25);font-size:calc(27*var(--r));letter-spacing:calc(4*var(--r));display:flex;justify-content:space-between;align-items:center}
.rc-arrow{font-size:calc(34*var(--r));animation:rc-nudge 1.4s ease-in-out infinite}
@keyframes rc-nudge{0%,100%{transform:translateX(0)}
50%{transform:translateX(calc(10*var(--r)))}
}
.h-privacy{margin-top:calc(22*var(--r));font-size:calc(20*var(--r));line-height:1.8;color:#a39a91;letter-spacing:1px;text-align:center}

/* ==== album/pages/index.wxss ==== */
.album-page{padding:0 0 calc(calc(200*var(--r)) + env(safe-area-inset-bottom));overflow-x:hidden}
.album-page img{pointer-events:none}
.a-head{text-align:center;padding:calc(96*var(--r)) calc(40*var(--r)) 0}
.a-head .cn-title{font-size:calc(42*var(--r))}
.a-head .head-sub{font-size:calc(25*var(--r))}
.a-cover{margin:calc(64*var(--r)) calc(76*var(--r)) 0;padding:calc(14*var(--r))}
.a-cover img{width:100%}
.a-cover-cap{text-align:center;margin-top:calc(34*var(--r))}
.a-cover-cap .en-label{font-size:calc(22*var(--r));letter-spacing:calc(6*var(--r))}
.a-cover-names{display:block;margin-top:calc(12*var(--r));font-size:calc(34*var(--r));font-weight:600;letter-spacing:calc(10*var(--r));color:#3a3531}
.a-chapter{text-align:center;padding:calc(128*var(--r)) calc(56*var(--r)) 0}
.a-chapter .en-label{font-size:calc(21*var(--r));letter-spacing:calc(8*var(--r))}
.a-script{height:calc(64*var(--r));margin:calc(22*var(--r)) auto 0}
.a-title{margin-top:calc(12*var(--r));font-size:calc(40*var(--r));font-weight:600;letter-spacing:calc(16*var(--r));text-indent:calc(16*var(--r));color:#3a3531;line-height:1.5}
.a-chapter .rule-short{margin:calc(28*var(--r)) auto calc(30*var(--r))}
.a-verse span{display:block;font-size:calc(28*var(--r));line-height:2.1;letter-spacing:calc(4*var(--r));color:#3f3a36;text-align:center}
.a-side{display:flex;align-items:center;justify-content:center;gap:calc(34*var(--r));margin-top:calc(56*var(--r));padding:0 calc(48*var(--r))}
.a-side-photo{width:calc(500*var(--r));padding:calc(12*var(--r));flex:none}
.a-side-photo img{width:100%}
.a-vertical{writing-mode:vertical-rl;font-size:calc(30*var(--r));letter-spacing:calc(14*var(--r));color:#8a3833;line-height:1.6}
.a-v-dot{margin:calc(12*var(--r)) 0}
.a-collage{position:relative;height:calc(1080*var(--r));margin-top:calc(56*var(--r))}
.a-polaroid{position:absolute;padding:calc(12*var(--r)) calc(12*var(--r)) 0}
.a-polaroid img{width:100%}
.a-pol-cap{display:block;text-align:center;font-size:calc(22*var(--r));color:#6d6660;letter-spacing:calc(2*var(--r));padding:calc(16*var(--r)) calc(6*var(--r)) calc(20*var(--r));line-height:1.6}
.a-pol-left{left:calc(52*var(--r));top:0;width:calc(380*var(--r));transform:rotate(-3deg);z-index:1}
.a-pol-right{right:calc(44*var(--r));top:calc(640*var(--r));width:calc(470*var(--r));transform:rotate(2.5deg);z-index:2}
.a-wide{margin-top:calc(56*var(--r));padding:0 0}
.a-wide img{width:100%}
.a-caption-line{text-align:center;margin-top:calc(26*var(--r));font-size:calc(24*var(--r));letter-spacing:calc(10*var(--r));text-indent:calc(10*var(--r));color:#8a3833}
.a-pair{display:flex;align-items:flex-start;justify-content:center;gap:calc(26*var(--r));padding:0 calc(44*var(--r));margin-top:calc(26*var(--r))}
.a-pair-item{width:calc(318*var(--r));padding:calc(10*var(--r))}
.a-pair-item img{width:100%}
.a-pair-low{margin-top:calc(90*var(--r))}
.a-vow{text-align:center;padding:calc(64*var(--r)) calc(56*var(--r)) 0}
.a-vow-big{display:block;font-size:calc(52*var(--r));font-weight:600;letter-spacing:calc(22*var(--r));text-indent:calc(22*var(--r));color:#8a3833;margin-bottom:calc(26*var(--r))}
.a-stack{position:relative;margin-top:calc(26*var(--r));padding:0 calc(40*var(--r))}
.a-stack-photo{padding:calc(12*var(--r))}
.a-stack-photo img{width:100%}
.a-stack-card{position:relative;margin:calc(-48*var(--r)) calc(70*var(--r)) 0;background:#f8f1e7;z-index:2}
.a-stack-card .frame-in{padding:calc(34*var(--r)) calc(20*var(--r))}
.a-ending{margin:calc(128*var(--r)) calc(76*var(--r)) 0;padding:calc(14*var(--r))}
.a-ending img{width:100%}
.a-last{padding-top:calc(64*var(--r))}
.a-thanks{height:calc(66*var(--r));margin:calc(40*var(--r)) auto 0}
.a-last .foot-line{font-size:calc(23*var(--r));color:#9a5a54;letter-spacing:calc(8*var(--r));margin-top:calc(12*var(--r))}
.dm-layer{position:fixed;left:0;right:0;top:calc(150*var(--r));height:calc(320*var(--r));overflow:hidden;pointer-events:none;z-index:30}
.dm{position:absolute;left:0;white-space:nowrap;padding:calc(10*var(--r)) calc(26*var(--r));border-radius:calc(40*var(--r));background:rgba(255,251,245,.9);border:1px solid rgba(194,154,145,.7);box-shadow:0 calc(4*var(--r)) calc(14*var(--r)) rgba(80,60,40,.12);color:#5b5550;font-size:calc(26*var(--r));letter-spacing:1px;line-height:1.5;transform:translateX(calc(760*var(--r)));animation-name:dm-move;animation-timing-function:linear;animation-fill-mode:forwards}
.dm-name{color:#8a3833;margin-right:calc(12*var(--r))}
@keyframes dm-move{from{transform:translateX(calc(760*var(--r)))}
to{transform:translateX(-100%)}
}
button.dm-toggle{position:fixed;top:calc(22*var(--r));left:calc(24*var(--r));z-index:40;width:calc(68*var(--r));height:calc(68*var(--r));border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid #c29a91;background:rgba(248,241,231,.92);color:#8a3833;font-size:calc(28*var(--r));box-shadow:0 calc(4*var(--r)) calc(14*var(--r)) rgba(80,60,40,.12)}
button.dm-toggle.is-off{color:#b1a89f;border-color:#d9d1c6}
button.dm-toggle.is-pressed{background:#efe5d8}
button.album-back{position:fixed;bottom:calc(calc(26*var(--r)) + env(safe-area-inset-bottom));left:calc(170*var(--r));right:calc(170*var(--r));background:#8a3833;color:#f8f1e7;border-radius:calc(6*var(--r));box-shadow:0 calc(8*var(--r)) calc(22*var(--r)) rgba(80,40,30,.22);padding:calc(20*var(--r)) calc(10*var(--r));font-size:calc(25*var(--r));letter-spacing:calc(4*var(--r));z-index:10}
button.album-back.is-pressed{opacity:.85}

/* ==== pages/admin/index.wxss ==== */
.admin-page{min-height:100vh;padding-bottom:calc(60*var(--r))}
.admin-section{padding:calc(40*var(--r)) calc(44*var(--r)) 0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;padding-bottom:calc(18*var(--r));border-bottom:1px solid #d9d1c6;margin-bottom:calc(24*var(--r))}
.section-cn{font-size:calc(30*var(--r));font-weight:600;color:#3a3531;letter-spacing:calc(6*var(--r))}
.admin-intro{font-size:calc(22*var(--r));line-height:1.9;color:#8b847d;margin-bottom:calc(22*var(--r));letter-spacing:1px}
.field-line{border-bottom:1px solid #8a3833}
.guest-search{width:100%;height:calc(78*var(--r));padding:0 calc(4*var(--r));font-size:calc(27*var(--r));color:#3a3531;letter-spacing:calc(2*var(--r))}
.field-ph{color:#b9b0a7}
.guest-picker-row{display:flex;align-items:center;gap:calc(16*var(--r));margin-top:calc(22*var(--r))}
.guest-picker{flex:1;min-width:0}
.guest-picker-button{height:calc(72*var(--r));line-height:calc(72*var(--r));border:1px solid #d9d1c6;border-radius:calc(4*var(--r));padding:0 calc(18*var(--r));color:#6d6660;font-size:calc(23*var(--r));letter-spacing:calc(2*var(--r));background:rgba(255,253,249,.5)}
.guest-picker-button span{float:right;font-size:calc(30*var(--r));color:#9a5a54}
button.guest-generate{height:calc(72*var(--r));line-height:calc(72*var(--r));background:#8a3833;color:#f8f1e7;border-radius:calc(4*var(--r));padding:0 calc(24*var(--r));font-size:calc(23*var(--r));letter-spacing:calc(3*var(--r));white-space:nowrap}
.guest-list{margin-top:calc(26*var(--r))}
.guest-list-head{display:flex;justify-content:space-between;color:#a39a91;font-size:calc(20*var(--r));letter-spacing:1px;padding-bottom:calc(10*var(--r));border-bottom:1px solid #d9d1c6}
.guest-row{display:flex;align-items:center;border-bottom:1px solid #e4ddd3;padding:calc(8*var(--r)) 0}
button.guest-name{flex:1;min-width:0;text-align:left;padding:calc(12*var(--r)) calc(10*var(--r));color:#3f3a36;font-size:calc(26*var(--r));letter-spacing:calc(2*var(--r));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
button.guest-name span{color:#a39a91;font-size:calc(20*var(--r));letter-spacing:1px}
button.guest-name.chosen{color:#8a3833;font-weight:600;background:rgba(138,56,51,.06)}
button.guest-copy{flex:none;border:1px solid #c29a91;color:#8a3833;border-radius:calc(4*var(--r));padding:calc(8*var(--r)) calc(16*var(--r));font-size:calc(20*var(--r));letter-spacing:calc(2*var(--r));line-height:1.4;margin-left:calc(12*var(--r))}
.selected-link{display:flex;align-items:center;gap:calc(18*var(--r));margin-top:calc(26*var(--r));padding:calc(14*var(--r)) 0;border-top:1px dashed #d9d1c6;border-bottom:1px dashed #d9d1c6}
.path-text{flex:1;min-width:0;font-size:calc(19*var(--r));color:#8b847d;word-break:break-all;line-height:1.6}
button.admin-wide{display:flex;width:100%;margin-top:calc(20*var(--r))}
.admin-grid{display:flex;flex-wrap:wrap;margin-right:calc(-24*var(--r))}
.admin-grid label{display:block;width:50%;padding-right:calc(24*var(--r));margin-bottom:calc(22*var(--r));font-size:calc(20*var(--r));letter-spacing:calc(4*var(--r));color:#a39a91;line-height:1.4}
.admin-grid label.wide{width:100%}
.admin-grid input{width:100%;height:calc(64*var(--r));border-bottom:1px solid #d9d1c6;padding:0 calc(2*var(--r));margin-top:calc(4*var(--r));color:#3a3531;font-size:calc(26*var(--r));letter-spacing:1px}
.admin-actions{display:flex;gap:calc(18*var(--r));margin-top:calc(12*var(--r))}
.admin-actions button.primary,.admin-actions button.outline{flex:1;display:flex}
button.admin-reset{display:block;margin:calc(10*var(--r)) auto 0}
.preview-paper{padding:calc(34*var(--r)) calc(18*var(--r)) calc(8*var(--r))}
.preview-greet{width:calc(542*var(--r));margin:0 auto}
.preview-greet-in{min-height:calc(120*var(--r));padding:calc(18*var(--r)) calc(16*var(--r));display:flex;align-items:center;justify-content:center}

/* ==== route/pages/index.wxss ==== */
.route-page{padding:calc(40*var(--r)) calc(44*var(--r)) calc(calc(60*var(--r)) + env(safe-area-inset-bottom))}
.r-head{text-align:center;padding-bottom:calc(30*var(--r))}
.r-title{margin-top:calc(10*var(--r));font-size:calc(34*var(--r));font-weight:600;color:#3a3531;letter-spacing:calc(3*var(--r));line-height:1.6}
.r-arrow{margin:0 calc(14*var(--r));color:#8a3833}
.r-meta{margin-top:calc(12*var(--r));font-size:calc(26*var(--r));color:#5b5550;letter-spacing:calc(2*var(--r))}
.r-num{color:#8a3833;font-size:calc(32*var(--r));margin:0 calc(4*var(--r))}
.r-error{color:#9a5a54;font-size:calc(24*var(--r));line-height:1.8}
.r-map{padding:calc(10*var(--r))}
.r-map-inner{width:100%;height:calc(760*var(--r));display:block}
.r-actions{padding-top:calc(36*var(--r))}
.r-tip{font-size:calc(22*var(--r));color:#8b847d;line-height:1.8;letter-spacing:1px;text-align:center;margin-top:calc(18*var(--r))}
