/* Presentation only. Uploaded photos and approval authority stay in the
   existing workflow; public homepage scenery has a separate small manifest. */
:root { --home-cream:#f7f4ec; --home-green:#173e36; --home-sage:#dce5d7; }
body { background:var(--home-cream); }
.skip-link { position:fixed; top:10px; left:16px; z-index:100; padding:12px 18px; background:#fffdf8; color:var(--home-green); border:2px solid var(--home-green); border-radius:8px; transform:translateY(-160%); }
.skip-link:focus { transform:translateY(0); }
.site-header { max-width:1360px; min-height:88px; height:auto; margin:auto; padding:20px 32px; border-bottom:0; }
.brand { color:var(--home-green); font-size:25px; letter-spacing:-.6px; }
.brand small { display:none; }
.brand-mark { width:40px; height:40px; background:var(--home-green); }
.header-right { gap:13px; }
.private-badge { color:#496252; background:transparent; font-size:12px; }
.prototype-tag { color:#53614f; border-color:#d1d7c9; background:transparent; }
.app-shell { max-width:1360px; padding:16px 32px 30px; }
.homepage-hero { display:grid; grid-template-columns:minmax(0,1.36fr) minmax(0,1fr); min-height:590px; border:1px solid #e1e1d4; border-radius:24px; overflow:hidden; background:#fffdf7; }
.travel-scene { position:relative; margin:0; min-width:0; min-height:590px; background:#344c43; overflow:hidden; }
.travel-scene picture, .travel-scene img { position:absolute; inset:0; width:100%; height:100%; }
.travel-scene img { object-fit:cover; object-position:var(--hero-photo-position,50% 55%); }
.travel-shade { position:absolute; inset:0; background:linear-gradient(180deg,transparent 40%,#09211b33 55%,#09211bb3 66%,#09211bcc 100%); }
.hero-tagline { position:absolute; bottom:45px; left:42px; right:30px; color:#fffdf5; font-family:Georgia,'Times New Roman',serif; font-size:clamp(26px,2.5vw,38px); font-weight:400; line-height:1.22; letter-spacing:-.6px; text-shadow:0 1px 9px #061d1899; }
.hero-tagline span { display:block; }
.home-start { min-width:0; display:flex; flex-direction:column; justify-content:center; padding:48px clamp(25px,3.5vw,48px); }
.homepage-hero .intro { margin:0 0 29px; display:block; padding:0; }
.homepage-hero .eyebrow { font-size:10px; color:#61745f; letter-spacing:1.8px; margin-bottom:17px; }
.homepage-hero h1 { font-family:Georgia,'Times New Roman',serif; color:var(--home-green); font-weight:400; font-size:clamp(31px,3.15vw,44px); line-height:1.12; letter-spacing:-1.2px; }
.homepage-hero .intro p { font-size:14px; line-height:1.6; color:#576b5b; margin-top:16px; }
.homepage-hero .upload-panel { padding:0; border:0; border-radius:0; box-shadow:none; background:transparent; }
.homepage-hero .drop-zone { padding:27px 20px 23px; border:1.5px dashed #9cae97; border-radius:16px; background:#f4f6ef; min-width:0; }
.homepage-hero .upload-icon { width:37px; height:37px; color:#587255; margin-bottom:13px; }
.homepage-hero .drop-zone h2 { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.homepage-hero .drop-zone p { color:#3f5c48; font-size:14px; margin:0 0 17px; }
.homepage-hero .drop-zone .button { min-height:48px; padding:13px 26px; font-size:14px; background:var(--home-green); border-color:var(--home-green); border-radius:9px; min-width:180px; }
.homepage-hero .drop-zone .button:not(:disabled):hover { background:#245344; }
.homepage-hero .drop-zone small { font-size:11px; line-height:1.6; color:#54694e; margin-top:14px; }
.homepage-hero .local-note { padding-top:16px; margin:0; color:#5e705d; font-size:11px; line-height:1.6; gap:8px; }
.homepage-hero .local-note svg { flex-shrink:0; }
.drop-zone.dragging, .more-upload.dragging { outline:3px solid #326a50; outline-offset:3px; background:#e7efe0; }
.photography-credit { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-start; align-items:center; margin:11px 3px 22px; color:#64705e; font-size:11px; line-height:1.6; }
.photography-credit a { color:#49604a; text-underline-offset:3px; }
.photography-credit:has(#heroPhotoLabel[hidden]):has(#heroPhotoCredit[hidden]) { display:none; }
.workflow { justify-content:center; margin:24px 0 34px; gap:32px; }
.workflow li { font-size:12px; color:#556951; }
.workflow .current { color:var(--home-green); }
.workflow span { border-color:#b9c9b1; background:transparent; color:#42593b; }
.workflow .current span { background:var(--home-green); color:#fffdf7; }
.resume-saved { min-height:44px; padding:9px 5px; white-space:nowrap; }
.show-home .header-right .private-badge, .show-home .header-right .prototype-tag { display:none; }
.upload-report:has(.upload-feedback:empty):has(.upload-issues[hidden]) { display:none; }
.upload-report { margin:0 0 18px; }
.more-upload { display:flex; align-items:center; justify-content:space-between; gap:14px; border:1px dashed #adbea5; background:#fffdf7; padding:18px 22px; border-radius:13px; }
.more-upload strong { color:var(--home-green); font-size:14px; font-weight:600; }
.more-upload p { font-size:12px; color:#5e7158; margin-top:3px; }
.more-upload .button { flex-shrink:0; min-width:110px; }
.site-footer { margin-top:26px; color:#596c56; }
.site-footer .footer-tagline { display:none; }
.has-photos:not(.show-home) .site-footer .footer-tagline { display:inline; }
/* Returning visitors get a quiet photographic banner and immediate workspace. */
.has-photos:not(.show-home) .homepage-hero { grid-template-columns:140px minmax(0,1fr); min-height:116px; border-radius:16px; }
.has-photos:not(.show-home) .travel-scene { min-height:116px; }
.has-photos:not(.show-home) .hero-tagline, .has-photos:not(.show-home) .travel-shade, .has-photos:not(.show-home) .upload-panel { display:none; }
.has-photos:not(.show-home) .home-start { padding:20px 27px; }
.has-photos:not(.show-home) .homepage-hero .intro { margin:0; }
.has-photos:not(.show-home) .homepage-hero h1 { font-size:27px; letter-spacing:-.6px; }
.has-photos:not(.show-home) .desktop-break { display:none; }
.has-photos:not(.show-home) .homepage-hero .eyebrow { font-size:9px; margin-bottom:8px; }
.has-photos:not(.show-home) .homepage-hero .intro p { margin-top:7px; font-size:12px; }
.has-photos:not(.show-home) .photography-credit { margin-bottom:13px; }
.has-photos:not(.show-home) .workflow { margin:10px 0 18px; }
@media(max-width:1080px) {
  .site-header { padding:18px 24px; }
  .app-shell { padding:12px 24px 26px; }
  .homepage-hero { grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); min-height:540px; }
  .travel-scene { min-height:540px; }
  .home-start { padding:32px 27px; }
  .hero-tagline { left:27px; right:23px; bottom:34px; font-size:28px; }
}
@media(max-width:720px) {
  .site-header { min-height:74px; padding:16px 18px; }
  .brand { font-size:23px; }
  .brand-mark { width:35px; height:35px; }
  .header-right { gap:8px; }
  .private-badge { font-size:11px; }
  .app-shell { padding:4px 16px 22px; }
  .homepage-hero { grid-template-columns:minmax(0,1fr); min-height:0; border-radius:18px; }
  .travel-scene { min-height:250px; }
  .travel-shade { background:linear-gradient(180deg,transparent 12%,#09211b1a 28%,#09211bb3 45%,#09211bcc 100%); }
  .travel-scene img { object-position:var(--hero-photo-position-mobile,50% 55%); }
  .hero-tagline { left:24px; right:19px; bottom:25px; font-size:29px; }
  .home-start { padding:27px 25px 25px; }
  .homepage-hero .intro { margin-bottom:20px; }
  .homepage-hero .eyebrow { font-size:9px; letter-spacing:1.25px; margin-bottom:12px; }
  .homepage-hero h1 { font-size:31px; line-height:1.15; letter-spacing:-.8px; }
  .desktop-break { display:none; }
  .homepage-hero .intro p { margin-top:10px; font-size:13px; }
  .homepage-hero .drop-zone { padding:21px 13px; }
  .homepage-hero .upload-icon { width:30px; height:30px; margin-bottom:10px; }
  .homepage-hero .drop-zone p { font-size:13px; margin-bottom:13px; }
  .homepage-hero .local-note { font-size:11px; }
  .photography-credit { font-size:10px; gap:8px; margin:10px 2px 16px; }
  .workflow { gap:17px; margin:20px 0 24px; }
  .workflow li { font-size:11px; }
  .has-photos:not(.show-home) .homepage-hero { grid-template-columns:90px minmax(0,1fr); min-height:110px; }
  .has-photos:not(.show-home) .travel-scene { min-height:110px; }
  .has-photos:not(.show-home) .home-start { padding:15px 17px; }
  .has-photos:not(.show-home) .homepage-hero h1 { font-size:21px; line-height:1.18; }
  .has-photos:not(.show-home) .homepage-hero .eyebrow { display:none; }
  .has-photos:not(.show-home) .homepage-hero .intro p { font-size:11px; margin-top:5px; }
  .more-upload { padding:16px; }
}
@media(max-width:380px) {
  .brand { font-size:20px; }
  .private-badge { display:none; }
  .travel-scene { min-height:190px; }
  .hero-tagline { font-size:22px; left:19px; right:16px; bottom:20px; }
  .home-start { padding:22px 19px; }
  .homepage-hero h1 { font-size:26px; }
  .workflow { gap:11px; }
  .workflow li { font-size:10px; }
  .more-upload { gap:10px; padding:14px; }
}
@media(max-width:430px) { .private-badge { display:none; } }
@media(prefers-reduced-motion:reduce) { .skip-link { transition:none; } }

/* Keep the authenticated action a distinct touch target at narrow widths. */
.private-signout { margin:0; flex:0 0 auto; }
.private-signout button { min-width:64px; min-height:44px; touch-action:manipulation; }
#privateSignOutStatus { display:block; max-width:180px; font-size:11px; color:#7a332c; }
@media(max-width:720px) { .site-header { flex-wrap:wrap; gap:8px; } .header-right { flex-wrap:wrap; justify-content:flex-end; } }

.site-footer { flex-wrap:wrap; }
.site-footer .terms-note { font-size:12px; max-width:52ch; }
.site-footer .terms-note a { color:#173e32; text-decoration:underline; text-underline-offset:3px; display:inline-block; padding:8px 0; }
