.board-actions{display:flex;justify-content:center;padding-bottom:20px}
.missions-cta{display:inline-flex;align-items:center;justify-content:center;gap:26px;background:var(--pink);color:var(--wine);border:1px solid #f0b1c8;box-shadow:0 0 0 4px #ed75ad15;border-radius:40px;font-family:Cormorant,Georgia,serif;font-size:21px;font-style:italic;padding:12px 27px;min-height:48px;transition:transform .2s,background .2s}
.missions-cta span{font-style:normal}.missions-cta:hover{background:#efa6c5;transform:translateY(-2px)}
.missions-cta.awaiting-reveal{opacity:0;transform:translateY(22px)}
.missions-cta.mission-button-revealed{animation:mission-button-arrival 1s ease-out both}
@keyframes mission-button-arrival{0%{opacity:0;transform:translateY(22px);box-shadow:0 0 0 0 #ed75ad60}65%{opacity:1;transform:translateY(-3px);box-shadow:0 0 0 12px #ed75ad30}100%{opacity:1;transform:translateY(0);box-shadow:0 0 0 4px #ed75ad15}}
@media(prefers-reduced-motion:reduce){.missions-cta.awaiting-reveal{opacity:1;transform:none}.missions-cta.mission-button-revealed{animation:none}}
.missions-view{min-height:100svh;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 42%,#681431 0,#610f2d 57%,#490b23 100%)}
.missions-view:after{content:"";position:absolute;inset:0;pointer-events:none;z-index:0;background:url('assets/grain.svg');opacity:.07}
.missions-view .harlequin{width:30px;background-size:65px 116px}
.missions-main{position:relative;z-index:1;max-width:1400px;margin:auto;padding:0 80px 35px}
.missions-heading{text-align:center;padding:37px 0 9px}
.missions-heading .eyebrow{color:var(--pink);font-size:10px;letter-spacing:3px;margin:0 0 19px}
.missions-heading h1{font-size:clamp(55px,5vw,79px);letter-spacing:0;line-height:1.06}
.missions-heading>p:last-child{font-size:23px;font-style:italic;color:#eccbd8;margin:16px 0 0}
.missions-loading{text-align:center;min-height:36px;margin:8px 0 12px;font-size:16px;color:#f1c7d8}
.missions-loading p{margin:0;line-height:1.5}
.missions-loading button,.missions-loading a{border:0;background:transparent;color:var(--paper);text-decoration:underline;font:inherit;padding:10px;min-height:40px}
.folders-desk{position:relative;max-width:1040px;margin:auto;perspective:1400px;padding:20px 8px 10px}
.mission-folders{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:37px 36px}
.mission-slot{position:relative;flex:0 0 calc((100% - 72px)/3);min-width:0;z-index:1;transform:rotate(var(--folder-tilt));transform-origin:50% 80%}
.mission-slot:hover,.mission-slot:focus-within{z-index:3}
.folders-desk.is-dropping .mission-slot{animation:folder-fall .95s cubic-bezier(.22,.72,.3,1) both;animation-delay:var(--drop-delay)}
.mission-folder{border:0;background:transparent;color:var(--wine);display:block;position:relative;width:100%;aspect-ratio:1.36;padding:0;text-align:left;perspective:1000px;transform:translateY(0);transition:transform .25s;--folder-color:#b09a43;--folder-edge:#85702d;--folder-light:#c7b464}
.mission-slot:nth-child(2) .mission-folder,.mission-slot:nth-child(5) .mission-folder{--folder-color:#da83a4;--folder-edge:#9c4068;--folder-light:#efb3cb}
.mission-slot:nth-child(3) .mission-folder{--folder-color:#eee0c3;--folder-edge:#bbaa86;--folder-light:#fff5df}
.mission-folder:enabled:hover{transform:translateY(-7px)}
.mission-folder:focus-visible{outline:2px solid #f2dc9a;outline-offset:12px;border-radius:10px}
.folder-back{position:absolute;inset:24px 0 0;background:var(--folder-color);border:1px solid var(--folder-edge);border-radius:3px 8px 7px 7px;box-shadow:3px 10px 18px #24081666}
.folder-tab{position:absolute;left:0;top:0;height:34px;width:45%;background:var(--folder-color);border:1px solid var(--folder-edge);border-bottom:0;border-radius:10px 15px 0 0;display:flex;align-items:center;padding:0 18px;font-size:10px;letter-spacing:1.5px;color:#643831}
.folder-tab:after{content:"";position:absolute;inset:4px 5px 0;border:1px solid #fff5df25;border-bottom:0;border-radius:6px 10px 0 0}
.folder-sheet{position:absolute;left:14px;right:13px;top:21px;bottom:9px;background:#fff8e9;border:1px solid #cbb790;transform:rotate(-2deg);box-shadow:0 2px 3px #3b1e2626;border-radius:2px}
.folder-sheet:after{content:"";position:absolute;inset:15px;background:repeating-linear-gradient(0deg,transparent 0,transparent 13px,#c4b89d60 13px,#c4b89d60 14px)}
.folder-cover{position:absolute;inset:45px 0 0;background:linear-gradient(165deg,var(--folder-light),var(--folder-color) 37%);border:1px solid var(--folder-edge);border-radius:3px 5px 7px 7px;transform-origin:bottom;transform:rotateX(0);transition:transform .25s ease;box-shadow:inset 0 1px 0 #fff6db80,0 -2px 6px #43201b15;padding:21px 23px 17px;display:flex;flex-direction:column}
.mission-folder:enabled:hover .folder-cover{transform:rotateX(-9deg)}
.folder-cover:after{content:"";position:absolute;inset:0;background:url('assets/grain.svg');opacity:.08;pointer-events:none}
.folder-number{font-family:Pirata,Georgia,serif;font-size:clamp(28px,3vw,43px);line-height:1.05;position:relative;z-index:1}
.folder-subtitle{font-size:17px;font-style:italic;line-height:1.1;margin-top:10px;max-width:90%;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;position:relative;z-index:1}
.folder-stamp{display:block;position:absolute;right:18px;bottom:15px;border:1px solid #7f365766;color:#7f3657;font-size:8px;letter-spacing:1.1px;padding:3px 6px;transform:rotate(-8deg);opacity:.75}
.folder-corner-star{position:absolute;left:22px;bottom:14px;font-size:17px;opacity:.55}
.desk-star{position:absolute;color:#d59cb0;pointer-events:none;opacity:.65}.desk-star-one{left:-45px;top:125px;font-size:36px}.desk-star-two{right:-40px;bottom:110px;font-size:51px}
.missions-note{font-style:italic;color:#e5bdcc;font-size:20px;text-align:center;margin:35px 0 10px}
@keyframes folder-fall{0%{opacity:0;transform:translateY(-100svh) rotate(calc(var(--folder-tilt) - 20deg)) scale(.94)}65%{opacity:1;transform:translateY(13px) rotate(calc(var(--folder-tilt) + 3deg)) scale(1.025)}84%{transform:translateY(-5px) rotate(calc(var(--folder-tilt) - 1deg)) scale(.99)}100%{opacity:1;transform:translateY(0) rotate(var(--folder-tilt)) scale(1)}}
body.mission-open{overflow:hidden}
.mission-dialog{max-width:none;max-height:none;width:100%;height:100dvh;padding:45px 24px 28px;margin:0;border:0;background:none;color:var(--wine);overflow:auto}
.mission-dialog[open]{display:grid;place-items:center}
.mission-dialog::backdrop{background:#270a1fdc;backdrop-filter:blur(4px)}
.open-folder{position:relative;width:min(720px,100%);padding:22px;background:#b09a43;border:1px solid #c7b464;border-radius:2px 8px 8px 8px;box-shadow:5px 20px 55px #1c071a80;animation:open-mission .35s ease both}
.open-folder-tab{position:absolute;left:-1px;top:-33px;background:#b09a43;border:1px solid #c7b464;border-bottom:0;border-radius:10px 12px 0 0;height:33px;padding:8px 29px;font-size:12px;letter-spacing:1px}
.mission-close{position:absolute;right:12px;top:8px;z-index:2;background:none;border:0;width:44px;height:44px;color:#6d3b36;font-size:30px;line-height:1;display:grid;place-items:center}
.mission-close:hover{color:var(--wine)}
.mission-paper{background:#fff8e9;min-height:390px;padding:37px 46px 27px;box-shadow:1px 2px 8px #5a3d2430;position:relative}
.mission-file-label{font-size:10px;letter-spacing:2.3px;margin:0 0 20px;color:#8d6430}
.mission-paper h2{font-size:45px;line-height:1.09;letter-spacing:0;overflow-wrap:anywhere;padding:0 0 19px;border-bottom:1px solid #b8965755;margin:0 0 24px}
.mission-body{font-size:22px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}
.mission-body a{color:#8f3058;text-underline-offset:3px}
.rsvp-section{margin-top:28px;border-top:1px solid #b8965760;padding-top:22px;font-size:20px;line-height:1.4}
.rsvp-section[hidden],.rsvp-section [hidden]{display:none!important}
.rsvp-section h3{font-size:28px;margin:28px 0 10px}
.rsvp-section h4{font-size:25px;margin:0 0 16px}
.rsvp-section label:not(.rsvp-choice){display:block;font-weight:600;margin:18px 0 8px}
.rsvp-section input[type=text],.rsvp-section input:not([type]),.rsvp-section textarea{display:block;box-sizing:border-box;width:100%;background:#fffdf6;border:1px solid #bda77d;border-radius:3px;color:#50132b;font:inherit;padding:11px 13px}
.rsvp-section textarea{resize:vertical}
.rsvp-section fieldset{min-width:0;border:1px solid #b8965760;padding:14px 16px 18px;margin:24px 0}
.rsvp-section legend{font-size:23px;font-weight:600;padding:0 7px}
.rsvp-hint{font-size:18px;color:#795346;margin:4px 0 14px}
.rsvp-choices{display:grid;gap:8px}
.rsvp-choice{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #b8965735;border-radius:3px;cursor:pointer;margin:7px 0;background:#fffaf1}
.rsvp-choice:has(input:checked){background:#f2dfde;border-color:#641735}
.rsvp-choice input{flex:none;width:18px;height:18px;margin:4px 0 0;accent-color:#641735}
.rsvp-section :focus-visible{outline:2px solid #641735;outline-offset:3px}
.rsvp-section .is-error{color:#9f203c}
.rsvp-response{border:1px solid #b8965770;padding:20px;margin:20px 0;background:#fffaf1}
.rsvp-response dl{margin:0}.rsvp-response dt{font-weight:600;margin-top:12px}.rsvp-response dd{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.rsvp-response small{display:block;font-size:15px;margin-top:18px;color:#795346}
#rsvp-owner{border-top:1px dashed #b09a43;margin-top:38px;padding-top:10px}
.wedding-palette{white-space:normal;margin:0 0 30px;padding-bottom:24px;border-bottom:1px solid #b8965755}
.wedding-palette-title{font-size:24px;font-weight:600;margin:0 0 14px}
.wedding-palette-heading{font-size:21px;font-weight:700;margin:22px 0 12px}
.wedding-palette-colors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.wedding-palette-swatch{display:block;height:90px;border:4px solid #fffdf6;box-shadow:1px 2px 5px #5a3d2425}
.wedding-palette-name{display:block;font-size:18px;line-height:1.15;margin-top:9px;text-align:center}
.mission-empty-note{font-size:24px;font-style:italic;color:#9c7b70;text-align:center;padding:30px 0;margin:0 0 20px}
.mission-edit{font-size:18px;font-style:italic;margin-top:27px;min-height:45px;background:none;border:1px solid #ac7f3b;padding:10px 22px;color:var(--wine);border-radius:3px}
.mission-edit span{margin-left:14px;font-style:normal}
.mission-form label{display:block;font-size:18px;margin:20px 0 8px;font-weight:600}
.mission-form label span{font-weight:400;font-style:italic;font-size:16px}
.mission-form input,.mission-form textarea{display:block;width:100%;border:1px solid #bda77d;border-radius:3px;background:#fffdf6;color:#50132b;font-family:Cormorant,Georgia,serif;font-size:21px;line-height:1.4;padding:11px 13px;outline-offset:3px}
.mission-form textarea{min-height:220px;resize:vertical}
.mission-form input:focus,.mission-form textarea:focus{outline:2px solid #b5557a;border-color:#b5557a}
.mission-form input::placeholder,.mission-form textarea::placeholder{color:#9a8178;font-style:italic}
.mission-form-actions{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-top:21px}
.mission-save{background:var(--wine);border:1px solid var(--wine);border-radius:30px;color:var(--paper);font-size:20px;padding:11px 25px;min-height:47px}
.mission-save:hover{background:#7a2c4b}.mission-save:disabled{opacity:.55;cursor:wait}
.mission-cancel{background:none;border:0;font-size:18px;color:var(--wine);padding:11px 17px;min-height:44px;text-decoration:underline;text-underline-offset:4px}
.mission-save-note{font-size:15px;font-style:italic;line-height:1.3;color:#836c60;margin:13px 0 0}
.mission-feedback{font-size:17px;line-height:1.35;margin:15px 0 0;color:#744426;min-height:0}
.mission-feedback.is-error{color:#a12146;background:#a121460a;padding:10px;border-left:2px solid #a12146}
.unsaved-notice{margin-top:20px;padding:14px;border:1px solid #c79b58;background:#f6e8c8}
.unsaved-notice p{margin:0 0 10px;font-size:18px}
.unsaved-notice button{padding:9px 15px;margin:0 6px 0 0;min-height:44px;border:1px solid #b39050;background:#fff8e9;color:var(--wine);font-size:16px}
.mission-paper-footer{border-top:1px solid #b8965755;padding-top:17px;margin-top:30px;font-style:italic;font-size:17px;display:flex;justify-content:space-between;color:#97723d}
@keyframes open-mission{from{opacity:0;transform:translateY(16px) rotate(-2deg)}to{opacity:1;transform:translateY(0) rotate(0)}}
@media(max-width:1000px){.missions-main{padding:0 58px 30px}.mission-folders{gap:30px 26px}.mission-slot{flex-basis:calc((100% - 52px)/3)}.folder-cover{padding:17px}.folder-subtitle{font-size:16px;margin-top:8px}.folder-stamp{font-size:6px;bottom:10px;right:12px}.folder-corner-star{bottom:9px;left:17px}.folder-number{font-size:30px}}
@media(max-width:760px){.missions-main{padding:0 38px 30px}.mission-slot{flex-basis:calc((100% - 30px)/2)}.mission-folders{gap:32px 30px}.missions-heading h1{font-size:58px}.missions-view .harlequin{width:18px}.missions-heading{padding-top:30px}.desk-star{display:none}.folder-number{font-size:34px}.mission-paper{padding:32px 29px 25px}.mission-paper h2{font-size:39px}.mission-body{font-size:21px}}
@media(max-width:480px){.missions-view .board-masthead{padding:24px 30px 0;flex-direction:column;gap:8px}.missions-view .harlequin{width:10px}.missions-main{padding:0 36px 30px}.missions-heading h1{font-size:51px}.missions-heading>p:last-child{font-size:20px}.mission-slot{flex-basis:100%;max-width:310px}.mission-folders{gap:35px}.folder-number{font-size:40px}.folder-cover{padding:25px}.folder-subtitle{font-size:20px}.folder-stamp{font-size:8px;bottom:17px}.folder-corner-star{bottom:14px}.mission-paper{padding:29px 20px 22px}.open-folder{padding:13px}.mission-dialog{padding:47px 14px 24px}.mission-paper h2{font-size:36px}.mission-close{right:4px;top:3px}.mission-file-label{font-size:9px}.mission-paper-footer{font-size:15px}}
@media(prefers-reduced-motion:reduce){.folders-desk.is-dropping .mission-slot,.open-folder{animation:none!important}}

/* Missions #2–4 use the same typewritten voice as the wedding briefing. */
.mission-dialog.is-typewritten{font-family:"Courier New",Courier,monospace}
.is-typewritten .mission-paper h2{font-family:inherit;font-size:33px;line-height:1.25;font-weight:700;letter-spacing:-.8px}
.is-typewritten .mission-body{font-size:20px;line-height:1.65;letter-spacing:-.4px}
.has-section-headings .mission-body{white-space:normal}
.has-section-headings .mission-body p{margin:0 0 22px;white-space:pre-line}
.has-section-headings .mission-body .mission-section-heading{font-family:inherit;font-size:21px;font-weight:700;line-height:1.4;margin:32px 0 13px;letter-spacing:-.4px}
.has-section-headings .mission-body>:last-child{margin-bottom:0}
.is-typewritten .mission-form input,.is-typewritten .mission-form textarea{font-family:inherit;font-size:18px;line-height:1.6}
.is-typewritten .mission-edit{font-style:normal}
@media(max-width:760px){.is-typewritten .mission-paper h2{font-size:28px}.is-typewritten .mission-body{font-size:18px}.has-section-headings .mission-body .mission-section-heading{font-size:19px}}

/* A sealed thank-you note after a confirmed RSVP save. */
.is-rsvp-complete .mission-paper{background:var(--paper,#fff8e9);border:1px solid #b09a43;padding:38px 32px 30px;outline:1px solid #b09a4360;outline-offset:-10px}
.is-rsvp-complete #mission-file-label,.is-rsvp-complete #mission-dialog-title,.is-rsvp-complete #mission-body,.is-rsvp-complete #rsvp-status,.is-rsvp-complete #rsvp-owner{display:none!important}
.is-rsvp-complete .rsvp-section{border:0;margin:0;padding:0}
.rsvp-complete{text-align:center;max-width:530px;margin:auto;animation:rsvp-note-arrive .55s ease both}
.rsvp-seal{display:grid;place-items:center;width:80px;height:80px;margin:0 auto 25px;border-radius:50%;border:4px double #e7b6b5;background:radial-gradient(circle at 35% 25%,#a43a61,#610f2d 75%);box-shadow:2px 4px 0 #490b23,3px 7px 12px #490b2330;color:#f3d78c;font:22px Georgia,serif;transform:rotate(-9deg)}
.rsvp-complete .rsvp-receipt{font:11px/1.6 'Courier New',monospace;letter-spacing:2px;color:#795b30;margin:0 0 20px}
.rsvp-complete h3{font-family:Pirata,Georgia,serif;font-weight:400;font-size:clamp(40px,6vw,60px);line-height:1.05;margin:0 0 25px;color:var(--wine)}
.rsvp-complete>p{font-family:Cormorant,Georgia,serif;font-size:23px;line-height:1.4;margin:18px auto}
.rsvp-complete .rsvp-signoff{font-style:italic;margin-top:28px}
.rsvp-complete .rsvp-signature{font-size:30px;color:#8c6530;margin:22px 0 28px}
.rsvp-closing-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px}
.rsvp-closing-actions button{margin:0;min-height:44px}
.rsvp-complete .rsvp-postscript{font:12px/1.6 'Courier New',monospace;margin:24px 0 0;color:#795346}
@keyframes rsvp-note-arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:480px){.is-rsvp-complete .mission-paper{padding:30px 20px}.rsvp-complete>p{font-size:21px}.rsvp-closing-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){.rsvp-complete{animation:none}}
