:root{color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:#faf9f7;color:#111;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Inter,Helvetica Neue,Arial}.wrapper{max-width:1100px;margin:0 auto;padding:24px}.title{font-size:20px;letter-spacing:.04em;margin-bottom:8px;text-transform:lowercase;opacity:.9}.subtitle{font-size:13px;letter-spacing:.02em;margin:0 0 16px;opacity:.7}.grid{display:grid;gap:16px;padding:8px 0}@media (min-width: 1024px){.grid{grid-template-columns:repeat(3,1fr)}}@media (min-width: 640px) and (max-width: 1023px){.grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 639px){.grid{grid-template-columns:1fr}}.card{break-inside:avoid;overflow:hidden;box-shadow:0 1px 6px #0000000f;transition:transform .15s ease,box-shadow .15s ease;aspect-ratio:1}.card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.card img{width:100%;height:100%;display:block;object-fit:cover}.loading-sentinel{grid-column:1 / -1;text-align:center;padding:20px;color:#666;font-size:14px}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:60px 16px 16px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.lightbox img{max-width:92vw;max-height:92vh;margin-bottom:16px}.lightbox-content{display:flex;flex-direction:column;align-items:center;width:100%}.lightbox-caption{color:#fff;opacity:.9;text-align:center;max-width:92vw;font-size:16px;line-height:1.4;margin:0}.caption-display{cursor:pointer;padding:8px;border-radius:8px;transition:background-color .2s ease}.caption-display:hover{background-color:#ffffff1a}.caption-placeholder{color:#ccc;opacity:.7;text-align:center;max-width:92vw;font-size:16px;line-height:1.4;margin:0;font-style:italic}.close{position:absolute;top:16px;right:16px;color:#fff;opacity:.9;text-decoration:none;font-size:14px}.delete-button{position:absolute;top:16px;left:16px;color:#ff6b6b;opacity:.9;text-decoration:none;font-size:14px;background:none;border:none;cursor:pointer}.caption-editor{display:flex;flex-direction:column;gap:12px;width:100%;max-width:400px}.caption-input{width:100%;padding:12px;border:1px solid #555;border-radius:8px;background:#ffffff1a;color:#fff;font-size:16px;resize:vertical}.caption-input::placeholder{color:#ccc}.caption-counter{align-self:flex-end;font-size:12px;color:#ccc;opacity:.8}.caption-error{color:#ff6b6b;font-size:14px;text-align:center;margin:8px 0}.caption-actions{display:flex;gap:8px;justify-content:flex-end}.save-button,.cancel-button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;cursor:pointer}.save-button{background:#4caf50;color:#fff}.cancel-button{background:#f44336;color:#fff}.delete-confirm{display:flex;flex-direction:column;gap:12px;width:100%;max-width:400px;margin-top:24px}.delete-message{color:#fff;opacity:.9;text-align:center;font-size:16px;margin:0}.delete-actions{display:flex;gap:8px;justify-content:center}.delete-confirm-button{padding:8px 16px;border:none;border-radius:6px;font-size:14px;cursor:pointer;background:#f44336;color:#fff}.delete-actions .cancel-button{background:#4caf50;color:#fff}.lock-screen{min-height:calc(100vh - 48px);display:flex;align-items:center;justify-content:center;padding:24px}.lock-screen form{width:100%;max-width:400px;display:flex;flex-direction:column;gap:12px}.lock-screen .caption-actions{justify-content:center}.lock-screen .caption-input{color:#000}.top-actions{display:none}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.logout-button{color:#ff6b6b;opacity:.9;text-decoration:none;font-size:14px;background:none;border:none;cursor:pointer}
