body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{box-sizing:border-box;background-position:top;background-repeat:no-repeat;background-size:cover;justify-content:center;align-items:center;width:100%;min-height:100svh;padding:32px 16px;font-family:Lato,system-ui,sans-serif;display:flex}.card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffbf8e0;border:1px solid #ffffffd9;border-radius:24px;width:min(480px,100%);padding:40px 36px 36px;box-shadow:0 16px 48px #50281e2e}.gallery-card{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#fffbf8e0;border:1px solid #ffffffd9;border-radius:24px;width:min(960px,100%);max-height:calc(100svh - 64px);padding:40px 36px 36px;overflow:auto;box-shadow:0 16px 48px #50281e2e}.card-eyebrow{letter-spacing:.18em;text-transform:uppercase;color:#b07a6e;margin:0 0 10px;font-family:Lato,sans-serif;font-size:11px;font-weight:700}.card h1{color:#3a2318;margin:0 0 6px;font-family:Playfair Display,Georgia,serif;font-size:clamp(26px,4vw,38px);line-height:1.15}.card-subtitle{color:#7a6357;margin:0 0 28px;font-size:14px}.gallery-card h1{color:#3a2318;margin:0 0 4px;font-family:Playfair Display,Georgia,serif;font-size:clamp(24px,3.5vw,34px)}.divider{background:linear-gradient(90deg,#d4a8a0,#e8c8b8);border-radius:2px;width:48px;height:2px;margin:0 0 28px}.upload-form{gap:8px;display:grid}.form-group{gap:6px;display:grid}.upload-form label{letter-spacing:.1em;text-transform:uppercase;color:#7a6357;font-size:12px;font-weight:700}.upload-form input[type=text]{color:#3a2318;background:#ffffffd9;border:1.5px solid #e2d0c8;border-radius:10px;outline:none;padding:11px 14px;font-family:Lato,sans-serif;font-size:15px;transition:border-color .2s}.upload-form input[type=text]:focus{background:#fff;border-color:#c9917f}.upload-form input[type=text]::placeholder{color:#c0a89e}.file-drop-zone{text-align:center;cursor:pointer;background:#fff5f2b3;border:2px dashed #d4b8b0;border-radius:14px;margin-top:4px;padding:28px 16px;transition:border-color .2s,background .2s;position:relative}.file-drop-zone:hover{background:#ffebe499;border-color:#c9917f}.file-drop-zone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.file-drop-icon{margin-bottom:8px;font-size:30px;line-height:1}.file-drop-text{color:#a07060;margin:0 0 2px;font-size:14px;font-weight:600}.file-drop-hint{color:#b09088;margin:0;font-size:12px}.file-selected-label{color:#8a5c50;background:#d4a8a033;border-radius:20px;margin-top:8px;padding:3px 12px;font-size:12px;font-weight:600;display:inline-block}.submit-button{color:#fff;letter-spacing:.05em;cursor:pointer;background:linear-gradient(135deg,#c9917f 0%,#b07060 100%);border:none;border-radius:999px;margin-top:18px;padding:14px 22px;font-family:Lato,sans-serif;font-size:15px;font-weight:700;transition:opacity .2s,transform .1s;box-shadow:0 4px 16px #b0706059}.submit-button:hover:not(:disabled){opacity:.92;transform:translateY(-1px)}.submit-button:disabled{opacity:.6;cursor:default}.message{color:#9b3a2e;margin-top:16px;font-size:14px;font-weight:600}.thank-you-banner{text-align:center;margin-bottom:24px}.thank-you-heart{margin-bottom:8px;font-size:48px;line-height:1;animation:1.4s ease-in-out infinite heartbeat;display:block}@keyframes heartbeat{0%,to{transform:scale(1)}14%{transform:scale(1.18)}28%{transform:scale(1)}42%{transform:scale(1.12)}56%{transform:scale(1)}}.thank-you-text{color:#3a2318;margin:0 0 4px;font-family:Playfair Display,Georgia,serif;font-size:clamp(22px,3.5vw,30px)}.thank-you-sub{color:#9a7468;margin:0 0 20px;font-size:13px}.uploads-grid{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:8px;display:grid}.upload-item{aspect-ratio:1;background:#ffffffe6;border:1px solid #e2d0c8;border-radius:12px;overflow:hidden;box-shadow:0 2px 8px #50281e1a}.upload-item img,.upload-item video{object-fit:cover;width:100%;height:100%;display:block}.upload-more-button{color:#b07060;letter-spacing:.04em;cursor:pointer;background:0 0;border:2px solid #c9917f;border-radius:999px;width:100%;margin-top:28px;padding:14px 24px;font-family:Lato,sans-serif;font-size:16px;font-weight:700;transition:background .2s,color .2s,transform .1s}.upload-more-button:hover{color:#fff;background:linear-gradient(135deg,#c9917f 0%,#b07060 100%);transform:translateY(-1px)}.upload-overlay{z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#3a23188c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.upload-overlay-card{text-align:center;background:#fffbf8f7;border-radius:24px;min-width:260px;padding:40px 48px;box-shadow:0 20px 60px #50281e4d}.overlay-hearts{justify-content:center;gap:10px;margin-bottom:16px;font-size:32px;display:flex}.overlay-hearts span{animation:1.2s ease-in-out infinite heartFloat;display:inline-block}.overlay-hearts span:first-child{animation-delay:0s}.overlay-hearts span:nth-child(2){animation-delay:.2s}.overlay-hearts span:nth-child(3){animation-delay:.4s}@keyframes heartFloat{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.2)}}.overlay-title{color:#3a2318;margin:0 0 4px;font-family:Playfair Display,Georgia,serif;font-size:22px}.overlay-dots span{opacity:0;animation:1.4s ease-in-out infinite dotFade;display:inline-block}.overlay-dots span:first-child{animation-delay:0s}.overlay-dots span:nth-child(2){animation-delay:.2s}.overlay-dots span:nth-child(3){animation-delay:.4s}@keyframes dotFade{0%,80%,to{opacity:0}40%{opacity:1}}.overlay-patient{color:#b07060;margin:0 0 14px;font-size:13px;font-style:italic}.overlay-progress{color:#9a7468;margin:0 0 16px;font-size:13px}.overlay-bar-track{background:#f0e0d8;border-radius:999px;width:100%;height:6px;overflow:hidden}.overlay-bar-fill{background:linear-gradient(90deg,#c9917f,#b07060);border-radius:999px;height:100%;transition:width .3s}
