@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@1,700&display=swap";:root{color:#25322d;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#f8f4fa;font-family:DM Sans,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}::selection{color:#fff;background:#8264aa}#root{min-height:100vh}.page-shell{grid-template-columns:minmax(0,.9fr) minmax(450px,.82fr);align-items:center;gap:clamp(3rem,7vw,7.5rem);width:min(1180px,100% - 48px);min-height:100vh;margin:0 auto;padding:72px 0 88px;display:grid;position:relative}.page-shell:before,.page-shell:after{z-index:-2;content:"";filter:blur(2px);opacity:.55;border-radius:50%;width:520px;height:520px;position:fixed}.page-shell:before{background:#ddd0ee;top:-290px;left:-230px}.page-shell:after{background:#c9dfcf;bottom:-310px;right:-250px}.confetti{z-index:-1;background:#e9674c;border-radius:20px;width:9px;height:20px;position:fixed;transform:rotate(31deg)}.confetti:before,.confetti:after{content:"";position:absolute}.confetti:before{border:3px solid #e4aa33;border-radius:50%;width:9px;height:9px}.confetti:after{background:#6e9b80;border-radius:20px;width:18px;height:7px;transform:rotate(-65deg)}.confetti-one{top:13%;left:5%}.confetti-one:before{top:130px;left:53px}.confetti-one:after{top:75px;left:110px}.confetti-two{background:#8372a7;bottom:17%;right:4%;transform:rotate(-28deg)}.confetti-two:before{border-color:#e9674c;bottom:105px;right:85px}.confetti-two:after{background:#e4aa33;bottom:15px;right:112px}.intro{padding-left:10px;position:relative}.eyebrow{color:#887f73;letter-spacing:.2em;text-transform:uppercase;align-items:center;gap:11px;margin-bottom:44px;font-size:.69rem;font-weight:700;display:flex}.eyebrow span{color:#e4aa33;font-size:.9rem}.birthday-badge{color:#8264aa;border:1px solid #8264aa47;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100px;height:100px;line-height:1;display:flex;position:absolute;top:4px;right:7%;transform:rotate(8deg)}.birthday-badge:before{border-radius:inherit;content:"";border:1px dashed #8264aa80;position:absolute;inset:6px}.badge-small{letter-spacing:.14em;text-transform:uppercase;font-size:.58rem;font-weight:700;position:relative}.badge-number{font-family:Georgia,Times New Roman,serif;font-size:2.7rem;font-weight:700;position:relative}.kicker{color:#e9674c;letter-spacing:.07em;text-transform:uppercase;margin:0 0 12px;font-size:.93rem;font-weight:700}.intro h1{color:#26332e;letter-spacing:-.07em;max-width:620px;margin:0;font-size:clamp(3.5rem,6vw,5.65rem);font-weight:600;line-height:.96}.intro h1 em{color:#8264aa;letter-spacing:-.045em;font-family:Playfair Display,Georgia,Times New Roman,serif;font-weight:700}.intro-copy{color:#706f68;max-width:520px;margin:28px 0 30px;font-size:1.04rem;line-height:1.7}.deadline-note{background:#ffffff80;border:1px solid #25322d14;border-radius:14px;align-items:center;gap:13px;padding:12px 18px 12px 14px;display:inline-flex;box-shadow:0 5px 20px #58422f0a}.deadline-note svg{fill:none;stroke:#e9674c;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:23px}.deadline-note span{flex-direction:column;display:flex}.deadline-note strong{color:#35433d;font-size:.82rem}.deadline-note small{color:#8b877f;margin-top:2px;font-size:.7rem}.upload-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe8;border:1px solid #4d443914;border-radius:26px;width:100%;min-height:580px;padding:clamp(26px,4vw,42px);position:relative;box-shadow:0 28px 70px #5b467726,0 3px 10px #5646310a}.upload-card:before{content:"";background:#b59cd5b8;border-radius:2px;width:54px;height:17px;position:absolute;top:-8px;right:34px;transform:rotate(3deg)}.form-header{justify-content:space-between;align-items:flex-start;margin-bottom:30px;display:flex}.step-label{color:#e9674c;letter-spacing:.16em;text-transform:uppercase;margin:0 0 5px;font-size:.66rem;font-weight:700}.form-header h2,.success-state h2,.closed-state h2{color:#27352f;margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.58rem;line-height:1.2}.time-pill{color:#61776a;white-space:nowrap;background:#edf4ee;border-radius:99px;padding:6px 10px;font-size:.67rem;font-weight:700}.field-label{color:#4e5752;margin:0 0 8px;font-size:.75rem;font-weight:700;display:block}.name-input{color:#25322d;background:#fcfbf8;border:1px solid #dfded8;border-radius:10px;outline:none;width:100%;height:49px;margin-bottom:23px;padding:0 15px;font-size:.88rem;transition:border-color .16s,box-shadow .16s,background .16s}.name-input::placeholder{color:#afaca4}.name-input:focus{background:#fff;border-color:#8264aa;box-shadow:0 0 0 3px #8264aa21}.drop-zone{text-align:center;cursor:pointer;background:#fcfaf6;border:1.5px dashed #d7cfc3;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;min-height:190px;transition:border-color .16s,background .16s,transform .16s;display:flex}.drop-zone:hover{background:#faf7fd;border-color:#8264aa;transform:translateY(-1px)}.drop-zone:focus-within{outline-offset:2px;outline:3px solid #8264aa2b}.drop-zone input{clip:rect(0, 0, 0, 0);white-space:nowrap;clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.upload-icon{color:#8264aa;background:#f0eafa;border-radius:50%;place-items:center;width:41px;height:41px;margin-bottom:10px;display:grid}.upload-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:21px}.drop-zone strong{color:#37443e;font-size:.87rem}.drop-zone>span:not(.upload-icon){color:#969188;margin-top:3px;font-size:.7rem}.drop-zone small{color:#aaa69e;margin-top:11px;font-size:.64rem}.video-selected{background:#f8f6f1;border:1px solid #dedbd3;border-radius:14px;overflow:hidden}.video-selected video{object-fit:contain;background:#202522;width:100%;height:150px;display:block}.video-details{align-items:center;gap:10px;padding:11px 13px;display:flex}.video-check{color:#fff;background:#6f9e80;border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:.72rem;font-weight:700;display:grid}.file-copy{flex-direction:column;flex:1;min-width:0;display:flex}.file-copy strong{color:#39453f;text-overflow:ellipsis;white-space:nowrap;font-size:.73rem;overflow:hidden}.file-copy small{color:#969188;font-size:.64rem}.remove-button{color:#8a8780;background:0 0;border:0;border-radius:50%;width:30px;height:30px;font-size:1.3rem;line-height:1}.remove-button:hover{color:#d6553c;background:#f8e9e4}.error-message{color:#b64231;align-items:center;gap:8px;margin:12px 0 0;font-size:.7rem;line-height:1.35;display:flex}.error-message span{color:#fff;background:#d45a43;border-radius:50%;flex:none;place-items:center;width:18px;height:18px;font-size:.65rem;font-weight:700;display:grid}.progress-wrap{margin-top:18px}.progress-copy{color:#56635d;justify-content:space-between;font-size:.7rem;display:flex}.progress-track{background:#eeeae2;border-radius:20px;height:7px;margin:7px 0;overflow:hidden}.progress-track span{border-radius:inherit;background:#8264aa;height:100%;transition:width .18s;display:block}.progress-wrap small{color:#99958d;font-size:.62rem}.submit-button{color:#fff;background:#8264aa;border:0;border-radius:10px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:49px;margin-top:20px;font-size:.79rem;font-weight:700;transition:transform .15s,background .15s,box-shadow .15s;display:flex;box-shadow:0 7px 16px #63488838}.submit-button span{font-size:1.15rem;font-weight:400}.submit-button:hover:not(:disabled){background:#6f5198;transform:translateY(-1px);box-shadow:0 9px 20px #6348884d}.submit-button:focus-visible,.remove-button:focus-visible{outline-offset:2px;outline:3px solid #8264aa47}.submit-button:disabled{opacity:.65}.privacy-note{color:#aaa69e;text-align:center;justify-content:center;align-items:center;gap:6px;margin:12px 0 0;font-size:.58rem;line-height:1.3;display:flex}.privacy-note svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;flex:none;width:12px}.success-state,.closed-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:495px;display:flex}.success-icon{color:#fff;background:#6f9e80;border-radius:50%;place-items:center;width:66px;height:66px;margin-bottom:23px;display:grid;box-shadow:0 0 0 9px #eef4ef}.success-icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:33px}.clock-icon{color:#e9674c;background:#f8e7e1;font-size:1.65rem}.success-state>p:not(.step-label),.closed-state>p:not(.step-label){color:#77766f;max-width:340px;margin:13px 0 28px;font-size:.84rem;line-height:1.65}footer{color:#9e978c;letter-spacing:.04em;text-align:center;grid-column:1/-1;width:100%;font-size:.65rem;position:absolute;bottom:28px}footer span{color:#8264aa}@media (width<=900px){.page-shell{grid-template-columns:1fr;gap:48px;width:min(600px,100% - 36px);padding-top:56px}.intro{text-align:center;padding:0}.eyebrow{justify-content:center;margin-bottom:38px}.birthday-badge{top:-4px;right:0}.intro-copy{margin-left:auto;margin-right:auto}footer{grid-column:auto;margin-top:-18px;position:static}}@media (width<=540px){.page-shell{gap:36px;width:min(100% - 24px,500px);padding:38px 0 34px}.eyebrow{margin-bottom:78px;font-size:.62rem}.birthday-badge{width:90px;height:90px;top:28px;right:calc(50% - 45px)}.badge-number{font-size:2.35rem}.kicker{font-size:.79rem}.intro h1{font-size:clamp(3.15rem,15vw,4.3rem)}.intro-copy{margin:22px auto 25px;font-size:.92rem;line-height:1.65}.upload-card{border-radius:20px;min-height:auto;padding:27px 21px}.form-header h2,.success-state h2,.closed-state h2{font-size:1.36rem}.time-pill{margin-top:3px;font-size:.61rem}.drop-zone{min-height:180px}.success-state,.closed-state{min-height:440px}footer{margin:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important}}
