:root{--ink:#293126;--cream:#f7f3eb;--paper:#fffdf8;--sage:#76836b;--line:#ded8cb;--rose:#a86f66;--shadow:0 18px 50px rgba(55,62,45,.09)}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif}body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.35;background-image:radial-gradient(#8d957e 0.6px,transparent .6px);background-size:18px 18px}.shell{position:relative;width:min(720px,100%);margin:auto;padding:48px 18px 30px}.hero{text-align:center;padding:38px 10px 44px}.hero h1{font:500 clamp(42px,10vw,68px)/1.05 Georgia,serif;margin:12px 0;color:#53604d}.hero p{color:#6f756a;margin:14px auto;max-width:460px}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:800;color:var(--rose)}.card{background:rgba(255,253,248,.94);border:1px solid var(--line);border-radius:24px;padding:28px;box-shadow:var(--shadow);margin-bottom:28px}.card h2,.section-title h2{font:500 30px/1.2 Georgia,serif;margin:8px 0}.card p{color:#74776e}.step{float:right;border:1px solid var(--line);border-radius:50%;width:38px;height:38px;display:grid;place-items:center;color:var(--sage);font-size:12px}label{display:grid;gap:8px;font-size:13px;font-weight:700;margin-top:22px}input{width:100%;border:1px solid var(--line);background:white;border-radius:12px;padding:15px;font:inherit;font-weight:500;outline:none}input:focus{border-color:var(--sage);box-shadow:0 0 0 3px #76836b22}button,.button{border:0;border-radius:12px;padding:14px 18px;background:var(--ink);color:white;font:700 14px inherit;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;gap:8px}form button{width:100%;margin-top:14px}.hidden{display:none!important}.welcome,.section-title,.toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px}.link,.delete{background:none;color:var(--rose);padding:5px}.drop{border:1.5px dashed #aeb5a6;border-radius:18px;min-height:210px;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer;background:#f7f8f2;margin-top:24px}.drop input{display:none}.drop strong,.drop small{display:block}.drop small{font-weight:400;color:#7b8077}.camera{display:grid;place-items:center;width:54px;height:54px;background:white;border-radius:50%;font-size:32px;color:var(--sage);box-shadow:0 5px 16px #5962521a}.selection{display:flex;align-items:center;justify-content:space-between;margin-top:16px}.progress{margin-top:18px;text-align:center;color:var(--sage);font-size:13px}.progress div{height:5px;border-radius:5px;background:linear-gradient(90deg,var(--sage) 40%,#e4e7df 40%);animation:load 1s infinite alternate}.message{font-size:14px}.error{color:#a43e39}.success{color:#52704c}.mine{margin:50px 0}.count{border:1px solid var(--line);border-radius:50%;width:38px;height:38px;display:grid;place-items:center}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.photo{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:#ddd}.photo img,.admin-photo img{width:100%;height:100%;object-fit:cover}.delete{position:absolute;right:5px;bottom:5px;background:#fffdf8dd;border-radius:8px;font-size:11px}footer{text-align:center;color:#85887f;font:italic 14px Georgia,serif;padding:35px}.compact{padding-bottom:20px}.admin-shell{width:min(1100px,100%)}.admin-login{max-width:480px;margin:auto}.toolbar{margin-bottom:22px}.toolbar h2{margin-bottom:0}.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:16px}.admin-photo{background:var(--paper);border:1px solid var(--line);border-radius:16px;overflow:hidden}.admin-photo img{aspect-ratio:1}.admin-photo div{padding:12px;display:grid;gap:3px}.admin-photo small{color:#777}@keyframes load{to{background:linear-gradient(90deg,var(--sage) 75%,#e4e7df 75%)}}@media(max-width:520px){.shell{padding-top:20px}.hero{padding:28px 8px}.card{padding:21px;border-radius:20px}.grid{grid-template-columns:repeat(2,1fr)}.selection,.toolbar{align-items:stretch;flex-direction:column}.selection button,.toolbar .button{width:100%}}

/* Romantic guest album theme */
.guest-page {
  min-height: 100vh;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 8%, rgba(246, 202, 209, .42), transparent 26%),
    radial-gradient(circle at 88% 20%, rgba(225, 202, 218, .42), transparent 28%),
    radial-gradient(circle at 50% 100%, rgba(210, 224, 196, .5), transparent 35%),
    linear-gradient(150deg, #fffaf7 0%, #f9eef0 50%, #f4f4e9 100%);
}
.guest-page:before {
  opacity: .28;
  background-image: radial-gradient(rgba(168,111,102,.5) .7px, transparent .7px);
  background-size: 22px 22px;
}
.romantic-bg { position: fixed; z-index: 0; inset: 0; overflow: hidden; pointer-events: none; }
.romantic-bg:before,
.romantic-bg:after {
  content: "";
  position: absolute;
  width: 360px;
  height: 360px;
  border: 1px solid rgba(168,111,102,.16);
  border-radius: 50%;
}
.romantic-bg:before { top: -230px; left: -160px; box-shadow: 0 0 0 34px rgba(255,255,255,.15), 0 0 0 70px rgba(168,111,102,.04); }
.romantic-bg:after { right: -190px; bottom: -245px; box-shadow: 0 0 0 34px rgba(255,255,255,.15), 0 0 0 70px rgba(118,131,107,.05); }
.floral { position: absolute; display: flex; align-items: center; filter: saturate(.72); opacity: .72; }
.floral span { display: block; margin-left: -8px; text-shadow: 0 5px 18px rgba(83,96,77,.14); }
.floral span:nth-child(1) { font-size: 58px; transform: rotate(-28deg); }
.floral span:nth-child(2) { font-size: 35px; transform: rotate(10deg); }
.floral span:nth-child(3) { font-size: 24px; transform: translateY(28px); }
.floral span:nth-child(4) { font-size: 38px; transform: rotate(20deg); }
.floral-left { top: 8px; left: -18px; transform: rotate(-12deg); }
.floral-right { top: 110px; right: -25px; transform: rotate(145deg); }
.floating-heart { position: absolute; color: rgba(168,111,102,.28); font: 400 52px Georgia,serif; }
.heart-one { top: 35%; left: 3%; transform: rotate(-18deg); }
.heart-two { top: 57%; right: 4%; font-size: 36px; transform: rotate(14deg); }
.heart-three { bottom: 8%; left: 9%; font-size: 28px; }
.guest-page .shell { z-index: 1; }
.guest-page .hero { position: relative; padding-top: 66px; }
.guest-page .hero:before { content: "♡"; display: block; margin-bottom: 9px; color: #b9817a; font: 28px Georgia,serif; }
.guest-page .hero h1 { color: #626d59; text-shadow: 0 2px 0 rgba(255,255,255,.75); }
.guest-page .hero p { color: #756c69; }
.guest-page .card {
  border-color: rgba(194,151,150,.34);
  background: rgba(255,253,250,.89);
  box-shadow: 0 22px 60px rgba(113,75,75,.12), inset 0 1px rgba(255,255,255,.9);
  backdrop-filter: blur(14px);
}
.guest-page .drop { border-color: #c9a7a4; background: linear-gradient(145deg, rgba(255,248,247,.92), rgba(245,247,239,.92)); }
.guest-page .camera { color: #b47470; box-shadow: 0 8px 24px rgba(168,111,102,.18); }
.guest-page footer { color: #9a7774; }
@media(max-width:520px) {
  .floral { opacity: .58; transform: scale(.78) rotate(-12deg); transform-origin: top left; }
  .floral-right { transform: scale(.72) rotate(145deg); transform-origin: top right; }
  .guest-page .hero { padding-top: 70px; }
  .floating-heart { opacity: .65; }
}
