:root{--black:#0a0a0a;--black-soft:#111;--panel:#161616;--cream:#f5f0eb;--grey:#8a8781;--grey-dim:#57544f;--border:#f5f0eb1f;--gold:#c9a96e;--gold-soft:#c9a96e59;--gold-dim:#c9a96e29;--text:var(--cream);--text-h:var(--cream);--bg:var(--black);--serif:"Playfair Display", "Times New Roman", serif;--sans:"Inter", system-ui, "Segoe UI", Roboto, sans-serif;font:17px/1.7 var(--sans);letter-spacing:.2px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{background:var(--bg);margin:0}#root{min-height:100svh}h1,h2,h3{font-family:var(--serif);color:var(--text-h);margin:0;font-weight:600}p{margin:0}a{color:inherit}::selection{background:var(--gold-soft);color:var(--black)}.reveal{opacity:0;transition:opacity .8s,transform .8s;transform:translateY(28px)}.reveal.is-visible{opacity:1;transform:translateY(0)}#hero{text-align:center;min-height:100vh;color:var(--cream);background:radial-gradient(circle at 50% 15%, #c9a96e14 0%, transparent 55%), var(--black);justify-content:center;align-items:center;padding:40px 24px;display:flex}.hero__content{flex-direction:column;align-items:center;gap:22px;display:flex}#hero h1{letter-spacing:2px;text-transform:uppercase;font-size:clamp(48px,9vw,96px);font-weight:700;line-height:1.05}.hero__divider{background:var(--gold);width:64px;height:1px;display:block}.hero__tagline{font-family:var(--sans);letter-spacing:5px;text-transform:uppercase;color:var(--gold);font-size:14px;font-weight:300}section{max-width:1100px;margin:0 auto;padding:90px 24px}section h2{margin-bottom:40px;font-size:clamp(32px,4vw,48px);display:inline-block;position:relative}#about h2,#contatti h2{display:block}section h2:after{content:"";background:var(--gold);width:48px;height:1px;margin-top:20px;display:block}#contatti h2:after{margin-left:auto;margin-right:auto}.about__grid{grid-template-columns:1.1fr .9fr;align-items:center;gap:72px;display:grid}.about__text p{color:var(--text);font-size:18px;line-height:1.85}.about__text p+p{margin-top:24px}.about__portrait{border:1px solid var(--gold-soft);padding:12px}.about__portrait img{aspect-ratio:4/5;object-fit:cover;width:100%;display:block}#gallery{text-align:center;max-width:1280px}#gallery h2:after{margin-left:auto;margin-right:auto}.gallery__empty{color:var(--grey);font-style:italic}.gallery__grid{text-align:left;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:24px;display:grid}.gallery__card{background:#1a1a1a;border:1px solid #333;border-radius:4px;width:100%;text-decoration:none;transition:border-color .3s;display:block;overflow:hidden}.gallery__card:hover{border-color:var(--gold-soft)}.gallery__cover{overflow:hidden}.gallery__cover img{aspect-ratio:3/2;object-fit:cover;width:100%;transition:transform .5s;display:block}.gallery__card:hover .gallery__cover img{transform:scale(1.03)}.gallery__info{flex-direction:column;gap:4px;padding:16px 20px;display:flex}.gallery__title{font-family:var(--serif);letter-spacing:.4px;color:var(--cream);font-size:18px}.gallery__date{color:var(--gold);font-size:13px}#contatti{text-align:center;flex-direction:column;align-items:center;max-width:640px;display:flex}.contatti__email a{border-bottom:1px solid var(--gold);color:var(--cream);padding-bottom:3px;font-size:19px;text-decoration:none}.contatti__email a:hover{color:var(--gold)}.contatti__instagram{color:var(--gold);margin-top:28px;transition:color .3s,transform .3s;display:inline-flex}.contatti__instagram:hover{color:var(--cream);transform:translateY(-2px)}#footer{text-align:center;color:var(--grey);letter-spacing:.3px;border-top:1px solid var(--gold-soft);padding:32px 24px;font-size:13px}@media (width<=860px){.about__grid{grid-template-columns:1fr;gap:40px}.about__portrait{order:-1}section{padding:64px 20px}}.lightbox{z-index:1000;touch-action:pan-y;background:#0a0a0af5;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.lightbox__image{object-fit:contain;max-width:90vw;max-height:90vh}.lightbox__close{color:var(--cream);cursor:pointer;background:0 0;border:none;font-size:2.5rem;line-height:1;transition:color .3s;position:absolute;top:16px;right:24px}.lightbox__close:hover{color:var(--gold)}.lightbox__download{color:var(--cream);cursor:pointer;background:0 0;border:none;font-size:1.75rem;line-height:1;text-decoration:none;transition:color .3s;position:absolute;top:16px;right:80px}.lightbox__download:hover{color:var(--gold)}.lightbox__nav{color:var(--cream);cursor:pointer;background:0 0;border:none;padding:0 16px;font-size:3rem;line-height:1;transition:color .3s;position:absolute;top:50%;transform:translateY(-50%)}.lightbox__nav:hover{color:var(--gold)}.lightbox__nav--prev{left:8px}.lightbox__nav--next{right:8px}.gallery{max-width:1280px;min-height:100svh;margin:0 auto;padding:80px 24px 100px}.gallery__back-link{color:var(--gold-soft);letter-spacing:.3px;opacity:.85;align-items:center;gap:6px;font-size:14px;text-decoration:none;transition:opacity .3s,color .3s;display:inline-flex}.gallery__back-link:hover{color:var(--gold);opacity:1}.gallery h1{text-align:center;margin-bottom:48px;font-size:clamp(32px,4vw,48px)}.gallery__toolbar{justify-content:flex-end;margin-bottom:16px;display:flex}.gallery__download-btn{border:1px solid var(--gold);color:var(--gold);font:inherit;letter-spacing:.3px;cursor:pointer;background:0 0;border-radius:4px;padding:10px 20px;font-size:14px;transition:background .3s,color .3s}.gallery__download-btn:hover{background:var(--gold);color:var(--black)}.gallery__download-btn:disabled{opacity:.5;cursor:default}.gallery__grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:6px;display:grid}.gallery__item{aspect-ratio:1;position:relative}.gallery__checkbox{z-index:1;position:absolute;top:8px;left:8px}.gallery__checkbox input{cursor:pointer;width:20px;height:20px;accent-color:var(--gold)}.gallery__thumbnail{cursor:pointer;aspect-ratio:1;background:0 0;border:1px solid #0000;width:100%;height:100%;padding:0;transition:border-color .3s;overflow:hidden}.gallery__thumbnail:hover{border-color:var(--gold-soft)}.gallery__thumbnail img{object-fit:cover;width:100%;height:100%;transition:transform .4s;display:block}.gallery__thumbnail:hover img{transform:scale(1.05)}.admin-login{background:radial-gradient(circle at 50% 20%,#262626 0%,#141414 45%,#0a0a0a 100%);justify-content:center;align-items:center;min-height:100vh;padding:1rem;display:flex}.admin-login__form{border:1px solid var(--gold-soft);background:#1c1c1c;border-radius:4px;flex-direction:column;gap:.9rem;width:100%;max-width:340px;padding:40px 32px;display:flex}.admin-login__form h1{text-align:center;color:var(--cream);margin-bottom:8px;font-size:22px}.admin-login__form label{letter-spacing:.3px;text-transform:uppercase;color:var(--grey);font-size:.8rem}.admin-login__form input{border:1px solid var(--border);color:var(--cream);background:#141414;border-radius:4px;padding:.6rem .75rem;font-family:inherit;font-size:1rem;transition:border-color .3s}.admin-login__form input:focus{border-color:var(--gold);outline:none}.admin-login__form button{background-color:var(--gold);color:var(--black);letter-spacing:.3px;cursor:pointer;border:none;border-radius:4px;margin-top:.5rem;padding:.7rem 1rem;font-size:1rem;font-weight:500;transition:background .3s}.admin-login__form button:hover{background-color:#d9bb85}.admin-login__form button:disabled{opacity:.6;cursor:not-allowed}.admin-login__error{color:#e0685a;margin:0;font-size:.875rem}.admin-page__header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:32px;display:flex}.admin-page__header h1{font-size:clamp(24px,3vw,32px)}.admin-page__subtitle{color:var(--grey);margin-top:6px;font-size:14px}.admin-btn{font-family:var(--sans);letter-spacing:.3px;border:1px solid var(--border);color:var(--text);cursor:pointer;white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:8px;padding:10px 20px;font-size:14px;text-decoration:none;transition:border-color .3s,color .3s,background .3s;display:inline-flex}.admin-btn:hover{border-color:var(--gold);color:var(--gold)}.admin-btn:disabled{opacity:.55;cursor:not-allowed}.admin-btn--primary{background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:500}.admin-btn--primary:hover{color:var(--black);background:#d9bb85;border-color:#d9bb85}.admin-btn--danger{color:#e0685a;border-color:#e0685a59}.admin-btn--danger:hover{color:var(--black);background:#e0685a;border-color:#e0685a}.admin-card{border:1px solid var(--border);background:#222;border-radius:4px;padding:24px}.admin-cards{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:36px;display:grid}.admin-stat{flex-direction:column;gap:6px;display:flex}.admin-stat__value{font-family:var(--serif);color:var(--gold);font-size:36px}.admin-stat__label{letter-spacing:.4px;text-transform:uppercase;color:var(--grey);font-size:13px}.admin-form{flex-direction:column;gap:18px;max-width:480px;display:flex}.admin-form__field{flex-direction:column;gap:6px;display:flex}.admin-form__field label{letter-spacing:.3px;text-transform:uppercase;color:var(--grey);font-size:13px}.admin-form__field input,.admin-form__field textarea{font:inherit;border:1px solid var(--border);color:var(--text);background:#1c1c1c;border-radius:4px;padding:10px 12px;transition:border-color .3s}.admin-form__field input:focus,.admin-form__field textarea:focus{border-color:var(--gold);outline:none}.admin-form__hint{color:var(--grey);font-size:13px}.admin-form__hint strong{color:var(--cream);font-weight:500}.admin-form__actions{gap:12px;margin-top:8px;display:flex}.admin-error{color:#e0685a;font-size:14px}.admin-empty{color:var(--grey);padding:24px 0;font-style:italic}.admin-table{border-collapse:collapse;border:1px solid var(--border);background:#1c1c1c;width:100%}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border);padding:14px 16px;font-size:15px}.admin-table tbody tr{background:#1e1e1e;border-left:2px solid #0000;transition:background .3s,border-color .3s}.admin-table tbody tr:nth-child(2n){background:#252525}.admin-table tbody tr:hover{border-left-color:var(--gold);background:#262019}.admin-table th{letter-spacing:.4px;text-transform:uppercase;color:var(--grey);font-size:12px;font-weight:500}.admin-table__actions{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.admin-table__action{font-family:var(--sans);cursor:pointer;border:1px solid #0000;border-radius:4px;justify-content:center;align-items:center;padding:6px 14px;font-size:.85rem;text-decoration:none;transition:background .2s,color .2s,border-color .2s;display:inline-flex}.admin-table__action--primary{background:var(--gold);border-color:var(--gold);color:var(--black);font-weight:500}.admin-table__action--primary:hover{color:var(--black);background:#d9bb85;border-color:#d9bb85}.admin-table__action--outline{color:var(--text);background:0 0;border-color:#f5f0e680}.admin-table__action--outline:hover{color:var(--black);background:#f5f0e6;border-color:#f5f0e6}.admin-table__action--danger{color:#e0685a;background:0 0;border-color:#8b2020}.admin-table__action--danger:hover{color:#fff;background:#8b2020;border-color:#8b2020}@media (width<=640px){.admin-table__actions{flex-direction:column;align-items:stretch}.admin-table__action{width:100%}}.confirm-delete-modal__overlay{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.confirm-delete-modal{border:1px solid var(--border);width:90%;max-width:24rem;color:var(--cream);background:#222;border-radius:4px;padding:1.5rem;box-shadow:0 10px 30px #00000080}.confirm-delete-modal__actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}.confirm-delete-modal__actions button{border:1px solid var(--border);color:var(--cream);cursor:pointer;background:0 0;border-radius:4px;padding:.5rem 1rem;transition:border-color .3s}.confirm-delete-modal__actions button:hover{border-color:var(--gold)}.confirm-delete-modal__confirm{color:#fff;background:#b33d2e;border-color:#b33d2e}.confirm-delete-modal__confirm:hover{background:#d1503f;border-color:#d1503f}.confirm-delete-modal__actions button:disabled{opacity:.6;cursor:not-allowed}.event-photos-upload{flex-direction:column;gap:1rem;display:flex}.event-photos-upload__dropzone{border:2px dashed var(--gold-soft);color:var(--grey);cursor:pointer;background:#1c1c1c;border-radius:.5rem;justify-content:center;align-items:center;padding:2rem 1.5rem;font-size:.9rem;transition:background .3s,border-color .3s;display:flex}.event-photos-upload__dropzone:hover{border-color:var(--gold);background:#222}.event-photos-upload__dropzone input{display:none}.event-photos-upload__progress{border:1px solid var(--border);background:#1c1c1c;border-radius:.5rem;width:100%;height:1.5rem;position:relative;overflow:hidden}.event-photos-upload__progress-bar{background:var(--gold);height:100%;transition:width .2s}.event-photos-upload__progress span{color:var(--cream);justify-content:center;align-items:center;font-size:.75rem;display:flex;position:absolute;inset:0}.event-photos-upload__error{color:#e0685a}.event-photos-upload__success{color:#7cc98a}.event-photos-grid{grid-template-columns:repeat(auto-fill,minmax(10rem,1fr));gap:1rem;display:grid}.event-photos-grid__item{cursor:grab;touch-action:none;background:#1c1c1c;border:2px solid #0000;border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.5rem;display:flex;position:relative}.event-photos-grid__item button{font:inherit;border:1px solid var(--border);color:var(--cream);cursor:pointer;background:0 0;border-radius:.35rem;padding:.4rem .6rem;font-size:.8rem;transition:border-color .3s,color .3s}.event-photos-grid__item button:hover{border-color:var(--gold);color:var(--gold)}.event-photos-grid__item button:disabled{opacity:.5;cursor:default}.event-photos-grid__item:active{cursor:grabbing}.event-photos-grid__item img{aspect-ratio:1;object-fit:cover;pointer-events:none;border-radius:.375rem;width:100%}.event-photos-grid__item--cover{border-color:var(--gold)}.event-photos-upload__cover-badge{background:var(--gold);color:#1f1300;z-index:1;border-radius:.25rem;padding:.15rem .5rem;font-size:.7rem;font-weight:600;position:absolute;top:.5rem;left:.5rem}.event-photos-upload__modal-backdrop{z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.event-photos-upload__modal{border:1px solid var(--border);color:var(--cream);background:#222;border-radius:.5rem;flex-direction:column;gap:1rem;width:100%;max-width:24rem;padding:1.5rem;display:flex}.event-photos-upload__modal-actions button{font:inherit;border:1px solid var(--border);color:var(--cream);cursor:pointer;background:0 0;border-radius:.35rem;padding:.5rem 1rem}.event-photos-upload__modal-actions button:hover{border-color:var(--gold);color:var(--gold)}.event-photos-upload__modal-actions{justify-content:flex-end;gap:.75rem;display:flex}.admin-layout{min-height:100svh;color:var(--cream);background:#1a1a1a;display:flex}.admin-layout__sidebar{background:var(--black);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:240px;padding:28px 20px;display:flex}.admin-layout__brand{font-family:var(--serif);letter-spacing:.3px;color:var(--cream);font-size:19px}.admin-layout__brand-sub{font-family:var(--sans);letter-spacing:2px;text-transform:uppercase;color:var(--gold);margin-bottom:32px;font-size:11px}.admin-layout__nav{flex-direction:column;flex:1;gap:4px;display:flex}.admin-layout__link{font-family:var(--sans);letter-spacing:.3px;color:#f5f0eba6;border-left:2px solid #0000;border-radius:4px;padding:10px 14px;font-size:14px;text-decoration:none;transition:color .3s,background .3s,border-color .3s}.admin-layout__link:hover{color:var(--cream);background:#f5f0eb0a}.admin-layout__link--active{color:var(--gold);background:var(--gold-dim);border-left-color:var(--gold)}.admin-layout__logout{font-family:var(--sans);letter-spacing:.5px;text-transform:uppercase;border:1px solid var(--gold-soft);color:var(--cream);cursor:pointer;background:0 0;border-radius:4px;margin-top:24px;padding:10px 16px;font-size:13px;transition:border-color .3s,color .3s}.admin-layout__logout:hover{border-color:var(--gold);color:var(--gold)}.admin-layout__content{flex:1;width:100%;min-width:0;max-width:1200px;margin:0 auto;padding:40px}@media (width<=860px){.admin-layout{flex-direction:column}.admin-layout__sidebar{border-right:none;border-bottom:1px solid var(--border);flex-flow:wrap;align-items:center;gap:16px;width:100%;padding:16px 20px}.admin-layout__brand-sub{margin-bottom:0}.admin-layout__nav{flex-direction:row;flex:unset;order:3;width:100%}.admin-layout__logout{margin-top:0;margin-left:auto}.admin-layout__content{padding:28px 20px 60px}}
