* { box-sizing: border-box; }
body { margin: 0; min-height: 100vh; min-height: 100svh; padding: 24px; background: #f5f3ef; color: #292824; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; line-height: 1.5; }
.welcome { display: grid; place-items: center; }
.welcome-card { width: min(100%, 720px); padding: clamp(32px, 7vw, 72px); border: 1px solid #e4e0d8; border-radius: 20px; background: white; box-shadow: 0 12px 40px rgb(41 40 36 / 6%); text-align: center; }
h1 { margin: 0; font-size: clamp(1.75rem, 5vw, 3rem); font-weight: 650; letter-spacing: -0.04em; line-height: 1.2; overflow-wrap: anywhere; }
p { color: #656158; }
a { color: inherit; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; padding: 13px 22px; border: 1px solid #383e32; border-radius: 10px; background: #383e32; color: white; font: inherit; font-weight: 600; text-decoration: none; cursor: pointer; }
.button:hover { background: #242a20; }
:focus-visible { outline: 3px solid #8a6132; outline-offset: 4px; }
.welcome-card .button { margin-top: 14px; }
.gallery-page { max-width: 1120px; margin: 0 auto; padding-block: 24px; }
.gallery-header { margin: 36px 0 24px; }
.toolbar { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; padding: 24px; background: white; border: 1px solid #e4e0d8; border-radius: 16px; }
input { font: inherit; max-width: 100%; }
#status { min-height: 24px; }
.photos { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 20px; }
.photo { margin: 0; overflow: hidden; border: 1px solid #e4e0d8; border-radius: 16px; background: white; }
.photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; display: block; }
.photo figcaption { padding: 16px; overflow-wrap: anywhere; }
.photo a { display: block; margin-top: 8px; }
.empty { padding: 48px 24px; text-align: center; border: 1px dashed #c9c3b7; border-radius: 16px; }
[hidden] { display: none !important; }