:root{font-family:PingFang SC,Microsoft YaHei,sans-serif;color:#e8e1d2;background:#0b1520;font-synthesis:none;--navy:#0b1520;--gold:#d4b174;--muted:#a6adae;--cream:#f1eadb;--serif:"Songti SC","STSong","SimSun",Georgia,serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0}body.modal-open{overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button,a,input{touch-action:manipulation}button{font:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button{color:inherit}button:disabled{cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}button svg,a svg{flex:none}svg{width:22px;height:22px;display:block;fill:none;stroke:currentColor;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}button{border:0}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400}img{display:block;max-width:100%}section{position:relative}::selection{color:#0b1520;background:#d4b174}.wrap{width:min(1180px,calc(100% - 112px));margin-inline:auto}.eyebrow{font:11px/1.6 Georgia,serif;letter-spacing:3px;color:var(--gold)}.dark-eyebrow{color:#8c6c36}.small-caps{font:10px Georgia,serif;letter-spacing:3px;color:#927449}.skip-link{position:fixed;z-index:100;top:-60px;left:20px;padding:12px 20px;background:var(--gold);color:var(--navy)}.skip-link:focus{top:10px}.site-header{height:94px;position:absolute;top:0;left:0;right:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 56px;border-bottom:1px solid #d4b17420}.brand{display:flex;align-items:center;gap:13px;color:#d8bd88;font:11px Georgia,serif;letter-spacing:2px}.brand small{display:block;font:9px/1.8 PingFang SC,sans-serif;letter-spacing:3px;color:#9da4a6;margin-top:6px}.brand-mark{height:45px;width:34px;position:relative;font:48px/1 Georgia,serif;letter-spacing:-4px}.brand-mark>span{font-size:23px;position:absolute;left:8px;top:18px;color:#e4c68c;text-shadow:0 0 8px #0b1520}.site-header nav{display:flex;gap:38px;font-size:12px;letter-spacing:2px;color:#d3d6d6}.site-header nav a{position:relative;padding:10px 0}.site-header nav a:after{content:"";position:absolute;bottom:0;left:0;width:0;height:1px;background:var(--gold);transition:width .25s}.site-header nav a:hover:after{width:100%}.music-button{display:flex;align-items:center;gap:10px;padding:10px 0 10px 10px;background:none;font-size:11px;letter-spacing:1px;color:#c3c7c5}.music-bars{height:19px;display:flex;align-items:center;gap:3px}.music-bars i{width:2px;height:7px;background:var(--gold);border-radius:2px}.music-bars i:nth-child(2){height:15px}.music-bars i:nth-child(3){height:11px}.music-bars i:nth-child(4){height:17px}.music-button[aria-pressed=true] i{animation:music-bar 1s ease-in-out infinite alternate}.music-button[aria-pressed=true] i:nth-child(2){animation-delay:-.7s}.music-button[aria-pressed=true] i:nth-child(3){animation-delay:-.3s}.hero{min-height:850px;height:min(960px,100svh);overflow:hidden;background:#0b1520}.hero-art{position:absolute;width:100%;height:100%;object-fit:cover;object-position:center 55%}.hero-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#09131bf0,#09131bd6 20%,#09131b8c 42%,#09131b08 74%),linear-gradient(0deg,#0b1520,#0b152000 34%,#08111a40)}.hero-content{position:relative;padding-top:185px;z-index:2}.hero .eyebrow{display:flex;align-items:center;gap:15px;letter-spacing:3.4px;font-size:10px}.hero .eyebrow>span{height:1px;width:26px;background:#ae8c4e}.hero-prelude{font-size:12px;letter-spacing:4px;color:#b6c0c5;margin:30px 0 20px}.hero h1{font-family:var(--serif);font-size:clamp(46px,4.8vw,72px);line-height:1.45;letter-spacing:7px;color:#e9d5ac;width:max-content;position:relative;text-shadow:0 3px 25px #0006}.title-star{position:absolute;right:-45px;top:23px;font:24px Georgia;color:#d5b67d}.hero-english{font:italic 17px Georgia,serif;letter-spacing:.6px;color:#b6b5af;margin:20px 0 30px}.hero-english em{color:#dfbf82;margin-left:7px}.couple-names{display:flex;align-items:center;gap:25px;font-family:var(--serif);font-size:26px;letter-spacing:6px}.name-amp{font:italic 27px Georgia;color:#bfa16c;letter-spacing:0}.hero-description{color:#adb7bc;font-size:12px;line-height:2.1;letter-spacing:2px;margin:19px 0 28px}.button{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:49px;padding:0 24px;font-size:12px;letter-spacing:1.6px;transition:background .2s,transform .2s;position:relative}.button:hover{transform:translateY(-2px)}.button svg{width:18px;height:18px}.button-gold{background:#d5b579;color:#172029;box-shadow:0 0 30px #d5b57910}.button-gold:hover{background:#e4c58c}.button-arrow{margin-left:15px;font-size:19px}.hero-footer{margin-top:30px;display:flex;align-items:center;gap:13px;font-size:10px;letter-spacing:2px;color:#a9b4bc}.hero-footer [data-short-date]{font-family:Georgia,serif}.tiny-star{color:var(--gold);font-size:20px}.dot{height:3px;width:3px;border-radius:50%;background:#ab8e59}.hero-annotation{position:absolute;right:45px;bottom:90px;z-index:2;color:#9ba9b0;font:9px Georgia;letter-spacing:2px;display:flex;align-items:center;gap:15px;writing-mode:vertical-rl}.hero-annotation i{height:70px;width:1px;background:#b59a6150}.scroll-cue{position:absolute;bottom:30px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;font-size:9px;letter-spacing:3px;color:#aab3b5;z-index:2}.scroll-cue>span:last-child{font-size:22px;color:var(--gold);animation:scroll-bob 2s ease-in-out infinite}.magic-particles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1}.magic-particles i{position:absolute;width:3px;height:3px;background:#f4d692;border-radius:50%;box-shadow:0 0 9px 2px #efbb6f55;animation:firefly var(--duration) ease-in-out infinite;animation-delay:var(--delay);opacity:0}.date-ribbon{border-block:1px solid #b8975c35;background:#111d29}.ribbon-inner{min-height:126px;display:grid;grid-template-columns:1.1fr 1.1fr 1.1fr 1fr;align-items:center;gap:38px}.ribbon-heading{display:flex;align-items:center;gap:17px;font:16px var(--serif);letter-spacing:2px;color:#d5bb88}.ribbon-heading svg{width:33px;height:33px}.ribbon-heading small{display:block;font:9px Georgia;letter-spacing:2.5px;color:#7c8c98;margin-top:10px}.ribbon-date,.ribbon-place{padding-left:32px;border-left:1px solid #b8975c30;display:flex;flex-direction:column;gap:9px}.ribbon-date strong{font:24px Georgia;letter-spacing:1.5px;color:#e3d6be}.ribbon-date span,.ribbon-place span{font-size:10px;color:#9eaab0;letter-spacing:1.5px}.ribbon-place strong{font:17px var(--serif);letter-spacing:2px}.calendar-link{background:none;justify-self:end;font-size:11px;letter-spacing:1px;color:#d6ba86;padding:12px 0;border-bottom:1px solid #a9884e77}.calendar-link>span{margin-left:26px}.paper-section{color:#443c30;background-color:var(--cream);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23978160' opacity='.065' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.letter-section{padding:105px 0 110px}.letter-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:100px;align-items:center}.letter-intro{position:relative}.owl-drawing{display:block;color:#8e764c;margin:27px 0 18px}.owl-drawing svg{width:98px;height:85px;stroke-width:.8}.letter-intro h2{font:34px/1.65 var(--serif);letter-spacing:3px;margin-top:20px}.gold-rule{display:block;background:#a08350;height:1px;width:42px;margin:24px 0 21px}.letter-intro>p:last-of-type{color:#887d6a;font-size:12px;line-height:2;letter-spacing:1px}.post-stamp{display:block;position:absolute;right:0;bottom:10px;width:98px;height:98px;transform:rotate(-16deg);border:1px solid #9c815666;border-radius:50%;outline:1px solid #9c815644;outline-offset:-5px;color:#9c815699;text-align:center;padding-top:22px;font:9px/1.8 Georgia;letter-spacing:1px}.post-stamp b{font-size:12px;letter-spacing:1.5px}.letter-paper{position:relative;padding:45px 48px 39px;background:#f8f3e8;box-shadow:0 15px 45px #5943220b;transform:rotate(-1deg);border:1px solid #bb9c6430;isolation:isolate}.letter-paper:before{content:"";position:absolute;top:10px;right:10px;bottom:10px;left:10px;border:1px solid #ae8e5325;z-index:-1}.letter-salutation{font:17px var(--serif);letter-spacing:2px;margin-bottom:25px}.letter-paper #letter-paragraphs>p{font-size:12px;line-height:2.5;color:#7c7161;letter-spacing:1px;margin-bottom:16px}.letter-emphasis{font:16px/1.8 var(--serif);letter-spacing:1px;color:#96713a;padding-top:8px}.letter-signature{margin-top:26px;text-align:right;font:19px var(--serif);letter-spacing:3px}.letter-signature i{font:italic 20px Georgia;color:#a28450;margin:0 10px}.letter-signature small{display:block;font:10px/2.5 PingFang SC,sans-serif;color:#988568;letter-spacing:2px;margin-top:5px}.letter-spark{position:absolute;right:28px;top:24px;font-size:28px;color:#b99a5b}.paper-corner{position:absolute;width:25px;height:25px;border-color:#b29b6e}.top-left{left:10px;top:10px;border-left:1px solid;border-top:1px solid}.bottom-right{right:10px;bottom:10px;border-right:1px solid;border-bottom:1px solid}.memories-section{padding:98px 0 60px;background:radial-gradient(ellipse at 50% 0%,#1b2b3b,#0d1824 70%)}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:47px}.section-heading h2{font:32px var(--serif);letter-spacing:3px;margin-top:17px}.section-heading>p{font-size:11px;line-height:2.2;letter-spacing:1.5px;color:#8e9ba5;text-align:right}.photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;align-items:start}.memory-photo{padding:9px 9px 0;background:#eae3d4;box-shadow:0 15px 25px #0003;transform:rotate(-3deg);transition:transform .3s}.memory-photo:nth-child(2n){transform:rotate(3deg);margin-top:32px}.memory-photo:nth-child(3){transform:rotate(-1deg)}.memory-photo:hover{transform:translateY(-8px) rotate(0)}.memory-photo button{display:block;position:relative;width:100%;padding:0;background:#d3cbbd;overflow:hidden}.memory-photo img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;transition:transform .5s}.photo-zoom{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#09131b44;opacity:0;transition:opacity .3s;color:#fff;font-size:32px;font-weight:200}.memory-photo button:hover .photo-zoom,.memory-photo button:focus-visible .photo-zoom{opacity:1}.memory-photo figcaption{padding:15px 2px 18px;display:flex;gap:6px;align-items:center;justify-content:space-between;color:#6e604a;font:11px var(--serif);letter-spacing:.5px}.memory-photo figcaption small{color:#a68e69;font:9px Georgia}.photo-hint{text-align:center;margin-top:53px;font-size:10px;color:#8d9aa2;letter-spacing:2px}.photo-hint span{color:#ba9a5e;margin:0 12px}.vow-section{text-align:center;padding:38px 24px 93px;background:#0d1824}.constellation{font:23px Georgia;color:#b59860;display:flex;align-items:center;justify-content:center;gap:20px;margin-bottom:25px}.constellation span{font-size:10px;color:#68717b}.vow-section .eyebrow{font-size:9px;letter-spacing:2.5px}.vow-quote{font:25px/2 var(--serif);letter-spacing:3px;margin:24px 0 14px;color:#e3d6c0}.vow-english{font:italic 14px Georgia;letter-spacing:.6px;color:#8b969c}.mobile-break{display:none}.countdown{display:flex;justify-content:center;gap:24px;margin-top:42px}.countdown-unit{min-width:58px}.countdown-unit strong{font:36px Georgia;color:#d6ba85;display:block;font-variant-numeric:tabular-nums}.countdown-unit span{font-size:9px;letter-spacing:2px;display:block;margin-top:10px;color:#7e8e9a}.countdown-colon{font:25px Georgia;color:#6c6659;margin-top:5px}.countdown-caption{font-size:10px;color:#83919c;letter-spacing:2px;margin-top:22px}.celebration-section{padding:90px 0 95px}.center-heading{text-align:center}.center-heading h2{font:34px var(--serif);letter-spacing:4px;margin:18px 0}.center-heading>p:last-child{font-size:12px;color:#8c7e68;letter-spacing:1.5px}.ticket{display:flex;margin:46px auto 60px;max-width:1000px;border:1px solid #9f855380;background:#e7dcc54d;position:relative;filter:drop-shadow(0 8px 10px #715e3607)}.ticket:before,.ticket:after{content:"";position:absolute;right:222px;width:20px;height:10px;background:#f1eadb;border:1px solid #9f855380}.ticket:before{top:-1px;border-radius:0 0 14px 14px;border-top:0}.ticket:after{bottom:-1px;border-radius:14px 14px 0 0;border-bottom:0}.ticket-main{flex:1;padding:24px 30px;min-width:0}.ticket-topline{display:flex;gap:10px;align-items:center;font:9px Georgia;letter-spacing:1.5px;color:#9a7c46}.ticket-topline svg{width:23px;height:23px}.ticket-class{margin-left:auto;font-size:7px;letter-spacing:1px}.ticket-route{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:25px 0 27px}.ticket-route>div:not(.route-line){flex:none}.ticket-route>div>span{font-size:8px;letter-spacing:1px;display:block;color:#8d7f65}.ticket-route strong{display:block;font:24px var(--serif);letter-spacing:3px;margin-top:12px}.route-line{height:1px;flex:1;background:#a68c5655;text-align:center;position:relative}.route-line>span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:24px!important;background:#eee5d2;color:#98763b!important;padding:0 10px}.ticket-bottom{display:flex;justify-content:space-between;gap:15px;border-top:1px solid #9f855338;padding-top:17px;font:8px Georgia;color:#958568;letter-spacing:.5px}.ticket-bottom b{display:block;font:10px/1.5 PingFang SC,sans-serif;color:#594e3b;margin-top:6px;font-weight:400;letter-spacing:1px}.ticket-stub{width:232px;border-left:1px dashed #9f855370;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;color:#927443;padding:20px}.ticket-stub>span:first-child{font:8px Georgia;letter-spacing:4px}.ticket-stub>strong{font:53px Georgia;color:#3c3830;position:relative;padding-right:34px}.ticket-stub sup{font-size:22px;position:absolute;top:1px;right:5px}.ticket-stub sub{font-size:22px;position:absolute;bottom:1px;right:0}.ticket-stub i{font-size:38px;font-style:normal;position:absolute;right:8px;top:12px;transform:rotate(15deg);font-weight:100}.ticket-stub>span:nth-of-type(2){font-size:10px;letter-spacing:2px}.barcode{height:27px;width:120px;margin-top:9px;background:repeating-linear-gradient(90deg,#5b513d 0px,#5b513d 1px,transparent 1px,transparent 3px,#5b513d 3px,#5b513d 5px,transparent 5px,transparent 8px,#5b513d 8px,#5b513d 9px,transparent 9px,transparent 13px);opacity:.65}.ticket-stub small{font:6px Georgia;letter-spacing:1.3px}.celebration-layout{display:grid;grid-template-columns:1fr 1fr;gap:100px;max-width:1000px;margin:auto}.schedule h3{font:20px var(--serif);letter-spacing:2px;display:flex;align-items:center;gap:12px;margin:10px 0 38px}.schedule h3 svg{color:#9c7c40;width:22px;height:22px}.tentative-label{border:1px solid #a0885e50;font:9px/1.5 PingFang SC,sans-serif;color:#9c845e;letter-spacing:1px;padding:2px 6px;margin-left:2px}.schedule ol{margin:0;padding:0;list-style:none}.schedule li{position:relative;display:flex;gap:24px;padding-bottom:35px}.schedule li:last-child{padding-bottom:0}.schedule li:before{content:"";position:absolute;width:1px;left:19px;top:38px;bottom:0;background:#ac8e5040}.schedule li:last-child:before{display:none}.schedule-symbol{border:1px solid #a88a4f60;border-radius:50%;width:40px;height:40px;flex:none;display:flex;align-items:center;justify-content:center;color:#9c7c40;background:#f1eadb}.schedule-symbol svg{width:21px;height:21px}.schedule li time{color:#9b783a;font:18px Georgia;display:block;margin-bottom:9px}.schedule li h4{font:16px var(--serif);letter-spacing:1px;margin:0 0 9px}.schedule li p{font-size:10px;color:#97896f;letter-spacing:1px}.venue-panel{border-left:1px solid #a38a5838;padding-left:62px;position:relative}.venue-icon{display:block;position:absolute;right:0;top:0;color:#92764988}.venue-icon svg{width:60px;height:60px;stroke-width:1}.venue-panel>.eyebrow{font-size:9px;letter-spacing:2px;padding-top:11px}.venue-panel h3{font:29px var(--serif);letter-spacing:3px;margin:18px 0 12px}.venue-panel>[data-address]{font-size:12px;letter-spacing:2px;color:#887b67}.venue-date{margin:26px 0 15px;border-top:1px solid #9a824c30;padding-top:20px}.venue-date>span{font-size:11px;letter-spacing:.5px}.venue-date>strong{display:block;font:27px Georgia;color:#98753a;margin-top:11px}.venue-date small{font:10px PingFang SC,sans-serif;letter-spacing:1px;margin-left:6px}.venue-note{font-size:10px;line-height:1.9;letter-spacing:.5px;color:#9a8c74;max-width:300px}.venue-actions{display:flex;align-items:center;gap:25px;margin-top:20px}.button-dark{background:#172533;color:#e1c591}.button-dark:hover{background:#263b4b}.venue-actions .button{min-height:43px;padding:0 18px;font-size:11px;gap:9px}.venue-actions .button svg{height:16px;width:16px}.text-button{font-size:10px;background:none;color:#927443;border-bottom:1px solid #a3875055;padding:8px 0;letter-spacing:1px}.closing-section{text-align:center;padding:77px 24px 75px;background:radial-gradient(ellipse at 50% 90%,#1a2a38,#0b1520 70%)}.closing-symbol{display:flex;justify-content:center;color:#c0a166;margin-bottom:27px}.closing-symbol svg{height:40px;width:60px;stroke-width:.8}.closing-section .eyebrow{font-size:8px;letter-spacing:2.5px}.closing-section h2{font:31px/1.9 var(--serif);letter-spacing:4px;margin:24px 0 18px;color:#e1d3b9}.closing-section>p:not(.eyebrow){font-size:11px;line-height:2;letter-spacing:1.5px;color:#8e9ca5}.closing-section .button{margin-top:30px}.closing-names{display:flex;justify-content:center;align-items:center;gap:20px;font:17px var(--serif);letter-spacing:3px;margin-top:35px;color:#a9b1b1}.closing-names>span:nth-child(2){color:#b59960;font-size:20px}.site-footer{border-top:1px solid #d4b17422;padding:25px 56px;display:flex;justify-content:space-between;align-items:center;gap:20px;color:#667581;font-size:9px;letter-spacing:1px}.site-footer>a:first-child{font:8px Georgia;letter-spacing:2px;color:#9e8b66}.mobile-bar{display:none}dialog{padding:0;border:0}dialog::backdrop{background:#050d16d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.owl-dialog{width:min(540px,calc(100% - 36px));max-height:calc(100svh - 40px);overflow-y:auto;color:#534936;background:#f1eadb;box-shadow:0 30px 150px #0008;border:1px solid #b49a6760;text-align:center}.owl-dialog:before{content:"";position:absolute;top:12px;right:12px;bottom:12px;left:12px;border:1px solid #b49a6755;pointer-events:none}.dialog-close{position:absolute;top:15px;right:16px;background:none;color:#9c8458;width:36px;height:36px;font:28px/1 Georgia;z-index:5}.envelope-stage{padding:48px 25px 37px}.envelope-stage .eyebrow{font-size:9px;letter-spacing:2px}.envelope-stage h2{font:27px var(--serif);letter-spacing:2px;margin:18px 0 12px}.envelope-stage>p:not(.eyebrow){font-size:11px;color:#928064;letter-spacing:2px}.envelope{width:280px;height:180px;margin:45px auto 38px;position:relative;perspective:800px;filter:drop-shadow(0 12px 12px #5f48272b)}.envelope-back{position:absolute;top:0;right:0;bottom:0;left:0;background:#bca17a}.envelope-letter{position:absolute;top:12px;right:18px;bottom:0;left:18px;background:#f8f2e6;padding:20px;font:12px/1.8 Georgia;letter-spacing:3px;color:#9b7943;transition:transform .7s ease .45s}.envelope-letter>span{font-size:27px}.envelope-front{position:absolute;top:0;right:0;bottom:0;left:0;background:#d8c3a0;clip-path:polygon(0 0,50% 53%,100% 0,100% 100%,0 100%)}.envelope-front:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:#e0cfb2;clip-path:polygon(0 100%,50% 42%,100% 100%)}.envelope-flap{position:absolute;top:0;right:0;bottom:0;left:0;background:#c8ae86;clip-path:polygon(0 0,100% 0,50% 56%);transform-origin:top;transition:transform .65s ease;z-index:2}.wax-seal{position:absolute;left:50%;top:43%;transform:translate(-50%) rotate(-10deg);width:47px;height:47px;border-radius:48% 45% 46% 43%;background:#79392e;border:3px double #a9664d;color:#c58b66;box-shadow:1px 3px 5px #3b22153b;display:grid;place-items:center;font:27px Georgia;z-index:3;transition:opacity .25s,transform .5s}.is-opening .wax-seal{opacity:0;transform:translate(-50%,35px) rotate(20deg)}.is-opening .envelope-flap{transform:rotateX(180deg);z-index:0}.is-opening .envelope-letter{transform:translateY(-60px)}.opened-letter{padding:38px 35px 42px;animation:letter-appear .55s ease both}.opened-letter[hidden]{display:none}.dialog-star{display:block;font:45px Georgia;color:#b39154;margin-bottom:15px}.opened-letter .eyebrow{font-size:8px;letter-spacing:2px}.opened-letter h2{font:26px/1.6 var(--serif);letter-spacing:2px;margin:16px 0 10px}.opened-letter>p:not(.eyebrow){font-size:12px;color:#8b7b61;line-height:2;letter-spacing:1px}.dialog-couple{font:24px var(--serif);letter-spacing:3px;margin:27px 0 22px;color:#5d4f36}.dialog-couple i{font:italic 27px Georgia;color:#a1834a;margin:0 15px}.opened-letter .dialog-note{font-size:10px!important;margin:8px 0 25px}.photo-dialog{width:min(1000px,calc(100% - 30px));max-height:calc(100svh - 36px);background:#101d2b;color:#e2d0ab;border:1px solid #a68b553b;overflow:auto}.photo-dialog-header{display:flex;justify-content:space-between;align-items:center;min-height:60px;padding:10px 24px;border-bottom:1px solid #a68b5525}.photo-dialog-header h2{font:14px var(--serif);letter-spacing:2px}.photo-dialog .dialog-close{top:11px}.photo-stage{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:24px}.photo-stage>button{background:none;border:1px solid #a68b5540;color:#cbb486;width:42px;height:42px;flex:none;font-size:22px}.photo-stage figure{min-width:0}.photo-stage img{max-height:70svh;width:auto;margin:auto;object-fit:contain}.photo-stage figcaption{display:flex;justify-content:space-between;gap:20px;margin-top:17px;font-size:11px;line-height:1.8;color:#b3afa4;letter-spacing:1px}.photo-stage figcaption>span{font-family:Georgia;white-space:nowrap}.toast{position:fixed;bottom:35px;left:50%;transform:translate(-50%,15px);max-width:calc(100% - 35px);padding:13px 22px;background:#ead7af;color:#28303a;box-shadow:0 5px 30px #0005;font-size:12px;z-index:50;opacity:0;pointer-events:none;transition:opacity .25s,transform .25s;text-align:center;line-height:1.6}.toast.visible{opacity:1;transform:translate(-50%)}@keyframes firefly{0%,to{opacity:0;transform:translateY(20px)}35%{opacity:.8}65%{opacity:.4}85%{transform:translate(20px,-60px)}}@keyframes scroll-bob{50%{transform:translateY(5px)}}@keyframes music-bar{to{transform:scaleY(.3)}}@keyframes letter-appear{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@media(min-width:1600px){.hero-content{padding-top:190px}.hero-art{object-position:center 58%}}@media(max-width:1100px){.wrap{width:calc(100% - 72px)}.site-header{padding-inline:36px}.site-header nav{gap:23px}.brand{font-size:9px;letter-spacing:1.5px}.hero{min-height:810px}.hero h1{font-size:58px}.hero-content{padding-top:175px}.ribbon-inner{gap:20px}.ribbon-heading{font-size:14px;letter-spacing:1px;gap:12px}.ribbon-date,.ribbon-place{padding-left:20px}.ribbon-place strong{font-size:15px;letter-spacing:1px}.ribbon-date strong{font-size:22px}.calendar-link{font-size:10px}.calendar-link>span{margin-left:10px}.letter-layout{gap:55px;grid-template-columns:.8fr 1.2fr}.letter-paper{padding:38px 35px}.letter-intro h2{font-size:30px}.post-stamp{right:-15px;bottom:-10px;width:80px;height:80px;font-size:7px;padding-top:15px}.photo-grid{gap:18px}.memory-photo figcaption{font-size:9px}.celebration-layout{gap:55px}.venue-panel{padding-left:40px}.ticket-route{gap:20px}.ticket-route strong{font-size:22px}.ticket-class{display:none}.site-footer{padding-inline:36px}}@media(max-width:760px){html{scroll-padding-top:25px}.wrap{width:calc(100% - 44px)}.site-header{height:78px;padding-inline:23px}.brand{gap:10px;font-size:8px;letter-spacing:1px}.brand-mark{font-size:40px;height:38px;width:29px}.brand-mark>span{top:15px;font-size:20px;left:7px}.brand small{font-size:8px;letter-spacing:2px;margin-top:5px}.site-header nav{display:none}.music-button{padding:10px 0 10px 10px}.music-label{display:none}.hero{height:850px;min-height:780px;max-height:none}.hero-art{object-position:65% center}.hero-shade{background:linear-gradient(90deg,#0b1520cf,#0b152067 50%,#0b152023),linear-gradient(0deg,#0b1520,#0b15206b 32%,#0b152000 60%,#0b152056)}.hero-content{padding-top:151px}.hero .eyebrow{font-size:8px;letter-spacing:2.5px;gap:10px}.hero .eyebrow>span{width:20px}.hero-prelude{font-size:10px;letter-spacing:3px;margin-top:28px;margin-bottom:17px}.hero h1{font-size:49px;line-height:1.5;letter-spacing:5px}.title-star{right:-27px;top:13px;font-size:18px}.hero-english{font-size:14px;letter-spacing:.1px;margin-top:16px;margin-bottom:29px}.couple-names{font-size:23px;gap:22px;letter-spacing:4px}.name-amp{font-size:24px}.hero-description{font-size:11px;letter-spacing:1.5px;margin-top:18px;margin-bottom:29px}.hero .button{min-height:49px;padding:0 20px;font-size:11px}.hero-footer{font-size:9px;letter-spacing:1px;gap:10px;margin-top:27px}.hero-annotation{right:20px;bottom:82px;font-size:7px;letter-spacing:1.4px}.hero-annotation i{height:40px}.scroll-cue{bottom:24px;font-size:8px}.ribbon-inner{grid-template-columns:1fr 1fr;gap:24px 20px;padding:26px 0}.ribbon-heading{font-size:13px;gap:10px}.ribbon-heading svg{width:27px;height:27px}.ribbon-heading small{font-size:8px;margin-top:7px}.ribbon-date{padding-left:20px}.ribbon-date strong{font-size:23px}.ribbon-date span{font-size:9px;letter-spacing:.8px}.ribbon-place{border:0;padding-left:37px;gap:6px}.ribbon-place strong{font-size:14px}.ribbon-place span{font-size:9px}.calendar-link{justify-self:start;margin-left:20px;padding:8px 0}.calendar-link>span{margin-left:30px}.letter-section{padding:62px 0 60px}.letter-layout{grid-template-columns:1fr;gap:35px}.letter-intro{padding-left:0;text-align:center}.letter-intro .eyebrow{font-size:9px;letter-spacing:2px}.owl-drawing{display:flex;justify-content:center;margin:24px 0 14px}.owl-drawing svg{width:79px;height:67px}.letter-intro h2{font-size:28px;margin-top:17px;letter-spacing:3px}.letter-intro h2 br{display:none}.letter-intro .gold-rule{margin:17px auto 15px;width:30px}.letter-intro>p:last-of-type{font-size:10px;line-height:1.9}.post-stamp{right:4px;bottom:-30px;width:73px;height:73px;font-size:6px;padding-top:14px;opacity:.7}.post-stamp b{font-size:9px}.letter-paper{padding:35px 29px 31px;transform:rotate(-.8deg)}.letter-salutation{font-size:16px;margin-bottom:21px}.letter-paper #letter-paragraphs>p{font-size:11px;line-height:2.3;margin-bottom:15px}.letter-emphasis{font-size:14px;line-height:1.8;letter-spacing:.5px}.letter-signature{font-size:17px;letter-spacing:2px}.letter-signature small{font-size:9px}.letter-spark{font-size:24px;right:22px;top:21px}.memories-section{padding:60px 0 35px}.section-heading{display:block;text-align:center;margin-bottom:30px}.section-heading .eyebrow{font-size:9px;letter-spacing:2px}.section-heading h2{font-size:27px;letter-spacing:2px;margin-top:13px}.section-heading>p{text-align:center;font-size:10px;line-height:2;margin-top:16px;letter-spacing:1px}.section-heading>p br{display:none}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 19px;padding:0 4px}.memory-photo{padding:6px 6px 0}.memory-photo:nth-child(2n){margin-top:22px}.memory-photo figcaption{font-size:9px;letter-spacing:0;padding:12px 0 14px;gap:3px}.memory-photo figcaption small{font-size:8px}.photo-hint{font-size:8px;letter-spacing:1px;margin-top:32px}.photo-hint span{margin:0 5px}.vow-section{padding:28px 20px 58px}.constellation{font-size:20px;gap:16px;margin-bottom:23px}.vow-section .eyebrow{font-size:8px;letter-spacing:1.7px}.vow-quote{font-size:21px;letter-spacing:1.5px;line-height:1.9;margin:18px 0 14px}.mobile-break{display:block}.vow-english{font-size:12px;letter-spacing:0}.countdown{gap:12px;margin-top:32px}.countdown-unit{min-width:44px}.countdown-unit strong{font-size:30px}.countdown-unit span{font-size:8px;letter-spacing:1px;margin-top:8px}.countdown-colon{font-size:21px}.countdown-caption{font-size:9px;letter-spacing:1px;margin-top:20px}.celebration-section{padding:57px 0 58px}.center-heading .eyebrow{font-size:9px;letter-spacing:2px}.center-heading h2{font-size:28px;letter-spacing:2px;margin:14px 0}.center-heading>p:last-child{font-size:10px;letter-spacing:.5px}.ticket{margin:30px 0 38px;display:block}.ticket:before,.ticket:after{top:auto;bottom:113px;width:10px;height:20px;border:1px solid #9f855380}.ticket:before{left:-1px;right:auto;border-left:0;border-radius:0 14px 14px 0}.ticket:after{right:-1px;border-right:0;border-radius:14px 0 0 14px}.ticket-main{padding:20px 20px 23px}.ticket-topline{font-size:7px;letter-spacing:1px;gap:8px}.ticket-topline svg{width:20px;height:20px}.ticket-route{gap:15px;padding:23px 0}.ticket-route>div>span{font-size:6px;letter-spacing:.7px}.ticket-route strong{font-size:21px;letter-spacing:1px;margin-top:10px}.route-line>span{font-size:20px!important;padding:0 5px}.ticket-bottom{gap:10px;padding-top:14px;font-size:7px}.ticket-bottom b{font-size:8px;letter-spacing:.3px;margin-top:5px}.ticket-stub{width:auto;border-left:0;border-top:1px dashed #9f855370;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:20px 50px;gap:6px 20px;padding:18px 26px;text-align:center;justify-items:center}.ticket-stub>span:first-child{font-size:7px;grid-column:1;grid-row:1;letter-spacing:3px}.ticket-stub>strong{font-size:43px;grid-column:1;grid-row:2;padding-right:30px;align-self:start}.ticket-stub sup,.ticket-stub sub{font-size:19px}.ticket-stub i{font-size:32px;top:10px}.ticket-stub>span:nth-of-type(2){font-size:8px;grid-column:2;grid-row:1;letter-spacing:1px}.barcode{grid-column:2;grid-row:2;width:98px;height:25px;margin-top:0;align-self:start}.ticket-stub small{grid-column:2;grid-row:2;align-self:end;font-size:5px;letter-spacing:.6px;padding-bottom:9px}.celebration-layout{grid-template-columns:1fr;gap:40px}.schedule{padding-inline:8px}.schedule h3{font-size:19px;margin:4px 0 29px;gap:11px}.schedule li{gap:22px;padding-bottom:30px}.schedule li h4{font-size:16px}.schedule li time{font-size:18px}.schedule li p{font-size:10px}.venue-panel{border-left:0;border-top:1px solid #a38a5838;padding:28px 8px 0}.venue-icon{top:32px;right:8px}.venue-panel h3{font-size:27px;margin:17px 0 11px}.venue-date{margin-top:23px}.venue-note{max-width:100%;font-size:10px}.venue-actions{gap:25px}.closing-section{padding:53px 22px 50px}.closing-symbol{margin-bottom:23px}.closing-section .eyebrow{font-size:6px;letter-spacing:1.5px}.closing-section h2{font-size:25px;letter-spacing:2px;margin:20px 0 16px}.closing-section>p:not(.eyebrow){font-size:10px;letter-spacing:.5px}.closing-section .button{margin-top:25px;font-size:11px}.closing-names{font-size:16px;letter-spacing:2px;margin-top:28px}.site-footer{padding:25px 22px 98px;flex-wrap:wrap;justify-content:center;gap:14px;text-align:center;font-size:8px;line-height:1.7}.site-footer>span{order:3;flex:0 0 100%}.site-footer>a:first-child{font-size:7px;letter-spacing:1.5px}.site-footer>a:last-child{font-size:8px}.mobile-bar{position:fixed;bottom:0;inset-inline:0;display:flex;gap:12px;padding:11px 20px calc(11px + env(safe-area-inset-bottom));background:#0b1520f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #b89a582b;z-index:12;box-shadow:0 -5px 25px #0002}.mobile-bar>a,.mobile-bar>button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:42px;font-size:11px;letter-spacing:1px}.mobile-bar>a{color:#d0ba91;flex:1;border:1px solid #b89a5844}.mobile-bar>button{background:#d5b579;color:#172029;flex:1.3}.mobile-bar svg{width:16px;height:16px}.toast{bottom:95px;font-size:11px;padding:11px 18px;width:max-content}.photo-stage{padding:18px 10px;gap:8px}.photo-stage>button{width:30px;height:36px;font-size:17px}.photo-stage img{max-height:65svh}.photo-stage figcaption{font-size:9px;gap:6px;letter-spacing:0}.photo-dialog-header{padding-inline:16px}.photo-dialog-header h2{font-size:12px;letter-spacing:1px}.photo-dialog .dialog-close{right:8px}.envelope-stage{padding:47px 18px 30px}.envelope-stage h2{font-size:24px}.envelope{width:245px;height:158px;margin:37px auto 33px}.envelope-letter{font-size:10px;padding:14px}.wax-seal{width:42px;height:42px;font-size:24px}.envelope-stage .button{font-size:10px;min-height:46px}.opened-letter{padding:35px 20px}.opened-letter h2{font-size:23px;letter-spacing:1px}.opened-letter>p:not(.eyebrow){font-size:11px}.dialog-couple{font-size:23px;letter-spacing:2px}.dialog-couple i{margin:0 10px}.opened-letter .button{font-size:11px}.dialog-close{top:13px;right:13px}}@media(max-width:360px){.wrap{width:calc(100% - 36px)}.site-header{padding-inline:18px}.hero h1{font-size:43px;letter-spacing:3px}.hero{height:805px;min-height:805px}.hero-content{padding-top:139px}.hero-prelude{letter-spacing:2px}.hero-english{font-size:12px}.couple-names{font-size:22px;gap:18px}.hero-footer{font-size:8px;gap:8px;letter-spacing:.5px}.ribbon-inner{gap:23px 12px}.ribbon-date{padding-left:14px}.ribbon-date strong{font-size:21px}.ribbon-heading{font-size:12px;letter-spacing:0}.ribbon-place{padding-left:35px}.ribbon-place strong{font-size:12px}.calendar-link{margin-left:14px;font-size:9px}.calendar-link>span{margin-left:13px}.letter-intro h2{font-size:24px}.letter-paper{padding-inline:25px}.letter-emphasis{font-size:12px}.section-heading h2{font-size:24px}.memory-photo figcaption{font-size:8px;letter-spacing:-.5px}.memory-photo figcaption small{display:none}.photo-grid{gap:24px 14px}.vow-quote{font-size:19px}.center-heading h2{font-size:25px}.ticket-main{padding-inline:15px}.ticket-route strong{font-size:19px}.ticket-topline{letter-spacing:.6px}.ticket-bottom b{font-size:7px}.ticket-bottom{gap:7px}.closing-section h2{font-size:23px}.opened-letter h2{font-size:21px}.envelope{width:230px;height:148px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.magic-particles{display:none}.memory-photo:hover{transform:rotate(0)}.is-opening .envelope-letter{transform:translateY(-40px)}}@font-face{font-family:Hogwarts WenKai;src:url(./HogwartsWenKai-UI-aRfFNp8G.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Harry P;src:url(./HARRYP__-BGPnn_H6.woff2) format("woff2"),url(./HARRYP__-BTdgzzKA.TTF) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Cinzel Decorative;src:url(./CinzelDecorative-Regular-C-GyBEUb.woff2) format("woff2"),url(./CinzelDecorative-Regular-CwcOdYzO.ttf) format("truetype");font-weight:400;font-display:swap}@font-face{font-family:Tangerine;src:url(./Tangerine-Regular-DXkF0RZ2.woff2) format("woff2"),url(./Tangerine-Regular-KHIBgKA2.ttf) format("truetype");font-weight:400;font-display:swap}:root{font-family:Hogwarts WenKai,Kaiti SC,STKaiti,KaiTi,serif;--ink: #28472f;--quill: "Hogwarts WenKai", "Kaiti SC", "STKaiti", "KaiTi", serif;--serif: var(--quill);--engraving: "Cinzel Decorative", Georgia, serif}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}#admission-letter-title:focus,#hero-title:focus{outline:none}[hidden]{display:none!important}.admission-pending main,.admission-pending .site-header,.admission-pending .site-footer,.admission-pending .mobile-bar{visibility:hidden}.admission-pending:before{content:"猫头鹰正携信而来…";position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;color:#c6b28c;font:14px var(--quill);letter-spacing:3px}.admission-revealed main{animation:reveal-world 1s ease both}.brand-crest{width:38px;height:45px;object-fit:contain;filter:grayscale(1) contrast(4) invert(1) sepia(.6);mix-blend-mode:screen}.brand .brand-wordmark{font:34px/.85 Harry P,Georgia,serif;letter-spacing:1px}.brand .brand-wordmark small{font:8px/1.8 var(--quill);letter-spacing:2px;margin-top:9px}.venue-date small{font-family:var(--quill)}.hero-english em{font:38px/.8 Harry P,Georgia,serif;letter-spacing:1px;vertical-align:-3px}.hero h1,.center-heading h2,.section-heading h2,.closing-section h2,.letter-intro h2{font-family:var(--quill)}.eyebrow,.small-caps{font-family:var(--engraving);font-size:9px}.letter-layout{grid-template-columns:.75fr 1.25fr;gap:75px}.letter-paper{border:0;background:url(./parchment-v3-clean-CDhd-LtV.webp) center / 100% 100% no-repeat;padding:47px 58px 52px;box-shadow:none;filter:drop-shadow(1px 8px 12px #9b7b4326);color:var(--ink);clip-path:none}.letter-paper:before{display:none}.stationery-heading{text-align:center;margin-bottom:30px}.ink-crest{object-fit:contain;filter:grayscale(1) contrast(4);mix-blend-mode:multiply}.stationery-heading .ink-crest{width:66px;height:78px;margin:0 auto 10px}.stationery-heading>p{font:43px/.95 Harry P,Georgia,serif;letter-spacing:1px;color:var(--ink)}.stationery-heading>small{font:7px var(--engraving);display:block;letter-spacing:.7px;margin-top:11px}.stationery-heading>span{display:block;font:11px var(--quill);letter-spacing:1px;margin-top:12px}.letter-salutation{font:19px var(--quill);color:var(--ink)}.letter-paper #letter-paragraphs>p{font-family:var(--quill);font-size:15px;color:#42523b;letter-spacing:.4px;line-height:2}.letter-emphasis{color:#28472f;font:18px/1.8 var(--quill);letter-spacing:.5px}.letter-signature{font-family:var(--quill);font-size:22px;color:var(--ink)}.letter-signature i{color:#65714d}.letter-signature small{font-family:var(--quill);font-size:11px;color:#626c49}.stationery-signoff{display:block;font:34px Tangerine,cursive;margin-top:-12px;color:#526a43;transform:rotate(-4deg);width:max-content}.letter-intro .small-caps{font-size:8px}.railway-ticket{max-width:850px;margin:43px auto 55px;transform:rotate(-1deg)}.railway-prop{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:32px 90px 33px;color:#594a29;background:#e9dcc0 url(./parchment-v3-clean-CDhd-LtV.webp) center 48% / 115% 215%;border:7px double #9b7c35;outline:1px solid #a28a52;outline-offset:4px;box-shadow:0 13px 24px #67471b22}.railway-prop:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;border:1px solid #997834aa;outline:1px dotted #a2813b;outline-offset:4px;z-index:-1}.railway-prop:after{content:"✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦ ✧ ✦";position:absolute;top:-3px;inset-inline:0;font:8px Georgia;line-height:10px;letter-spacing:10px;color:#b39250;white-space:nowrap}.railway-company{font:11px var(--engraving);letter-spacing:4px;color:#9b7c35}.railway-route{font:22px var(--engraving);letter-spacing:1.4px;margin-top:16px}.railway-route em{font:italic 15px Georgia;letter-spacing:0;margin:0 3px}.railway-class{font:italic 13px Georgia;margin-top:9px;color:#75613b}.platform-title{display:flex;justify-content:center;align-items:baseline;gap:19px;margin:14px 0 6px;position:relative;z-index:1;color:#a18139;text-shadow:1px 1px 0 #f8edcd,2px 2px 0 #8e6a2e55}.platform-title>span{font:49px var(--engraving);letter-spacing:-2px}.platform-title>strong{font:67px Georgia;font-weight:400}.railway-caption{font:15px var(--quill);letter-spacing:3px;color:#826334;margin-top:12px}.railway-terms{font:9px Georgia;margin-top:20px;letter-spacing:.7px;color:#615435}.railway-serial{position:absolute;right:27px;bottom:19px;font:9px Georgia;letter-spacing:1px;color:#91703a;transform:rotate(-90deg);transform-origin:right}.ticket-engraving{position:absolute;width:340px;height:195px;left:50%;top:50%;transform:translate(-50%,-42%);z-index:-1;opacity:.15}.ticket-engraving>img{position:absolute;left:50%;top:50%;width:125px;height:150px;object-fit:contain;transform:translate(-50%,-50%);filter:grayscale(1) contrast(1.5);mix-blend-mode:multiply}.ticket-engraving>i{display:block;position:absolute;width:174px;height:174px;border:10px double #735c2a;outline:3px double #735c2a;outline-offset:6px;border-radius:50%;top:10px;background:repeating-conic-gradient(from 0deg,#735c2a 0deg 1deg,transparent 1deg 4deg);mask:radial-gradient(circle,transparent 0 51%,#000 52%)}.ticket-engraving>i:nth-child(1){left:0}.ticket-engraving>i:nth-child(2){right:0}.ticket-engraving>i:nth-child(3){left:50%;transform:translate(-50%);width:190px;height:190px;top:2px}.ticket-corner{position:absolute;width:86px;height:86px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 90 90'%3E%3Cg fill='none' stroke='%239b7c35' stroke-width='.8'%3E%3Cpath d='M4 86V4h82L4 86Zm5-12V9h65L9 74Zm4-13V13h48L13 61Z'/%3E%3Cpath d='M17 43C2 14 51 7 51 25S23 47 23 29s35-18 36 4c1 15-31 28-25 4S76 17 65 6M5 82l3-15M81 5l-15 3M15 51l35-35'/%3E%3Ccircle cx='29' cy='29' r='5'/%3E%3Ccircle cx='19' cy='19' r='2'/%3E%3Ccircle cx='45' cy='19' r='2'/%3E%3Ccircle cx='19' cy='45' r='2'/%3E%3Cpath d='m10 10 5 2-3 3Zm-5 70 5-1-2 4M79 5l-1 5 4-2'/%3E%3C/g%3E%3C/svg%3E") center / contain}.corner-tl{top:9px;left:9px}.corner-tr{top:9px;right:9px;transform:rotate(90deg)}.corner-bl{bottom:9px;left:9px;transform:rotate(-90deg)}.corner-br{bottom:9px;right:9px;transform:rotate(180deg)}.railway-ticket>figcaption{display:flex;justify-content:space-between;gap:20px;padding:25px 9px 0;font:8px var(--engraving);letter-spacing:1px;color:#917c52}.railway-ticket>figcaption b{display:block;font:13px/1.5 var(--quill);font-weight:400;margin-top:7px;color:#625639;letter-spacing:1px}.admission-dialog{width:100%;max-width:none;height:100%;height:100dvh;max-height:none;margin:0;border:0;color:#e3d1a7;background:#0b1113;overflow:auto;text-align:left;overscroll-behavior:contain;scrollbar-color:#665638 #141b1a}.admission-dialog:before{display:none}.admission-dialog::backdrop{background:#0b1113;-webkit-backdrop-filter:none;backdrop-filter:none}.admission-dialog .dialog-close{position:fixed;top:20px;right:22px;color:#cbb582;z-index:10}.admission-sky{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(90deg,#071015d9,#0c1517d9),url(./hogwarts-night-Jah-crps.webp) 50% 30% / cover;opacity:.75}.admission-sky:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 70% 45%,#96632622,transparent 60%),radial-gradient(ellipse at 50% 100%,#000a,transparent 70%)}.admission-shell{position:relative;min-height:100%;display:grid;align-items:center;justify-items:center;padding:60px 45px}.admission-dialog .envelope-stage{padding:0;width:min(1190px,100%);display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:42px}.admission-postmark{font:9px var(--engraving);letter-spacing:2px;color:#a49167}.admission-postmark>span{margin:0 12px;font-size:12px;color:#b09358}.admission-wordmark{font:105px/.95 Harry P,Georgia,serif;letter-spacing:1px;color:#d8bb7b;margin:36px 0 13px;text-shadow:0 4px 20px #0009}.admission-school{font:8px/1.9 var(--engraving);letter-spacing:1.7px;color:#a99d80}.admission-dialog .envelope-stage h2{font:34px/1.8 var(--quill);letter-spacing:3px;color:#eadcbd;margin:40px 0 18px}.admission-intro #opening-description{color:#8f9a95;font:13px/2.3 var(--quill);letter-spacing:1.5px}.admission-whisper{font:35px/1.3 Tangerine,cursive;color:#aa9568;margin-top:29px;transform:rotate(-3deg)}.envelope-delivery{position:relative;padding:85px 0 25px}.address-slip{position:absolute;left:50px;top:17px;background:url(./parchment-v3-clean-CDhd-LtV.webp) center / 110% 220%;color:var(--ink);width:78%;min-height:195px;padding:22px 29px;transform:rotate(-7deg);box-shadow:0 5px 20px #0003}.address-slip>span{display:block;font:26px Tangerine,cursive}.address-slip>strong{display:block;font:22px var(--quill);margin:9px 0;letter-spacing:3px}.address-slip>p{font:13px var(--quill);letter-spacing:2px}.address-slip>small{display:block;font:9px var(--quill);margin-top:15px;letter-spacing:1px}.sealed-envelope{position:relative;width:100%;transform:rotate(4deg);filter:drop-shadow(0 20px 23px #0008);animation:owl-arrives 1.5s cubic-bezier(.16,.72,.24,1) both}.envelope-prop{width:100%;height:auto;position:relative;z-index:2;clip-path:polygon(4.2% 6.1%,96% 7.1%,97.2% 9%,97.1% 90.5%,95.8% 93.6%,4.1% 93.2%,3.1% 91%,3.5% 9%);transition:transform 1s ease .15s,opacity .8s ease .4s}.seal-hit-area{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;background:transparent;padding:0;border:none;border-radius:12px;outline-offset:0}.seal-hit-area:focus-visible{outline:none}.seal-hit-area:focus-visible .seal-focus-ring{outline:2px solid #e6cc8c;outline-offset:9px}.seal-hit-area:hover .seal-focus-ring{box-shadow:0 0 30px #e6cc8c44}.seal-focus-ring{position:absolute;width:18%;height:26%;left:41%;top:47%;border-radius:50%;animation:seal-glow 3.4s ease-in-out infinite}.flying-letter{position:absolute;top:13%;right:15%;bottom:6%;left:15%;background:url(./parchment-v3-clean-CDhd-LtV.webp) center / 100% 100%;padding:30px 20px;color:var(--ink);text-align:center;transform:translateY(0);opacity:0;transition:transform 1.15s ease .15s,opacity .6s}.flying-letter>span{font:48px Harry P,Georgia,serif}.is-opening .envelope-prop{transform:translateY(95px) rotate(4deg);opacity:0}.is-opening .flying-letter{transform:translateY(-65px) rotate(-4deg);opacity:1}.is-opening .address-slip{opacity:0;transition:opacity .4s}.is-opening .seal-focus-ring{animation:none;opacity:0}.is-opening .unseal-instruction{opacity:0}.unseal-instruction{font:13px/1.8 var(--quill);letter-spacing:1px;color:#c6b795;margin:30px 0 17px;text-align:center;transition:opacity .3s}.unseal-instruction>span{color:#ae8a4f;margin:0 8px}.delivery-footnote{font:7px/1.7 var(--engraving);text-align:center;letter-spacing:1px;color:#63716b}.admission-dialog .opened-letter{width:min(590px,100%);position:relative;padding:43px 62px 38px;margin:0 auto;text-align:left;background:url(./parchment-v3-clean-CDhd-LtV.webp) center / 100% 100% no-repeat;color:var(--ink);filter:drop-shadow(0 8px 16px #9b7b4326);clip-path:none}.admission-letter-heading{text-align:center}.admission-letter-heading .ink-crest{display:block;width:69px;height:81px;margin:0 auto 8px}.admission-letter-heading>p{font:45px/1 Harry P,Georgia,serif;letter-spacing:1px}.admission-letter-heading>span{display:block;font:8px/1.5 var(--engraving);letter-spacing:.8px;margin-top:12px}.admission-letter-heading>small{display:block;font:10px var(--quill);letter-spacing:2px;margin-top:11px}.admission-dialog .opened-letter h2{margin:22px 0 20px;text-align:center;font:22px/1.6 var(--quill);letter-spacing:3px;color:#26442e}.admission-dialog .opened-letter h2>span{font-size:26px;letter-spacing:9px;padding-left:9px}.admission-letter-body{font:15px/1.95 var(--quill);letter-spacing:.5px}.admission-letter-body>p{margin-bottom:13px}.admission-letter-body strong{font-weight:400;color:#183d27}.admission-letter-body .admission-salutation{font-size:17px;margin-bottom:15px}.admission-event{padding:15px 0 14px;margin:18px 0 14px;border-block:1px solid #4f6b443b;text-align:center}.admission-event>span{font:10px var(--quill);letter-spacing:4px;color:#5e6c43}.admission-event .dialog-couple{margin:13px 0 12px;font:24px var(--quill);letter-spacing:3px;color:var(--ink)}.admission-event .dialog-couple i{font:32px Tangerine,cursive;margin-inline:12px;color:#59714d}.admission-event>p{font:12px/1.9 var(--quill);letter-spacing:1px}.admission-event .dialog-note{display:inline-block;font:10px/1.8 var(--quill);margin:0 0 0 10px;color:#72734e}.admission-signature{display:flex;flex-direction:column;align-items:flex-start;margin:18px 0 23px}.admission-signature>span{font:italic 12px Georgia}.admission-signature>strong{font:38px/.9 Tangerine,cursive;font-weight:400;margin:12px 0 8px;transform:rotate(-4deg)}.admission-signature>small{font:10px var(--quill);letter-spacing:1px;margin-top:4px}.admission-accept{color:#f0e4c2;background:#29472f;width:100%;min-height:47px;font:13px var(--quill);letter-spacing:1.5px;border:1px solid #29472f;outline:1px solid #29472f60;outline-offset:3px}.admission-accept:hover{background:#365a3c}.admission-dialog .opened-letter>.admission-letter-footer{font:6px/1.6 var(--engraving);letter-spacing:1px;text-align:center;margin-top:22px;color:#737647}@keyframes owl-arrives{0%{transform:translate(40px,-45px) rotate(10deg);opacity:0}to{transform:rotate(4deg);opacity:1}}@keyframes seal-glow{50%{box-shadow:0 0 24px #caa86733}}@keyframes reveal-world{0%{opacity:0}to{opacity:1}}@media(max-width:1100px){.letter-layout{gap:35px}.letter-paper{padding-inline:42px}.admission-dialog .envelope-stage{gap:15px}.admission-wordmark{font-size:89px}.admission-dialog .envelope-stage h2{font-size:30px;letter-spacing:2px}.admission-postmark{font-size:7px;letter-spacing:1.5px}.admission-school{font-size:7px;letter-spacing:.5px}.address-slip{left:25px}.unseal-instruction{font-size:11px}.unseal-instruction>span{margin:0 3px}}@media(max-width:760px){.brand-crest{width:29px;height:35px}.brand .brand-wordmark{font-size:29px}.brand .brand-wordmark small{font-size:7px;letter-spacing:1px;margin-top:6px}.hero-english em{font-size:31px}.letter-layout{grid-template-columns:1fr;gap:34px}.letter-paper{padding:36px 36px 39px}.stationery-heading{margin-bottom:25px}.stationery-heading .ink-crest{width:56px;height:66px}.stationery-heading>p{font-size:38px}.stationery-heading>small{font-size:5px;letter-spacing:.4px}.stationery-heading>span{font-size:10px;letter-spacing:.5px}.letter-salutation{font-size:17px}.letter-paper #letter-paragraphs>p{font-size:14px;line-height:2;letter-spacing:.2px}.letter-emphasis{font-size:16px}.letter-signature{font-size:20px}.letter-signature small{font-size:10px}.stationery-signoff{font-size:31px;margin-top:4px}.railway-ticket{margin:32px 5px 38px;transform:rotate(-1deg)}.railway-prop{padding:22px 20px 21px;border-width:5px;outline-offset:3px}.railway-prop:before{top:5px;right:5px;bottom:5px;left:5px;outline-offset:2px}.railway-prop:after{font-size:5px;letter-spacing:6px;top:-2px}.railway-company{font-size:7px;letter-spacing:2px}.railway-route{font-size:13px;letter-spacing:.1px;margin-top:13px}.railway-route em{font-size:10px;margin:0 2px}.railway-class{font-size:10px;margin-top:8px}.platform-title{gap:12px;margin:14px 0 7px}.platform-title>span{font-size:27px;letter-spacing:-1px}.platform-title>strong{font-size:43px}.railway-caption{font-size:11px;letter-spacing:1px;margin-top:9px}.railway-terms{font-size:6px;letter-spacing:0;margin-top:15px}.ticket-corner{width:49px;height:49px}.corner-tl,.corner-tr{top:7px}.corner-bl,.corner-br{bottom:7px}.corner-tl,.corner-bl{left:7px}.corner-tr,.corner-br{right:7px}.railway-serial{right:17px;bottom:18px;font-size:5px;letter-spacing:.4px}.ticket-engraving{width:210px;height:135px}.ticket-engraving>img{width:85px;height:100px}.ticket-engraving>i{width:113px;height:113px;border-width:6px;outline-width:2px;outline-offset:4px}.ticket-engraving>i:nth-child(3){width:130px;height:130px;top:2px}.railway-ticket>figcaption{gap:7px;padding:20px 1px 0;font-size:5px;letter-spacing:.5px}.railway-ticket>figcaption b{font-size:10px;letter-spacing:0;margin-top:5px}.admission-shell{padding:45px 23px 35px}.admission-dialog .envelope-stage{display:flex;flex-direction:column;gap:0}.admission-intro{text-align:center}.admission-postmark{font-size:7px;letter-spacing:1.7px}.admission-postmark>span{margin:0 7px}.admission-wordmark{font-size:82px;margin:28px 0 8px;letter-spacing:2px}.admission-school{font-size:6px;letter-spacing:.8px}.admission-dialog .envelope-stage h2{font-size:26px;line-height:1.7;letter-spacing:2px;margin:23px 0 13px}.admission-intro #opening-description{font-size:12px;line-height:2;letter-spacing:1px}.admission-whisper{font-size:28px;margin-top:15px}.envelope-delivery{width:min(480px,100%);padding-top:58px;padding-bottom:0;margin-top:17px}.address-slip{top:9px;left:28px;width:76%;min-height:125px;padding:16px 20px}.address-slip>span{font-size:21px}.address-slip>strong{font-size:18px;margin:7px 0;letter-spacing:2px}.address-slip>p{font-size:10px;letter-spacing:1px}.address-slip>small{font-size:7px;margin-top:10px;letter-spacing:0}.unseal-instruction{font-size:10px;letter-spacing:0;margin:17px 0 13px}.unseal-instruction>span{margin:0 2px}.delivery-footnote{font-size:5px;letter-spacing:.7px}.flying-letter>span{font-size:35px}.flying-letter{padding-top:20px}.admission-dialog .dialog-close{top:10px;right:10px}.admission-shell:has(.opened-letter:not([hidden])){padding:16px 10px;align-items:start}.admission-dialog .opened-letter{padding:33px 32px 32px}.admission-letter-heading .ink-crest{width:57px;height:67px;margin-bottom:8px}.admission-letter-heading>p{font-size:40px}.admission-letter-heading>span{font-size:5.5px;letter-spacing:.3px;margin-top:11px}.admission-letter-heading>small{font-size:9px;letter-spacing:1px;margin-top:10px}.admission-dialog .opened-letter h2{font-size:19px;letter-spacing:2px;margin:20px 0}.admission-dialog .opened-letter h2>span{font-size:23px;letter-spacing:8px;padding-left:8px}.admission-letter-body{font-size:14px;line-height:1.95;letter-spacing:.3px}.admission-letter-body .admission-salutation{font-size:16px;margin-bottom:14px}.admission-letter-body>p{margin-bottom:12px}.admission-event{padding:14px 0;margin:17px 0 14px}.admission-event>span{font-size:9px;letter-spacing:3px}.admission-event .dialog-couple{font-size:22px;letter-spacing:2px;margin:11px 0}.admission-event .dialog-couple i{font-size:29px;margin-inline:9px}.admission-event>p{font-size:11px;letter-spacing:.3px}.admission-event .dialog-note{font-size:9px;display:block;margin:2px 0 0}.admission-signature{margin:17px 0 23px}.admission-signature>span{font-size:10px}.admission-signature>strong{font-size:35px;margin:11px 0 7px}.admission-signature>small{font-size:9px}.admission-dialog .opened-letter .admission-accept{min-height:47px;font-size:12px;padding:0 10px;gap:5px;letter-spacing:.3px}.admission-dialog .opened-letter>.admission-letter-footer{font-size:4.5px;letter-spacing:.5px;margin-top:21px}}@media(max-width:360px){.admission-shell{padding:33px 19px 30px}.admission-wordmark{font-size:72px;margin-top:24px}.admission-dialog .envelope-stage h2{font-size:24px;margin-top:20px}.admission-intro #opening-description{font-size:11px}.admission-whisper{margin-top:12px}.envelope-delivery{margin-top:15px;padding-top:50px}.address-slip{left:23px}.unseal-instruction{font-size:9px;margin-top:13px}.letter-paper{padding-inline:30px}.stationery-heading>small{font-size:4.5px}.letter-emphasis{font-size:14px}.railway-prop{padding-inline:18px}.platform-title>span{font-size:25px}.platform-title>strong{font-size:39px}.railway-route{font-size:11px}.railway-caption{font-size:10px}.railway-ticket>figcaption b{font-size:9px}.admission-dialog .opened-letter{padding-inline:27px}.admission-letter-body{font-size:13px}.admission-event .dialog-couple{font-size:20px}.admission-dialog .opened-letter .admission-accept{font-size:11px}}@media(prefers-reduced-motion:reduce){.admission-revealed main,.sealed-envelope,.seal-focus-ring{animation:none}.envelope-prop,.flying-letter,.is-opening .address-slip{transition:none}}:root{color:#51412b;background:#d7c6a2;--navy: #51412b;--gold: #8f703b;--muted: #847255;--cream: #e5d7b8;--ink: #58442b}body{background:#d7c6a2}::selection{color:#f4e8ce;background:#806335}.site-header{border-bottom-color:#8f744d45}.brand,.site-header nav,.music-button{color:#5b482c}.brand small{color:#807052}.brand-crest{filter:grayscale(1) contrast(4) sepia(.7);mix-blend-mode:multiply}.hero{background:#d7c6a2}.hero-art{filter:sepia(.9) saturate(.45) contrast(.85);opacity:.72}.hero-shade{background:linear-gradient(90deg,#d7c6a2fc,#d7c6a2ed 22%,#d7c6a2b5 47%,#c6b38c25 80%),linear-gradient(0deg,#d7c6a2,#d7c6a200 38%,#d7c6a240)}.hero h1{color:#594225;text-shadow:0 1px 1px #f2e1bb80}.hero-prelude,.hero-english,.hero-description,.hero-footer,.hero-annotation,.scroll-cue{color:#796348}.hero-english em,.title-star,.tiny-star,.scroll-cue>span:last-child{color:#785d2f}.hero .eyebrow{color:#806237}.hero .eyebrow>span{background:#92713f}.hero-annotation i{background:#91734770}.magic-particles i{background:#b08d4b;box-shadow:0 0 9px 2px #b38d4c44}.name-amp{color:#8b6e3c}.button-gold{background:#82673b;color:#f0e3c5;box-shadow:0 5px 20px #72572815}.button-gold:hover{background:#70562e}.button-dark{background:#75603c;color:#f4e7ca}.button-dark:hover{background:#5d492a}.date-ribbon{background:#c9b58c;border-color:#8f744d40}.ribbon-heading,.ribbon-date strong,.ribbon-place strong,.calendar-link{color:#5e4b2f}.ribbon-heading small,.ribbon-date span,.ribbon-place span{color:#7b684b}.ribbon-date,.ribbon-place{border-color:#8c744d45}.calendar-link{border-color:#8c704850}.paper-section{background-color:#e5d7b8;color:#53442f}.letter-section{background-color:#e5d7b8}.letter-intro h2,.center-heading h2{color:#59462c}.letter-intro>p:last-of-type,.center-heading>p:last-child{color:#86704f}.post-stamp{color:#92734899;border-color:#92734866;outline-color:#92734844}.letter-paper #letter-paragraphs>p{color:#6e593c}.letter-emphasis,.letter-signature,.stationery-heading>p{color:#58442b}.letter-signature i,.letter-signature small,.stationery-signoff{color:#8a7049}.memories-section{background:radial-gradient(ellipse at 50% 0%,#d8c6a1,#cdb98f 80%)}.section-heading h2{color:#59472c}.section-heading>p,.photo-hint{color:#846e4e}.memory-photo{background:#f0e4c8;box-shadow:0 14px 23px #6b4b2529}.memory-photo button{background:#d8c6a1}.memory-photo figcaption{color:#735b36}.memory-photo figcaption small{color:#a58a59}.photo-zoom{background:#70542b55;color:#f7ead0}.vow-section{background:#cdb98f}.vow-quote{color:#5d472b}.vow-english,.countdown-caption,.countdown-unit span{color:#806b4a}.constellation,.countdown-unit strong{color:#7c5e2f}.constellation span,.countdown-colon{color:#a28a60}.celebration-section{background-color:#e4d5b4}.schedule-symbol{background:#e4d5b4}.venue-date>strong{color:#806234}.schedule li p,.venue-panel>[data-address],.venue-note{color:#8a7452}.venue-panel h3{color:#59462c}.closing-section{background:radial-gradient(ellipse at 50% 95%,#c2ac81,#d3bf97 75%)}.closing-section h2{color:#584329}.closing-section>p:not(.eyebrow),.closing-names{color:#7e6745}.closing-symbol,.closing-names>span:nth-child(2){color:#8b6c37}.site-footer{background:#bca67d;color:#705b3c;border-color:#8d714545}.site-footer>a:first-child{color:#6e5633}.mobile-bar{background:#d8c6a3f5;border-color:#8d714545;box-shadow:0 -5px 25px #6b4b2515}.mobile-bar>a{color:#624d2e;border-color:#8f734c80}.mobile-bar>button{color:#f1e4c5;background:#82673b}.photo-dialog{background:#dfcfac;color:#5d482c;border-color:#a0834c70}.photo-dialog-header{border-color:#9c7e4b45}.photo-stage>button{color:#775b32;border-color:#9c7e4b70}.photo-stage figcaption{color:#745f40}dialog::backdrop{background:#45321ddd}.toast{color:#f5ead1;background:#735a35}.skip-link{background:#765b32;color:#f6e9cd}.admission-dialog{background:#cdb990;color:#5a452b;scrollbar-color:#98794a #dfcfad}.admission-dialog::backdrop{background:#cdb990}.admission-pending:before{color:#765d36}.admission-sky{background:linear-gradient(90deg,#d7c6a2ed,#c8b28bd9),url(./hogwarts-night-Jah-crps.webp) 50% 30% / cover;opacity:1}.admission-sky:after{background:radial-gradient(ellipse at 70% 45%,#f1dcb42e,transparent 60%),linear-gradient(0deg,#c1a77944,transparent 65%)}.admission-wordmark{color:#70552c;text-shadow:0 2px 1px #f1e3c170}.admission-postmark,.admission-postmark>span,.admission-school{color:#80653c}.admission-dialog .envelope-stage h2{color:#5b4428}.admission-intro #opening-description{color:#837053}.admission-whisper{color:#92703d}.address-slip{box-shadow:0 6px 22px #5c3d2025}.sealed-envelope{filter:drop-shadow(0 20px 23px #67431d45)}.unseal-instruction,.unseal-instruction>span{color:#765b35}.delivery-footnote{color:#9a8057}.seal-hit-area:focus-visible .seal-focus-ring{outline-color:#79582f}.seal-hit-area:hover .seal-focus-ring{box-shadow:0 0 25px #79582f44}.admission-dialog .dialog-close{color:#6d5230}.admission-dialog .opened-letter{color:#58442b;filter:drop-shadow(0 8px 16px #9b7b4326)}.admission-dialog .opened-letter h2,.admission-letter-body strong{color:#58442b}.admission-event{border-color:#8b714840}.admission-event>span,.admission-event .dialog-note{color:#8b7350}.admission-event .dialog-couple,.admission-signature{color:#654d2d}.admission-event .dialog-couple i{color:#92713c}.admission-accept{background:#806238;color:#f6e8c8;border-color:#806238;outline-color:#80623870}.admission-accept:hover{background:#6b512d}.admission-dialog .opened-letter>.admission-letter-footer{color:#987d4d}.letter-music-toggle{position:fixed;top:22px;left:26px;z-index:10;padding:8px 11px;gap:8px;font:9px var(--engraving);letter-spacing:.5px;background:#e8d8b873;border:1px solid #9c7e4b35}.letter-music-toggle[aria-pressed=true] .music-bars i{animation:music-bar 1s ease-in-out infinite alternate}.letter-music-toggle[aria-pressed=true] .music-bars i:nth-child(2){animation-delay:-.7s}.letter-music-toggle[aria-pressed=true] .music-bars i:nth-child(3){animation-delay:-.3s}.admission-signature>strong{font-size:35px}.magic-name{position:relative;display:inline-block;width:145px;height:50px;flex:none;vertical-align:middle;line-height:0;letter-spacing:0}.magic-name .name-text{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.name-art{display:block;height:100%;width:100%;object-fit:contain}.couple-names{gap:16px}.admission-event .dialog-couple{display:flex;align-items:center;justify-content:center;gap:7px}.admission-event .dialog-couple .magic-name{width:135px;height:46px}.admission-event .dialog-couple i{margin:0 5px}.letter-signature .magic-name{width:113px;height:40px}.closing-names .magic-name{width:122px;height:42px}@media(max-width:760px){.hero-shade{background:linear-gradient(90deg,#d7c6a2eb,#d7c6a2b5 50%,#c6b38c70),linear-gradient(0deg,#d7c6a2,#d7c6a27a 32%,#d7c6a210 60%,#d7c6a280)}.admission-dialog .envelope-stage h2{font-size:25px}.letter-music-toggle{top:10px;left:12px;min-height:32px;font-size:7px;padding:6px 8px}.letter-music-toggle .music-bars{height:16px}.admission-shell:has(.opened-letter:not([hidden])){padding-top:54px}.couple-names{gap:12px}.couple-names .magic-name{width:116px;height:43px}.admission-event .dialog-couple{gap:4px}.admission-event .dialog-couple .magic-name{width:106px;height:40px}.admission-event .dialog-couple i{font-size:27px;margin-inline:3px}.letter-signature .magic-name{width:94px;height:36px}.letter-signature i{margin-inline:5px}.closing-names .magic-name{width:111px;height:40px}.admission-signature>strong{font-size:32px}}@media(max-width:360px){.couple-names .magic-name{width:107px;height:40px}.admission-event .dialog-couple .magic-name{width:92px;height:36px}.admission-event .dialog-couple i{margin-inline:1px}.letter-signature .magic-name{width:85px;height:33px}.letter-signature i{font-size:17px;margin-inline:3px}.closing-names{gap:12px}.closing-names .magic-name{width:101px;height:37px}}.admission-dialog:has(.opened-letter:not([hidden])){overflow:hidden}.admission-shell:has(.opened-letter:not([hidden])){height:100%;height:100dvh;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:58px 24px 20px;overflow:hidden}.admission-dialog .opened-letter{display:flex;flex-direction:column;flex:0 1 auto;min-height:0;max-height:100%;overflow:hidden;padding-block:28px 24px}.invitation-reading{flex:1 1 auto;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#a18a60 transparent;padding-right:8px;margin-right:-8px}.invitation-reading:focus-visible{outline:1px solid #9c7e4b70;outline-offset:3px}.admission-dialog .opened-letter .admission-accept{flex:0 0 auto;margin-top:14px}.admission-dialog .opened-letter>.admission-letter-footer{flex:0 0 auto;margin-top:14px}@media(max-height:950px){.admission-letter-heading .ink-crest{width:53px;height:62px;margin-bottom:5px}.admission-letter-heading>p{font-size:36px}.admission-letter-heading>span{margin-top:8px}.admission-letter-heading>small{margin-top:7px}.admission-dialog .opened-letter h2{margin-block:15px}.admission-letter-body{line-height:1.85}.admission-letter-body>p{margin-bottom:10px}.admission-event{margin-block:12px;padding-block:10px}.admission-signature{margin-block:12px 6px}}@media(max-width:760px){.admission-shell:has(.opened-letter:not([hidden])){padding:52px 10px 12px}.admission-dialog .opened-letter{padding-block:25px 22px}}@media(max-height:550px){.admission-shell:has(.opened-letter:not([hidden])){padding-top:47px;padding-bottom:10px}.admission-dialog .opened-letter{padding-block:19px 16px}.admission-dialog .opened-letter .admission-accept{margin-top:10px}.admission-dialog .opened-letter>.admission-letter-footer{margin-top:10px}}@media(min-width:761px)and (min-height:700px)and (max-height:850px){.admission-dialog .opened-letter{zoom:.85;max-height:calc((100dvh - 78px) / .85);padding-block:20px 18px}.admission-letter-heading .ink-crest{width:43px;height:50px;margin-bottom:3px}.admission-letter-heading>p{font-size:32px}.admission-letter-heading>small{margin-top:5px}.admission-dialog .opened-letter h2{margin-block:12px;font-size:19px}.admission-dialog .opened-letter h2>span{font-size:22px}.admission-letter-body{font-size:14px;line-height:1.7}.admission-letter-body>p{margin-bottom:8px}.admission-event{margin-block:8px;padding-block:8px}.admission-event .dialog-couple{margin-block:8px}.admission-event .dialog-couple .magic-name{height:38px}.admission-event>p{font-size:11px;line-height:1.8}.admission-signature{margin-block:8px 4px}.admission-signature>strong{font-size:30px;margin-block:8px 6px}}:root{--wizard-rosette: url("data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2032%2032'%20fill='none'%20stroke='%23b99a58'%20stroke-width='.8'%3e%3cpath%20d='m16%202%203%207%207-3-3%207%207%203-7%203%203%207-7-3-3%207-3-7-7%203%203-7-7-3%207-3-3-7%207%203Z'/%3e%3cpath%20d='m16%207%203%206%206%203-6%203-3%206-3-6-6-3%206-3Z'/%3e%3ccircle%20cx='16'%20cy='16'%20r='3'/%3e%3ccircle%20cx='16'%20cy='16'%20r='7.3'/%3e%3cpath%20d='M12%203c-7-2-9%205-6%207m14-7c7-2%209%205%206%207M3%2020c-2%207%205%209%207%206m19-6c2%207-5%209-7%206'/%3e%3c/svg%3e");--wizard-paper: url(./parchment-v3-clean-CDhd-LtV.webp);--wizard-brass: #b99a58;--wizard-dark: #594022;--button-bronze-art: url(./button-bronze-v1-_A3Lc46E.webp);--button-parchment-art: url(./button-parchment-v1-BB6xhN35.webp);--portrait-frame-art: url(./hogwarts-portrait-v1-Dt4ZwstN.webp);--countdown-plaque-art: url(./time-turner-plaque-v1-CZDWZHeY.webp);--newspaper-frame-art: url(./newspaper-overlay-v1-CpuEHIcX.webp)}.button,.mobile-bar>button,.mobile-bar>a{--button-art: var(--button-bronze-art);position:relative;isolation:isolate;font-family:var(--quill);border:1px solid transparent;border-radius:2px;background:transparent;color:#f3dfae;text-shadow:0 1px 1px #2d1a0f;box-shadow:none;clip-path:none}.button:before,.mobile-bar>button:before,.mobile-bar>a:before,.calendar-link:before,.text-button:before,.music-button:before{content:"";position:absolute;top:-2px;right:-2px;bottom:-2px;left:-2px;z-index:-1;pointer-events:none;border:12px solid transparent;border-image-source:var(--button-art);border-image-slice:160 260 fill;border-image-width:12px 24px;border-image-repeat:stretch;background:transparent;transition:filter .2s ease}.button:hover,.mobile-bar>button:hover,.mobile-bar>a:hover{background:transparent;box-shadow:none}.button:hover:before,.mobile-bar>button:hover:before,.mobile-bar>a:hover:before{filter:brightness(1.12)}.button:active,.mobile-bar>button:active,.mobile-bar>a:active{transform:translateY(1px)}.button:focus-visible,.mobile-bar>button:focus-visible,.mobile-bar>a:focus-visible{outline:2px solid #806238;outline-offset:5px;box-shadow:none}.admission-dialog .opened-letter .admission-accept{outline:none;font-family:var(--quill);background:transparent;color:#f3dfae;border-color:transparent}.admission-dialog .opened-letter .admission-accept:focus-visible{outline:2px solid #806238;outline-offset:4px}.admission-dialog .opened-letter .admission-accept:hover{transform:none}.mobile-bar>a{--button-art: var(--button-parchment-art);color:#5c4325;text-shadow:0 1px #f7e9c8}.calendar-link,.text-button{--button-art: var(--button-parchment-art);position:relative;isolation:isolate;background:transparent;color:#6a4d2a;border:1px solid transparent;box-shadow:none;font-family:var(--quill);text-shadow:0 1px #f7e8c6;padding:10px 14px;min-height:38px;clip-path:none}.calendar-link:hover,.text-button:hover{color:#432b16;filter:brightness(1.04)}.calendar-link:focus-visible,.text-button:focus-visible{outline:2px solid #806238;outline-offset:4px;box-shadow:none}.calendar-link>span{margin-left:12px}.music-button{--button-art: var(--button-parchment-art);position:relative;isolation:isolate;padding:8px 12px;min-height:36px;color:#644c2b;background:transparent;border:1px solid transparent;box-shadow:none;border-radius:2px;font-family:var(--engraving);clip-path:none}.music-button[aria-pressed=true]{border-color:transparent;box-shadow:none}.music-button[aria-pressed=true]:before{filter:brightness(1.05) saturate(1.2)}.music-button:focus-visible{outline:2px solid #806238;outline-offset:4px;box-shadow:none}.calendar-link:before,.text-button:before,.music-button:before{border-image-width:10px 16px}.letter-music-toggle{position:fixed}html.auto-reading{scroll-behavior:auto}.button.reading-toggle{position:fixed;right:24px;bottom:24px;z-index:15;min-height:42px;padding:0 18px;gap:9px;font-size:11px;letter-spacing:1px}.reading-toggle [data-reading-icon]{font:18px/1 Georgia,serif}.hero-footer{flex-wrap:wrap;row-gap:8px}.ribbon-place{min-width:0}.ribbon-place [data-address],.venue-panel [data-address]{line-height:1.8;overflow-wrap:anywhere}.dialog-close,.admission-dialog .dialog-close,.photo-dialog .dialog-close{color:#dfc28a;border:1px solid #ab7550;border-radius:48% 45% 47% 44%;background:radial-gradient(circle at 35% 25%,#9b5541,#6d3026 65%,#4b231e);box-shadow:inset 0 0 0 3px #803e30,inset 0 0 0 4px #c28b546b,1px 2px 5px #4a2c1b50;font:24px/1 Georgia,serif}.dialog-close:hover{filter:brightness(1.15)}.photo-stage>button{width:40px;height:40px;padding:0;border:3px double #b59558;border-radius:50%;color:#eed6a0;background:radial-gradient(circle at 35% 30%,#927345,#5b3e24);box-shadow:inset 0 0 0 2px #50351e,0 3px 6px #4a2c1b33;font:21px Georgia,serif}.photo-stage>button:hover{filter:brightness(1.18)}.seal-hit-area{border:none;background:transparent;box-shadow:none}.seal-hit-area:before{content:"";position:absolute;top:8%;right:4%;bottom:8%;left:4%;background:linear-gradient(115deg,transparent 35%,#fff4cf16 44%,#fff4cf85 50%,#fff4cf16 56%,transparent 65%) 200% 0 / 250% 100% no-repeat;clip-path:polygon(0 0,100% 0,100% 98%,0 98%);animation:envelope-sheen 4s ease-in-out infinite;pointer-events:none}.seal-focus-ring{animation:seal-beacon 2.8s ease-in-out infinite}.envelope-sparkles{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.envelope-sparkles i{position:absolute;font:28px/1 Georgia,serif;color:#fff1ba;opacity:.7;text-shadow:0 0 7px #fff5cf,0 0 18px #d1a044;animation:envelope-twinkle 3.2s ease-in-out infinite}.envelope-sparkles i:nth-child(1){left:12%;top:21%}.envelope-sparkles i:nth-child(2){right:13%;top:30%;animation-delay:-.8s;font-size:22px}.envelope-sparkles i:nth-child(3){left:24%;bottom:21%;animation-delay:-1.6s;font-size:20px}.envelope-sparkles i:nth-child(4){right:24%;bottom:14%;animation-delay:-2.4s}.is-opening .seal-hit-area:before,.is-opening .envelope-sparkles{display:none}.admission-dialog .opened-letter>#letter-auto-confirm{font:10px/1.5 var(--quill);letter-spacing:1px;color:#765b35}@keyframes envelope-sheen{0%,12%{background-position:200% 0;opacity:0}25%{opacity:.9}65%,to{background-position:-100% 0;opacity:0}}@keyframes seal-beacon{0%,to{transform:scale(1);box-shadow:0 0 0 1px #e6c47c88,0 0 14px #d1a04455}50%{transform:scale(1.13);box-shadow:0 0 0 8px #e6c47c12,0 0 28px #e9c574aa}}@keyframes envelope-twinkle{0%,to{opacity:.15;transform:scale(.65) rotate(-10deg)}50%{opacity:1;transform:scale(1.2) rotate(10deg)}}@media(prefers-reduced-motion:reduce){.seal-hit-area:before{display:none}.seal-focus-ring{box-shadow:0 0 18px #d1a04466}}.memory-photo{position:relative;padding:0;border:0;background:transparent;box-shadow:none}.memory-photo:before{content:none}.memory-photo>button{aspect-ratio:3 / 4;padding:0;border:0;overflow:visible;background:transparent;box-shadow:none}.memory-photo>button:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;background:var(--portrait-frame-art) center / 100% 100% no-repeat;filter:drop-shadow(1px 5px 4px #795b3229);pointer-events:none}.memory-photo img{position:absolute;left:16%;top:18%;width:68%;height:66%;aspect-ratio:auto;object-fit:contain;background:#c8b48e}.memory-photo .photo-zoom{top:19%;right:17%;bottom:17%;left:17%;z-index:1}.memory-photo>button:focus-visible{outline:2px solid #806238;outline-offset:3px}.memory-photo figcaption{position:relative;isolation:isolate;margin:4px 7% 0;padding:12px 13px;font-family:var(--quill);color:#f0d8a4;text-shadow:0 1px #38231b;border:0}.memory-photo figcaption:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;border:8px solid transparent;border-image:var(--button-bronze-art) 160 260 fill / 8px 14px stretch;pointer-events:none}.memory-photo figcaption small{color:#c7a772}.memory-photo figcaption>span{min-width:0;text-wrap:balance}.memory-photo-wide{grid-column:2 / span 2;transform:none;margin-top:18px}.memory-photo-wide:hover{transform:translateY(-8px)}.memory-photo-wide>button{aspect-ratio:1700 / 1276}.memory-photo-wide>button:after{background:none;border:20px solid transparent;border-image:var(--portrait-frame-art) 20% 18% / 11% stretch}.memory-photo-wide img{left:10.5%;top:10.5%;width:79%;height:79%}.memory-photo-wide .photo-zoom{top:11%;right:11%;bottom:11%;left:11%}.memory-photo-wide figcaption{margin-inline:12%;justify-content:center;gap:20px}.memory-photo .photo-newspaper{position:absolute;left:16%;top:18%;width:68%;height:66%;display:grid;place-items:center}.newspaper-sheet{display:block;position:relative;aspect-ratio:960 / 1518;isolation:isolate;background:#f4f1e9}.photo-newspaper .newspaper-sheet{height:100%;max-width:100%}.newspaper-sheet:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:var(--newspaper-frame-art) center / 100% 100% no-repeat;pointer-events:none}.memory-photo .newspaper-sheet>img,.photo-stage .newspaper-sheet>img{position:absolute;left:1%;top:17%;width:98%;height:81.5%;max-height:none;margin:0;object-fit:contain;background:#f4f1e9}#full-photo-mount.newspaper-sheet{width:calc(70svh * 960 / 1518);max-width:100%;margin:auto}.schedule,.venue-panel{position:relative;isolation:isolate;padding:30px 30px 28px;border:3px double #a4864d;background:linear-gradient(#e2cda576,#e9d8b28c),var(--wizard-paper) center / 115% 175%;box-shadow:inset 0 0 0 5px #f0ddba66,3px 8px 15px #7e5c2c1b}.schedule:after,.venue-panel:after{content:"";pointer-events:none;position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid #9b7b414a;background:var(--wizard-rosette) left top / 17px 17px no-repeat,var(--wizard-rosette) right top / 17px 17px no-repeat,var(--wizard-rosette) left bottom / 17px 17px no-repeat,var(--wizard-rosette) right bottom / 17px 17px no-repeat;z-index:-1}.venue-panel{border-left:3px double #a4864d}.venue-icon{top:28px;right:25px;color:#9b7b415e}.venue-icon svg{width:48px;height:48px}.venue-panel>.eyebrow{padding-top:8px}.venue-panel h3{font-size:26px}.venue-actions{gap:15px}.venue-actions .button{padding-inline:17px}.venue-panel .venue-note{color:#7d6746}.schedule h3{margin-top:8px;font-family:var(--quill)}.schedule-symbol{border:3px double #a88a4f;background:radial-gradient(circle at 35% 25%,#f0dcb1,#c2a46d);color:#75532c;box-shadow:inset 0 0 0 2px #e8d1a5,1px 2px 4px #77562c2b}.schedule li:before{background:repeating-linear-gradient(#a88a4f 0 3px,transparent 3px 6px)}.schedule li h4{font-family:var(--quill)}.tentative-label{background:#b4915930;border:1px dashed #9a783f70;font-family:var(--quill)}.countdown-unit{position:relative;width:100px;min-width:0;aspect-ratio:5 / 8;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px 8px 21px;border:0;background:var(--countdown-plaque-art) center / 100% 100% no-repeat;filter:drop-shadow(1px 4px 3px #795b3220);box-shadow:none}.countdown-unit strong{position:relative;display:flex;justify-content:center;align-items:center;font-family:var(--engraving);font-size:40px;line-height:1;color:#684622;text-shadow:0 1px #f3e4c7}.countdown-unit .countdown-value{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.countdown-unit .countdown-digit{display:block;flex:none;width:.74em;height:1em;margin:0;overflow:hidden;font-size:inherit;line-height:inherit;letter-spacing:0;background-repeat:no-repeat}.countdown-unit .countdown-label{font-family:var(--quill);margin-top:12px;color:#725735}.countdown-colon{align-self:center;margin-top:0}.date-ribbon{border-block:3px double #a58a5366;background:linear-gradient(#cbb48cba,#dbc69fba),var(--wizard-paper) center / 110% 250%;box-shadow:inset 0 4px #f1dbb244,inset 0 -4px #96764421}.ribbon-heading,.ribbon-place strong{font-family:var(--quill)}.ribbon-date,.ribbon-place{border-left-style:double;border-left-width:3px}.letter-paper:after{content:"";position:absolute;top:22px;right:22px;bottom:22px;left:22px;border:1px solid #97714026;pointer-events:none;z-index:-1}.admission-event{border-block:3px double #a3864d70;background:linear-gradient(90deg,transparent,#b8955620,transparent)}.address-slip{outline:1px solid #9d7a434a;outline-offset:-7px}.railway-prop{box-shadow:1px 3px #a0844a20,0 13px 24px #67471b22}.photo-dialog{border:5px double #b09458;background:linear-gradient(#d8c29888,#ddc9a688),var(--wizard-paper) center / 110% 130%;box-shadow:inset 0 0 0 4px #ead6b0}.photo-dialog-header{min-height:64px;border-bottom:3px double #9b7c4260}.photo-dialog-header h2{font-family:var(--quill)}.photo-stage figure{border:22px solid transparent;border-image:var(--portrait-frame-art) 20% 18% / 22px stretch;padding:0;background:transparent}.photo-stage figcaption{font-family:var(--quill)}.toast{border:3px double #c8a566;background:linear-gradient(#6a4b2ce8,#8a6434e8),var(--wizard-paper) center / cover;color:#f2ddaf;box-shadow:inset 0 0 0 2px #49301e,0 5px 15px #4a2c1b40;font-family:var(--quill)}@media(max-width:1100px){.schedule,.venue-panel{padding-inline:24px}.venue-actions{gap:12px}.venue-actions .button{padding-inline:12px;gap:7px}.venue-panel h3{font-size:24px}}@media(max-width:760px){.button.reading-toggle{right:15px;bottom:calc(79px + env(safe-area-inset-bottom));min-height:36px;padding-inline:13px;font-size:10px}.memory-photo-wide{grid-column:1 / span 2;margin-top:0}.button:before,.mobile-bar>button:before,.mobile-bar>a:before{background-size:9px 9px}.music-button{padding:7px 10px}.letter-music-toggle{padding:6px 8px;min-height:32px}.memory-photo figcaption{font-size:10px;line-height:1.6;letter-spacing:0;padding:9px 10px;margin-top:2px}.memory-photo figcaption small{font-size:7px}.schedule,.venue-panel{padding:24px 20px 23px}.schedule h3{font-size:18px;gap:9px;margin-bottom:29px}.venue-icon{top:28px;right:23px}.venue-panel h3{font-size:25px}.venue-actions{gap:16px}.venue-actions .button{padding-inline:14px}.venue-panel .text-button{padding-inline:12px}.countdown{gap:5px}.countdown-unit{width:clamp(52px,17vw,78px);padding:24px 4px 13px}.countdown-unit strong{font-size:clamp(26px,7.3vw,34px)}.countdown-unit .countdown-label{font-size:9px;letter-spacing:0;margin-top:8px}.countdown-colon{font-size:18px}.calendar-link{padding:9px 12px}.calendar-link>span{margin-left:13px}.ribbon-place{border-left:0}.photo-stage>button{width:30px;height:30px;font-size:17px}.photo-stage{padding-inline:8px;gap:6px}.photo-stage figure{border-width:14px;border-image-width:14px}#full-photo-mount.newspaper-sheet{width:calc(65svh * 960 / 1518)}}@media(max-width:360px){.hero h1{font-size:39px;letter-spacing:2px}.memory-photo figcaption{font-size:9px}.schedule,.venue-panel{padding-inline:18px}.schedule h3{font-size:17px;gap:8px}.venue-actions{gap:12px}.venue-panel h3{font-size:23px}.calendar-link{font-size:10px;padding-inline:10px}}
