@charset "UTF-8";
:root{--red:#810f25;--deep:#430818;--gold:#dfbd79;--bright:#f4dfab;--paper:#fffaf1;--ink:#492021;--muted:#866769;--border:#e8d7bd;--serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong","SimSun",serif;--sans:"Microsoft YaHei","PingFang SC",system-ui,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:#300712;color:var(--ink);font:16px/1.8 var(--sans);-webkit-tap-highlight-color:transparent}button,input,textarea,select{font:inherit}button,a,input,textarea,select{touch-action:manipulation}a{color:inherit}button{cursor:pointer}a,button{outline-offset:5px}button:focus-visible,a:focus-visible{outline:3px solid #ba9245}button:disabled{opacity:.6;cursor:wait}button{border:0}main{max-width:1080px;margin:auto;overflow:hidden;background:var(--paper)}p,h1,h2,h3,figure{margin:0}h2{font:500 clamp(30px,5vw,44px)/1.5 var(--serif);letter-spacing:.08em}h3{font-weight:500}img{max-width:100%;display:block}button{color:inherit}section{scroll-margin-top:24px}.section-pad{padding:76px 8%}.section-kicker{font-size:13px;letter-spacing:.22em;color:#a87836;margin-bottom:16px}.skip{position:absolute;top:-100px;left:12px;z-index:99;background:white;padding:12px}.skip:focus{top:12px}.hero{position:relative;min-height:880px;min-height:min(1080px,100svh);color:var(--bright);background:var(--red);isolation:isolate}.hero-picture{position:absolute;inset:25% 0 0;z-index:-2;background:url('/assets/aerial.jpg') center 55%/cover no-repeat;opacity:.45}.hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#780d20 3%,rgba(120,13,32,.94) 25%,rgba(91,9,29,.52) 58%,#420617 100%);z-index:-1}.hero-frame{position:absolute;inset:20px;border:1px solid #dfbd7940;pointer-events:none}.hero-frame:after{content:"";position:absolute;inset:5px;border:1px solid #dfbd7918}.hero-inner{min-height:inherit;padding:53px 35px 55px;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:space-between}.company{font-size:17px;letter-spacing:.17em;max-width:90%;line-height:1.8}.hero-heading{padding:28px 0 20px}.eyebrow{font-size:14px;letter-spacing:.24em;margin-bottom:27px;color:#e5c185}.hero h1{display:flex;gap:.15em;font:500 clamp(74px,12vw,132px)/1.2 var(--serif);letter-spacing:.11em;text-indent:.11em;text-shadow:0 3px 30px #26081240;color:#f3d89f}.hero-blessing{font:20px/2 var(--serif);letter-spacing:.16em;margin-top:25px}.hero-bottom{width:100%;padding-top:28px}.event-date{display:flex;flex-direction:column;align-items:center}.event-date>span:first-child{letter-spacing:.35em;font-size:16px}.event-date strong{font:400 54px/1.3 Georgia,serif;letter-spacing:.05em}.event-date strong span{font-size:32px;font-weight:300;color:#ba8e53}.event-date>span:last-child{font-size:14px;letter-spacing:.12em}.hero-time{font-size:16px;margin:17px 0 24px;letter-spacing:.08em}.open-invitation{background:transparent;color:var(--bright);padding:11px 28px;border:1px solid #ddb5717a;font-size:15px;min-height:48px}.open-invitation span{margin-left:25px}.music-control{position:fixed;top:22px;right:max(20px,calc((100vw - 1080px)/2 + 32px));z-index:20;border:1px solid #dfbd7980;background:#570b21dd;backdrop-filter:blur(12px);border-radius:28px;color:#f2daad;min-width:48px;min-height:48px;display:flex;align-items:center;gap:7px;padding:9px 13px;font-size:12px}.music-bars{height:19px;display:flex;gap:3px;align-items:center}.music-bars i{display:block;background:currentColor;width:2px;height:8px;border-radius:1px}.music-bars i:nth-child(2){height:17px}.music-bars i:nth-child(3){height:12px}.music-control[aria-pressed=true] i{animation:bars .75s alternate infinite}.music-control[aria-pressed=true] i:nth-child(2){animation-delay:.24s}.music-control[aria-pressed=true] i:nth-child(3){animation-delay:.48s}@keyframes bars{to{height:4px}}.letter{text-align:center;background:radial-gradient(ellipse at 50% 45%,#fffefa,var(--paper))}.letter h2{font-size:42px}.gold-rule{width:42px;height:1px;background:#b9904e;margin:26px auto 34px}.letter>p:not(.section-kicker){font-size:17px;line-height:2.35;margin:0 auto 24px;letter-spacing:.025em}.letter .salutation{font-weight:500}.letter-last{color:var(--red)}.signature{display:flex;gap:20px;align-items:center;justify-content:center;padding-top:18px;font-size:14px}.signature p{text-align:right}.signature p span{color:var(--muted);font-size:13px;letter-spacing:.5em}.seal{display:grid;place-items:center;border:1px solid #9b2435;outline:1px solid #9b2435;outline-offset:3px;width:35px;height:43px;color:var(--red);font:18px var(--serif);writing-mode:vertical-rl;letter-spacing:.18em}.gallery{background:#efe7dc;padding-bottom:80px}.section-top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:32px}.chapter{color:#9b7d56;font:14px Georgia,serif;padding-bottom:9px;white-space:nowrap}.gallery h2{font-size:34px}.photo-button{display:block;padding:0;background:transparent;width:100%;overflow:hidden}.photo-button img{width:100%;height:auto;transition:transform .65s}.photo-button:hover img{transform:scale(1.025)}figcaption{font-size:14px;padding-top:13px;display:flex;gap:12px;align-items:center}figcaption>span:first-child{color:#937554;font:italic 14px Georgia}.zoom-hint{margin-left:auto;font-size:12px;color:#8f7770}.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:32px}.photo-pair img{height:330px;object-fit:cover}.photo-pair figure:last-child img{object-position:47% center}.venue{background:var(--red);color:var(--bright)}.venue .section-kicker{color:#dbb97d}.venue h2{font-size:34px}.venue-card{display:flex;gap:34px;margin-top:38px;padding:32px 0;border-top:1px solid #dfbd7940;border-bottom:1px solid #dfbd7940}.calendar-block{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:140px;border-right:1px solid #dfbd7940;padding-right:35px;font-size:14px}.calendar-block strong{font:76px/1.2 Georgia,serif}.venue-info{padding:6px 0}.venue-info .time{font-size:16px}.venue-info .time strong{font:32px Georgia}.venue-info>p:nth-child(2){font-size:14px;color:#e2c09e}.venue-info h3{font-family:var(--serif);font-size:25px;margin-top:16px}.venue-info .hall{font-size:17px}.address-block{display:flex;gap:17px;align-items:center;margin:28px 0}.address-block svg{width:24px;height:27px;flex-shrink:0}.address-block p{font-size:15px;line-height:1.8}.map-actions{display:flex;gap:12px}.button{display:flex;align-items:center;justify-content:center;text-decoration:none;min-height:52px;padding:13px 22px;font-size:16px;border-radius:2px;font-weight:500}.gold-button{background:var(--bright);color:#661424;flex:1}.outline-button{border:1px solid #dfbd7960;color:var(--bright);flex:1}.contact{display:flex;align-items:center;flex-wrap:wrap;gap:14px;justify-content:space-between;padding-top:32px;text-decoration:none}.contact span{font-size:14px}.contact strong{font:24px Georgia,serif;letter-spacing:.03em}.contact span:last-child{font-size:12px;color:#d7b78a}.rsvp h2{font-size:40px}.rsvp-intro{color:var(--muted);margin-top:13px;margin-bottom:32px}form>label{display:block;margin-bottom:24px}label,legend{font-size:15px;font-weight:500}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:24px}.field-row label{min-width:0}.required{color:#b1253c}.optional{font-size:12px;margin-left:7px;color:var(--muted);font-weight:400}.field-hint{font-size:13px;color:var(--muted);margin-left:8px}input:not([type=radio]),textarea,select{display:block;width:100%;border:1px solid var(--border);border-radius:2px;padding:12px 14px;background:#fffdf8;color:var(--ink);font-size:16px;min-height:51px;line-height:1.6;margin-top:9px;outline-color:#9f3340}textarea{resize:vertical}input::placeholder,textarea::placeholder{color:#9a8680;font-size:14px}fieldset{padding:0;border:0;margin:0 0 24px}legend{margin-bottom:10px}.attendance-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.attendance-options label{cursor:pointer;position:relative}.attendance-options input{position:absolute;left:17px;top:17px;width:16px;height:16px;accent-color:var(--red);margin:0}.attendance-options span{display:block;border:1px solid var(--border);padding:12px 10px 12px 44px;min-height:51px;background:#fffdf8}.attendance-options input:checked+span{border-color:var(--red);background:#f8ebe5;color:var(--red)}.attendance-options input:focus-visible+span{outline:2px solid #a47530;outline-offset:2px}.privacy{font-size:13px;color:var(--muted);margin-top:4px;margin-bottom:17px}.red-button{width:100%;background:var(--red);color:var(--bright);justify-content:space-between;padding:15px 23px}.honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}#form-status{font-size:14px;margin-top:14px;color:#ac142c;min-height:1em}.rsvp-success{text-align:center;padding:38px 15px;border:1px solid var(--border);background:#fffdf8}.success-mark{display:grid;place-items:center;margin:auto auto 16px;width:50px;height:50px;border-radius:50%;color:var(--red);background:#f4e5d5;font-size:25px}.rsvp-success h3{font:28px var(--serif)}.rsvp-success p{margin:15px 0;color:var(--muted)}.text-button{color:var(--red);background:transparent;text-decoration:underline;min-height:44px;padding:8px 16px}footer{text-align:center;padding:48px 16px 126px;color:var(--bright);background:var(--deep)}.footer-mark{font:40px var(--serif);color:#d1aa68}footer>p{font:24px/1.8 var(--serif);letter-spacing:.14em;margin-top:15px}footer .footer-company{font:14px/2 var(--sans);letter-spacing:0;margin-top:24px}footer>span:last-child{font-size:12px;color:#b99977}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:1080px;z-index:15;display:grid;grid-template-columns:1fr 1.65fr;gap:12px;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fffaf1ed;border-top:1px solid #e0cdb3;backdrop-filter:blur(15px)}.bottom-nav a{display:flex;align-items:center;justify-content:center;min-height:47px;text-decoration:none;font-size:15px;color:var(--red);border:1px solid #d6bc96;border-radius:2px}.bottom-nav .nav-primary{background:var(--red);color:var(--bright);border-color:var(--red);gap:25px}dialog{position:fixed;max-width:94vw;max-height:94svh;padding:20px;background:#250a14;border:1px solid #98764e;color:var(--bright);overflow:auto}dialog::backdrop{background:#13000dec;backdrop-filter:blur(8px)}dialog img{max-height:80svh;object-fit:contain}dialog p{text-align:center;margin-top:12px;font-size:14px}#close-photo{position:fixed;right:3vw;top:2vh;background:#fffaf1;color:var(--deep);font-size:30px;width:48px;height:48px;border-radius:50%;z-index:30}body:has(dialog[open]){overflow:hidden}[hidden]{display:none!important}
@media(min-width:760px){.hero{min-height:860px}.hero-inner{padding:60px 50px}.hero-heading{padding-top:50px}.letter>p:not(.section-kicker){font-size:19px}.rsvp form,.rsvp-success{max-width:720px}.hero-picture{inset:15% 0 0}.rsvp{padding-left:12%;padding-right:12%}}
@media(max-width:600px){.section-pad{padding:58px 27px}.hero{min-height:max(790px,100svh)}.hero-inner{padding:47px 28px 110px}.hero-frame{inset:13px}.company{font-size:13px;letter-spacing:.09em;max-width:92%;padding-top:8px}.music-control{right:23px;top:98px;padding:8px;min-width:40px;min-height:40px}#music-label{display:none}.hero-heading{padding:45px 0 10px}.hero h1{display:block;font-size:98px;line-height:1.16;letter-spacing:.12em}.hero h1 span{display:block}.eyebrow{font-size:12px;letter-spacing:.15em;margin-bottom:22px}.hero-blessing{font-size:16px;letter-spacing:.09em;margin-top:24px}.hero-bottom{padding-top:29px}.event-date strong{font-size:48px}.event-date>span:first-child{font-size:14px}.event-date>span:last-child{font-size:13px}.hero-time{font-size:14px;margin:15px 0 23px}.hero-picture{inset:28% 0 0;background-position:55% center}.letter h2{font-size:36px}.letter>p:not(.section-kicker){font-size:16px;line-height:2.2}.signature{gap:13px;font-size:12px}.gallery h2,.venue h2{font-size:28px;letter-spacing:.035em}.chapter{font-size:12px}.section-top{margin-bottom:25px}.photo-pair{gap:13px;margin-top:25px}.photo-pair img{height:220px}.photo-pair figcaption{font-size:12px;gap:6px;line-height:1.7}figcaption{font-size:13px;gap:9px}.zoom-hint{font-size:12px}.venue-card{gap:20px;padding:27px 0;margin-top:28px}.calendar-block{min-width:92px;padding-right:20px;font-size:12px}.calendar-block strong{font-size:66px}.venue-info h3{font-size:21px;line-height:1.5;margin-top:14px}.venue-info .hall{font-size:16px}.venue-info .time strong{font-size:29px}.map-actions .button{font-size:14px;padding:13px 10px}.contact{gap:8px;justify-content:flex-start}.contact>span:first-child{width:100%;font-size:14px}.contact strong{font-size:27px}.contact span:last-child{margin-left:auto}.rsvp-intro{font-size:15px}.field-row{grid-template-columns:1fr;gap:23px}.bottom-nav{padding-left:16px;padding-right:16px}.photo-main img{min-height:210px;object-fit:cover}.section-kicker{font-size:12px}}
@media(max-width:360px){.section-pad{padding-left:21px;padding-right:21px}.company{font-size:12px}.hero h1{font-size:84px}.venue-card{gap:14px}.venue-info h3{font-size:19px}.calendar-block{min-width:84px;padding-right:14px}.signature{font-size:11px}.chapter{display:none}.hero-time{font-size:13px}}
.share-entry{font:14px var(--sans);letter-spacing:0;display:inline-block;padding:10px 18px;border:1px solid #dfbd7960;text-decoration:none}.receipt-card{padding:25px 0;margin:22px 0;border-top:1px solid var(--border);overflow-wrap:anywhere}.receipt-card h2{font-family:var(--sans);font-size:23px;letter-spacing:0}.receipt-card p{margin:9px 0}.receipt-card a{color:var(--red)}#summary{margin:20px 0}#receipts>p{margin-top:30px}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
