.photo-page{margin:0;background:#e9e3dc;color:#443c35;font-family:Georgia,serif}.photo-shell{box-sizing:border-box;min-height:100svh;padding:32px 18px;display:flex;justify-content:center;align-items:flex-start}.photo-card{box-sizing:border-box;width:100%;max-width:650px;padding:48px 42px 28px;background:#fcfaf5;border:1px solid #b5a177;outline:1px solid #cfc1a7;outline-offset:7px;text-align:center;box-shadow:0 15px 60px #51463810}.photo-card .family-name{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(44px,8vw,66px);font-weight:500;line-height:1.1}.photo-card .couple{font:12px/1.6 Arial,sans-serif;letter-spacing:2.4px;margin:18px 0 26px}.gold-rule{width:62px;height:1px;background:#aa9160;margin:24px auto}.photo-card h1{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;font-size:38px;line-height:1.15;margin:22px 0 14px}.intro{font-size:17px;line-height:1.65;color:#6b6056}.photo-actions{display:grid;gap:12px;margin:28px 0 14px}.pick-button,.camera-button,.upload-button{box-sizing:border-box;border-radius:4px;padding:16px 20px;font:16px/1.3 Arial,sans-serif;cursor:pointer;border:1px solid #847044;display:block}.pick-button,.upload-button{background:#786847;color:#fff}.camera-button{background:transparent;color:#55482f}.file-input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.photo-actions:has(#photos:focus-visible) .pick-button,.photo-actions:has(#camera:focus-visible) .camera-button,button:focus-visible,a:focus-visible{outline:3px solid #584324;outline-offset:4px}.hint,.camera-note{font:13px/1.6 Arial,sans-serif;color:#71695f}.privacy{font:17px/1.65 Arial,sans-serif;color:#71695f}.camera-note{max-width:410px;margin:12px auto}.queue{list-style:none;padding:0;margin:22px 0;display:grid;gap:10px}.queue:empty{display:none}.queue li{display:grid;grid-template-columns:58px minmax(0,1fr) auto;gap:12px;align-items:center;text-align:left;padding:10px;border:1px solid #ded6c7;border-radius:4px}.thumb{width:58px;height:58px;object-fit:cover;border-radius:3px;background:#e9e3dc}.file-info{min-width:0;font:14px/1.4 Arial,sans-serif}.filename{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.state{font-size:13px;color:#69604f;margin-top:4px}.remove{background:none;border:0;color:#6b5341;font:14px Arial,sans-serif;padding:10px;cursor:pointer}.upload-button{width:100%;margin:14px 0}.upload-button:disabled{opacity:.6;cursor:wait}progress{display:block;width:100%;height:6px;margin-top:8px;accent-color:#82714b}#notice,#summary{font:15px/1.5 Arial,sans-serif}#notice:empty,#summary:empty{display:none}.privacy{margin-top:16px}.table-link{font-size:17px;color:#665333;text-underline-offset:5px}.thanks{font-family:'Cormorant Garamond',Georgia,serif;font-size:21px;font-style:italic;margin:24px 0 0}[hidden]{display:none!important}@media(max-width:480px){.photo-shell{padding:18px 14px}.photo-card{padding:34px 20px 25px;outline-offset:4px}.photo-card h1{font-size:34px}}

.photo-page{background:linear-gradient(180deg,#4E4541,#6F625D);color:#2D2927}.photo-card{background:#F3F0E8;border-color:#B08A3E;border-radius:24px;outline-color:#80642E}.pick-button,.upload-button{background:#6F625D}.photo-card h1{text-transform:none;letter-spacing:0}.file-input{padding:0;border:0;min-width:0}.remove{min-width:0}


/* Mobile wedding-day UX: keep the final Share action visible once photos are selected. */
@media(max-width:600px){
  .photo-shell{padding:10px 10px 18px}
  .photo-card{padding:24px 16px 22px;border-radius:20px;outline-offset:3px}
  .photo-card .family-name{font-size:44px;line-height:1}
  .photo-card .couple{margin:10px 0 14px;font-size:11px;letter-spacing:2px}
  .gold-rule{margin:14px auto}
  .photo-card h1{font-size:31px;margin:14px 0 8px}
  .intro{font-size:16px;line-height:1.45;margin:0}
  .photo-actions{gap:9px;margin:18px 0 10px}
  .pick-button,.camera-button,.upload-button{padding:13px 16px}
  .hint{margin:8px 0;font-size:12px;line-height:1.4}
  .camera-note{margin:8px auto 10px;font-size:12px;line-height:1.4}
  .queue{margin:14px 0 10px;gap:8px}
  .queue li{grid-template-columns:50px minmax(0,1fr) auto;gap:10px;padding:8px}
  .thumb{width:50px;height:50px}
  .file-info{font-size:13px}
  .state{font-size:12px;margin-top:2px}
  .remove{font-size:13px;padding:8px}
  .privacy{margin-top:12px}
  .thanks{margin-top:18px}

  /* When JS reveals the button, pin it above the phone browser controls. */
  .upload-button:not([hidden]){
    position:fixed;
    left:50%;
    bottom:calc(env(safe-area-inset-bottom, 0px) + 12px);
    transform:translateX(-50%);
    z-index:1000;
    width:min(calc(100vw - 28px), 620px);
    margin:0;
    box-shadow:0 8px 28px rgba(45,41,39,.28);
  }

  /* Leave room so the fixed button never covers the last content. */
  .photo-card:has(.upload-button:not([hidden])){padding-bottom:92px}
}
