@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600;700&family=Manrope:wght@400;500;600;700&display=swap";:root{--paper: #f4ecd8;--paper-deep: #eadbb9;--ink: #2d241d;--ink-soft: #5a4b3f;--olive: #69735f;--rust: #9b5f4a;--line: rgba(45, 36, 29, .18)}.appShell{min-height:100vh;color:var(--ink);background:radial-gradient(circle at 80% 10%,rgba(155,95,74,.14) 0%,transparent 30%),radial-gradient(circle at 10% 20%,rgba(105,115,95,.16) 0%,transparent 28%),linear-gradient(180deg,var(--paper) 0%,#efe4c7 100%);position:relative}.appShell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(rgba(45,36,29,.04) .7px,transparent .7px);background-size:3px 3px;opacity:.32;pointer-events:none}nav{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px 30px;background:color-mix(in oklab,var(--paper) 82%,white 18%);border-bottom:1px solid var(--line);box-shadow:0 4px 14px #2d241d14}.brand a{font-family:Cormorant Garamond,serif;font-size:1.6rem;font-weight:700;letter-spacing:.03em;text-transform:lowercase}.navLinks{display:flex;align-items:center;gap:10px}nav a,nav button{border:1px solid transparent;background:transparent;color:var(--ink);text-decoration:none;font-family:Manrope,sans-serif;font-size:.92rem;font-weight:700;letter-spacing:.02em;padding:9px 13px;border-radius:999px;transition:.2s ease}nav a:hover,nav button:hover{border-color:var(--line);background:#ffffff59}.hero{margin:46px auto 8px;width:min(1100px,92vw)}.hero h1{margin:0;font-family:Cormorant Garamond,serif;font-size:clamp(2rem,4vw,3.35rem);line-height:1.04;font-weight:700}.hero p{margin-top:10px;max-width:680px;font-family:Manrope,sans-serif;color:var(--ink-soft)}.galleryGrid{width:min(1100px,92vw);margin:22px auto 56px;column-count:4;column-gap:18px}.photoCard{position:relative;break-inside:avoid;margin:0 0 18px;display:inline-block;width:100%;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#f7f0df;box-shadow:0 10px 18px #2d241d1a;transform:rotate(0)}.photoCard:nth-child(odd){transform:rotate(-.25deg)}.photoCard:nth-child(2n){transform:rotate(.35deg)}.photoCard img{width:100%;height:auto;object-fit:contain;display:block;filter:sepia(.14) contrast(1.03) saturate(.93)}.photoMeta{padding:10px 12px 12px;border-top:1px dashed var(--line);background:#f7f0dfe6}.photoMeta h2{margin:0;font-family:Cormorant Garamond,serif;font-size:1.1rem}.photoMeta p{margin:4px 0 0;color:var(--ink-soft);font-family:Manrope,sans-serif;font-size:.88rem}.photoCardActions{position:absolute;top:8px;right:8px;z-index:2;display:flex;gap:6px}.editPhotoBtn,.deletePhotoBtn{border:1px solid rgba(45,36,29,.32);border-radius:999px;padding:6px 10px;font-size:.74rem;font-weight:700;letter-spacing:.02em;background:#f8f1e1e6;cursor:pointer;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.editPhotoBtn{color:#2d241d}.deletePhotoBtn{color:#8d2b2b}.deletePhotoBtn:disabled{opacity:.7;cursor:wait}.statusText{width:min(1100px,92vw);margin:16px auto;color:var(--ink-soft);font-family:Manrope,sans-serif}.statusText.error{color:#8d2b2b}.uploadPage,.loginPage{min-height:calc(100vh - 73px);display:grid;place-items:center;padding:24px}.uploadCard,.loginCard{width:min(620px,94vw);background:#f8f1e1;border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 24px #2d241d1f;padding:26px}.uploadCard h1,.loginCard h1{margin:0;font-family:Cormorant Garamond,serif;font-size:2rem}.uploadCard p,.loginCard p{margin-top:6px;font-family:Manrope,sans-serif;color:var(--ink-soft)}.uploadCard label{display:block;margin-top:14px;font-family:Manrope,sans-serif;font-size:.92rem;font-weight:700;color:var(--ink)}.uploadCard input,.uploadCard textarea{width:100%;margin-top:8px;border:1px solid rgba(45,36,29,.28);border-radius:4px;padding:10px 12px;font:inherit;color:inherit;background:#fff9}.uploadCard textarea{min-height:110px;resize:vertical}.uploadCard button,.googleBtn{margin-top:18px;border:1px solid rgba(45,36,29,.34);border-radius:4px;padding:11px 16px;font-family:Manrope,sans-serif;font-weight:700;letter-spacing:.01em;background:linear-gradient(180deg,#7b8c6e,#68795b);color:#fbf8ef;cursor:pointer}.uploadCard button:disabled{opacity:.6;cursor:wait}.uploadActions{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:18px}.uploadActions .cancelUploadBtn{margin-top:0;background:transparent;color:var(--ink)}.uploadActions button{margin-top:0}.uploadPreviewWrap{margin-top:14px}.uploadPreviewWrap p{margin:0 0 8px;font-size:.85rem;color:var(--ink-soft)}.uploadPreviewGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}.uploadPreviewCard{position:relative;margin:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#f7f0df}.uploadPreviewCard img{width:100%;height:110px;object-fit:cover;display:block}.removePreviewBtn{position:absolute;top:6px;right:6px;width:24px;height:24px;border:1px solid rgba(45,36,29,.3);border-radius:999px;background:#f8f1e1eb;color:#8d2b2b;font-size:1rem;line-height:1;display:grid;place-items:center;padding:0;margin:0;cursor:pointer}.removePreviewBtn:disabled{opacity:.6}.uploadPreviewMeta{padding:8px;display:grid;gap:6px;border-top:1px dashed var(--line)}.uploadPreviewMeta input,.uploadPreviewMeta textarea{width:100%;border:1px solid rgba(45,36,29,.28);border-radius:4px;padding:7px 8px;font:inherit;font-size:.8rem;color:inherit;background:#ffffffc7}.uploadPreviewMeta textarea{min-height:56px;resize:vertical}@media (max-width: 1080px){.galleryGrid{column-count:3}}@media (max-width: 780px){.galleryGrid{column-count:2}}@media (max-width: 520px){.galleryGrid{column-count:1}}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:Inter,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:#1f2432}a{color:inherit}
