*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #fdfbf7;--bg-warm: #f5efe6;--bg-elevated: #ffffff;--bg-hero: linear-gradient(175deg, #faf6ee 0%, #f0e8d8 50%, #e8dcc8 100%);--text: #1e1b18;--text-secondary: #5c534a;--text-muted: #9c8f84;--text-inverse: #fdfbf7;--accent: #8B7424;--accent-hover: #6B5A1C;--accent-subtle: #f5edd6;--accent-glow: rgba(139, 116, 36, .08);--brand-gold: #8B7424;--brand-gold-light: #A8923A;--brand-gold-pale: #C4B264;--brand-gold-dark: #6B5A1C;--brand-cream: #F5F0E8;--brand-warm-white: #FDFBF7;--brand-dark: #2C2518;--sage: #6b7f5e;--sage-light: #eef2eb;--border: #e6dfd4;--border-light: #f0ebe3;--error: #9f1239;--error-bg: #fff1f2;--success: #166534;--success-bg: #f0fdf4;--shadow-xs: 0 1px 2px rgba(30, 27, 24, .03);--shadow-sm: 0 1px 3px rgba(30, 27, 24, .05), 0 1px 2px rgba(30, 27, 24, .03);--shadow-md: 0 4px 12px rgba(30, 27, 24, .06), 0 2px 4px rgba(30, 27, 24, .03);--shadow-lg: 0 10px 30px rgba(30, 27, 24, .08), 0 4px 8px rgba(30, 27, 24, .04);--font-display: "Bodoni Moda", Georgia, "Times New Roman", serif;--font-body: "Nunito Sans", -apple-system, BlinkMacSystemFont, sans-serif;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--container: 1120px;--container-narrow: 680px;--ease: cubic-bezier(.4, 0, .2, 1);--transition: .2s var(--ease);--transition-slow: .4s var(--ease);font-family:var(--font-body);line-height:1.6;font-weight:400;color:var(--text);background-color:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html{scroll-behavior:smooth}body{margin:0;min-height:100vh}img{max-width:100%;display:block}a{color:var(--accent);text-decoration:none;transition:color var(--transition)}a:hover{color:var(--accent-hover)}.layout{display:flex;flex-direction:column;min-height:100vh}.main{flex:1}.container{max-width:var(--container);margin:0 auto;padding:0 2rem}.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 2rem}.section{padding:4rem 0}.header{position:sticky;top:0;z-index:100;background:#fdfbf7eb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border-light)}.header-inner{max-width:var(--container);margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:64px}.logo{display:flex;align-items:center;gap:10px;text-decoration:none}.logo:hover{color:var(--brand-gold-dark)}.logo-text{font-family:var(--font-display);font-style:italic;font-weight:400;font-size:1.25rem;color:var(--brand-gold-dark);letter-spacing:.04em;line-height:1}.nav{display:flex;align-items:center;gap:.25rem}.nav-link{padding:.5rem 1rem;font-size:.875rem;font-weight:500;color:var(--text-secondary);text-decoration:none;border-radius:var(--radius-md);transition:all var(--transition)}.nav-link:hover{color:var(--text);background:var(--accent-glow)}.nav-link.active{color:var(--accent)}.btn-create{background:var(--accent);color:var(--text-inverse)!important;font-weight:600}.btn-create:hover{background:var(--accent-hover);color:var(--text-inverse)!important}.nav-user{display:flex;align-items:center;gap:.375rem;margin-left:.5rem;padding-left:.75rem;border-left:1px solid var(--border-light)}.nav-avatar{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--text-inverse);font-size:.7rem;font-weight:600;letter-spacing:.02em;flex-shrink:0;cursor:default}.btn-signin{border:1px solid var(--border);font-weight:600}.btn-signin:hover{border-color:var(--accent);color:var(--accent)!important}.footer{border-top:1px solid var(--border-light);padding:3rem 0;margin-top:4rem}.footer-inner{max-width:var(--container);margin:0 auto;padding:0 2rem;text-align:center}.footer p{color:var(--text-muted);font-family:var(--font-display);font-style:italic;font-size:.95rem}.hero{background:var(--bg-hero);padding:6rem 2rem;text-align:center;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-50%;left:-25%;width:150%;height:200%;background:radial-gradient(ellipse at center,rgba(139,116,36,.04) 0%,transparent 70%);pointer-events:none}.hero-content{position:relative;max-width:720px;margin:0 auto}.hero-title{font-family:var(--font-display);font-size:clamp(2.5rem,5.5vw,4rem);font-weight:400;line-height:1.15;color:var(--text);margin-bottom:1.5rem;letter-spacing:-.02em}.hero-accent{font-style:italic;color:var(--accent)}.hero-subtitle{font-size:1.1rem;color:var(--text-secondary);line-height:1.7;max-width:520px;margin:0 auto 3rem}.hero-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.65rem 1.5rem;font-family:var(--font-body);font-size:.875rem;font-weight:600;line-height:1.4;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-secondary{background:transparent;color:var(--text);border-color:var(--border)}.btn-secondary:hover:not(:disabled){border-color:var(--text-secondary);color:var(--text)}.btn-ghost{background:transparent;color:var(--text-secondary);border-color:transparent;padding:.4rem .75rem}.btn-ghost:hover:not(:disabled){color:var(--text);background:var(--accent-glow)}.btn-danger{background:var(--error);color:#fff;border-color:var(--error)}.btn-danger:hover:not(:disabled){opacity:.9;color:#fff}.btn-sso{display:flex;width:100%;padding:.7rem;background:var(--bg-elevated);color:var(--text);border:1px solid var(--border);font-weight:500;font-family:var(--font-body);font-size:.875rem;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);align-items:center;justify-content:center}.btn-sso:hover{border-color:var(--text-secondary);box-shadow:var(--shadow-sm)}.btn-lg{padding:.8rem 2rem;font-size:.95rem;border-radius:var(--radius-lg)}.btn-sm{padding:.35rem .75rem;font-size:.8rem}.btn-full{width:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;margin-bottom:3rem;flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:clamp(1.75rem,3vw,2.25rem);font-weight:500;color:var(--text);letter-spacing:-.01em}.page-subtitle{font-size:.95rem;color:var(--text-secondary);margin-top:.25rem}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:2rem}.section-title{font-family:var(--font-display);font-size:1.5rem;font-weight:500;color:var(--text)}.section-link{font-size:.875rem;font-weight:500;color:var(--accent)}.section-link:hover{color:var(--accent-hover)}.memorial-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}.memorial-card{display:flex;flex-direction:column;background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-lg);overflow:hidden;text-decoration:none;color:var(--text);transition:all var(--transition-slow);box-shadow:var(--shadow-xs)}.memorial-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--border);color:var(--text)}.memorial-card-image{aspect-ratio:4/3;overflow:hidden;background:var(--bg-warm)}.memorial-card-image img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.memorial-card:hover .memorial-card-image img{transform:scale(1.03)}.memorial-card-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;color:var(--text-muted);background:linear-gradient(135deg,var(--bg-warm) 0%,#ede5d5 100%)}.memorial-card-body{padding:1.5rem}.memorial-card-name{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin-bottom:.25rem;letter-spacing:-.01em}.memorial-card-dates{font-size:.8rem;color:var(--text-muted);margin-bottom:.5rem}.memorial-card-quote{font-family:var(--font-display);font-style:italic;font-size:.95rem;color:var(--text-secondary);line-height:1.5}.memorial-grid-item{display:flex;flex-direction:column}.memorial-grid-item .memorial-card{flex:1}.memorial-grid-actions{display:flex;gap:.25rem;justify-content:center;padding-top:.5rem}.status-badge{display:inline-block;padding:.2rem .6rem;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-full)}.status-badge.active{background:var(--sage-light);color:var(--sage)}.status-badge.inactive{background:var(--bg-warm);color:var(--text-muted)}.form{display:flex;flex-direction:column;gap:3rem}.form-section{border:1px solid var(--border-light);border-radius:var(--radius-lg);padding:2rem;background:var(--bg-elevated)}.form-section legend{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--text);padding:0 .5rem}.form-subsection{margin-top:1.5rem}.form-subsection h4{font-family:var(--font-display);font-size:1rem;font-weight:600;color:var(--text-secondary);margin-bottom:1rem;padding-bottom:.25rem;border-bottom:1px solid var(--border-light)}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.8rem;font-weight:600;color:var(--text-secondary);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.04em}.form-group input,.form-group textarea,.form-group select{width:100%;padding:.6rem .85rem;font-family:var(--font-body);font-size:.9rem;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);transition:all var(--transition);outline:none}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--text-muted)}.form-group input:disabled{opacity:.6;cursor:not-allowed}.form-group textarea{resize:vertical;min-height:120px;line-height:1.6}.form-row{display:flex;gap:1rem;align-items:flex-end}.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:1rem}.form-grow{flex:1}.form-hint{display:block;font-size:.75rem;color:var(--text-muted);margin-top:.25rem}.form-success{font-size:.8rem;color:var(--success);font-weight:500}.form-error{font-size:.8rem;color:var(--error);font-weight:500}.image-upload{display:flex;flex-direction:column;gap:.25rem}.image-upload-label{font-size:.85rem;font-weight:500;color:var(--text)}.image-upload-dropzone{width:100%;min-height:140px;border:2px dashed var(--border);border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;cursor:pointer;transition:border-color .2s,background-color .2s;background:var(--bg)}.image-upload-dropzone:hover,.image-upload-dropzone.drag-active{border-color:var(--accent);background:var(--accent-subtle)}.image-upload-dropzone.disabled{cursor:not-allowed;opacity:.5}.image-upload-dropzone.disabled:hover{border-color:var(--border);background:var(--bg)}.image-upload-icon{font-size:1.75rem;color:var(--text-muted);line-height:1}.image-upload-text{font-size:.8rem;color:var(--text-muted)}.image-upload-spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.image-upload-preview{position:relative;display:inline-block}.image-upload-preview img{max-width:100%;max-height:180px;border-radius:var(--radius);border:1px solid var(--border-light);object-fit:cover}.image-upload-preview-actions{position:absolute;top:.35rem;right:.35rem;display:flex;gap:.25rem}.image-upload-action{background:#0009;color:#fff;border:none;border-radius:var(--radius);padding:.2rem .5rem;font-size:.7rem;cursor:pointer;transition:background .15s}.image-upload-action:hover{background:#000c}.image-upload-action-delete:hover{background:var(--error)}.wizard-steps{display:flex;align-items:center;justify-content:center;gap:.75rem;margin-bottom:2.5rem}.wizard-step{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted)}.wizard-step.active{color:var(--accent);font-weight:600}.wizard-step.completed{color:var(--success)}.wizard-step-number{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:2px solid currentColor;font-size:.75rem;font-weight:700}.wizard-step.active .wizard-step-number{background:var(--accent);color:var(--text-inverse);border-color:var(--accent)}.wizard-step.completed .wizard-step-number{background:var(--success);color:#fff;border-color:var(--success)}.wizard-connector{width:40px;height:2px;background:var(--border)}.wizard-connector.completed{background:var(--success)}.form-actions{display:flex;gap:1rem;justify-content:flex-end;padding-top:1.5rem;border-top:1px solid var(--border-light)}.btn-slug-check{align-self:flex-end;margin-bottom:1rem}.alert{padding:1rem 1.5rem;border-radius:var(--radius-md);font-size:.875rem;margin-bottom:1.5rem}.alert-error{background:var(--error-bg);color:var(--error);border:1px solid rgba(159,18,57,.15)}.alert-success{background:var(--success-bg);color:var(--success);border:1px solid rgba(22,101,52,.15)}.search-bar{margin-bottom:3rem}.search-input{width:100%;padding:.75rem 1.25rem;font-family:var(--font-body);font-size:.95rem;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-full);outline:none;transition:all var(--transition)}.search-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.search-input::placeholder{color:var(--text-muted)}.empty-state{text-align:center;padding:6rem 2rem}.empty-state h2{font-family:var(--font-display);font-size:1.5rem;font-weight:500;margin-bottom:.5rem}.empty-state p{color:var(--text-secondary);margin-bottom:2rem}.empty-hero{text-align:center;padding:6rem 2rem}.empty-hero h2{font-family:var(--font-display);font-size:1.75rem;font-weight:500;margin-bottom:.5rem}.empty-hero p{color:var(--text-secondary);margin-bottom:2rem}.empty-icon{display:block;font-size:2.5rem;color:var(--accent);margin-bottom:1.5rem;opacity:.6}.loading{text-align:center;padding:4rem;color:var(--text-muted);font-size:.9rem}.memorial-page{padding-bottom:4rem}.memorial-banner{position:relative;height:380px;overflow:hidden}.memorial-banner img{width:100%;height:100%;object-fit:cover}.memorial-banner-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,transparent 40%,rgba(30,27,24,.4) 100%)}.memorial-header{text-align:center;padding:4rem 0 3rem;position:relative}.memorial-header.no-banner{padding-top:3rem}.memorial-portrait{width:140px;height:140px;border-radius:50%;overflow:hidden;margin:-90px auto 2rem;border:4px solid var(--bg);box-shadow:var(--shadow-lg);position:relative;z-index:2}.no-banner .memorial-portrait{margin-top:0}.memorial-portrait img{width:100%;height:100%;object-fit:cover}.memorial-banner-edit{position:absolute;bottom:.75rem;right:.75rem;z-index:3}.memorial-banner-edit .image-upload{gap:0}.memorial-banner-edit .image-upload-label,.memorial-banner-edit .form-hint{display:none}.memorial-banner-edit .image-upload-dropzone{min-height:auto;padding:.4rem .75rem;background:#0000008c;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius);flex-direction:row;gap:.35rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.memorial-banner-edit .image-upload-icon{font-size:1rem;color:#fff}.memorial-banner-edit .image-upload-text{font-size:.75rem;color:#fff}.memorial-banner-edit .image-upload-dropzone:hover{background:#000000b3;border-color:#fff6}.memorial-banner-empty{height:auto;min-height:120px;background:var(--bg-alt);display:flex;align-items:center;justify-content:center;padding:2rem}.memorial-banner-empty .image-upload{width:100%;max-width:400px}.memorial-portrait-edit{position:absolute;inset:0;z-index:3;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.memorial-portrait:hover .memorial-portrait-edit{opacity:1}.memorial-portrait-edit .image-upload{width:100%;height:100%;gap:0}.memorial-portrait-edit .image-upload-label,.memorial-portrait-edit .form-hint{display:none}.memorial-portrait-edit .image-upload-dropzone{width:100%;height:100%;min-height:auto;border:none;border-radius:50%;background:#00000080;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.memorial-portrait-edit .image-upload-icon{font-size:1.25rem;color:#fff}.memorial-portrait-edit .image-upload-text{font-size:.65rem;color:#fff}.memorial-portrait-edit .image-upload-dropzone:hover{background:#000000a6}.memorial-portrait-empty{background:var(--bg-alt);border:2px dashed var(--border);display:flex;align-items:center;justify-content:center}.memorial-portrait-empty .image-upload{width:100%;height:100%;gap:0}.memorial-portrait-empty .image-upload-label{display:none}.memorial-portrait-empty .image-upload-dropzone{width:100%;height:100%;min-height:auto;border:none;border-radius:50%;background:transparent}.memorial-portrait-empty .image-upload-icon{font-size:1.25rem}.memorial-portrait-empty .image-upload-text{font-size:.6rem}.memorial-name{font-family:var(--font-display);font-size:clamp(2rem,4.5vw,3rem);font-weight:400;color:var(--text);letter-spacing:-.02em;margin-bottom:1.5rem}.memorial-life{display:flex;align-items:flex-start;justify-content:center;gap:2rem;flex-wrap:wrap;margin-bottom:2rem}.memorial-date{display:flex;flex-direction:column;align-items:center;gap:2px}.memorial-date-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);font-weight:600}.memorial-date-value{font-family:var(--font-display);font-size:1.1rem;color:var(--text)}.memorial-date-location{font-size:.8rem;color:var(--text-secondary)}.memorial-life-divider{font-family:var(--font-display);font-size:1.5rem;color:var(--text-muted);align-self:center;padding-top:1rem}.memorial-quote{font-family:var(--font-display);font-size:1.3rem;font-style:italic;color:var(--text-secondary);max-width:500px;margin:0 auto 2rem;line-height:1.5}.memorial-owner-actions{margin-top:1rem}.memorial-body{padding:3rem 0 4rem;border-top:1px solid var(--border-light)}.memorial-description{font-size:1.05rem;line-height:1.85;color:var(--text-secondary)}.memorial-description p{margin-bottom:1.5rem}.memorial-description p:last-child{margin-bottom:0}.memorial-media-section{padding:3rem 0;border-top:1px solid var(--border-light)}.media-form{display:flex;gap:1rem;margin-bottom:2rem}.media-form input{flex:1;padding:.6rem .85rem;font-family:var(--font-body);font-size:.9rem;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);outline:none;transition:all var(--transition)}.media-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}.media-item{position:relative;aspect-ratio:1;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-warm);cursor:pointer}.media-item img{width:100%;height:100%;object-fit:cover;transition:transform var(--transition-slow)}.media-item:hover img{transform:scale(1.05)}.media-status{position:absolute;top:.5rem;left:.5rem;padding:2px 8px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#0009;color:#fff;border-radius:var(--radius-full)}.media-delete{position:absolute;top:.5rem;right:.5rem;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#00000080;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:1.1rem;opacity:0;transition:opacity var(--transition)}.media-item:hover .media-delete{opacity:1}.media-delete:hover{background:var(--error)}.media-dropzone{width:100%;min-height:120px;border:2px dashed var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;cursor:pointer;transition:border-color .2s,background-color .2s;background:var(--bg);margin-bottom:2rem;padding:1.5rem}.media-dropzone:hover,.media-dropzone.drag-active{border-color:var(--accent);background:var(--accent-subtle)}.media-dropzone-icon{font-size:1.75rem;color:var(--text-muted);line-height:1}.media-dropzone-text{font-size:.875rem;color:var(--text-secondary);font-weight:500}.media-dropzone-hint{font-size:.75rem;color:var(--text-muted)}.upload-list{display:flex;flex-direction:column;gap:.5rem;margin-bottom:2rem}.upload-item{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--bg-elevated, var(--bg-alt));border:1px solid var(--border-light);border-radius:var(--radius);font-size:.8rem}.upload-item-name{flex:0 1 auto;min-width:0;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary)}.upload-item-bar{flex:1;max-width:200px;height:6px;background:var(--border-light);border-radius:3px;overflow:hidden}.upload-item-bar-fill{height:100%;background:var(--accent);border-radius:3px;transition:width .15s ease}.upload-item-status{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.upload-item-success{color:var(--success);font-weight:600}.upload-item-error{color:var(--error)}.upload-item-dismiss{background:none;border:none;cursor:pointer;font-size:1rem;color:var(--text-muted);padding:0 .25rem;line-height:1}.upload-item-dismiss:hover{color:var(--error)}.media-title{position:absolute;bottom:0;left:0;right:0;padding:.5rem .6rem;background:linear-gradient(transparent,#0009);color:#fff;font-size:.75rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lightbox{position:fixed;inset:0;z-index:1000;background:#000000eb;display:flex;align-items:center;justify-content:center;padding:1rem}.lightbox-close{position:absolute;top:1rem;right:1rem;z-index:1002;background:none;border:none;color:#ffffffb3;font-size:2rem;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;line-height:1}.lightbox-close:hover{color:#fff}.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:1002;background:#0006;border:1px solid rgba(255,255,255,.15);color:#fffc;font-size:2.5rem;width:48px;height:64px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:var(--radius);transition:background .15s;line-height:1}.lightbox-nav:hover{background:#0009;color:#fff}.lightbox-prev{left:1rem}.lightbox-next{right:1rem}.lightbox-content{display:flex;flex-direction:column;align-items:center;max-width:calc(100vw - 8rem);max-height:calc(100vh - 4rem)}.lightbox-image{max-width:100%;max-height:calc(100vh - 10rem);object-fit:contain;border-radius:var(--radius);-webkit-user-select:none;user-select:none}.lightbox-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:1.5rem;width:100%;max-width:700px;margin-top:1rem;color:#ffffffd9}.lightbox-info{flex:1;min-width:0}.lightbox-title{font-size:1rem;font-weight:600;margin:0 0 .25rem;color:#fff}.lightbox-description{font-size:.85rem;color:#ffffffa6;margin:0 0 .35rem}.lightbox-counter{font-size:.75rem;color:#ffffff73}.lightbox-actions{display:flex;gap:.5rem;flex-shrink:0}.lightbox-delete-btn{background:transparent;border:1px solid rgba(255,255,255,.2);color:#ffffffb3}.lightbox-delete-btn:hover{background:var(--error);border-color:var(--error);color:#fff}.modal-overlay{position:fixed;inset:0;z-index:1100;background:#0009;display:flex;align-items:center;justify-content:center;padding:1rem;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modal-container{background:var(--bg);border-radius:var(--radius-lg);width:100%;max-width:480px;max-height:calc(100vh - 4rem);overflow-y:auto;padding:1.5rem;box-shadow:0 20px 60px #0000004d}.modal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.modal-header h3{font-family:var(--font-display);font-size:1.25rem;font-weight:500;margin:0}.modal-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--text-muted);width:36px;height:36px;display:flex;align-items:center;justify-content:center;line-height:1}.modal-close:hover{color:var(--text)}.edit-media-preview{margin-bottom:1rem;border-radius:var(--radius);overflow:hidden;background:var(--bg-warm)}.edit-media-preview img{width:100%;max-height:240px;object-fit:cover;display:block}.edit-media-modal .form-actions{justify-content:space-between}.form-actions-right{display:flex;gap:.5rem}.edit-media-delete-btn{background:transparent;border:1px solid var(--border);color:var(--error)}.edit-media-delete-btn:hover{background:var(--error);color:#fff;border-color:var(--error)}.memorial-donation{padding:4rem 0}.donation-card{text-align:center;padding:3rem;background:var(--accent-subtle);border-radius:var(--radius-xl);border:1px solid rgba(139,105,20,.12)}.donation-card h3{font-family:var(--font-display);font-size:1.5rem;font-weight:500;margin-bottom:.5rem}.donation-card p{color:var(--text-secondary);margin-bottom:2rem}.auth-page{min-height:calc(100vh - 164px);display:flex;align-items:center;justify-content:center;padding:3rem}.auth-container{width:100%;max-width:420px}.auth-brand{text-align:center;margin-bottom:3rem}.auth-icon{display:block;margin-bottom:1rem}.auth-brand h1{font-family:var(--font-display);font-style:italic;font-size:2rem;font-weight:400;color:var(--brand-gold-dark);margin-bottom:.25rem}.auth-brand p{color:var(--text-secondary);font-size:.9rem}.auth-card{background:var(--bg-elevated);border:1px solid var(--border-light);border-radius:var(--radius-xl);padding:2rem;box-shadow:var(--shadow-md)}.auth-tabs{display:flex;gap:2px;background:var(--bg-warm);border-radius:var(--radius-md);padding:3px;margin-bottom:2rem}.auth-tab{flex:1;padding:.55rem;font-family:var(--font-body);font-size:.85rem;font-weight:600;color:var(--text-secondary);background:transparent;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition)}.auth-tab.active{background:var(--bg-elevated);color:var(--text);box-shadow:var(--shadow-xs)}.auth-form{display:flex;flex-direction:column;gap:.5rem}.auth-form .form-group{margin-bottom:.5rem}.auth-form .btn-primary{margin-top:.5rem}.auth-forgot-link{background:none;border:none;color:var(--text-muted);font-size:.8rem;cursor:pointer;font-family:var(--font-body);text-align:center;padding:.5rem;transition:color var(--transition)}.auth-forgot-link:hover{color:var(--accent)}.auth-help-text{font-size:.85rem;color:var(--text-secondary);margin-bottom:1rem;line-height:1.5}.auth-sso{margin-top:1.5rem}.auth-divider{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.auth-divider span{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.text-muted{color:var(--text-muted)}.text-center{text-align:center}@media(max-width:768px){.header-inner,.container,.container-narrow{padding:0 1rem}.nav-user-name{display:none}.dashboard-item{flex-wrap:wrap}.dashboard-item-actions{width:100%;justify-content:flex-end}.form-row,.form-row-3{flex-direction:column;display:flex}.memorial-banner{height:240px}.memorial-life{gap:1rem}.memorial-life-divider{display:none}.memorial-portrait{width:110px;height:110px;margin-top:-70px}.hero{padding:4rem 1rem}.hero-actions{flex-direction:column;align-items:stretch}.media-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.section,.memorial-header,.memorial-body,.memorial-media-section,.auth-card,.memorial-grid .memorial-card{animation:fadeIn .4s var(--ease) both}.memorial-grid .memorial-card:nth-child(2){animation-delay:.05s}.memorial-grid .memorial-card:nth-child(3){animation-delay:.1s}.memorial-grid .memorial-card:nth-child(4){animation-delay:.15s}.memorial-grid .memorial-card:nth-child(5){animation-delay:.2s}.memorial-grid .memorial-card:nth-child(6){animation-delay:.25s}.page-header-actions{display:flex;gap:.5rem;align-items:center}.members-invite-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.members-invite-form h3{font-family:var(--font-display);margin-bottom:1rem}.members-section{margin-bottom:2rem}.members-list{display:flex;flex-direction:column;gap:0}.member-item{display:flex;align-items:center;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--border-light)}.member-item:last-child{border-bottom:none}.member-item-pending{opacity:.7}.member-info{display:flex;align-items:center;gap:.75rem;flex:1;min-width:0}.member-avatar{width:40px;height:40px;border-radius:50%;background:var(--accent);color:var(--text-inverse);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1rem;flex-shrink:0}.member-avatar-pending{background:var(--bg-warm);color:var(--text-muted)}.member-details{display:flex;flex-direction:column;min-width:0}.member-name{font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-you{font-weight:400;color:var(--text-muted);font-size:.85em}.member-email{color:var(--text-muted);font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-role{flex-shrink:0}.role-badge{display:inline-block;padding:.25rem .75rem;border-radius:var(--radius);font-size:.8rem;font-weight:600;text-transform:capitalize}.role-owner{background:var(--accent-subtle);color:var(--accent)}.role-manager{background:#e8f0fe;color:#1a56db}.role-contributor{background:#e6f4ea;color:#137333}.role-viewer{background:var(--bg-warm);color:var(--text-secondary)}.role-select{padding:.35rem .5rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.85rem;background:var(--bg-elevated);color:var(--text);cursor:pointer}.member-actions{display:flex;gap:.5rem;flex-shrink:0}@media(max-width:768px){.member-item{flex-wrap:wrap}.member-actions{width:100%;justify-content:flex-end}}.memorial-featured-video{padding:3rem 0;border-top:1px solid var(--border-light)}.featured-video-wrapper{position:relative;width:100%;padding-top:56.25%;border-radius:var(--radius-lg);overflow:hidden;background:#000;margin-top:1.5rem}.featured-video-iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.media-item-video{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-warm)}.media-item-video img{width:100%;height:100%;object-fit:cover}.media-item-video-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--bg-warm) 0%,var(--border-light) 100%)}.media-item-play-icon{font-size:2.5rem;color:var(--text-muted);opacity:.6}.media-type-badge{position:absolute;top:.5rem;right:.5rem;padding:2px 8px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;background:#0009;color:#fff;border-radius:var(--radius-full)}.guestbook-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem;margin-bottom:2rem}.guestbook-entries{display:flex;flex-direction:column;gap:0}.guestbook-entry{padding:1.25rem 0;border-bottom:1px solid var(--border-light);position:relative}.guestbook-entry:last-child{border-bottom:none}.guestbook-entry-pending{opacity:.65;background:var(--bg-warm);padding:1.25rem;border-radius:var(--radius);margin-bottom:.5rem}.guestbook-entry-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.guestbook-entry-author{font-weight:600;color:var(--text)}.guestbook-entry-date{font-size:.8rem;color:var(--text-muted)}.guestbook-entry-message{color:var(--text-secondary);line-height:1.6}.guestbook-entry-moderation{display:flex;align-items:center;gap:.5rem;margin-top:.75rem}.guestbook-entry-actions{margin-top:.5rem;display:flex;justify-content:flex-end}.guestbook-signing-as{font-size:.9rem;color:var(--text-secondary);margin-bottom:.5rem}.alert-info{background:#eff6ff;color:#1e40af;padding:.75rem 1rem;border-radius:var(--radius);margin-bottom:1.5rem}.alert-info a{color:#1e40af;font-weight:600;text-decoration:underline}.badge-warning{background:#fef3c7;color:#92400e;padding:2px 8px;border-radius:var(--radius);font-size:.7rem;font-weight:600;text-transform:uppercase}.report-form{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1.5rem}.report-reasons{display:flex;flex-direction:column;gap:.25rem}.report-reason-option,.form-group label.report-reason-option{display:flex;align-items:center;gap:.75rem;cursor:pointer;padding:.375rem 0;font-size:.95rem;font-weight:400;color:var(--text-secondary);text-transform:none;letter-spacing:normal;margin-bottom:0}.report-reason-option input[type=radio],.form-group .report-reason-option input[type=radio]{width:auto;padding:0;border:none;box-shadow:none;accent-color:var(--accent);flex-shrink:0}.form-success{color:var(--success);font-size:.85rem;margin-bottom:.5rem}.review-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.review-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.review-item-image{width:100%;height:200px;object-fit:cover}.review-item-video{width:100%;height:200px;background:#000}.review-item-iframe{width:100%;height:100%;border:none}.review-item-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--text-muted)}.review-item-info{padding:1rem}.review-item-info h3{font-size:1rem;margin-bottom:.25rem}.review-item-info p{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}.review-item-actions{display:flex;gap:.5rem;padding:0 1rem 1rem}.memorial-links-section{padding:2rem 0;border-top:1px solid var(--border-light)}.memorial-links{display:flex;align-items:center;justify-content:center;gap:1rem}.search-bar{display:flex;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap}.search-input-wrapper{position:relative;flex:1;min-width:200px}.search-input-filter{flex:0 1 180px}.search-input-year{flex:0 1 100px}.search-autocomplete{position:absolute;top:100%;left:0;right:0;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:100;max-height:240px;overflow-y:auto;margin-top:2px}.search-autocomplete-item{display:block;padding:.6rem .85rem;font-size:.9rem;color:var(--text);text-decoration:none;transition:background .15s}.search-autocomplete-item:hover{background:var(--accent-subtle)}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2rem;padding:1rem 0}.pagination-info{font-size:.85rem;color:var(--text-muted)}
