/* Layout and motion adapted from the Neven Studio reference in README.txt. */
:root{--cl:url("art/passport-scene.jpg");--cov:url("art/passport-front.jpg");--pg:url("art/passport-insert.jpg");--bk:url("art/back-cover.jpg");--paper:url("art/paper.jpg");
 --nv:#5B2F33;--nv2:#7A4248;--ink:#3A2326;--soft:#6B4A4C;--au:#A8823F;--au2:#C9A35C;--cr:#FBF7EF;
 --gold:linear-gradient(100deg,#6E4F1C,#9C7835 30%,#C9A35C 48%,#9C7835 66%,#6E4F1C);
 --serif:'Cormorant Garamond',Garamond,'Times New Roman',serif;--script:'Pinyon Script','Snell Roundhand',cursive;--sans:'Montserrat','Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html{background:#EAD8CC;overflow-x:clip}
html.lock,html.lock body{overflow:hidden;height:100%}
body{font-family:var(--serif);font-weight:600;color:var(--ink);font-size:19px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:clip;font-variant-numeric:lining-nums}
main{background:#EAD8CC var(--paper) center top/100% auto repeat-y;overflow-x:clip}
.w{width:min(100%,480px);margin:0 auto}
section.s{padding:84px 22px;text-align:center;position:relative}

/* Passport opener */
#cover{position:fixed;inset:0;z-index:10;background:#3a201c var(--cl) center/cover no-repeat;overflow:hidden;cursor:pointer;transition:opacity 1s}
#cover::before{content:"";position:absolute;inset:0;background:inherit;filter:blur(16px) brightness(.9);transform:scale(1.1)}
.stx{position:absolute;inset:0;overflow:hidden}
.stg{position:absolute;left:0;top:0;width:941px;height:1672px;transform-origin:0 0;transform:translate(var(--x,0px),var(--y,0px)) scale(var(--k,.4))}
.wr{position:absolute;inset:0;transform-origin:0 0;transition:transform 2.2s cubic-bezier(.45,.05,.2,1)}
.wr .bgc{position:absolute;left:0;top:0;width:941px;height:1672px;background:var(--cl) 0 0/941px 1672px}
.pln{position:absolute;left:0;top:0;width:640px;height:1000px;transform-origin:0 0;transform:matrix3d(0.9861623882,-0.178662208,0,-1.802711278e-06,0.1327261321,0.8815985723,0,-5.920103836e-05,0,0,1,0,110,412,0,1);transform-style:preserve-3d}
.pln .pg{position:absolute;inset:0;background:var(--pg) 0 0/100% 100%}
.pln .pg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(40,15,10,.55),rgba(40,15,10,.15) 30%,transparent 60%);transition:opacity 1.8s ease}
.pln .cv{position:absolute;inset:0;transform-origin:0 50%;transform-style:preserve-3d;transform:perspective(1700px) rotateY(0deg);transition:transform 2.1s cubic-bezier(.55,.05,.25,1)}
.pln .cv>span{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.pln .cv .f{background:var(--cov) 0 0/100% 100%}
.pln .cv .f::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 35%,rgba(255,235,205,.55) 48%,transparent 60%) -160% 0/260% 100% no-repeat;mix-blend-mode:screen}
#cover.s1 .cv .f::before{animation:shn 1.3s ease .15s forwards}
@keyframes shn{to{background-position:160% 0}}
.pln .cv .f::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,240,225,0),rgba(40,15,10,.35));opacity:0;transition:opacity 2.1s}
.pln .cv .b{background:var(--bk) 0 0/100% 100%;transform:rotateY(180deg)}
.pln .cv .b::after{content:"";position:absolute;inset:0;background:rgba(40,15,10,.45);transition:opacity 2s ease .4s}
.gl{position:absolute;left:494px;top:852px;width:380px;height:380px;margin:-190px 0 0 -190px;border-radius:50%;background:radial-gradient(circle,rgba(255,236,205,.95) 0%,rgba(240,190,150,.5) 28%,rgba(240,190,150,0) 62%);mix-blend-mode:screen;opacity:0;transform:scale(.5);transition:opacity .8s,transform 1.1s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.ring{position:absolute;left:494px;top:852px;width:190px;height:190px;margin:-95px 0 0 -95px;border-radius:50%;animation:ring 2.6s ease-out infinite;pointer-events:none}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(255,220,190,.7)}75%,100%{box-shadow:0 0 0 60px rgba(255,220,190,0)}}
.ehint{position:absolute;left:0;right:0;bottom:max(6svh,34px);z-index:12;text-align:center;color:#FFF1E6;font:600 12.5px/1 var(--sans);letter-spacing:.34em;padding-left:.34em;text-transform:uppercase;text-shadow:0 1px 6px rgba(0,0,0,.6);transition:opacity .5s}
.ehint b{display:inline-block;font-weight:600;animation:br 3s ease-in-out infinite}
@keyframes br{0%,100%{opacity:.55}50%{opacity:1}}
#cover.s1 .gl{opacity:1;transform:scale(1)}
#cover.s1 .ring,#cover.s1 .ehint{opacity:0;animation:none}
#cover.s2 .gl{opacity:0;transition-duration:1.2s}
#cover.s3 .cv{transform:perspective(1700px) rotateY(-178deg)}
#cover.s3 .cv .f::after{opacity:1}
#cover.s3 .cv .b::after{opacity:0}
#cover.s3 .pg::after{opacity:0}
.wf{position:fixed;inset:0;z-index:11;background:radial-gradient(circle at 50% 40%,#fff,#FFFBF8 60%,#F8ECE6);opacity:0;pointer-events:none;transition:opacity .7s}
.wf.on{opacity:1}.wf.off{opacity:0;transition:opacity 1.3s}

.wide .wr{-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
/* Section headings and reveals */
.rv{opacity:0;transform:translateY(20px);filter:blur(5px);transition:opacity 1.1s ease var(--d,0s),transform 1.3s cubic-bezier(.2,.7,.2,1) var(--d,0s),filter 1.1s ease var(--d,0s)}
.rv.in{opacity:1;transform:none;filter:none}
.k{font:600 12px/1.4 var(--sans);letter-spacing:.38em;padding-left:.38em;text-transform:uppercase;color:var(--au)}
.ttl{font-size:clamp(32px,9vw,40px);font-weight:600;letter-spacing:.05em;color:var(--nv);line-height:1.15;margin-top:8px}
.ttl em{font-family:var(--script);font-style:normal;font-weight:400;font-size:1.3em;filter:drop-shadow(0 0 .3px #6E4F1C);letter-spacing:0;background:var(--gold);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;padding:0 .12em}
.tx{font-style:italic;font-size:20.5px;line-height:1.55;color:var(--ink)}
.route{display:block;width:220px;height:40px;margin:16px auto}
.route path{fill:none;stroke:var(--au);stroke-width:1.3;stroke-dasharray:4 5;stroke-linecap:round}
.route .pl{fill:var(--au);stroke:none}
.gtx{background:var(--gold) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}

/* hero */
.hero{padding-top:64px}
.cmp{width:min(46vw,190px);aspect-ratio:1;margin:0 auto}
.cmp svg{width:100%;height:100%;overflow:visible}
.cmp .c1,.cmp .c2,.cmp .tick{fill:none;stroke:var(--au);stroke-linecap:round}
.cmp .c1{stroke-width:1.3;stroke-dasharray:700;stroke-dashoffset:700;transition:stroke-dashoffset 2.2s cubic-bezier(.6,0,.2,1)}
.cmp .c2{stroke-width:.8;stroke-dasharray:600;stroke-dashoffset:600;transition:stroke-dashoffset 2.2s cubic-bezier(.6,0,.2,1) .3s;opacity:.7}
.cmp .tick{stroke-width:1;opacity:0;transition:opacity 1s 1.2s}
.cmp .star{fill:url(#gg);transform-origin:100px 100px;transform:scale(0) rotate(-90deg);transition:transform 1.6s cubic-bezier(.2,.9,.25,1.2) .6s}
.cmp .ndl{transform-origin:100px 100px;transform:rotate(200deg)}
.cmp .ndl path{fill:var(--nv)}
.cmp .ndl .n2{fill:url(#gg)}
.cmp text{font:700 12px var(--sans);fill:var(--nv);opacity:0;transition:opacity 1s 1.4s}
.cmp.in .c1,.cmp.in .c2{stroke-dashoffset:0}
.cmp.in .tick,.cmp.in text{opacity:1}
.cmp.in .star{transform:none}
.cmp.in .ndl{animation:needle 3.4s cubic-bezier(.3,.1,.2,1) .8s forwards}
@keyframes needle{0%{transform:rotate(200deg)}35%{transform:rotate(-40deg)}55%{transform:rotate(22deg)}72%{transform:rotate(-9deg)}86%{transform:rotate(4deg)}100%{transform:rotate(0deg)}}
.dest{font:600 13px/1 var(--sans);letter-spacing:.42em;padding-left:.42em;text-transform:uppercase;color:var(--nv);margin-top:22px}
.dest b{font-weight:700;color:var(--au)}
.hero h1{margin-top:20px}
.hero .tx{margin-top:22px}

/* Departures board */
.board{position:relative;max-width:440px;margin:30px auto 0;padding:18px 14px 20px;border-radius:10px;background:linear-gradient(180deg,#4A262A,#351A1D);box-shadow:inset 0 0 0 1px rgba(201,163,92,.35),0 26px 40px -22px rgba(15,20,40,.75)}
.board .bh{display:flex;align-items:center;justify-content:space-between;font:700 11px/1 var(--sans);letter-spacing:.3em;color:#C9A35C;text-transform:uppercase;padding:0 4px 14px;border-bottom:1px solid rgba(201,163,92,.25)}
.board .bh svg{width:18px;height:18px;fill:#C9A35C}
.board .bh .lv{width:8px;height:8px;border-radius:50%;background:#7BD88F;box-shadow:0 0 8px #7BD88F;animation:br 1.4s infinite}
.bl{display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}
.bl small{display:block;text-align:left;font:600 10px/1 var(--sans);letter-spacing:.26em;color:rgba(232,215,175,.6);text-transform:uppercase;margin:0 0 6px 4px}
.fl8{display:flex;gap:3px;flex-wrap:nowrap;justify-content:flex-start}
.fl8.big{justify-content:center;gap:4px}
.fc{position:relative;width:calc((100% - 13*3px)/14);max-width:28px;aspect-ratio:.72;perspective:220px;font:700 clamp(15px,4.6vw,21px)/1 var(--sans);color:#F4E6C4}
.fl8.big .fc{width:calc((100% - 9*4px)/10);max-width:38px;font-size:clamp(22px,7vw,30px)}
.fc>i{position:absolute;left:0;right:0;height:50%;overflow:hidden;background:#22100F;font-style:normal;display:block}
.fc>i::before{content:attr(data-c);position:absolute;left:0;right:0;height:200%;display:flex;align-items:center;justify-content:center}
.fc .t{top:0;border-radius:3px 3px 0 0;border-bottom:1px solid #000}
.fc .t::before{top:0}
.fc .b{bottom:0;border-radius:0 0 3px 3px;background:#2A1416}
.fc .b::before{bottom:0}
.fc .ft,.fc .fb{z-index:2;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.fc .ft{transform-origin:50% 100%;animation:ft .09s ease-in forwards}
.fc .fb{transform-origin:50% 0;transform:rotateX(90deg);animation:fb .09s ease-out .09s forwards}
@keyframes ft{to{transform:rotateX(-90deg)}}
@keyframes fb{to{transform:rotateX(0)}}
.fc::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.6);z-index:3}
.fc.au{color:#E9C98A}
.bst{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding:12px 6px 0;border-top:1px solid rgba(201,163,92,.25);font:600 11px/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:rgba(232,215,175,.75)}
.bst b{color:#7BD88F;font-weight:700;letter-spacing:.24em}

/* boarding pass */
.bp{position:relative;max-width:440px;margin:34px auto 0;text-align:left;filter:drop-shadow(0 24px 30px rgba(15,20,40,.35))}
.bpi{position:relative;border-radius:14px;overflow:hidden;background:linear-gradient(160deg,#6A3A3E,#4E282C 60%,#40212A);color:#EFDDB4;clip-path:inset(0 0 100% 0 round 14px);transition:clip-path 2.2s cubic-bezier(.65,0,.25,1)}
.bp.in .bpi{clip-path:inset(0 0 0 0 round 14px)}
.bpi::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,240,200,.16) 45%,transparent 60%) -150% 0/250% 100% no-repeat}
.bp.in .bpi::after{animation:shine 2.4s ease 2s}
@keyframes shine{to{background-position:200% 0}}
.bpt{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:linear-gradient(100deg,#9C7835,#D7B46C 45%,#F0D9A0 55%,#C9A35C 70%,#9C7835);color:#4E282C;font:700 15px/1 var(--sans);letter-spacing:.3em}
.bpt svg{width:22px;height:22px;fill:#4E282C}
.bpb{padding:20px 18px 18px}
.rt2{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px}
.rt2 .cd{font:700 clamp(38px,12vw,50px)/1 var(--sans);letter-spacing:.02em;color:#F2E3BE}
.rt2 .cd small{display:block;font:600 10px/1.3 var(--sans);letter-spacing:.26em;color:rgba(239,221,180,.65);margin-top:6px;text-transform:uppercase}
.rt2 .r{text-align:right}
.rt2 svg{width:100%;height:50px;overflow:visible}
.rt2 .arc{fill:none;stroke:rgba(239,221,180,.55);stroke-width:1.4;stroke-dasharray:3 5}
.rt2 .pln2i{fill:#E9C98A}
.pass{margin-top:14px;padding-top:14px;border-top:1px dashed rgba(239,221,180,.3)}
.pass small,.fg small{display:block;font:600 9.5px/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:rgba(239,221,180,.6)}
.pass b{display:block;font-family:var(--script);font-weight:400;font-size:clamp(34px,10vw,42px);line-height:1.2;color:#EBCF92;margin-top:2px}
.fg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 10px;margin-top:14px}
.fg b{display:block;font:700 15px/1.25 var(--sans);letter-spacing:.06em;color:#F2E3BE;margin-top:5px}
.fg .w2{grid-column:span 2}
.stub{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px 18px;border-top:2px dashed rgba(239,221,180,.35)}
.stub::before,.stub::after{content:"";position:absolute;top:-12px;width:22px;height:22px;border-radius:50%;background:#EAD8CC}
.stub::before{left:-11px}.stub::after{right:-11px}
.bc{height:44px;flex:1;background:repeating-linear-gradient(90deg,#EFDDB4 0 2px,transparent 2px 4px,#EFDDB4 4px 5px,transparent 5px 8px,#EFDDB4 8px 11px,transparent 11px 13px);opacity:.85;border-radius:1px}
.stub em{font:700 12px/1.3 var(--sans);font-style:normal;letter-spacing:.2em;color:#E9C98A;text-align:right}

/* Passport stamps */
.pasos{position:relative;max-width:430px;margin:36px auto 0;text-align:left}
.pasos .ln{position:absolute;left:39px;top:20px;bottom:20px;width:0;border-left:2px dashed rgba(168,130,63,.45)}
.pasos .lf{position:absolute;left:39px;top:20px;width:2px;margin-left:-1px;height:var(--p,0px);background:var(--au)}
.pasos .pl{position:absolute;left:39px;top:20px;width:34px;height:34px;margin:-17px 0 0 -17px;transform:translateY(var(--y,0px)) rotate(180deg);z-index:3;filter:drop-shadow(0 3px 3px rgba(20,25,45,.35))}
.pasos .pl svg{width:100%;height:100%;fill:var(--nv)}
.ch{position:relative;padding:0 0 46px 88px;min-height:150px}
.ch:last-child{padding-bottom:0}
.stp{position:absolute;left:0;top:0;width:80px;height:80px;opacity:0;transform:scale(2.2) rotate(var(--r,-12deg));filter:blur(3px)}
.stp svg{width:100%;height:100%;overflow:visible}
.stp .o{fill:none;stroke:var(--c,#7A4248);stroke-width:2.2}
.stp .o2{fill:none;stroke:var(--c,#7A4248);stroke-width:1}
.stp text{fill:var(--c,#7A4248);font-family:var(--sans);font-weight:700;letter-spacing:.12em}
.ch.on .stp{animation:slam .55s cubic-bezier(.5,0,.75,0) forwards}
@keyframes slam{0%{opacity:0;transform:scale(2.2) rotate(var(--r));filter:blur(3px)}70%{opacity:.95;transform:scale(.94) rotate(var(--r));filter:blur(0)}100%{opacity:.9;transform:scale(1) rotate(var(--r));filter:blur(0)}}
.ch.on .txt{animation:thud .35s ease .4s}
@keyframes thud{30%{transform:translateY(2px)}}
.ch small{display:block;font:700 11px/1.3 var(--sans);letter-spacing:.28em;text-transform:uppercase;color:var(--au)}
.ch h3{font-size:25px;font-weight:600;color:var(--nv);line-height:1.2;margin-top:4px}
.ch p{font-style:italic;font-size:18.5px;line-height:1.5;color:var(--ink);margin-top:5px}
.ch .txt{opacity:0;transform:translateX(16px);transition:opacity .9s ease .25s,transform 1s cubic-bezier(.2,.8,.2,1) .25s}
.ch.on .txt{opacity:1;transform:none}

/* Flight plan */
.pln2{position:relative;max-width:430px;margin:34px auto 0;padding:26px 0 8px;display:grid;gap:40px}
.pln2 .thr{position:absolute;left:18px;top:0;bottom:0;border-left:2px dashed rgba(168,130,63,.5);margin-left:-1px}
.pln2 .thf{position:absolute;left:18px;top:0;width:2px;margin-left:-1px;height:var(--p,0px);background:var(--au)}
.pln2 .tpl{position:absolute;left:18px;top:0;width:36px;height:36px;margin:-18px 0 0 -18px;z-index:3;transform:translateY(var(--y,0px)) rotate(180deg);filter:drop-shadow(0 4px 4px rgba(20,25,45,.35))}
.pln2 .tpl svg{width:100%;height:100%;fill:var(--nv)}
.tk2{position:relative;z-index:1;margin-left:44px;display:grid;grid-template-columns:86px 1fr;text-align:left;border-radius:10px;overflow:hidden;background:#FBF7EF;box-shadow:0 0 0 1px rgba(168,130,63,.45),0 16px 24px -14px rgba(30,35,60,.45);transform:perspective(800px) rotateX(18deg) translateY(26px);opacity:0;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),opacity .9s}
.tk2.in{transform:none;opacity:1}
.tk2 .tm{display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(170deg,#6A3A3E,#4E282C);color:#F2E3BE;padding:16px 6px;position:relative}
.tk2 .tm::after{content:"";position:absolute;right:-1px;top:8px;bottom:8px;border-right:2px dashed rgba(239,221,180,.45)}
.tk2 .tm b{font:700 25px/1 var(--sans);letter-spacing:.02em}
.tk2 .tm small{font:600 9px/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#E9C98A;margin-top:7px}
.tk2 .ds{padding:16px 16px 16px 18px}
.tk2 .ds small{display:block;font:700 10.5px/1.2 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--au)}
.tk2 .ds h3{font-size:23px;font-weight:600;color:var(--nv);line-height:1.2;margin-top:4px}
.tk2 .ds p{font-style:italic;font-size:17.5px;color:var(--soft);margin-top:2px;line-height:1.35}
.tk2.on{box-shadow:0 0 0 1.5px var(--au),0 20px 28px -14px rgba(30,35,60,.55)}
.loc{max-width:430px;margin:36px auto 0;padding:24px 20px;border-radius:12px;background:linear-gradient(160deg,#6A3A3E,#4E282C);color:#EFDDB4;box-shadow:0 20px 30px -18px rgba(15,20,40,.6)}
.loc small{font:600 10.5px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:#E9C98A}
.loc h3{font-size:28px;font-weight:600;color:#F4E6C4;margin-top:8px;line-height:1.15}
.loc p{font-style:italic;font-size:18px;color:rgba(239,221,180,.8);margin-top:2px}
.mbtn{display:inline-flex;align-items:center;gap:10px;margin-top:16px;padding:12px 22px;border:1px solid rgba(233,201,138,.7);border-radius:999px;color:#F2E3BE;text-decoration:none;font:600 12px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase}
.mbtn svg{width:16px;height:16px;stroke:#E9C98A;fill:none;stroke-width:1.6}

/* odbrojavanje */
.cdw{display:flex;justify-content:center;gap:5px;margin-top:26px}
.cdu{display:flex;flex-direction:column;align-items:center}
.cdu .fl8{gap:3px}
.cdu .fc{width:clamp(20px,7vw,36px);max-width:none;font-size:clamp(20px,5.8vw,30px)}
.cdu>span{margin-top:9px;font:600 10px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}
.cdsep{font:700 20px/1 var(--sans);color:var(--au);padding-top:8px}

/* RSVP */
.card2{position:relative;max-width:420px;margin:0 auto;padding:0 0 26px;background:#FBF7EF;border-radius:14px;overflow:hidden;box-shadow:0 0 0 1px rgba(168,130,63,.4),0 22px 34px -20px rgba(30,35,60,.55)}
.card2 .bpt{border-radius:0}
.card2 .inn{padding:26px 22px 0}
.sub{font-style:italic;font-size:19px;line-height:1.5;color:var(--soft)}
.chs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
.fl{display:block;margin-top:20px;text-align:left}
.fl>span{display:block;font:600 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--soft);margin-bottom:8px}
.fl input,.fl textarea{width:100%;font:inherit;font-size:19px;color:var(--ink);background:#fff;border:1px solid rgba(122,66,72,.35);border-radius:6px;padding:12px 14px;outline:none}
.fl input:focus,.fl textarea:focus{border-color:var(--au)}
.fl textarea{min-height:80px;resize:vertical}
.cnt{display:flex;align-items:center;gap:20px}
.cnt button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(122,66,72,.5);background:transparent;color:var(--nv);font:inherit;font-size:24px;cursor:pointer}
.cnt b{font:700 26px var(--sans);min-width:30px;text-align:center;color:var(--nv)}
.send{display:block;width:100%;margin-top:24px;font:700 13px/1 var(--sans);letter-spacing:.26em;text-transform:uppercase;padding:18px;border:0;border-radius:6px;background:linear-gradient(100deg,#9C7835,#D7B46C 45%,#F0D9A0 55%,#C9A35C 70%,#9C7835);color:#4E282C;cursor:pointer;box-shadow:0 10px 18px -10px rgba(120,90,30,.7)}
.send:disabled{opacity:.7}
@keyframes slam2{70%{opacity:.95;transform:scale(.94) rotate(-14deg)}100%{opacity:.92;transform:scale(1) rotate(-14deg)}}

/* Closing */
.end{padding-bottom:130px}
.hrt{width:min(86vw,360px);aspect-ratio:360/200;margin:10px auto 0}
.hrt svg{width:100%;height:100%;overflow:visible}
.hrt .hp{fill:none;stroke:var(--au);stroke-width:1.6;stroke-dasharray:5 6;stroke-linecap:round}
.hrt .pp{fill:var(--nv)}
.endn{font-family:var(--script);font-weight:400;font-size:clamp(52px,15vw,68px);line-height:1.2;margin-top:18px;padding:0 .2em}
.end .tx{margin-top:14px}
.fin{display:inline-block;margin-top:26px;padding:12px 22px;border:1.5px solid var(--nv);border-radius:6px;font:700 13px/1.35 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--nv);transform:rotate(-4deg)}
.fin b{display:block;font-size:20px;letter-spacing:.14em;color:var(--au)}

.kn{display:block;font-family:var(--script);font-weight:400;font-size:clamp(72px,22vw,96px);line-height:1.15;padding:0 .2em;margin-top:6px}
.k18{display:block;font-family:var(--serif);font-weight:500;font-size:clamp(80px,24vw,110px);line-height:.9;letter-spacing:.02em}
.dest{font-size:15px}
/* Music */
.mus{position:fixed;right:14px;bottom:max(16px,calc(env(safe-area-inset-bottom) + 8px));z-index:9;display:flex;align-items:center;gap:10px;padding:9px 14px 9px 10px;border-radius:999px;background:rgba(91,47,51,.94);color:#F2E3BE;border:1px solid rgba(233,201,138,.45);box-shadow:0 10px 22px -10px rgba(0,0,0,.45);font:600 11px/1.2 var(--sans);letter-spacing:.06em;cursor:pointer;opacity:0;transform:translateY(10px);transition:opacity .8s,transform .8s}
.mus.on{opacity:1;transform:none}
.mus i{width:26px;height:26px;border-radius:50%;background:#E9C98A;display:grid;place-items:center;flex:none}
.mus i svg{width:12px;height:12px;fill:#4E282C}
.mus .eq{display:flex;gap:2px;align-items:flex-end;height:12px}.mus .eq b{width:2px;background:#E9C98A;animation:eq 1s ease-in-out infinite}
.mus .eq b:nth-child(2){animation-delay:.2s}.mus .eq b:nth-child(3){animation-delay:.4s}
@keyframes eq{0%,100%{height:3px}50%{height:12px}}
.mus.off .eq b{animation:none;height:3px}

/* laptop / desktop */
@media (min-width:900px) and (min-aspect-ratio:1/1){
 #cover::before{filter:blur(22px) brightness(.85);transform:scale(1.15)}
 main{background:linear-gradient(90deg,#EAD8CC 0,#EAD8CC calc(50% - 440px),transparent calc(50% - 330px),transparent calc(50% + 330px),#EAD8CC calc(50% + 440px),#EAD8CC 100%),var(--paper) center top/880px auto repeat-y,#EAD8CC}
 .w{width:min(100%,540px)}
 section.s{padding-top:110px;padding-bottom:110px}
}

/* Editable foil and ink laid over the reference artwork. */
[hidden] { display: none !important; }
.svg-defs { position: absolute; }
#cover { border: 0; z-index: 100000; appearance: none; }
#cover:focus-visible { outline: 3px solid #F2E3BE; outline-offset: -6px; }
.wf { z-index: 100001; }
.seal-monogram, .side-seal {
    position: absolute;
    font: 600 96px/1 var(--serif);
    color: #845021;
    text-shadow: 1.5px 1.5px 1px #FFE0A3, -1px -1px 1px #653B1F;
    transform: translate(-50%, -50%);
}
.seal-monogram { top: 52.5%; left: 47%; }
.side-seal-right { top: 400px; left: 846px; transform: translate(-50%, -50%) rotate(-10deg); }
.side-seal-left { top: 1208px; left: 35px; transform: translate(-50%, -50%) rotate(-5deg); }
.cover-inscription, .page-inscription {
    position: absolute;
    inset: auto 7% 8%;
    display: grid;
    justify-items: center;
    text-align: center;
    overflow-wrap: anywhere;
}
.cover-inscription {
    color: #7E4D21;
    text-shadow: 1.5px 1.5px 1px #FFD28C, -1px -1px 1px #75441C;
}
.cover-inscription span, .page-inscription span {
    display: block;
    max-width: 100%;
    font: 400 115px/.95 var(--script);
    padding: .1em .12em 0;
}
.cover-inscription em, .page-inscription em { font: italic 500 120px/.9 var(--serif); }
.page-inscription { inset: 19% 13% auto; color: #744A25; }
.page-inscription b, .page-inscription small {
    font: 600 32px/1.25 var(--serif);
    letter-spacing: .1em;
    text-transform: uppercase;
}
.page-inscription small { font-size: 27px; margin: 22px 0 34px; }
.page-inscription span { font-size: 107px; }
.page-inscription em { font-size: 110px; }
.cover-inscription[data-long] span, .page-inscription[data-long] span { font-size: 76px; }
.hero .hero-intro { margin-top: 14px; }
.hero .kn, .endn, .fg b, .pass b { overflow-wrap: anywhere; }
.fl8[data-t] { color: #F4E6C4; font: 700 20px/1.3 var(--sans); text-transform: uppercase; }
.sr-only, .cl-honeypot, .chs input {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
}
.chs { border: 0; min-width: 0; }
.chs span {
    display: grid;
    place-items: center;
    min-height: 48px;
    padding: 12px 6px;
    border: 1px solid var(--nv2);
    border-radius: 6px;
    color: var(--nv);
    font: 600 12px/1.2 var(--sans);
    letter-spacing: .16em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background .3s, color .3s;
}
.chs input:checked + span { background: var(--nv); color: #F2E3BE; }
.chs input:focus-visible + span, .fl input:focus-visible, .fl textarea:focus-visible,
button:focus-visible, a:focus-visible { outline: 2px solid var(--au); outline-offset: 3px; }
.fl .cnt input {
    width: 52px;
    min-width: 0;
    padding: 0;
    background: transparent;
    border: 0;
    color: var(--nv);
    text-align: center;
    font: 700 26px/1.3 var(--sans);
    appearance: textfield;
}
.cnt input::-webkit-inner-spin-button, .cnt input::-webkit-outer-spin-button { -webkit-appearance: none; }
#rsvp .ttl { margin-top: 0; }
#rsvp .sub { margin-top: 8px; }
.cl-voice-button, #voice-remove, .cl-receipt-download {
    margin-top: 16px;
    padding: 10px 15px;
    border: 1px solid var(--nv2);
    border-radius: 999px;
    background: transparent;
    color: var(--nv);
    font: 600 11px/1.25 var(--sans);
    cursor: pointer;
}
.cl-voice-button { display: inline-flex; align-items: center; gap: 7px; min-height: 44px; }
.cl-voice-button svg { width: 16px; height: 16px; }
.cl-voice-button.is-recording { background: var(--nv); color: var(--cr); }
#voice-preview { margin-top: 12px; }
#voice-audio { display: block; width: 100%; }
.cl-voice-status:not(:empty), .cl-rsvp-feedback:not(:empty) { margin-top: 8px; font-size: 17px; }
.cl-rsvp-feedback { color: #9c2721; }
.cl-success { margin: 18px auto 0; }
.cl-receipt-name { font: 400 37px/1.2 var(--script); color: var(--nv); }
.cl-receipt-code { display: block; margin: 14px 0; font: 600 13px var(--sans); letter-spacing: .1em; }
.cl-success .cl-gold-button { display: inline-block; padding: 11px 17px; border-radius: 6px; background: var(--gold); color: white; text-decoration: none; }
.cl-receipt-download { display: inline-block; text-decoration: none; }
.passport-stamp {
    display: grid;
    align-content: center;
    justify-content: center;
    width: 122px;
    height: 122px;
    margin: 22px auto 10px;
    border: 4px double var(--nv2);
    border-radius: 50%;
    color: var(--nv2);
    font: 700 12px/1.4 var(--sans);
    letter-spacing: .13em;
    text-transform: uppercase;
    transform: rotate(-14deg);
    animation: slam2 .55s cubic-bezier(.5,0,.75,0) both;
}
.passport-stamp strong { display: block; }
html:not(.passport-enhanced) .rv,
html:not(.passport-enhanced) .tk2,
html:not(.passport-enhanced) .ch .txt,
.passport-enhanced .rv:focus-within { opacity: 1; transform: none; filter: none; }
html:not(.passport-enhanced) .bpi { clip-path: none; }
html:not(.passport-enhanced) .stp { opacity: .9; transform: rotate(var(--r)); filter: none; }
html:not(.passport-enhanced) .cmp .c1, html:not(.passport-enhanced) .cmp .c2 { stroke-dashoffset: 0; }
html:not(.passport-enhanced) .cmp text, html:not(.passport-enhanced) .cmp .tick { opacity: 1; }
html:not(.passport-enhanced) .cmp .star, html:not(.passport-enhanced) .cmp .ndl { transform: none; }
html:not(.passport-enhanced) #voice-record, html:not(.passport-enhanced) .cnt button { display: none; }
@media (max-width: 359px) {
    .bpb { padding-inline: 13px; }
    .fg small { letter-spacing: .13em; }
    .fg b { font-size: 13px; }
    .bpt { font-size: 13px; letter-spacing: .2em; }
    .card2 .inn { padding-inline: 16px; }
    .tk2 { grid-template-columns: 71px minmax(0,1fr); margin-left: 38px; }
    .tk2 .tm b { font-size: 21px; }
    .tk2 .tm small, .tk2 .ds small { letter-spacing: .12em; }
    .tk2 .ds { padding-inline: 12px; }
    .cdw { gap: 3px; }
    .cdu > span { letter-spacing: .16em; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ===== 1.1 additions: new sections and details. The opener above is untouched. ===== */
.pill{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:12px 20px;border:1px solid var(--nv2);border-radius:999px;background:transparent;color:var(--nv);font:600 11px/1 var(--sans);letter-spacing:.2em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background .3s,color .3s}
.pill:hover{background:var(--nv);color:#F2E3BE}

/* Hero: gold dust and scroll cue */
.dust{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.dust b{position:absolute;width:6px;height:6px;border-radius:50%;background:radial-gradient(circle,#FFF3D2,#C9A35C 45%,rgba(201,163,92,0) 70%);opacity:0;animation:dust var(--t,7s) ease-in-out var(--dl,0s) infinite}
@keyframes dust{0%{opacity:0;transform:translateY(24px) scale(calc(var(--z,1)*.6))}35%{opacity:.85}100%{opacity:0;transform:translateY(-70px) scale(var(--z,1))}}
.hero .w{position:relative}
.cue{display:inline-flex;flex-direction:column;align-items:center;gap:12px;margin-top:38px;text-decoration:none;font:600 10.5px/1 var(--sans);letter-spacing:.34em;padding-left:.34em;text-transform:uppercase;color:var(--soft)}
.cue i{width:1px;height:40px;background:linear-gradient(var(--au),rgba(168,130,63,0));transform-origin:50% 0;animation:cue 2.4s ease-in-out infinite}
@keyframes cue{0%{transform:scaleY(0);opacity:0}40%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1) translateY(14px);opacity:0}}

/* Passport data page */
.idp{position:relative;max-width:440px;margin:30px auto 0;text-align:left;border-radius:14px;overflow:hidden;background:repeating-radial-gradient(circle at 88% 16%,rgba(168,130,63,.11) 0 1px,transparent 1px 9px),repeating-radial-gradient(circle at 8% 92%,rgba(122,66,72,.07) 0 1px,transparent 1px 11px),#FBF7EF;box-shadow:0 0 0 1px rgba(168,130,63,.45),0 24px 36px -20px rgba(30,35,60,.55)}
.idp::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 32%,rgba(255,236,190,.5) 46%,rgba(255,214,214,.28) 52%,transparent 64%) -160% 0/260% 100% no-repeat;animation:holo 7s ease-in-out 2s infinite}
@keyframes holo{0%,55%{background-position:-160% 0}100%{background-position:220% 0}}
.idh{display:flex;align-items:center;gap:12px;padding:13px 18px;background:linear-gradient(160deg,#6A3A3E,#4E282C);color:#E9C98A;font:700 14px/1 var(--sans);letter-spacing:.34em;text-transform:uppercase}
.idh b{margin-left:auto;font-weight:600;font-size:10px;letter-spacing:.24em;color:rgba(239,221,180,.75)}
.idh svg{width:20px;height:20px;fill:#E9C98A}
.idb{display:grid;grid-template-columns:clamp(96px,30%,128px) minmax(0,1fr);gap:16px;padding:18px 18px 8px}
.idph{align-self:start;aspect-ratio:3/4;border-radius:6px;overflow:hidden;background:linear-gradient(160deg,#7A4248,#4E282C);box-shadow:0 0 0 1px #C9A35C,0 0 0 4px #FBF7EF,0 0 0 5px rgba(168,130,63,.4),0 12px 16px -10px rgba(30,35,60,.6)}
.idph img{display:block;width:100%;height:100%;object-fit:cover}
.idph.none{display:grid;place-items:center}
.idph.none span{font:500 64px/1 var(--serif);background:linear-gradient(160deg,#F3DFAE,#C9A35C);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.idf{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-flow:dense;gap:11px 12px;align-content:start}
.idf .wide{grid-column:span 2}
.idf dt{font:600 8.5px/1.2 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--soft)}
.idf dd{margin-top:3px;font:700 13.5px/1.25 var(--sans);letter-spacing:.05em;text-transform:uppercase;color:var(--nv);overflow-wrap:break-word}
.idsg{position:relative;padding:4px 18px 12px;min-height:84px}
.idsg>small{display:block;font:600 8.5px/1.2 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--soft)}
.idsg>span{display:block;max-width:calc(100% - 92px);font:400 clamp(36px,11vw,46px)/1.2 var(--script);color:var(--nv);overflow-wrap:anywhere}
.idst{position:absolute;right:20px;bottom:12px;display:grid;place-content:center;justify-items:center;width:76px;height:76px;border:3px double rgba(122,66,72,.8);border-radius:50%;color:rgba(122,66,72,.85);font:700 24px/1 var(--sans);font-style:normal;transform:rotate(-13deg)}
.idst small{margin-top:4px;font:700 7.5px/1 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.passport-enhanced .idst{opacity:0}
.passport-enhanced .idp.in .idst{animation:idslam .55s cubic-bezier(.5,0,.75,0) 1.5s forwards}
@keyframes idslam{0%{opacity:0;transform:scale(2.2) rotate(-13deg)}70%{opacity:.95;transform:scale(.94) rotate(-13deg)}100%{opacity:.9;transform:scale(1) rotate(-13deg)}}
.mrz{padding:12px 18px 14px;border-top:1px dashed rgba(168,130,63,.55);background:rgba(168,130,63,.08);font:600 clamp(9.5px,3.1vw,13.5px)/1.55 ui-monospace,'SF Mono',Menlo,Consolas,'Courier New',monospace;letter-spacing:.14em;color:var(--soft);white-space:nowrap;overflow:hidden}

/* Departures ticker */
.tkr{margin-top:14px;padding:9px 0;border-radius:4px;background:#22100F;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}
.tkr>div{display:flex;width:max-content;animation:tkr 30s linear infinite}
.tkr span{display:flex}
.tkr b{display:flex;align-items:center;gap:16px;padding-right:16px;font:600 10.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:#E9C98A;white-space:nowrap}
.tkr b::after{content:"";width:5px;height:5px;border-radius:50%;background:#7BD88F;box-shadow:0 0 6px #7BD88F}
@keyframes tkr{to{transform:translateX(-50%)}}

/* Boarding pass tilt */
.bp{perspective:900px}
.bpi{transition:clip-path 2.2s cubic-bezier(.65,0,.25,1),transform .5s ease}

/* Travel album */
.alb{display:flex;justify-content:safe center;gap:20px;margin:14px -22px 0;padding:34px 30px 36px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.alb::-webkit-scrollbar{display:none}
.pol{position:relative;flex:none;width:min(66vw,260px);padding:12px 12px 0;border:0;border-radius:3px;background:#fff;box-shadow:0 0 0 1px rgba(168,130,63,.25),0 20px 26px -14px rgba(30,35,60,.55);transform:rotate(var(--r,0deg));scroll-snap-align:center;cursor:zoom-in;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.pol:hover,.pol:focus-visible{transform:rotate(0deg) translateY(-6px)}
.pol::before{content:"";position:absolute;left:50%;top:-11px;width:74px;height:22px;margin-left:-37px;background:rgba(215,180,108,.6);box-shadow:0 1px 2px rgba(0,0,0,.12);transform:rotate(-3deg)}
.pol img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;background:#EAD8CC}
.pol small{display:block;padding:12px 0 14px;font:600 9.5px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--soft)}
.albh{font:600 10px/1 var(--sans);letter-spacing:.3em;text-transform:uppercase;color:var(--soft)}
.lbx{margin:auto;padding:0;border:0;background:transparent;max-width:100vw;max-height:100vh;overflow:visible;text-align:center}
.lbx::backdrop{background:rgba(40,20,22,.9)}
.lbx img{display:block;max-width:min(92vw,720px);max-height:78vh;border:10px solid #fff;border-radius:3px;box-shadow:0 30px 60px -20px #000}
.lbx button{margin-top:16px;min-height:44px;padding:12px 24px;border:1px solid rgba(233,201,138,.7);border-radius:999px;background:transparent;color:#F2E3BE;font:600 11px/1 var(--sans);letter-spacing:.24em;text-transform:uppercase;cursor:pointer}

/* Location map */
.mapf{margin-top:20px;aspect-ratio:16/11;border-radius:8px;overflow:hidden;border:1px solid rgba(233,201,138,.5);background:#40212A}
.mapf iframe{display:block;width:100%;height:100%;border:0;filter:sepia(.3) saturate(.85)}

/* Dress code */
.drt{display:inline-block;margin-top:20px;padding:11px 22px;border-block:1px solid var(--au);font:700 12.5px/1.3 var(--sans);letter-spacing:.32em;padding-left:calc(22px + .32em);text-transform:uppercase;color:var(--nv)}
#dress-code .tx{margin-top:18px}
.sws{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:20px 12px;margin-top:30px}
.sws li{width:76px}
.sws i{display:block;width:58px;height:58px;margin:0 auto;border-radius:50%;background:var(--c);box-shadow:inset 0 0 0 3px rgba(255,255,255,.4),inset 0 -8px 12px rgba(0,0,0,.16),inset 0 6px 10px rgba(255,255,255,.25),0 0 0 1px rgba(168,130,63,.6),0 12px 16px -8px rgba(30,35,60,.55)}
.sws span{display:block;margin-top:11px;font:600 9px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--soft);overflow-wrap:break-word}

/* Cabin crew */
.crw{max-width:440px;margin:30px auto 0;text-align:left;border-radius:14px;overflow:hidden;background:#FBF7EF;box-shadow:0 0 0 1px rgba(168,130,63,.4),0 22px 34px -20px rgba(30,35,60,.55)}
.crw .bpt{font-size:13px}
.crt{display:flex;gap:6px;padding:16px 14px 0}
.crt button{flex:1;min-width:0;min-height:44px;padding:10px 4px;border:1px solid var(--nv2);border-radius:6px;background:transparent;color:var(--nv);font:600 10px/1.2 var(--sans);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;transition:background .3s,color .3s}
.crt [aria-selected="true"]{background:var(--nv);color:#F2E3BE}
.crp{padding:18px 18px 22px}
.crp+.crp{border-top:1px dashed rgba(168,130,63,.5)}
.crh{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px dashed rgba(168,130,63,.55)}
.crh b{font:400 36px/1.2 var(--script);color:var(--nv)}
.crh span{font:700 10px/1.2 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--au);text-align:right}
.crp ol{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;margin-top:6px}
.crp li{display:flex;align-items:baseline;gap:10px;padding:9px 0;border-bottom:1px solid rgba(122,66,72,.13);font-size:19px;line-height:1.25;color:var(--ink);overflow-wrap:anywhere}
.crp li i{flex:none;min-width:17px;font:700 9.5px/1 var(--sans);font-style:normal;letter-spacing:.08em;color:var(--au)}
.passport-enhanced .crw.in .crp li{animation:crin .6s cubic-bezier(.2,.8,.2,1) calc(var(--i)*35ms + .15s) both}
@keyframes crin{from{opacity:0;transform:translateY(8px)}}
html:not(.passport-enhanced) .crt{display:none}

/* Gift tag */
.tag{position:relative;max-width:350px;margin:58px auto 0;transform-origin:50% -30px}
.tag.rv.in{filter:drop-shadow(0 22px 22px rgba(30,35,60,.3));transform:rotate(-2deg)}
.passport-enhanced .tag.rv.in{animation:swing 2.6s ease-in-out 1.2s}
@keyframes swing{0%,100%{transform:rotate(-2deg)}25%{transform:rotate(2.5deg)}55%{transform:rotate(-3.5deg)}80%{transform:rotate(-1deg)}}
.tag::before{content:"";position:absolute;left:50%;top:-40px;z-index:2;width:1.5px;height:66px;background:var(--au);transform:rotate(7deg);transform-origin:50% 100%}
.tgi{position:relative;padding:62px 26px 0;background:#FBF7EF;border-radius:0 0 14px 14px;overflow:hidden;clip-path:polygon(24% 0,76% 0,100% 54px,100% 100%,0 100%,0 54px)}
.tgi::before{content:"";position:absolute;inset:6px;border:1px solid rgba(168,130,63,.5);border-radius:0 0 10px 10px;clip-path:polygon(24% 0,76% 0,100% 50px,100% 100%,0 100%,0 50px);pointer-events:none}
.hole{position:absolute;left:50%;top:16px;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:#EAD8CC;box-shadow:0 0 0 3px #C9A35C,inset 0 2px 3px rgba(0,0,0,.3)}
.tgi small{font:700 10.5px/1.3 var(--sans);letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:var(--au)}
.tgi p{margin-top:12px;font-style:italic;font-size:19.5px;line-height:1.5;color:var(--ink)}
.tagf{display:grid;grid-template-columns:auto 1fr auto 1fr;align-items:baseline;gap:8px;margin:24px -26px 0;padding:14px 26px 16px;background:linear-gradient(160deg,#6A3A3E,#4E282C);text-align:left}
.tagf span{font:600 9px/1 var(--sans);letter-spacing:.22em;text-transform:uppercase;color:rgba(239,221,180,.65)}
.tagf b{font:400 28px/1.1 var(--script);color:#EBCF92;overflow-wrap:anywhere}

/* Countdown extras */
.cal{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;margin-top:32px}
.cal small{flex-basis:100%;margin-bottom:4px;font:600 10.5px/1 var(--sans);letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:var(--soft)}
.dl{margin-top:22px;font-style:italic;font-size:19px;color:var(--soft)}
.dl b{font-style:normal;color:var(--nv)}
.rdl{margin-top:12px;font:600 10.5px/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--au)}
.rdl b{color:var(--nv)}

/* Travel advisory */
.faq{display:grid;gap:12px;max-width:440px;margin:30px auto 0;text-align:left}
.faq details{border-radius:10px;overflow:hidden;background:#FBF7EF;box-shadow:0 0 0 1px rgba(168,130,63,.45),0 14px 22px -16px rgba(30,35,60,.45)}
.faq summary{position:relative;display:flex;align-items:center;gap:14px;padding:15px 46px 15px 14px;list-style:none;cursor:pointer;font-size:21px;line-height:1.25;color:var(--nv)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--au);font:700 10.5px/1 var(--sans);font-style:normal;letter-spacing:.06em;color:var(--au)}
.faq summary::after{content:"+";position:absolute;right:18px;top:50%;margin-top:-12px;font:400 24px/1 var(--sans);color:var(--au);transition:transform .35s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details[open] summary i{background:var(--nv);border-color:var(--nv);color:#F2E3BE}
.faq p{padding:0 18px 18px 64px;font-style:italic;font-size:18.5px;line-height:1.5;color:var(--soft)}
.passport-enhanced .faq details[open] p{animation:crin .5s ease both}

/* Hashtag */
#snapshots .tx{margin-top:14px}
.hsh{position:relative;max-width:400px;margin:28px auto 0;padding:32px 20px 28px}
.hsh::before,.hsh::after,.cnr::before,.cnr::after{content:"";position:absolute;width:26px;height:26px;border:solid var(--au);border-width:0}
.hsh::before{left:0;top:0;border-width:1.5px 0 0 1.5px}
.hsh::after{right:0;bottom:0;border-width:0 1.5px 1.5px 0}
.cnr::before{right:0;top:0;border-width:1.5px 1.5px 0 0}
.cnr::after{left:0;bottom:0;border-width:0 0 1.5px 1.5px}
.hsh svg{display:block;width:30px;height:30px;margin:0 auto;fill:none;stroke:var(--au);stroke-width:1.3;stroke-linejoin:round}
.hsh b{display:block;font-variant-numeric:lining-nums;margin-top:10px;font:italic 600 clamp(28px,8.6vw,38px)/1.25 var(--serif);overflow-wrap:anywhere}
.hsh .pill{margin-top:16px}

/* Flight progress and quick RSVP */
.prg{position:fixed;left:0;right:0;top:0;z-index:9;height:3px;background:rgba(168,130,63,.2);pointer-events:none}
.admin-bar .prg{top:32px}
.prg i{position:absolute;left:0;top:0;bottom:0;width:calc(var(--p,0)*100%);background:linear-gradient(90deg,#9C7835,#E9C98A)}
.prg svg{position:absolute;right:-10px;top:-8px;width:19px;height:19px;fill:var(--nv);transform:rotate(90deg);filter:drop-shadow(0 2px 2px rgba(20,25,45,.35))}
.rpl{position:fixed;left:14px;bottom:max(16px,calc(env(safe-area-inset-bottom) + 8px));z-index:9;display:flex;align-items:center;gap:8px;min-height:44px;padding:9px 16px 9px 12px;border-radius:999px;background:linear-gradient(100deg,#9C7835,#D7B46C 45%,#F0D9A0 55%,#C9A35C 70%,#9C7835);color:#4E282C;box-shadow:0 10px 22px -10px rgba(0,0,0,.5);font:700 11px/1 var(--sans);letter-spacing:.22em;text-decoration:none;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .6s,transform .6s}
.rpl.on{opacity:1;transform:none;pointer-events:auto}
.rpl svg{width:17px;height:17px;fill:#4E282C;transform:rotate(45deg)}

@media (max-width:359px){
 .idb{gap:12px;padding-inline:13px}
 .idf dd{font-size:12px}
 .crp ol{column-gap:10px}
 .crp li{font-size:17px;gap:7px}
 .faq p{padding-left:18px}
 .tgi{padding-inline:20px}
 .tagf{margin-inline:-20px;padding-inline:20px}
}
@media (prefers-reduced-motion:reduce){
 .dust{display:none}
 .tkr>div{animation:none}
 .passport-enhanced .idst{opacity:.9}
}
