:root{--color-primary:#2c3e50;--color-secondary:#7495b7;--color-light:#f5f7fa;--color-lightEnd:#c3cfe2;--color-white:#fff;--color-black:#000;--color-text:#2c3e50;--color-panelGray:#e9ecef;--color-lightGray:#f8f9fa;--color-borderGray:#dfe6e9;--color-mutedText:#6c757d;--color-success:#28a745;--color-warning:#ffc107;--color-error:#dc3545;--color-blackShadow:rgba(44,62,80,.1);--color-blackShadowMedium:rgba(44,62,80,.15);--gradient-background:#fff;--gradient-hero:linear-gradient(135deg,#f5f7fa,#c3cfe2);--gradient-gallery:#fff;--gradient-memories:#f8f9fa;--gradient-footer:#2c3e50;--gradient-button:#7495b7;--gradient-panel:#e9ecef;--shadow-text:none;--shadow-textLight:none;--shadow-textHeavy:none;--shadow-box:0 2px 4px rgba(44,62,80,.1);--shadow-boxHeavy:0 4px 8px rgba(44,62,80,.15);--shadow-portrait:0 4px 8px rgba(44,62,80,.15);--shadow-buttonHover:0 2px 4px rgba(44,62,80,.15);--radius-small:8px;--radius-medium:12px;--radius-large:15px;--radius-xl:20px;--radius-round:50%;--spacing-xs:5px;--spacing-sm:10px;--spacing-md:20px;--spacing-lg:40px;--spacing-xl:60px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Source Sans Pro,sans-serif;line-height:1.6;color:var(--color-text);background:var(--gradient-background);background-size:400% 400%;animation:gradientShift 15s ease infinite;min-height:100vh}@keyframes gradientShift{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.container{max-width:1200px;margin:0 auto;background:var(--color-whiteGlass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-boxHeavy);min-height:100vh;border-radius:0 0 var(--radius-xl) var(--radius-xl)}.hero-section{background:var(--gradient-hero);padding:var(--spacing-xl) var(--spacing-md);text-align:center;position:relative;overflow:hidden}.hero-section:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--color-whiteOverlay);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.hero-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-lg);z-index:1}.hero-content,.portrait-container{position:relative}.portrait{width:200px;height:200px;border-radius:var(--radius-round);object-fit:cover;border:6px solid var(--color-accent);box-shadow:var(--shadow-portrait);transition:transform .3s ease}.portrait:hover{transform:scale(1.05)}.hero-text h1{font-family:Playfair Display,serif;font-size:2.5rem;font-weight:600;margin-bottom:var(--spacing-sm);text-shadow:var(--shadow-text)}.dates{font-size:1.2rem;margin-bottom:15px}.dates,.subtitle{text-shadow:var(--shadow-textLight)}.subtitle{font-style:italic;font-size:1.1rem;font-weight:300}.content-wrapper{max-width:800px;margin:0 auto;padding:0 var(--spacing-md)}section{padding:var(--spacing-xl) 0}.obituary-section{background-color:var(--color-white)}.obituary-section h2{font-family:Playfair Display,serif;font-size:2rem;text-align:center;margin-bottom:var(--spacing-lg);color:var(--color-text)}.obituary-text p{font-size:1.1rem;margin-bottom:var(--spacing-md);text-align:justify;color:var(--color-darkText);line-height:1.8}.gallery-section{background:var(--gradient-gallery)}.gallery-section h2{font-family:Playfair Display,serif;font-size:2rem;text-align:center;margin-bottom:var(--spacing-md);text-shadow:var(--shadow-textHeavy)}.gallery-description{text-align:center;margin-bottom:var(--spacing-lg);font-style:italic;text-shadow:var(--shadow-textLight)}.gallery-container{margin-top:30px}.gallery-placeholder{background-color:var(--color-panelGray);width:100%;max-width:800px}.gallery-placeholder,.no-images-placeholder{padding:var(--spacing-xl) var(--spacing-md);text-align:center;border-radius:var(--radius-small);color:var(--color-mutedText);border:2px dashed var(--color-lightBorder)}.no-images-placeholder{background-color:var(--color-lightGray)}.pa-gallery-player-widget{margin:0 auto!important;max-width:800px!important}.gallery-placeholder p{margin-bottom:10px}.image-gallery{border-radius:var(--radius-small);overflow:hidden}.image-gallery,.image-gallery-content,.image-gallery-image,.image-gallery-slide,.image-gallery-slide-wrapper{height:100%!important}.image-gallery-image{object-fit:contain!important}.image-gallery img,.image-gallery-image,.image-gallery-slide img{max-width:100%!important;width:auto!important;height:auto!important;object-fit:contain!important;object-position:center!important}.image-gallery-content .image-gallery-slide .image-gallery-image{overflow:visible!important;clip:auto!important;-webkit-clip-path:none!important;clip-path:none!important}.image-gallery-content .image-gallery-slide .image-gallery-image,.image-gallery-image img{max-width:100%!important;width:auto!important;height:auto!important;object-fit:contain!important;vertical-align:top!important}.image-gallery-image img{object-position:center!important;display:block!important}.image-gallery-slide .image-gallery-image{background-size:contain!important;background-repeat:no-repeat!important;background-position:50%!important}.image-gallery *{overflow:visible!important}.image-gallery-left-nav,.image-gallery-right-nav{opacity:.05}.memories-section{background:var(--gradient-memories)}.memories-section h2{font-family:Playfair Display,serif;font-size:2rem;text-align:center;margin-bottom:var(--spacing-md);text-shadow:var(--shadow-textHeavy)}.memories-description{text-align:center;margin-bottom:var(--spacing-lg);font-size:1.1rem;text-shadow:var(--shadow-textLight)}.content-panel{background-color:var(--color-lightGray);padding:var(--spacing-lg);border-radius:var(--radius-medium);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-box)}.gallery-panel{width:100%}.gallery-panel,.memory-form{background:var(--gradient-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--spacing-lg);border-radius:var(--radius-xl);margin-bottom:var(--spacing-xl);box-shadow:var(--shadow-box);border:2px solid var(--color-whiteGlassBorder)}.form-group{margin-bottom:25px}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:600;color:var(--color-text)}.form-group input,.form-group textarea{width:100%;padding:12px 16px;border:2px solid var(--color-borderGray);border-radius:var(--radius-small);font-size:1rem;font-family:inherit;transition:border-color .3s ease}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--color-secondary);box-shadow:0 0 0 3px var(--color-blackShadowLight)}.form-group textarea{resize:vertical;min-height:120px}.character-count{text-align:right;margin-top:5px;font-size:.85rem;color:var(--color-mutedText)}a{color:var(--gradient-button)}.character-count.warning{color:var(--color-orangeWarning)}.character-count.error{color:var(--color-redError)}.form-submit{display:flex;align-items:center;gap:15px;flex-wrap:wrap}.error-message{color:var(--color-redError);font-size:.9rem;font-weight:500;min-height:20px}.submit-btn{background:var(--gradient-button);color:var(--color-white);padding:14px 32px;border:none;border-radius:var(--radius-large);font-size:1.1rem;font-weight:600;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;text-shadow:var(--shadow-textLight)}.submit-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-buttonHover)}.memories-display h3{font-family:Playfair Display,serif;font-size:1.5rem;margin-bottom:30px;color:var(--color-text);text-align:center}.memories-list{display:flex;flex-direction:column;gap:25px}.memory-item{background-color:var(--color-lightGray);padding:25px;border-radius:var(--radius-medium);border-left:4px solid var(--color-secondary);box-shadow:var(--shadow-box)}.memory-item.sample{opacity:.7;border-left-color:var(--color-mediumGray)}.memory-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;flex-wrap:wrap;gap:var(--spacing-sm)}.memory-header strong{color:var(--color-mutedText);font-size:1.1rem}.relationship{background-color:var(--color-secondary);color:var(--color-white);padding:4px 12px;border-radius:var(--radius-large);font-size:.85rem;font-weight:500}.memory-item.sample .relationship{background-color:var(--color-mediumGray)}.memory-text{line-height:1.6;margin-bottom:15px}.memory-date,.memory-text{color:var(--color-mutedText)}.memory-date{font-size:.9rem;font-style:italic}.charity-section{background:var(--gradient-gallery);padding:var(--spacing-xl) 0}.charity-section h2{font-family:Playfair Display,serif;font-size:2rem;text-align:center;margin-bottom:var(--spacing-md);text-shadow:var(--shadow-textHeavy)}.charity-description{text-align:center;margin-bottom:var(--spacing-lg);font-size:1.1rem;text-shadow:var(--shadow-textLight)}.charity-links{display:flex;gap:var(--spacing-lg);justify-content:center;flex-wrap:wrap;max-width:800px;margin:0 auto}.charity-link{text-decoration:none;color:inherit;flex:1 1;min-width:300px;max-width:400px}.charity-card{background:var(--gradient-panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:var(--spacing-lg);border-radius:var(--radius-xl);box-shadow:var(--shadow-box);border:2px solid var(--color-whiteGlassBorder);transition:transform .2s ease,box-shadow .2s ease;text-align:center;height:100%;display:flex;flex-direction:column;justify-content:space-between}.charity-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-buttonHover)}.charity-card h3{font-family:Playfair Display,serif;font-size:1.3rem;margin-bottom:var(--spacing-sm);color:var(--color-text)}.charity-card p{color:var(--color-mutedText);margin-bottom:var(--spacing-md);line-height:1.6}.donate-button{background:var(--gradient-button);color:var(--color-white);padding:12px 24px;border-radius:var(--radius-large);font-weight:600;display:inline-block;text-shadow:var(--shadow-textLight);transition:transform .2s ease}.charity-card:hover .donate-button{transform:scale(1.05)}footer{background:var(--gradient-footer);text-align:center;padding:30px var(--spacing-md)}footer,footer p{color:var(--color-white)}footer p{text-shadow:var(--shadow-textLight)}.photo-upload-container{margin:var(--spacing-md) 0}.photo-upload-dropzone{border:2px dashed var(--color-borderGray);border-radius:var(--radius-medium);padding:var(--spacing-xl);text-align:center;background:var(--color-lightGray);cursor:pointer;transition:all .3s ease;min-height:200px;display:flex;align-items:center;justify-content:center}.photo-upload-dropzone.dragging,.photo-upload-dropzone:hover{border-color:var(--color-secondary);background:var(--color-light)}.photo-upload-dropzone.dragging{transform:scale(1.02)}.photo-upload-dropzone.uploading{border-color:var(--color-secondary);background:var(--color-light);cursor:not-allowed}.upload-content{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm)}.upload-icon{font-size:3rem;margin-bottom:var(--spacing-sm)}.upload-content h3{font-family:Playfair Display,serif;font-size:1.3rem;color:var(--color-text);margin:0}.upload-content p{color:var(--color-mutedText);margin:0;font-size:1rem}.upload-hint{font-size:.9rem!important;color:var(--color-mutedText)!important;font-style:italic}.upload-progress{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);width:100%;max-width:300px}.progress-bar{width:100%;height:8px;background:var(--color-borderGray);overflow:hidden}.progress-bar,.progress-fill{border-radius:var(--radius-large)}.progress-fill{height:100%;background:var(--color-secondary);transition:width .3s ease}.upload-progress p{color:var(--color-text);font-weight:500;margin:0}@media (min-width:768px){.hero-content{flex-direction:row;text-align:left;justify-content:center;align-items:center}.portrait{width:250px;height:250px}.hero-text{margin-left:50px}.hero-text h1{font-size:3rem}}@media (max-width:767px){.hero-section{padding:var(--spacing-lg) var(--spacing-md)}.hero-text h1{font-size:2rem}section{padding:var(--spacing-lg) 0}.memory-form{padding:25px}.memory-header{flex-direction:column;align-items:flex-start}.charity-links{flex-direction:column;align-items:center}.charity-link{min-width:280px}}