[hidden]{display:none!important}
body.upload-panel-open{overflow:hidden}
.upload-dialog{width:min(660px,calc(100% - 28px));max-height:calc(100dvh - 28px);max-height:min(900px,calc(100dvh - 28px));overflow-y:auto;overscroll-behavior:contain;border:2px solid var(--ink);border-radius:0;padding:34px 36px 30px;text-align:left;scrollbar-gutter:stable;box-shadow:8px 9px 0 var(--yellow),0 20px 100px #0003}
.upload-dialog::backdrop{background:#100c0799;backdrop-filter:blur(4px)}
.upload-dialog .dialog-close{position:sticky;top:10px;right:auto;z-index:5;display:block;width:44px;height:44px;min-width:44px;min-height:44px;margin:-24px -24px -20px auto;background:var(--paper);border:1px solid #100c0733;border-radius:50%;font-size:32px;line-height:1;padding:5px 10px}
.upload-dialog-header{display:flex;align-items:center;gap:15px;padding-right:28px;margin-bottom:17px}
.upload-dialog-header .dialog-flower{width:56px;height:56px;margin:0;flex-shrink:0}
.upload-dialog .eyebrow{margin:0;font-size:9px;letter-spacing:.12em;line-height:1.7}
.upload-dialog h2{font-size:clamp(35px,7vw,51px);line-height:1.05;outline:none;scroll-margin-top:20px}
.upload-dialog h2:focus-visible{outline:none}
.upload-dialog>p#upload-description{font-size:13px;line-height:1.8;margin:17px 0 18px;color:var(--muted)}
.upload-dialog .uploader-note{font-size:11px;line-height:1.7;margin:0;color:var(--muted)}
.uploader-guest{margin:17px 0 16px}
.uploader-guest label{display:block;font-size:13px;line-height:1.6;margin-bottom:7px}
.uploader-guest label span{font-weight:400;color:var(--muted)}
.uploader-guest input{display:block;box-sizing:border-box;width:100%;min-height:46px;border:1px solid var(--ink);border-radius:0;padding:10px 12px;background:#fffdf5;color:var(--ink);font:16px/1.5 Arial,Helvetica,sans-serif;margin-bottom:6px}
.uploader-guest input:focus-visible{outline:3px solid #1e40af;outline-offset:3px}
.uploader-guest input:disabled{cursor:default}
.uploader-picker{padding:18px 19px;background:#fffdf5;border:2px dashed #100c0755;margin:16px 0}
.uploader-picker label{display:block;font-size:13px;margin-bottom:11px}
.uploader-picker input{width:100%;min-width:0;font:12px/1.5 Arial,Helvetica,sans-serif;color:var(--ink);margin:0 0 12px}
.uploader-picker input::file-selector-button{font:600 12px/1.5 Arial,Helvetica,sans-serif;background:var(--yellow);color:var(--ink);border:1px solid var(--ink);border-radius:0;padding:9px 12px;margin-right:10px;cursor:pointer}
.uploader-picker input:focus-visible,.uploader-secondary:focus-visible{outline:3px solid #1e40af;outline-offset:4px}
.upload-dialog .uploader-status{font-size:12px;line-height:1.75;white-space:pre-line;overflow-wrap:anywhere;margin:13px 0;color:var(--muted)}
.upload-dialog .uploader-status.is-error{color:#9a2513}
.upload-dialog .uploader-status.is-success{color:#2f6b26}
.upload-dialog .uploader-batch{font-size:10px;line-height:1.7;font-weight:700;letter-spacing:.04em;color:#1e40af;margin:18px 0 0}
.uploader-files{list-style:none;padding:0;margin:6px 0 21px}
.uploader-files li{padding:13px 0;border-bottom:1px solid #100c072b}
.uploader-file-name{font-weight:700;font-size:12px;line-height:1.6;overflow-wrap:anywhere}
.uploader-file-status{font-size:11px;line-height:1.65;color:var(--muted);margin-top:3px;overflow-wrap:anywhere}
.uploader-files progress{display:block;appearance:auto;width:100%;height:10px;accent-color:#37762e;margin-top:9px}
.uploader-buttons{display:flex;align-items:center;flex-wrap:wrap;gap:14px 18px}
.upload-dialog .uploader-buttons .upload-button{font-size:12px;min-height:48px;padding:12px 17px;margin:0}
.upload-dialog .uploader-buttons .upload-button>span{font-size:18px;margin-left:5px}
.uploader-secondary{font:600 11px/1.6 Arial,Helvetica,sans-serif;min-height:44px;padding:10px 13px;color:var(--ink);background:transparent;border:1px solid var(--ink);border-radius:0;cursor:pointer;text-align:center}
.upload-dialog button:disabled,.upload-dialog input:disabled{opacity:.5;cursor:wait}
.upload-dialog button:disabled:hover{transform:none;box-shadow:4px 5px 0 var(--yellow)}
.upload-dialog #upload-summary{margin:20px 0 0}
@media(max-width:600px){.upload-dialog{padding:26px 22px 24px;width:calc(100% - 24px);max-height:calc(100dvh - 24px);box-shadow:5px 6px 0 var(--yellow),0 20px 100px #0003}.upload-dialog-header{gap:12px;padding-right:20px;margin-bottom:16px}.upload-dialog-header .dialog-flower{width:47px;height:47px}.upload-dialog .eyebrow{font-size:8px}.upload-dialog .dialog-close{right:auto;top:6px;margin:-20px -17px -24px auto}.upload-dialog>p#upload-description{font-size:12px;margin-top:15px}.uploader-picker{padding:15px 13px}.uploader-picker label{font-size:12px}.uploader-buttons{display:grid;grid-template-columns:1fr;gap:13px}.upload-dialog .uploader-buttons .upload-button,.uploader-buttons .uploader-secondary{width:100%;min-height:48px}.upload-dialog .uploader-status{font-size:11px}}


/* The wedding upload panel gets its own party-paper treatment. */
.wedding-page .upload-dialog{width:min(745px,calc(100% - 28px));max-height:calc(100dvh - 28px);border:3px solid var(--ink);padding:35px 37px 31px;background-color:#fff9e9;background-image:linear-gradient(#fff9e9,#fff9e9),conic-gradient(var(--ink) 25%,#fff9e9 0 50%,var(--ink) 0 75%,#fff9e9 0);background-size:100% calc(100% - 15px),18px 18px;background-position:left 15px,left top;background-repeat:no-repeat,repeat-x;box-shadow:8px 9px 0 var(--yellow),13px 14px 0 var(--ink),0 20px 100px #0004;text-align:left}
.wedding-page .upload-dialog .dialog-close{top:8px;background:#fffdf7;border:2px solid var(--ink);box-shadow:2px 3px 0 var(--yellow);font-size:29px;line-height:1;width:44px;height:44px;padding:4px 9px;margin:-20px -24px -22px auto}
.wedding-page .upload-dialog-header{gap:14px;min-height:92px;margin:3px 0 15px;padding-right:16px;align-items:center}
.wedding-page .upload-dialog-header .dialog-flower{width:58px;height:58px;transform:rotate(-12deg)}
.wedding-page .upload-dialog-header .eyebrow{font-size:9px;line-height:1.8;letter-spacing:.1em;max-width:210px;transform:rotate(-2deg)}
.wedding-page .upload-snapshots{width:129px;height:91px;position:relative;margin-left:auto;flex-shrink:0;pointer-events:none}
.wedding-page .upload-snapshots img{position:absolute;background:#fffdf7;border:4px solid #fffdf7;box-shadow:1px 2px 0 var(--ink);object-fit:contain}
.wedding-page .upload-snapshots img:first-child{width:88px;height:69px;left:0;top:14px;transform:rotate(-9deg)}
.wedding-page .upload-snapshots img:last-child{width:62px;height:85px;right:0;top:0;transform:rotate(9deg)}
.wedding-page .upload-dialog h2{font:900 clamp(43px,7vw,63px)/1.02 Impact,'Arial Narrow',Arial,sans-serif;letter-spacing:-.025em;max-width:100%;margin-top:4px}
.wedding-page .upload-dialog h2>span{display:inline-block;background:var(--yellow);padding:0 5px 2px;color:#1e40af;transform:rotate(-2deg)}
.wedding-page .upload-dialog>p#upload-description{font-size:13px;line-height:1.8;margin:21px 0 18px;color:#514838}
.wedding-page .upload-dialog .uploader-note{font-size:11px;line-height:1.75;color:#514838}
.wedding-page .upload-dialog #upload-limits{font-size:10px;font-weight:700;letter-spacing:.02em;padding-bottom:1px}
.wedding-page .uploader-guest{margin:19px 0 22px;padding:15px 17px;background:#fffdf7;border:1px solid var(--ink);box-shadow:3px 4px 0 #e4edcf;transform:rotate(-.5deg)}
.wedding-page .uploader-guest label{font-size:12px;line-height:1.6;margin-bottom:8px}
.wedding-page .uploader-guest label span{font-size:11px;color:#655c4c}
.wedding-page .uploader-guest input{min-height:47px;border:2px solid var(--ink);padding:9px 12px;background:#fff9e9;font-size:16px;line-height:1.5;margin-bottom:7px}
.wedding-page .uploader-picker{position:relative;padding:20px 20px 17px;background:#ffdf68;border:2px dashed var(--ink);margin:20px 0;box-shadow:4px 5px 0 #100c0714;transform:rotate(.5deg)}
.wedding-page .uploader-picker::before{content:'';position:absolute;top:-13px;left:calc(50% - 36px);width:73px;height:24px;transform:rotate(-3deg);background:#92b7e4d9;clip-path:polygon(3% 0,97% 2%,100% 94%,0 100%);pointer-events:none}
.wedding-page .uploader-picker label{font-size:13px;margin-bottom:12px;line-height:1.5}
.wedding-page .uploader-picker input{font-size:12px;line-height:1.7;margin-bottom:12px}
.wedding-page .uploader-picker input::file-selector-button{background:#1e40af;color:#fffdf7;border:2px solid var(--ink);padding:10px 13px;font-size:12px;box-shadow:2px 3px 0 #fffdf7;margin-right:12px}
.wedding-page .upload-dialog .uploader-status{font-size:12px;line-height:1.8;margin:16px 0;color:#514838}
.wedding-page .upload-dialog .uploader-status.is-success{color:#255c23}
.wedding-page .upload-dialog #upload-connection.is-success{padding:10px 12px;background:#e4edcf;border-left:4px solid #2f6b26;font-size:11px;line-height:1.75}
.wedding-page .upload-dialog .uploader-status.is-error{color:#92230f}
.wedding-page .upload-dialog .uploader-batch{font-size:10px;line-height:1.7;letter-spacing:.03em;color:#1e40af;margin-top:23px}
.wedding-page .upload-dialog .uploader-files li{background:#fffdf7;border:1px solid #100c0744;padding:13px 14px;margin-bottom:10px;box-shadow:2px 3px 0 #100c0710}
.wedding-page .upload-dialog .uploader-files progress{height:12px;accent-color:#1e40af;margin-top:11px}
.wedding-page .upload-dialog .uploader-buttons{gap:13px 17px;margin-top:20px}
.wedding-page .upload-dialog .uploader-buttons .upload-button{min-height:55px;border:2px solid var(--ink);background:#1e40af;color:#fffdf7;box-shadow:4px 5px 0 var(--yellow);font-size:12px;font-weight:700;padding:13px 18px;gap:10px}
.wedding-page .upload-dialog .uploader-secondary{border:2px solid var(--ink);background:#fffdf7;font-size:11px;min-height:47px;padding:10px 13px;box-shadow:2px 3px 0 #e4edcf}
.wedding-page .upload-dialog .uploader-buttons .upload-button:disabled{background:#888477;box-shadow:4px 5px 0 var(--yellow);opacity:.65}
.wedding-page .upload-dialog #upload-summary{font-size:12px;line-height:1.8;margin-top:23px}
@media(max-width:600px){
 .wedding-page .upload-dialog{width:calc(100% - 22px);max-height:calc(100dvh - 24px);padding:28px 21px 28px;box-shadow:5px 6px 0 var(--yellow),8px 9px 0 var(--ink),0 20px 100px #0004;background-size:100% calc(100% - 12px),16px 16px;background-position:left 12px,left top}
 .wedding-page .upload-dialog .dialog-close{top:6px;margin:-15px -15px -21px auto}
 .wedding-page .upload-dialog-header{gap:10px;min-height:79px;padding-right:0;margin:7px 0 17px}
 .wedding-page .upload-dialog-header .dialog-flower{width:43px;height:43px}
 .wedding-page .upload-dialog-header .eyebrow{font-size:7px;letter-spacing:.06em;max-width:142px;line-height:1.9}
 .wedding-page .upload-snapshots{width:83px;height:77px}
 .wedding-page .upload-snapshots img{border-width:3px}
 .wedding-page .upload-snapshots img:first-child{width:59px;height:49px;top:19px;left:0}
 .wedding-page .upload-snapshots img:last-child{width:44px;height:62px;top:3px;right:0}
 .wedding-page .upload-dialog h2{font-size:clamp(37px,10.4vw,53px);line-height:1.04;margin-top:2px}
 .wedding-page .upload-dialog>p#upload-description{font-size:12px;line-height:1.8;margin:19px 0 17px}
 .wedding-page .upload-dialog #upload-limits{font-size:9px;line-height:1.8}
 .wedding-page .uploader-guest{padding:13px 12px;margin:18px 0 22px}
 .wedding-page .uploader-guest label{font-size:11px}
 .wedding-page .uploader-guest label span{font-size:10px}
 .wedding-page .uploader-guest input{min-height:46px;padding:9px 10px}
 .wedding-page .uploader-picker{padding:20px 13px 15px;margin:22px 0 19px}
 .wedding-page .uploader-picker label{font-size:12px;line-height:1.6}
 .wedding-page .uploader-picker input{font-size:11px}
 .wedding-page .uploader-picker input::file-selector-button{font-size:11px;padding:9px 11px;margin-right:9px}
 .wedding-page .upload-dialog .uploader-note{font-size:10px;line-height:1.8}
 .wedding-page .upload-dialog .uploader-status{font-size:11px;line-height:1.8}
 .wedding-page .upload-dialog #upload-connection.is-success{font-size:10px;padding:10px}
 .wedding-page .upload-dialog .uploader-buttons{gap:15px;margin-top:20px}
 .wedding-page .upload-dialog .uploader-buttons .upload-button,.wedding-page .upload-dialog .uploader-buttons .uploader-secondary{width:100%;min-height:53px;font-size:11px}
 .wedding-page .upload-dialog #upload-summary{font-size:11px;margin-top:24px}
}
@media(max-width:350px){.wedding-page .upload-dialog{padding-left:17px;padding-right:17px}.wedding-page .upload-dialog-header{gap:8px}.wedding-page .upload-dialog-header .dialog-flower{width:38px;height:38px}.wedding-page .upload-dialog-header .eyebrow{font-size:6px;max-width:125px}.wedding-page .upload-snapshots{width:72px}.wedding-page .upload-snapshots img:first-child{width:52px;height:45px}.wedding-page .upload-snapshots img:last-child{width:39px;height:55px}.wedding-page .upload-dialog h2{font-size:36px}.wedding-page .uploader-guest{padding-left:10px;padding-right:10px}}
