:root{--cream-50: #fdfcfb;--cream-100: #f9f7f4;--sand-100: #f5f1ed;--sand-200: #e8e2db;--sand-300: #d4cbc1;--terracotta-400: #db8b74;--terracotta-500: #c96f54;--terracotta-600: #b5563d;--charcoal-900: #2a2725;--charcoal-700: #4a443f;--charcoal-500: #726d66;--charcoal-400: #9a9389;--sage-500: #8b9b7c;--rust-500: #c94c3d;--warm-white: #fffefa;--font-display: "Cormorant Garamond", serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--text-4xl: 48px;--text-3xl: 36px;--text-2xl: 24px;--text-xl: 20px;--text-lg: 18px;--text-base: 16px;--text-sm: 15px;--text-xs: 14px;--text-2xs: 12px;--leading-tight: 1.2;--leading-snug: 1.4;--leading-normal: 1.6;--leading-relaxed: 1.8;--tracking-tight: -.02em;--tracking-normal: 0;--tracking-wide: .01em;--tracking-wider: .02em;--space-0: 0;--space-1: .5rem;--space-2: 1rem;--space-3: 1.5rem;--space-4: 2rem;--space-5: 2.5rem;--space-6: 3rem;--space-8: 4rem;--space-10: 5rem;--space-12: 6rem;--radius-xs: 4px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-subtle: 0 2px 8px rgba(42, 39, 37, .04);--shadow-soft: 0 4px 16px rgba(42, 39, 37, .08);--shadow-medium: 0 8px 32px rgba(42, 39, 37, .12);--shadow-floating: 0 16px 48px rgba(42, 39, 37, .16);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .3s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-fixed: 30;--z-modal-backdrop: 40;--z-modal: 50;--z-popover: 60;--z-tooltip: 70}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}@keyframes modalEnter{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{margin:0;font-family:var(--font-body);color:var(--charcoal-900);background:linear-gradient(to bottom right,var(--cream-50) 0%,var(--sand-100) 100%);background-attachment:fixed;min-height:100vh;line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button{font-family:inherit;cursor:pointer}.app{max-width:1400px;margin:0 auto;padding:0}.app-header{display:flex;justify-content:space-between;align-items:center;padding:var(--space-4) var(--space-6);margin-bottom:var(--space-6);border-bottom:1px solid var(--sand-200);background:transparent}.app-header h1,.app-title{font-family:var(--font-display);font-size:var(--text-3xl);font-weight:500;letter-spacing:var(--tracking-tight);color:var(--charcoal-900);margin:0}.logout-button{font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;padding:var(--space-2) var(--space-3);background:transparent;color:var(--charcoal-500);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.logout-button:hover{color:var(--charcoal-900)}@media(max-width:768px){.app-header{padding:var(--space-3) var(--space-4)}.app-header h1,.app-title{font-size:var(--text-xl)}}.login-container{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:var(--space-3)}.login-form{width:100%;max-width:400px;padding:var(--space-6);background:var(--warm-white);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.login-form h2{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;margin-bottom:var(--space-1);text-align:center;color:var(--charcoal-900)}.login-subtitle{font-family:var(--font-body);color:var(--charcoal-500);text-align:center;margin-bottom:var(--space-4);font-size:var(--text-sm)}.login-input{width:100%;padding:var(--space-2);border:1px solid var(--sand-200);border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);margin-bottom:var(--space-2);background:var(--warm-white);color:var(--charcoal-900);transition:all var(--transition-fast)}.login-input:focus{outline:none;border-color:var(--terracotta-500);box-shadow:0 0 0 3px #c96f541a}.login-button{width:100%;padding:var(--space-2);background:var(--terracotta-500);color:var(--warm-white);border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:var(--text-base);font-weight:600;cursor:pointer;transition:all var(--transition-base)}.login-button:hover{background:var(--terracotta-600);box-shadow:var(--shadow-soft)}.error-message{color:var(--rust-500);font-family:var(--font-body);font-size:var(--text-sm);margin-bottom:var(--space-2)}.date-filter{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;padding:0 var(--space-6);margin-bottom:var(--space-8)}.date-filter-inputs{display:flex;align-items:center;gap:var(--space-2)}.date-input{font-family:var(--font-body);font-size:var(--text-xs);padding:var(--space-2) var(--space-3);border:1px solid var(--sand-200);border-radius:var(--radius-sm);background:transparent;color:var(--charcoal-700);transition:all var(--transition-fast);width:auto;max-width:150px}.date-input:focus{outline:none;border-color:var(--charcoal-500)}.filter-separator,.date-separator{font-family:var(--font-body);color:var(--charcoal-400);font-size:var(--text-xs);font-weight:400}.filter-actions{display:flex;gap:var(--space-2)}.button-primary{background:var(--terracotta-500);color:var(--warm-white);font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-wider);text-transform:uppercase;padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.button-primary:hover{background:var(--terracotta-600);box-shadow:var(--shadow-soft)}.button-secondary{background:transparent;color:var(--charcoal-700);font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-wider);text-transform:uppercase;padding:var(--space-2) var(--space-4);border:1px solid var(--sand-200);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-base)}.button-secondary:hover{background:var(--sand-100);border-color:var(--sand-300)}.date-filter-actions{display:flex;gap:var(--space-2)}.filter-button{font-family:var(--font-body);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:500;transition:all var(--transition-fast);cursor:pointer}.filter-apply{background:var(--charcoal-900);color:var(--warm-white);border:none}.filter-apply:hover{background:var(--charcoal-700)}.filter-reset{background:transparent;color:var(--charcoal-500);border:none}.filter-reset:hover{color:var(--charcoal-900)}@media(max-width:768px){.date-filter{padding:0 var(--space-4);margin-bottom:var(--space-6)}.date-filter-inputs{flex-direction:column;align-items:stretch;gap:var(--space-2);width:100%}.date-separator{text-align:center}.date-input{width:100%}.date-filter-actions{width:100%;gap:var(--space-2)}.filter-button{flex:1}}.image-grid-container{margin-bottom:var(--spacing-xl)}.image-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}@media(max-width:640px){.image-grid{grid-template-columns:1fr}}.image-card{background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .2s,box-shadow .2s;cursor:pointer}.image-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.image-card-thumbnail{width:100%;aspect-ratio:1;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden}.image-card-thumbnail img{width:100%;height:100%;object-fit:cover}.image-loading,.image-error{color:var(--text-secondary);font-size:.875rem}.image-card-info{padding:var(--spacing-sm)}.image-date{font-size:.875rem;color:var(--text-secondary);margin-bottom:.25rem}.image-member{font-weight:600;margin-bottom:.25rem}.image-notes{font-size:.875rem;color:var(--text-secondary);line-height:1.4}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000f2;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal-backdrop);padding:var(--space-4)}.modal-close{position:absolute;top:var(--space-4);right:var(--space-4);width:48px;height:48px;background:#ffffff1a;border:none;border-radius:var(--radius-full);font-size:var(--text-3xl);line-height:1;color:var(--warm-white);cursor:pointer;z-index:var(--z-modal);transition:all var(--transition-fast);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.modal-close:hover{background:#fff3}.modal-image{max-width:95vw;max-height:95vh;object-fit:contain;animation:modalEnter var(--transition-slow) cubic-bezier(.4,0,.2,1)}.modal-loading,.modal-error{color:var(--warm-white);font-family:var(--font-body);font-size:var(--text-base)}.load-more-container{display:flex;justify-content:center;margin:var(--spacing-lg) 0}.load-more-button{padding:var(--spacing-sm) var(--spacing-xl);background:var(--primary);color:var(--white);border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;transition:background .2s}.load-more-button:hover{background:var(--primary-hover)}.loading-container,.loading-more,.empty-container,.error-container{text-align:center;padding:var(--spacing-xl);color:var(--text-secondary)}.empty-hint,.error-hint{font-size:.875rem;margin-top:.5rem}.error-container{background:var(--white);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.error-container .error-message{color:var(--error);font-size:1rem;margin-bottom:.5rem}.comment-grid-container{margin-bottom:var(--spacing-xl)}.comment-grid{column-count:3;column-gap:var(--space-8);max-width:1200px;margin:0 auto var(--space-6)}@media(max-width:1024px){.comment-grid{column-count:2;column-gap:var(--space-6)}}@media(max-width:768px){.comment-grid{column-count:1}}.comment-card{background:var(--warm-white);overflow:hidden;transition:all var(--transition-slow);break-inside:avoid;margin-bottom:var(--space-8);animation:fadeUp var(--transition-slow) cubic-bezier(.4,0,.2,1) backwards}.comment-card:hover{transform:translateY(-8px)}.comment-card:nth-child(1){animation-delay:0ms}.comment-card:nth-child(2){animation-delay:50ms}.comment-card:nth-child(3){animation-delay:.1s}.comment-card:nth-child(4){animation-delay:.15s}.comment-card:nth-child(5){animation-delay:.2s}.comment-card:nth-child(6){animation-delay:.25s}.comment-card:nth-child(7){animation-delay:.3s}.comment-card:nth-child(8){animation-delay:.35s}.comment-card:nth-child(9){animation-delay:.4s}.card-image-container{position:relative;width:100%;aspect-ratio:4 / 5;overflow:hidden;cursor:pointer;background:var(--sand-100)}.card-featured-image{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity var(--transition-slow),transform var(--transition-slow)}.card-featured-image.loaded{opacity:1}.comment-card:hover .card-featured-image{transform:scale(1.02)}.image-placeholder{position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,var(--sand-100),var(--sand-200))}.image-placeholder.blur{filter:blur(20px)}.card-date{padding:var(--space-2) var(--space-3) var(--space-3);font-family:var(--font-display);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-wide);color:var(--charcoal-500);margin:0}.carousel-indicators{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-2);pointer-events:none}.carousel-button{pointer-events:all;background:#fffefae6;color:var(--charcoal-900);border:none;width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:var(--shadow-soft);transition:all var(--transition-fast);opacity:0;font-size:var(--text-lg);font-weight:600}.comment-card:hover .carousel-button{opacity:1}.carousel-button:hover{background:var(--warm-white);box-shadow:var(--shadow-medium);transform:scale(1.1)}.carousel-button:active{transform:scale(.95)}.carousel-dots{position:absolute;bottom:var(--space-2);left:50%;transform:translate(-50%);display:flex;gap:var(--space-1);pointer-events:all}.carousel-dots .dot{width:6px;height:6px;border-radius:var(--radius-full);background:#fffefa80;cursor:pointer;transition:all var(--transition-fast)}.carousel-dots .dot.active{background:var(--warm-white);width:20px}.carousel-dots .dot:hover{background:var(--warm-white)}.card-notes{padding:var(--space-3) var(--space-3) var(--space-2);font-family:var(--font-body);font-size:var(--text-sm);line-height:var(--leading-normal);color:var(--charcoal-700);white-space:pre-wrap;border-top:1px solid var(--sand-200)}.comment-images-empty{padding:var(--space-4);text-align:center;color:var(--charcoal-500);font-family:var(--font-body);font-size:var(--text-sm);background:var(--sand-100);border-radius:var(--radius-sm);margin:var(--space-3)}.image-error{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-family:var(--font-body);font-size:var(--text-sm);color:var(--charcoal-500);background:var(--sand-100)}@media(max-width:768px){.comment-card{max-width:600px;margin:0 auto var(--space-6)}.comment-card:hover{transform:none}.carousel-button{opacity:.7}.carousel-button:hover{opacity:1}}
