body{font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text);background-color:var(--color-background)}.theme-selector{position:fixed;top:20px;right:20px;z-index:var(--z-fixed);background:var(--color-surface);padding:12px 16px;border-radius:var(--radius-md);box-shadow:var(--shadow-md);display:flex;align-items:center;gap:10px}.theme-selector label{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);color:var(--color-text)}.theme-selector select{padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-background);color:var(--color-text);font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-fast)}.theme-selector select:hover{border-color:var(--color-primary)}.theme-selector select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}@media(max-width:767px){.theme-selector{top:10px;right:10px;padding:8px 12px;flex-direction:column;gap:6px}.theme-selector label{font-size:var(--font-size-xs)}.theme-selector select{font-size:var(--font-size-xs);padding:4px 8px}}.memorial-header{position:relative;text-align:center;margin-bottom:var(--spacing-3xl)}.hero-background{position:relative;height:400px;overflow:hidden;background:var(--color-primary)}.hero-background img{width:100%;height:100%;object-fit:cover}.hero-placeholder{display:flex;align-items:center;justify-content:center;width:100%;height:100%;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-secondary) 100%);color:var(--color-background);font-size:var(--font-size-xl);font-weight:var(--font-weight-medium)}.hero-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--color-hero-overlay);z-index:1}.profile-section{position:relative;margin-top:-80px;z-index:2;padding:0 var(--spacing-md)}.profile-picture-wrapper{display:inline-block;margin-bottom:var(--spacing-md)}.profile-picture,.profile-placeholder{width:180px;height:180px;border-radius:50%;border:6px solid var(--color-background);object-fit:cover;box-shadow:var(--shadow-lg)}.profile-placeholder{background:var(--color-surface);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.person-name{font-size:var(--font-size-4xl);font-weight:var(--font-weight-bold);color:var(--color-text);margin-bottom:var(--spacing-sm);letter-spacing:-.02em}.life-dates{font-size:var(--font-size-lg);color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.date-separator{margin:0 var(--spacing-xs)}.memorial-quote{font-size:var(--font-size-xl);font-style:italic;color:var(--color-primary);max-width:700px;margin:0 auto;padding:var(--spacing-md);border-left:4px solid var(--color-accent);background:var(--color-surface);border-radius:var(--radius-md)}@media(max-width:767px){.hero-background{height:250px}.profile-section{margin-top:-60px}.profile-picture,.profile-placeholder{width:140px;height:140px;border-width:4px}.person-name{font-size:var(--font-size-2xl)}.life-dates{font-size:var(--font-size-base)}.memorial-quote{font-size:var(--font-size-md);padding:var(--spacing-sm)}}.memorial-content section{padding:var(--spacing-3xl) 0}.memorial-content section:nth-child(2n){background:var(--color-surface)}.memorial-content h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);color:var(--color-text);text-align:center;margin-bottom:var(--spacing-xl);letter-spacing:-.01em}@media(max-width:767px){.memorial-content section{padding:var(--spacing-2xl) 0}.memorial-content h2{font-size:var(--font-size-2xl);margin-bottom:var(--spacing-lg)}}.text-content{max-width:800px;margin:0 auto}.text-content p{margin-bottom:var(--spacing-md);line-height:var(--line-height-relaxed);font-size:var(--font-size-md);color:var(--color-text)}.text-content p:last-child{margin-bottom:0}.timeline-container{max-width:900px;margin:0 auto;position:relative;padding-left:var(--spacing-md)}.timeline-container:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--color-border)}.timeline-item{position:relative;margin-bottom:var(--spacing-xl);padding-left:var(--spacing-xl)}.timeline-item:before{content:"";position:absolute;left:-8px;top:6px;width:16px;height:16px;border-radius:50%;background:var(--color-accent);border:3px solid var(--color-background);box-shadow:0 0 0 2px var(--color-accent)}.timeline-date{display:inline-block;font-size:var(--font-size-lg);font-weight:var(--font-weight-bold);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.timeline-content h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-text);margin-bottom:var(--spacing-xs)}.timeline-content p{color:var(--color-text-muted);line-height:var(--line-height-relaxed)}@media(max-width:767px){.timeline-container{padding-left:var(--spacing-sm)}.timeline-item{padding-left:var(--spacing-lg)}.timeline-date{font-size:var(--font-size-base)}.timeline-content h3{font-size:var(--font-size-lg)}}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.gallery-item{position:relative;aspect-ratio:1;overflow:hidden;border-radius:var(--radius-md);transition:var(--transition-base);cursor:pointer}.gallery-item:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:var(--transition-base)}.gallery-item:hover img{transform:scale(1.05)}.gallery-placeholder{width:100%;height:100%;background:linear-gradient(135deg,var(--color-surface) 0%,var(--color-border) 100%);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);font-size:var(--font-size-sm)}.gallery-note{text-align:center;color:var(--color-text-muted);font-size:var(--font-size-sm);font-style:italic}@media(max-width:767px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm)}}.lightbox{position:fixed;top:0;left:0;width:100%;height:100%;z-index:var(--z-modal);display:none;align-items:center;justify-content:center}.lightbox.lightbox-open{display:flex}.lightbox-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#000000e6}.lightbox-content{position:relative;z-index:1;max-width:90%;max-height:90%;display:flex;align-items:center;justify-content:center}.lightbox-image{max-width:100%;max-height:90vh;border-radius:var(--radius-md);box-shadow:var(--shadow-xl)}.lightbox-close,.lightbox-prev,.lightbox-next{position:absolute;background:#ffffffe6;color:#000;border:none;width:50px;height:50px;border-radius:50%;font-size:2rem;cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;justify-content:center;line-height:1}.lightbox-close:hover,.lightbox-prev:hover,.lightbox-next:hover{background:#fff;transform:scale(1.1)}.lightbox-close{top:20px;right:20px}.lightbox-prev{left:20px;top:50%;transform:translateY(-50%)}.lightbox-next{right:20px;top:50%;transform:translateY(-50%)}.lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:8px 16px;border-radius:var(--radius-full);font-size:var(--font-size-sm)}.video-container{max-width:900px;margin:0 auto}.video-placeholder{background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--spacing-2xl);text-align:center}.video-placeholder p{margin-bottom:var(--spacing-sm);color:var(--color-text-muted)}.video-placeholder .code-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--spacing-md)}.video-placeholder code{display:block;background:var(--color-background);padding:var(--spacing-sm);border-radius:var(--radius-sm);font-size:var(--font-size-xs);color:var(--color-accent);margin-top:var(--spacing-sm);overflow-x:auto;white-space:pre-wrap;word-break:break-all}.service-details{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--spacing-xl);max-width:1100px;margin:0 auto}.service-item{background:var(--color-background);padding:var(--spacing-lg);border-radius:var(--radius-lg);border-left:4px solid var(--color-accent);box-shadow:var(--shadow-sm)}.service-item h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-md)}.service-date{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text);margin-bottom:var(--spacing-sm)}.service-location{color:var(--color-text-muted);line-height:var(--line-height-relaxed)}.service-location strong{color:var(--color-text);font-weight:var(--font-weight-semibold)}@media(max-width:767px){.service-details{grid-template-columns:1fr;gap:var(--spacing-md)}}.candle-container{max-width:400px;margin:0 auto;text-align:center}.candle-animation{width:80px;height:120px;margin:0 auto var(--spacing-lg);position:relative}.candle-body{width:60px;height:80px;background:linear-gradient(180deg,beige,#d4c5a9);border-radius:0 0 8px 8px;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:inset 0 -5px 10px #0000001a}.candle-body:before{content:"";position:absolute;top:-5px;left:50%;transform:translate(-50%);width:8px;height:15px;background:#8b7355;border-radius:4px 4px 0 0}.flame{position:absolute;top:-25px;left:50%;transform:translate(-50%);width:20px;height:35px;background:linear-gradient(180deg,#fff9e6,gold,#ff8c00);border-radius:50%/60% 60% 40% 40%;opacity:0;transition:opacity var(--transition-base);animation:flicker 2s ease-in-out infinite}.flame-inner{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:10px;height:20px;background:linear-gradient(180deg,#fff,gold);border-radius:50%/60% 60% 40% 40%}.candle-animation.candle-lit .flame{opacity:1}@keyframes flicker{0%,to{transform:translate(-50%) scaleY(1)}50%{transform:translate(-50%) scaleY(.95)}}@keyframes candleGlow{0%{filter:brightness(1)}50%{filter:brightness(1.3)}to{filter:brightness(1)}}.candle-button{background:var(--color-accent);color:var(--color-background);padding:12px 32px;border-radius:var(--radius-full);font-size:var(--font-size-md);font-weight:var(--font-weight-semibold);border:none;cursor:pointer;transition:var(--transition-base);margin-bottom:var(--spacing-md)}.candle-button:hover:not(:disabled){background:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.candle-button:disabled{opacity:.6;cursor:not-allowed}.candle-button.candle-lit{background:var(--color-primary)}.candle-count{color:var(--color-text-muted);font-size:var(--font-size-md)}.candle-count span{font-weight:var(--font-weight-bold);color:var(--color-accent);font-size:var(--font-size-xl)}.candle-message{margin-top:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-md);font-size:var(--font-size-sm);opacity:0;transition:opacity var(--transition-base)}.candle-thank-you{background:#4a90e21a;color:var(--color-primary)}.candle-already-lit{background:#ff98001a;color:var(--color-accent)}.testimonials-list{max-width:900px;margin:0 auto;display:flex;flex-direction:column;gap:var(--spacing-xl)}.testimonial-item{background:var(--color-background);padding:var(--spacing-lg);border-radius:var(--radius-lg);border-left:4px solid var(--color-accent);box-shadow:var(--shadow-sm)}.testimonial-text{font-size:var(--font-size-md);line-height:var(--line-height-relaxed);color:var(--color-text);margin-bottom:var(--spacing-md);font-style:italic}.testimonial-author{font-weight:var(--font-weight-semibold);color:var(--color-primary);margin-bottom:var(--spacing-xs)}.testimonial-date{font-size:var(--font-size-sm);color:var(--color-text-muted)}.memorial-footer{background:var(--color-primary);color:var(--color-background);padding:var(--spacing-xl) 0;text-align:center}.memorial-footer p{margin-bottom:var(--spacing-xs)}.footer-note{font-size:var(--font-size-sm);opacity:.8}@media print{.theme-selector,.candle-button,.lightbox{display:none!important}body{background:#fff;color:#000}.memorial-content section{page-break-inside:avoid}}:root{--color-primary: #1a1a1a;--color-primary-light: rgba(26, 26, 26, .1);--color-secondary: #4a4a4a;--color-accent: #4A90E2;--color-background: #ffffff;--color-surface: #f8f8f8;--color-text: #1a1a1a;--color-text-muted: #6a6a6a;--color-border: #e0e0e0;--color-hero-overlay: rgba(0, 0, 0, .3)}
