:root{--color-bg:#fffaf3;--color-text:#2e2620;--color-accent:#e0703a;--color-accent-fg:#fff;--color-surface:#fff;--color-border:#999;--color-border-subtle:#2e26201f;--color-overlay:#0a0806eb;--color-overlay-soft:#0a080699;--radius-sm:6px;--radius-md:10px;--radius-pill:999px;--shadow-card:0 2px 8px #2e26201f;--shadow-overlay:0 10px 40px #2e26201f;--shadow-lightbox:0 10px 40px #0009}@media (prefers-color-scheme:dark){:root{--color-bg:#201a15;--color-text:#f3ece2;--color-accent:#ff9a5c;--color-accent-fg:#fff;--color-surface:#2c241d;--color-border:#666;--color-border-subtle:#00000080;--shadow-card:0 2px 8px #00000080;--shadow-overlay:0 10px 40px #00000080}}*{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-text);margin:0;padding:2rem 1.5rem 4rem;font-family:-apple-system,Segoe UI,Roboto,sans-serif}h1{margin:0 0 .25rem;font-size:2.2rem}h2{border-bottom:3px solid var(--color-accent);width:fit-content;margin:2.5rem 0 1.25rem;padding-bottom:.15rem;display:block}.subtitle{opacity:.7;margin:0 0 1.5rem}a{color:var(--color-accent)}input,textarea,select,button{font:inherit;color:inherit}input[type=text],input[type=email],input[type=date],textarea,select{background:var(--color-surface);border:1px solid var(--color-border-subtle);border-radius:var(--radius-sm);padding:.5rem .7rem}input[type=text]:focus,input[type=email]:focus,input[type=date]:focus,textarea:focus,select:focus{outline:1px solid var(--color-border)}button:focus-visible{outline:1px solid var(--color-border);outline-offset:2px}button{background:var(--color-accent);color:var(--color-accent-fg);border-radius:var(--radius-pill);cursor:pointer;border:none;padding:.6rem 1.4rem;font-weight:600}button:hover:not(:disabled){opacity:.9}button:active:not(:disabled){opacity:.8}button:disabled{opacity:.55;cursor:default}.button-sm{padding:.4rem 1rem;font-size:.9rem}.upload-button{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;padding:.4rem 1rem;font-size:.9rem;font-weight:600;display:inline-block}.upload-button:hover{opacity:.85}.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem;margin-top:1.5rem;display:grid}.tile{border-radius:var(--radius-md);background:var(--color-surface);box-shadow:var(--shadow-card);aspect-ratio:1;cursor:pointer;color:inherit;border:none;padding:0;text-decoration:none;transition:transform .15s;display:block;overflow:hidden}.tile:hover{transform:scale(1.03)}.tile img{object-fit:cover;width:100%;height:100%;display:block}.tile-wrap{position:relative}.tile-menu{color:#fff;border-radius:var(--radius-pill);background:#140f0a80;justify-content:center;align-items:center;width:1.7rem;height:1.7rem;padding:0;font-size:1rem;line-height:1;display:flex;position:absolute;top:.4rem;right:.4rem}.tile-menu:hover{opacity:1;background:#140f0abf}.pill-tag{background:var(--color-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-pill);align-items:center;gap:.3rem;padding:.3rem .7rem;font-size:.85rem;display:inline-flex}.tag-type{opacity:.55;font-size:.72rem}.card{background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-card);padding:1.5rem}.card>h2:first-child{margin-top:0}.lightbox-overlay{background:var(--color-overlay);z-index:1000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox-image{object-fit:contain;border-radius:var(--radius-sm);max-width:88vw;max-height:82vh;box-shadow:var(--shadow-lightbox)}.lightbox-overlay.loading .lightbox-image{opacity:.3}.lightbox-overlay.loading:after{content:"";border:4px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:3rem;height:3rem;margin:-1.5rem 0 0 -1.5rem;animation:.8s linear infinite lightbox-spin;position:absolute;top:50%;left:50%}@keyframes lightbox-spin{to{transform:rotate(360deg)}}.lightbox-close,.lightbox-prev,.lightbox-next{color:#fff;cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-size:2.5rem;line-height:1;position:absolute}.lightbox-close{top:1rem;right:1.5rem}.lightbox-prev{top:50%;left:1rem;transform:translateY(-50%)}.lightbox-next{top:50%;right:1rem;transform:translateY(-50%)}.lightbox-menu{color:#fff;cursor:pointer;background:0 0;border:none;padding:.5rem 1rem;font-size:2.5rem;line-height:1;position:absolute;top:1rem;right:6.15rem}.lightbox-caption{color:#fff;text-align:center;background:#0009;border-radius:.5rem;max-width:80vw;padding:.4rem 1rem;font-size:1rem;position:absolute;bottom:6rem;left:50%;transform:translate(-50%)}.lightbox-caption p{margin:.2rem 0}.lightbox-download{background:var(--color-accent);color:var(--color-accent-fg);border-radius:var(--radius-pill);padding:.6rem 1.4rem;font-weight:600;text-decoration:none;position:absolute;bottom:1.5rem;left:50%;transform:translate(-50%)}dialog{border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-overlay);border:none;width:100%;max-width:min(90vw,420px);padding:1.5rem}dialog::backdrop{background:var(--color-overlay-soft)}.dialog-wide{max-width:min(92vw,560px)}.dialog-header{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.dialog-header h2{border-bottom:none;margin:0;padding-bottom:0}.dialog-close{color:inherit;cursor:pointer;border-radius:var(--radius-pill);background:0 0;border:none;padding:.25rem .5rem;font-size:1.5rem;line-height:1}.dialog-actions{justify-content:flex-end;gap:.6rem;margin-top:1rem;display:flex}.button-secondary{background:var(--color-surface);color:var(--color-text);border:1px solid var(--color-border)}.button-secondary:hover:not(:disabled){opacity:.85}.dialog-error{color:var(--color-accent);margin:.5rem 0 0}.field-label{flex-direction:column;gap:.4rem;font-weight:600;display:flex}.field-label input{font-weight:400}.field-hint{opacity:.7;margin:.3rem 0 0;font-size:.85rem}.field-error{color:var(--color-accent);margin:.3rem 0 0;font-size:.85rem}.auth-card{max-width:380px;margin:3rem auto 0}.auth-divider{opacity:.6;align-items:center;gap:.7rem;margin:1.2rem 0;font-size:.85rem;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--color-border);flex:1;height:1px}.button-full{width:100%}
