*{box-sizing:border-box}
body{margin:0;background:#f8f4ee;color:#38322c;font-family:"Hiragino Sans","Yu Gothic",system-ui,sans-serif}
main{width:min(920px,100%);margin:0 auto;padding:22px 14px 44px}
.hero{text-align:center;padding:42px 18px 34px;border-radius:30px;background:linear-gradient(135deg,#fffdf9,#edf3e9)}
.logo{width:min(380px,84%);height:auto;margin-bottom:16px;mix-blend-mode:multiply}
.sub{letter-spacing:.18em;color:#8a7b6a;font-size:12px;margin:0 0 10px}
h1{margin:0;font-family:Georgia,serif;font-size:clamp(28px,7vw,48px);font-weight:400}
.lead{margin:16px auto 0;line-height:1.9;color:#6f655a}
.info-card{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.info-card div,.download-card{background:#fff;border-radius:22px;padding:20px;box-shadow:0 12px 34px rgba(63,50,35,.08)}
.info-card span{display:block;color:#8a7b6a;font-size:12px;margin-bottom:6px}
.info-card strong{font-size:18px}
.download-card{text-align:center}
.download-card h2{margin:0 0 8px;font-size:22px}
.download-card p{color:#6f655a;line-height:1.8}
.button{display:block;width:min(360px,100%);margin:18px auto 8px;padding:16px 20px;border-radius:999px;background:#6f8068;color:#fff;text-decoration:none;font-weight:700;border:0;cursor:pointer;text-align:center}
.preview-button{background:#8a7b6a}.gallery-title{text-align:center;font-family:Georgia,serif;font-weight:400;margin:28px 0 8px}
.gallery-note{text-align:center;color:#8a7b6a;font-size:13px;margin:0 0 18px}
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:20px 0}
.photo-card{background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 10px 28px rgba(63,50,35,.08)}
.photo-button{border:0;padding:0;background:none;width:100%;cursor:zoom-in;display:block}
.photo-card img{width:100%;aspect-ratio:1/1.25;object-fit:cover;display:block}
.photo-actions{display:grid;grid-template-columns:1fr;gap:7px;padding:10px}
.photo-actions a,.lightbox-actions a{text-align:center;text-decoration:none;border-radius:999px;padding:9px 8px;font-size:12px;font-weight:700}
.original{background:#6f8068;color:#fff}.mobile{background:#f1eadf;color:#4c443b;border:1px solid #e3d8c9}
.loading{grid-column:1/-1;text-align:center;color:#8a7b6a;background:#fff;border-radius:18px;padding:30px}
.links{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin:26px 0}
.links a{color:#38322c;background:#fff;border:1px solid #e5dbcf;text-decoration:none;padding:11px 16px;border-radius:999px}
footer{text-align:center;color:#8a7b6a;font-size:13px}
.lightbox{position:fixed;inset:0;background:rgba(30,25,20,.88);z-index:999;display:none;align-items:center;justify-content:center;flex-direction:column;padding:22px}
.lightbox.is-open{display:flex}.lightbox img{max-width:min(100%,980px);max-height:78vh;object-fit:contain;border-radius:14px;background:#fff}
.close{position:fixed;top:14px;right:18px;border:0;background:#fff;color:#3b342c;width:42px;height:42px;border-radius:999px;font-size:28px;line-height:1;cursor:pointer}
.lightbox-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:14px}.lightbox-actions a{min-width:160px;padding:12px 18px}
.password-panel input{width:min(360px,100%);display:block;margin:14px auto 0;padding:14px 16px;border:1px solid #e3d8c9;border-radius:999px;text-align:center;font-size:16px}
.error{color:#a33;text-align:center;font-size:13px}
.expired{background:#fff7f7;border:1px solid #eed0d0;color:#8a3b3b;border-radius:18px;padding:18px;text-align:center;margin:18px 0}
.admin-main{max-width:760px}.admin-card{text-align:left}.admin-logo{display:block;margin:0 auto 20px;width:min(320px,80%)}
.admin-card h1{text-align:center;margin-bottom:12px}.admin-lead{text-align:center}
label{display:block;margin:16px 0 8px;color:#6f655a;font-size:14px}input{width:100%;margin-top:7px;padding:14px 16px;border:1px solid #e3d8c9;border-radius:14px;font-size:15px;background:#fffdf9}
.inline{display:grid;grid-template-columns:1fr 120px;gap:8px}.inline button{margin-top:7px;border:0;border-radius:14px;background:#8a7b6a;color:white;font-weight:700}
.admin-message{text-align:center;font-weight:700}.result-box{margin-top:22px;background:#f8f4ee;border-radius:18px;padding:16px}.result-box p{text-align:center;margin:0 0 8px}.result-box input{text-align:center}
@media(max-width:640px){main{padding:14px 10px 34px}.hero{border-radius:24px;padding:34px 14px 28px}.info-card{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr);gap:10px}.photo-actions a{font-size:11px;padding:8px 6px}.lightbox{padding:12px}.lightbox img{max-height:72vh}.close{top:10px;right:10px}.inline{grid-template-columns:1fr}}

.qr-image{display:block;margin:16px auto 8px;width:180px;height:180px;border-radius:14px;background:#fff;padding:10px;box-shadow:0 8px 22px rgba(63,50,35,.08)}


.admin-divider{border:0;border-top:1px solid #e6ddd1;margin:30px 0}
.admin-subtitle{text-align:center;font-family:Georgia,serif;font-weight:400;margin:10px 0 16px}
.album-list{display:grid;gap:12px;margin-top:16px}
.album-item{background:#f8f4ee;border:1px solid #e6ddd1;border-radius:18px;padding:14px}
.album-item h3{margin:0 0 6px;font-size:18px}
.album-meta{font-size:13px;color:#7b7065;line-height:1.8;margin:0 0 10px}
.album-actions{display:flex;gap:8px;flex-wrap:wrap}
.album-actions a,.album-actions button{border:0;border-radius:999px;padding:9px 12px;background:#fff;color:#3b342c;text-decoration:none;font-size:12px;cursor:pointer}
.album-actions .line{background:#6f8068;color:#fff}
