@font-face{font-family:'Neucha';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/Neucha-Regular.ttf') format('truetype')}
@font-face{font-family:'Marck Script';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/MarckScript-Regular.ttf') format('truetype')}
:root{--paper:#fffbef;--ink:#34312d;--accent:#db6b0b;--muted:#756e65;--hand:"Neucha","Segoe Print","Comic Sans MS",cursive;--script:"Marck Script","Segoe Script",cursive}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);font-family:Arial,sans-serif;line-height:1.5}
button,input,select,textarea{font:inherit}
a{color:inherit;text-underline-offset:5px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
button,a,input,select{touch-action:manipulation}
[hidden]{display:none!important}
.gallery-page{background:#ebe6df}
.gallery{max-width:1300px;margin:0 auto;padding:48px 36px 34px}
.gallery-intro{max-width:740px;margin-bottom:36px}
.gallery-date{font-size:14px;color:#665d54;margin:0 0 12px}
.gallery h1{font-family:var(--hand);font-size:58px;font-weight:400;line-height:1.08;margin:0 0 18px}
.gallery-intro>p:last-child{font-size:17px;max-width:620px;color:#625c54}
.concept-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.concept-card{min-width:0}
.concept-heading{display:flex;align-items:center;gap:10px}
.concept-card h2{font-size:29px;font-family:var(--hand);font-weight:400;margin:0}
.concept-card>p{font-size:14px;line-height:1.55;color:#635e57;min-height:66px;margin:8px 0 17px}
.swatch{width:13px;height:13px;border-radius:50%;flex:none}
.swatch-table{background:#db6b0b}.swatch-november{background:#8e1627}.swatch-letter{background:#db6b0b}
.phone-frame{height:630px;background:#fffbef;border-radius:16px;overflow:hidden;box-shadow:0 10px 30px #33281717;border:1px solid #c4bbae}
.phone-frame iframe{width:100%;height:100%;border:0;display:block;background:#fffbef}
.open-concept{display:block;padding:14px 0;font-weight:600;font-size:14px;text-align:center;text-decoration-thickness:1px}
.gallery-note{max-width:820px;font-size:13px;color:#6e665d;line-height:1.6;margin:28px 0 0}
.invitation-page{background:#d3ccc3}
.preview-bar{position:relative;max-width:620px;margin:0 auto;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 18px;font-size:12px;color:#655e55}
.preview-bar a{font-weight:600}.preview-bar span{font-size:11px}
.paper{background:var(--paper);max-width:520px;margin:0 auto;overflow:hidden;box-shadow:0 18px 60px #30271d1a;min-height:100vh;position:relative}
.paper:before{content:"";pointer-events:none;position:absolute;inset:0;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.6' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");z-index:0}
.paper>*{position:relative}
.hero{text-align:center;padding:50px 30px 0}
.salutation{font-size:16px;margin:0 0 25px;color:var(--muted)}
.hero h1{font-family:var(--hand);font-size:83px;font-weight:400;line-height:.96;letter-spacing:-2px;margin:0 0 28px;color:var(--accent)}
.hero h1 span{font-size:.57em;vertical-align:15%;margin-left:10px}
.intro{font-size:16px;line-height:1.65;margin:0 auto;max-width:340px}
.ink-drawing{display:block;width:100%;height:auto;max-width:360px;margin:0 auto;color:var(--ink)}
.table-drawing{margin:27px auto 0}
.hero .table-drawing{width:calc(100% + 35px);max-width:440px;margin-left:-17px}
.section{padding:43px 34px;text-align:center}
.section>h2,.calendar h2{font:400 44px/1.1 var(--hand);color:var(--accent);margin:0 0 30px}
.calendar h2 small{font-family:Arial,sans-serif;font-size:15px;color:var(--muted);margin-left:12px;vertical-align:middle;letter-spacing:0}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));max-width:360px;margin:0 auto;gap:9px 0}
.calendar-grid>span{display:flex;align-items:center;justify-content:center;min-height:33px;position:relative;font-family:var(--hand);font-size:24px}
.calendar-grid .weekday{font:12px Arial,sans-serif;color:var(--muted);min-height:20px;margin-bottom:3px}
.calendar-grid .wedding-day{font-size:26px;color:var(--accent);font-weight:bold}
.date-heart{position:absolute;width:51px;height:48px;top:-10px;left:50%;transform:translateX(-50%) rotate(-8deg);color:var(--accent);stroke-width:2.9}
.calendar-caption{font-size:12px;color:var(--muted);margin:23px 0 0}
.table-paper .places{border-top:1px solid #d7cec0}
.place+.place{margin-top:35px}
.place-kind{font:400 24px/1.25 var(--hand);margin:0 0 9px;color:var(--accent)}
.place h3{font:400 22px/1.25 var(--hand);margin:0 auto 8px;max-width:330px}
.place p{font-size:14px;line-height:1.6;margin:0 0 11px}
.place .place-kind{font:400 24px/1.25 var(--hand)}
.map-link{font-size:13px;display:inline-block;padding:8px 12px;min-height:38px}
.time-note{color:var(--muted);font-size:12px!important}
.programme{border-top:1px solid #d7cec0}
.timeline{text-align:left;max-width:350px;margin:0 auto;position:relative}
.timeline:before{content:"";position:absolute;left:106px;top:3px;bottom:20px;border-left:1px dashed #b2a494}
.time-row{display:grid;grid-template-columns:95px minmax(0,1fr);gap:22px;position:relative;margin-bottom:30px}
.time-row:last-child{margin-bottom:0}
.time-row strong,.time-word{font:400 24px/1.25 var(--hand);color:var(--accent);white-space:nowrap}
.time-row h3{font:400 24px/1.2 var(--hand);margin:0 0 8px}
.time-row p{font-size:13px;line-height:1.6;margin:0;color:var(--muted)}
.rsvp{background:#f2e9d9}
.rsvp h2{margin-bottom:18px}
.rsvp-intro{font-size:14px;line-height:1.7;margin:0 0 30px}
.reply-form{text-align:left;max-width:360px;margin:0 auto;font-size:14px}
.reply-form>label,.presence-fields>label{display:block;margin:19px 0 7px}
.reply-form input:not([type=radio]),.reply-form select,.reply-form textarea{display:block;width:100%;border:1px solid #b1a496;border-radius:2px;padding:12px 11px;background:#fffaf1;color:var(--ink);outline-offset:3px;min-height:45px}
.reply-form textarea{resize:vertical}
.reply-form input::placeholder,.reply-form textarea::placeholder{color:#83796e;font-size:12px}
.reply-form fieldset{border:0;padding:0;margin:23px 0}
.reply-form legend{padding:0;margin:0 0 9px}
.choice{display:flex;align-items:center;gap:11px;min-height:41px;cursor:pointer}
.choice input{accent-color:var(--accent);width:18px;height:18px;margin:0}
.reply-button{background:var(--accent);border:1px solid var(--accent);color:white;display:block;cursor:pointer;width:100%;padding:13px 12px;min-height:50px;font-family:var(--hand);font-size:23px;margin:27px 0 0;transition:filter .15s}
.reply-button:hover{filter:brightness(.92)}
.form-note{font-size:11px;color:var(--muted);line-height:1.6;text-align:center;margin:12px 0}
.reply-result{font-size:13px;line-height:1.6;margin:0;display:none}
.reply-result.visible{display:block;padding:15px 0 0}
.love-note{text-align:center;font-size:13px;line-height:1.8;padding:45px 30px 40px}
.love-note>span{display:block;font:400 29px/1.3 var(--hand);margin:10px 0 20px;color:var(--accent)}
.love-note>.ink-drawing{max-width:50px}
.embedded{background:var(--paper)}
.embedded .preview-bar{display:none}
.embedded .paper{box-shadow:none;max-width:none}
.embedded .hero{padding-top:38px}
body[data-concept=november]{--paper:#f6f0e1;--accent:#8e1627;--ink:#34312d;--muted:#75675f}
.november-paper .hero{padding-bottom:15px}
.november-paper .hero h1{font-family:var(--script);font-size:82px;line-height:.94;letter-spacing:-3px;color:var(--accent);margin-bottom:22px}
.november-paper .ampersand{font-family:Georgia,serif;font-size:.38em;margin:0;vertical-align:middle}
.november-paper .intro{font-family:Georgia,serif;font-size:16px;line-height:1.7}
.november-paper .rings-drawing{max-width:220px;margin:13px auto 0}
.november-paper .date-section{padding-top:28px}
.november-paper .calendar h2{font-family:var(--script);font-size:50px;text-align:left}
.november-paper .calendar-grid{border-top:1px solid #a1988a;padding-top:15px}
.november-paper .window-section{background:var(--accent);color:var(--paper);padding:42px 30px 34px;clip-path:polygon(0 1%,13% 0,35% 1%,62% 0,85% 1%,100% 0,100% 99%,72% 100%,48% 99%,20% 100%,0 99%)}
.november-paper .window-section h2{color:var(--paper);font:400 44px/1.06 var(--script);margin-bottom:12px}
.november-paper .window-drawing{color:var(--paper);max-width:280px}
.november-paper .window-section p{font-family:Georgia,serif;font-size:14px;line-height:1.8;margin:19px 0 4px}
.november-paper .places{padding-top:50px}
.november-paper .section>h2{font-family:var(--script);font-size:43px}
.november-paper .programme{border-top:0;padding-top:22px}
.november-paper .rsvp{background:var(--accent);color:var(--paper)}
.november-paper .rsvp h2{color:var(--paper)}
.november-paper .reply-button{background:var(--paper);color:var(--accent);border-color:var(--paper)}
.november-paper .form-note{color:#f4d4d6}
.november-paper .choice input{accent-color:#b44755}
.november-paper .love-note>.ink-drawing{max-width:46px}
body[data-concept=letter]{--paper:#f5eada;--accent:#db6b0b;--ink:#302d2a;--muted:#796e60}
.letter-paper .hero{padding:31px 28px 23px}
.postmark{font-size:11px;text-align:center;line-height:1.6;width:156px;margin:0 8px 0 auto;border:1px dashed #9e8d79;border-radius:48% 52% 46% 54%;padding:11px 8px;transform:rotate(4deg)}
.postmark time{display:block;font:400 22px/1.25 var(--hand);color:var(--accent);margin-top:3px}
.postmark time span{display:block;white-space:nowrap}
.letter-paper .envelope-drawing{max-width:250px;margin:-15px auto -5px;color:var(--ink)}
.letter-paper .hero h1{font:400 65px/1.02 var(--hand);letter-spacing:-1px;margin:3px 0 24px}
.letter-paper .intro{font-family:Georgia,serif;font-size:15px;line-height:1.8}
.signature{font:400 32px/1.2 var(--script);margin:20px 0 0;transform:rotate(-4deg)}
.letter-paper .date-section{padding:25px 26px 35px}
.paper-note{background:#fffaf0;padding:28px 19px;transform:rotate(-2deg);box-shadow:2px 6px 0 #c5b49c55;position:relative}
.paper-note:before{content:"";position:absolute;width:88px;height:23px;background:#c5b39a66;left:calc(50% - 44px);top:-10px;transform:rotate(4deg)}
.letter-paper .calendar h2{font-size:38px}
.letter-paper .calendar-grid>span{font-size:22px}
.letter-paper .calendar-grid .weekday{font-size:11px}
.letter-table{padding:28px 25px 42px}
.letter-table h2{font:400 36px/1.15 var(--hand);margin-bottom:15px}
.letter-table .table-drawing{margin-top:0}
.letter-table p{font-family:Georgia,serif;font-size:14px;line-height:1.8}
.letter-paper .places{background:#e8dcc9;padding:37px 29px;clip-path:polygon(0 1%,15% 0,37% 1%,75% 0,100% 1%,100% 99%,83% 100%,53% 99%,20% 100%,0 99%)}
.letter-paper .programme{border-top:0}
.letter-paper .section>h2{font-size:39px}
.letter-paper .rsvp{margin:0 15px;background:#fffaf0;padding:35px 20px;box-shadow:0 5px 15px #4a342010;transform:rotate(.7deg)}
.letter-paper .reply-button{border-radius:45% 4% 40% 5% / 5% 40% 6% 40%;transform:rotate(-1deg)}
.letter-paper .love-note>.ink-drawing{max-width:150px}
@media(max-width:1050px){.gallery{padding:35px 22px}.concept-grid{gap:18px}.gallery h1{font-size:49px}.concept-card h2{font-size:25px}.phone-frame{height:610px}.concept-card>p{min-height:88px}.hero h1{font-size:76px}}
@media(max-width:800px){.concept-grid{grid-template-columns:1fr;max-width:430px;margin:0 auto;gap:40px}.concept-card>p{min-height:0}.gallery-intro{max-width:540px}.phone-frame{height:670px}.gallery{padding:30px 20px}.gallery h1{font-size:43px}.gallery-note{max-width:430px;margin:25px auto 0}}
@media(max-width:390px){.hero{padding-left:26px;padding-right:26px}.hero h1{font-size:73px}.section{padding-left:26px;padding-right:26px}.intro{font-size:15px}.november-paper .hero h1{font-size:74px}.letter-paper .hero h1{font-size:61px}.calendar-grid>span{min-height:32px;font-size:22px}.preview-bar{padding:12px;font-size:11px}.preview-bar span{max-width:100px;text-align:right}.reply-button{font-size:21px}.letter-paper .calendar-grid{gap:8px 0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}

/* Personal paper reply */
.letter-paper .hero .personal-greeting{font:400 52px/1.08 var(--hand);color:var(--accent);letter-spacing:-1px;margin:12px auto 24px;max-width:410px}
.letter-paper .rsvp{margin:0;background:#f9f2e7;padding:42px 25px;box-shadow:none;transform:none}
.letter-kicker{font:12px/1.5 Arial,sans-serif;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin:0 0 12px}
.letter-paper .rsvp h2{font-size:46px;margin-bottom:18px}
.reply-form{max-width:410px}
.reply-form .guest-card{border:1px solid #c6b5a0;padding:16px 18px 20px;margin:28px 0 30px;background:#fffaf1;position:relative;box-shadow:3px 4px 0 #ccbda63b}
.reply-form .guest-title{font:400 34px/1.1 var(--hand);color:var(--accent);padding:0 9px;margin-left:-4px}
.card-question{font-size:13px;color:var(--muted);margin:1px 0 12px}
.attendance-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
.answer-tile{position:relative;display:block;cursor:pointer;min-width:0}
.reply-form .answer-tile input{position:absolute;width:1px;height:1px;min-height:0;opacity:0;padding:0;border:0;margin:0;inset:50% auto auto 50%}
.tile-face{display:flex;align-items:center;justify-content:center;border:1px solid #ccbca8;min-height:48px;padding:9px 5px;background:#fffdf7;color:var(--ink);transition:background .12s,border-color .12s;position:relative}
.attendance-tile .tile-face{font-size:12px;line-height:1.25;text-align:center}
.answer-tile input:checked+.tile-face{border-color:var(--accent);background:#fff0d5;color:var(--ink)}
.answer-tile input:focus-visible+.tile-face{outline:3px solid var(--accent);outline-offset:3px}
.answer-tile:hover .tile-face{border-color:var(--accent)}
.reply-form .drink-fields{margin:23px 0 0}
.reply-form .drink-fields legend{font-size:14px;margin:0 0 12px}
.drink-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.drink-tile .tile-face{min-height:93px;flex-direction:column;gap:4px;font-size:13px;line-height:1.3;text-align:center;padding:13px 9px}
.no-alcohol-tile{grid-column:1/-1}
.no-alcohol-tile .tile-face{min-height:58px;flex-direction:row;gap:10px}
.drink-icon{width:33px;height:33px;flex-shrink:0}
.tile-check{position:absolute;top:6px;right:8px;font-size:16px;opacity:0;color:var(--accent)}
.answer-tile input:checked+.tile-face .tile-check{opacity:1}
.drink-hint{font-size:11px;line-height:1.6;color:var(--muted);margin:12px 0 0}
.guest-error{font-size:12px;line-height:1.5;color:#962d24;margin:9px 0 0}
.guest-error:empty{display:none}
.letter-paper .reply-button{font:400 26px/1.2 var(--hand);border-radius:2px;transform:rotate(-.5deg);min-height:57px;margin:12px 0 0;box-shadow:3px 4px 0 #db6b0b22}
.reply-button:disabled{opacity:.65;cursor:wait}
.reply-result.visible{margin-top:17px;padding:15px 14px;border:1px dashed #aa957c;background:#fffaf1;font-size:13px}
.reply-result.success{border-color:#637e62;color:#405d3f}
.reply-result.error{border-color:#962d24;color:#962d24}
.loading-note{max-width:520px;margin:0 auto;padding:70px 25px;background:#f5eada;text-align:center;font:30px var(--hand)}
.opening-error h1{font:40px/1.2 var(--hand);color:var(--accent)}
@media(max-width:390px){.letter-paper .hero .personal-greeting{font-size:44px}.letter-paper .rsvp{padding:39px 20px}.reply-form .guest-card{padding:14px 14px 19px}.drink-tile .tile-face{font-size:12px}.attendance-options{gap:6px}.attendance-tile .tile-face{font-size:11px}}

/* Hand drawn drink labels, like a bar menu tucked into the letter. */
.drink-options{gap:16px 11px}
.drink-tile{transform:rotate(-1.5deg)}
.drink-tile:nth-child(odd){transform:rotate(1.1deg)}
.drink-tile .tile-face,.drink-tile input:checked+.tile-face{min-height:137px;border:0;background:transparent;color:var(--ink);gap:8px;padding:20px 12px 18px}
.drink-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.drink-frame path{fill:#fffdf7;stroke:#998774;stroke-width:1.15;transition:fill .15s,stroke .15s}
.drink-tile:hover .drink-frame path{stroke:var(--accent)}
.drink-tile input:checked+.tile-face .drink-frame path{fill:#fff0d5;stroke:var(--accent);stroke-width:2}
.drink-icon{width:49px;height:49px;position:relative;color:var(--ink)}
.drink-name{position:relative;font:400 22px/1.1 var(--hand);max-width:130px}
.drink-tile .tile-check{width:23px;height:23px;top:13px;right:16px;border:1.5px solid var(--accent);border-radius:43% 57% 48% 52%;display:grid;place-items:center;font-size:18px;line-height:1;transform:rotate(-7deg)}
.no-alcohol-tile .tile-face,.no-alcohol-tile input:checked+.tile-face{min-height:82px;flex-direction:row;gap:14px;padding:17px 35px}
.no-alcohol-tile .drink-name{max-width:none;font-size:23px}
.no-alcohol-tile .drink-icon{width:39px;height:39px}
.no-alcohol-tile .tile-check{top:26px;right:22px}
.reply-form .drink-fields legend{font:400 23px/1.2 var(--hand);margin-bottom:18px}
.reply-form[aria-busy=true] .answer-tile{cursor:wait}
.reply-form[aria-busy=true] .tile-face{opacity:.7}
@media(max-width:390px){.drink-name{font-size:20px}.drink-tile .tile-face{padding-left:8px;padding-right:8px}.no-alcohol-tile .tile-face{padding:17px 28px}.no-alcohol-tile .drink-name{font-size:21px}.no-alcohol-tile .tile-check{right:13px}}

/* Visit replies are handwritten slips, matching the drink labels. */
.card-question{font:400 24px/1.2 var(--hand);color:var(--ink);margin:0 0 17px}
.attendance-options{grid-template-columns:minmax(0,1fr);gap:11px}
.attendance-tile{transform:rotate(-.5deg)}
.attendance-tile:nth-child(2){transform:rotate(.5deg)}
.attendance-tile .tile-face,.attendance-tile input:checked+.tile-face{border:0;background:transparent;color:var(--ink);min-height:68px;padding:16px 21px;justify-content:flex-start;gap:13px;border-radius:35%;text-align:left}
.visit-frame{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.visit-frame path{fill:#fffdf7;stroke:#998774;stroke-width:1.15;transition:fill .15s,stroke .15s}
.attendance-tile:hover .visit-frame path{stroke:var(--accent)}
.attendance-tile input:checked+.tile-face .visit-frame path{fill:#fff0d5;stroke:var(--accent);stroke-width:2}
.visit-mark{position:relative;width:29px;height:29px;flex:none;color:#998774}
.visit-tick{opacity:0}
.visit-label{position:relative;font:400 24px/1.15 var(--hand)}
.attendance-tile input:checked+.tile-face .visit-mark{color:var(--accent)}
.attendance-tile input:checked+.tile-face .visit-tick{opacity:1}
@media(max-width:390px){.attendance-tile .tile-face{padding:15px 18px;gap:11px}.visit-label{font-size:23px}}

/* A short note in the letter, before the reply. */
.wishes{padding-top:20px;padding-bottom:40px}
.wish-note{max-width:410px;margin:24px auto 0;padding:20px 22px;background:#fffaf0;box-shadow:2px 3px 0 #c5b49c44;text-align:left;border-top:1px dashed #b5a68f}
.wish-note h3{font:400 28px/1.2 var(--hand);color:var(--accent);margin:0 0 12px}
.wish-note p{font:14px/1.8 Georgia,serif;margin:0}

/* A second, separate invitation: graphite drawings on light grey paper. */
body[data-concept=sketch]{--paper:#f1f2f1;--ink:#343534;--accent:#db6b0b;--muted:#666965;background:#dedfdf}
.sketch-paper{box-shadow:0 18px 60px #30343012}
.sketch-paper .couple-hero{min-height:min(790px,100svh);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 28px 40px}
.sketch-paper .couple-hero .couple-names{font:400 66px/.98 var(--hand);letter-spacing:-1px;margin:0 0 14px;transform:rotate(-3deg)}
.sketch-paper .couple-hero .couple-names span{font:400 38px var(--script);vertical-align:0;margin-left:3px}
.sketch-paper .couple-drawing{width:100%;max-width:340px;margin:0;flex:none;stroke-width:2}
.couple-heart{fill:var(--accent);stroke:var(--accent);stroke-width:0}
.figure-paper{fill:var(--paper)}
.sketch-paper .personal-letter{padding:35px 34px 25px}
.sketch-paper .personal-greeting{font:400 43px/1.12 var(--hand);color:var(--accent);margin:0 auto 23px;max-width:420px}
.sketch-paper .personal-letter .intro{font:16px/1.8 Arial,sans-serif;max-width:350px}
.sketch-paper .personal-letter time{white-space:nowrap}
.sketch-paper .date-section{padding:25px 30px 45px}
.sketch-paper .calendar h2{font-size:42px}
.sketch-paper .calendar-caption{font-size:13px}
.sketch-paper .places{background:#e5e7e5;padding:43px 29px}
.sketch-paper .programme{padding-top:48px;padding-bottom:38px}
.sketch-paper .timeline:before{border-color:#a9b0a7}
.sketch-paper .illustrated-wishes{padding:30px 30px 38px}
.sketch-paper .illustrated-wishes>h2{margin-bottom:32px}
.illustrated-wish{display:grid;grid-template-columns:minmax(0,1fr) 130px;align-items:center;gap:9px;max-width:420px;margin:0 auto 22px;text-align:center}
.illustrated-wish h3,.dress-wish h3{font:400 30px/1.2 var(--hand);color:var(--accent);margin:0 0 13px}
.illustrated-wish p,.dress-wish p{font:15px/1.75 Arial,sans-serif;margin:0}
.illustrated-wish .ink-drawing{max-width:150px;width:100%;margin:0;stroke-width:2.8}
.gift-wish .toast-drawing{transform:rotate(5deg)}
.flower-wish{grid-template-columns:130px minmax(0,1fr);margin-bottom:37px}
.flower-wish .bouquet-drawing{transform:rotate(-9deg)}
.dress-wish{max-width:360px;margin:0 auto;text-align:center}
.dress-palette{display:flex;justify-content:center;gap:14px;margin:25px auto 24px}
.dress-palette span{width:41px;aspect-ratio:1;border-radius:47% 53% 48% 52%;border:1px solid #34353420;background:#45464a;transform:rotate(-7deg)}
.dress-palette span:nth-child(2){background:#74787e;transform:rotate(6deg)}
.dress-palette span:nth-child(3){background:#b5aea5}
.dress-palette span:nth-child(4){background:#a1a99a;transform:rotate(8deg)}
.dress-palette span:nth-child(5){background:#b6bcc0;transform:rotate(-3deg)}
.sketch-paper .illustrated-wishes>.rings-drawing{max-width:160px;margin:30px auto 0}
.sketch-paper .rsvp{background:#e5e7e5;padding-top:43px}
.sketch-paper .reply-form .guest-card{background:#f4f5f4;border-color:#afb3ae;box-shadow:3px 4px 0 #34353416}
.sketch-paper .drink-frame path,.sketch-paper .visit-frame path{fill:#f8f9f7;stroke:#92988f}
.sketch-paper .drink-tile input:checked+.tile-face .drink-frame path,.sketch-paper .attendance-tile input:checked+.tile-face .visit-frame path{fill:#f9e5d1;stroke:var(--accent)}
.sketch-paper .visit-mark{color:#737a70}
.sketch-paper .attendance-tile input:checked+.tile-face .visit-mark{color:var(--accent)}
.sketch-paper .reply-result.visible{background:#f4f5f4}
.sketch-paper .love-note{padding:45px 26px 55px}
.sketch-paper .love-note>.ink-drawing{max-width:45px;margin-top:25px}
@media(max-width:390px){
 .sketch-paper .couple-hero{padding:42px 27px 35px}
 .sketch-paper .couple-hero .couple-names{font-size:58px}
 .sketch-paper .couple-drawing{max-width:315px}
 .sketch-paper .personal-letter{padding:32px 27px 22px}
 .sketch-paper .personal-greeting{font-size:36px}
 .sketch-paper .illustrated-wishes{padding-left:24px;padding-right:24px}
 .illustrated-wish{grid-template-columns:minmax(0,1fr) 95px;gap:4px}
 .flower-wish{grid-template-columns:95px minmax(0,1fr)}
 .illustrated-wish p,.dress-wish p{font-size:14px}
 .dress-palette{gap:11px}
 .dress-palette span{width:36px}
}
