.btn-ripple{position:relative;overflow:hidden}.btn-ripple:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;pointer-events:none;background-image:radial-gradient(circle,var(--ripple-color, rgba(255, 255, 255, .3)) 10%,transparent 10.01%);background-repeat:no-repeat;background-position:50%;transform:scale(10);opacity:0;transition:transform .5s,opacity .8s}.btn-ripple:active:after{transform:scale(0);opacity:.3;transition:0s}.btn-magnetic{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.btn-magnetic:hover{transform:translateY(-2px) scale(1.02)}.btn-magnetic:active{transform:translateY(0) scale(.98)}.btn-press{transition:transform .15s ease,box-shadow .15s ease}.btn-press:active{transform:scale(.96);box-shadow:0 1px 2px #0003}.btn-loading{position:relative;color:transparent!important;pointer-events:none}.btn-loading:after{content:"";position:absolute;width:18px;height:18px;top:50%;left:50%;margin-left:-9px;margin-top:-9px;border:2px solid var(--spinner-color, #fff);border-radius:50%;border-top-color:transparent;animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.btn-success-flash{animation:success-flash .6s ease}@keyframes success-flash{0%{background-color:var(--btn-bg)}50%{background-color:#28a745}to{background-color:var(--btn-bg)}}.btn-error-shake{animation:error-shake .5s ease}@keyframes error-shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.btn-pulse{animation:btn-pulse 2s infinite}@keyframes btn-pulse{0%,to{box-shadow:0 0 0 0 var(--pulse-color, rgba(255, 107, 53, .4))}50%{box-shadow:0 0 0 10px transparent}}.input-glow{transition:box-shadow .3s ease,border-color .3s ease}.input-glow:focus{border-color:var(--theme-primary, #ff6b35);box-shadow:0 0 0 3px var(--glow-color, rgba(255, 107, 53, .2));outline:none}.input-floating-wrapper{position:relative}.input-floating-wrapper input,.input-floating-wrapper textarea{padding-top:1.5rem}.input-floating-label{position:absolute;left:1rem;top:50%;transform:translateY(-50%);font-size:1rem;color:var(--text-muted, #666);pointer-events:none;transition:all .2s ease}.input-floating-wrapper input:focus~.input-floating-label,.input-floating-wrapper input:not(:placeholder-shown)~.input-floating-label,.input-floating-wrapper textarea:focus~.input-floating-label,.input-floating-wrapper textarea:not(:placeholder-shown)~.input-floating-label{top:.5rem;transform:translateY(0);font-size:.75rem;color:var(--theme-primary, #ff6b35)}.input-valid{border-color:#28a745!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%2328a745' viewBox='0 0 16 16'%3E%3Cpath d='M13.854 3.646a.5.5 0 0 1 0 .708l-7 7a.5.5 0 0 1-.708 0l-3.5-3.5a.5.5 0 1 1 .708-.708L6.5 10.293l6.646-6.647a.5.5 0 0 1 .708 0z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;background-size:1rem;padding-right:2.5rem}.input-invalid{border-color:#dc3545!important;animation:input-shake .4s ease}@keyframes input-shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}50%{transform:translate(4px)}75%{transform:translate(-4px)}}.input-counter{font-size:.75rem;color:var(--text-muted, #666);text-align:right;margin-top:.25rem;transition:color .2s ease}.input-counter.near-limit{color:#ffc107}.input-counter.at-limit{color:#dc3545}.card-lift{transition:transform .3s ease,box-shadow .3s ease}.card-lift:hover{transform:translateY(-5px);box-shadow:0 12px 24px #00000026}.card-tilt{transition:transform .3s ease;transform-style:preserve-3d}.card-tilt:hover{transform:perspective(1000px) rotateX(2deg) rotateY(-2deg)}.card-glow{position:relative}.card-glow:before{content:"";position:absolute;inset:-2px;background:linear-gradient(45deg,var(--theme-primary),var(--theme-accent),var(--theme-secondary));border-radius:inherit;z-index:-1;opacity:0;transition:opacity .3s ease}.card-glow:hover:before{opacity:.6}.animate-fade-in-up{animation:fade-in-up .5s ease forwards;opacity:0}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in-scale{animation:fade-in-scale .4s ease forwards;opacity:0}@keyframes fade-in-scale{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-slide-in-left{animation:slide-in-left .4s ease forwards;opacity:0}@keyframes slide-in-left{0%{opacity:0;transform:translate(-30px)}to{opacity:1;transform:translate(0)}}.animate-slide-in-right{animation:slide-in-right .4s ease forwards;opacity:0}@keyframes slide-in-right{0%{opacity:0;transform:translate(30px)}to{opacity:1;transform:translate(0)}}.stagger-children>*{opacity:0;animation:fade-in-up .4s ease forwards}.stagger-children>*:nth-child(1){animation-delay:.05s}.stagger-children>*:nth-child(2){animation-delay:.1s}.stagger-children>*:nth-child(3){animation-delay:.15s}.stagger-children>*:nth-child(4){animation-delay:.2s}.stagger-children>*:nth-child(5){animation-delay:.25s}.stagger-children>*:nth-child(6){animation-delay:.3s}.stagger-children>*:nth-child(7){animation-delay:.35s}.stagger-children>*:nth-child(8){animation-delay:.4s}.stagger-children>*:nth-child(9){animation-delay:.45s}.stagger-children>*:nth-child(10){animation-delay:.5s}.count-up{display:inline-block;animation:count-pop .3s ease}@keyframes count-pop{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}.digit-flip{display:inline-block;perspective:100px}.digit-flip-inner{transition:transform .4s ease;transform-style:preserve-3d}.digit-flip.flipping .digit-flip-inner{animation:digit-flip .4s ease}.progress-bar{height:4px;background:var(--progress-bg, #e0e0e0);border-radius:2px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--theme-primary, #ff6b35);border-radius:2px;transition:width .3s ease}.progress-bar-fill.animated{background:linear-gradient(90deg,var(--theme-primary, #ff6b35),var(--theme-accent, #ffa500),var(--theme-primary, #ff6b35));background-size:200% 100%;animation:progress-shimmer 1.5s infinite}@keyframes progress-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.skeleton{background:linear-gradient(90deg,var(--skeleton-base, #e0e0e0) 0%,var(--skeleton-shine, #f0f0f0) 50%,var(--skeleton-base, #e0e0e0) 100%);background-size:200% 100%;animation:skeleton-shimmer 1.5s infinite;border-radius:4px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.tooltip-fade{opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease}.tooltip-fade.visible{opacity:1;visibility:visible}.icon-spin{animation:icon-spin 1s linear infinite}@keyframes icon-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.icon-bounce{animation:icon-bounce .5s ease}@keyframes icon-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.icon-pulse{animation:icon-pulse 1.5s ease infinite}@keyframes icon-pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.1);opacity:.8}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}*{margin:0;padding:0;box-sizing:border-box}body{margin:0;font-family:var(--h-serif);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga" 1,"kern" 1;color:var(--h-ink);background-color:var(--h-bg);min-height:100dvh}h1,h2,h3,h4{font-family:var(--h-serif);font-weight:500;letter-spacing:-.015em}code{font-family:Courier New,monospace}#root{min-height:100dvh}html{scroll-behavior:smooth;background-color:var(--h-bg)}:focus-visible{outline:2px solid var(--h-accent);outline-offset:2px}a{color:var(--h-accent);transition:color .2s ease}a:hover{color:var(--h-ink)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.skeleton{background:linear-gradient(90deg,#1c18120d 25%,#1c18121a,#1c18120d 75%);background-size:200% 100%;animation:skeletonShimmer 1.5s infinite linear}@keyframes skeletonShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.event-card-skeleton{background:var(--h-paper);border:1px solid var(--h-rule);border-radius:0;padding:40px}.event-card-skeleton.special{background:var(--h-paper)}.event-card-skeleton .skeleton-details{display:flex;flex-direction:column;gap:10px;margin-top:16px;padding:1.25rem;background:#1c181205}.table-row-skeleton td{padding:14px 16px}.admin-panel-skeleton{background:var(--h-paper);border:1px solid var(--h-rule);padding:2rem}.admin-panel-skeleton .skeleton-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.admin-panel-skeleton .skeleton-table{overflow-x:auto}.admin-panel-skeleton table{width:100%;border-collapse:collapse}.admin-panel-skeleton th,.admin-panel-skeleton td{padding:14px 16px;text-align:left;border-bottom:1px dotted var(--h-rule)}.event-detail-skeleton{min-height:100dvh;padding:2rem;background:var(--h-bg)}.event-detail-skeleton .skeleton-nav{margin-bottom:2rem}.event-detail-skeleton .skeleton-header{text-align:center;max-width:900px;margin:0 auto 2rem}.event-detail-skeleton .skeleton-info-card{max-width:800px;margin:0 auto;background:var(--h-paper);border:1px solid var(--h-rule);padding:2.5rem}.event-detail-skeleton .skeleton-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1.5rem;margin-top:2rem}@media(prefers-reduced-motion:reduce){.skeleton{animation:none;background:#1c181214}}@media(max-width:768px){.event-card-skeleton{padding:28px}.event-detail-skeleton .skeleton-grid{grid-template-columns:1fr}}.countdown-timer{display:flex;align-items:flex-start;justify-content:center;gap:1.25rem;padding:0}.countdown-timer.compact{gap:.75rem}.h-countdown .countdown-timer{margin-top:12px;padding-top:12px;border-top:1px solid var(--h-rule)}.countdown-unit{display:flex;flex-direction:column;align-items:center;min-width:56px}.countdown-digits{background:transparent;border:0;padding:0;perspective:200px}.countdown-digits.flipping .countdown-value{animation:digit-flip .4s ease-in-out}@keyframes digit-flip{0%{transform:rotateX(0)}50%{transform:rotateX(-90deg)}to{transform:rotateX(0)}}.countdown-value{display:block;font-family:var(--h-serif);font-size:44px;font-weight:400;font-variation-settings:"opsz" 36;color:var(--h-ink);line-height:1}.compact .countdown-value{font-size:32px}.countdown-label{font-family:var(--h-sans);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--h-mute);margin-top:6px}.countdown-timer.imminent .countdown-value,.countdown-timer.very-soon .countdown-value{color:var(--h-accent)}.countdown-expired{text-align:center;padding:8px 0}.countdown-message{font-family:var(--h-serif);font-style:italic;font-size:1.1rem;color:var(--h-accent)}.countdown-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--h-sans);font-size:11px;letter-spacing:.06em;color:var(--h-accent)}.countdown-icon{flex-shrink:0}.countdown-text{line-height:1;white-space:nowrap}.countdown-badge.live{color:var(--h-accent-2)}.live-dot{width:6px;height:6px;background:currentColor;border-radius:50%;animation:live-pulse 1.5s ease-in-out infinite}@keyframes live-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}@media(max-width:480px){.countdown-timer{gap:.75rem}.countdown-value{font-size:36px}}@media(prefers-reduced-motion:reduce){.countdown-digits.flipping .countdown-value,.live-dot{animation:none}}.cg-seal,.cg-mark{display:block;height:auto}.cg-seal__ring{stroke:var(--h-ink)}.cg-seal__dot{fill:var(--h-ink)}.cg-seal__brand{fill:var(--h-ink);font-family:var(--h-sans)}.cg-seal__chirho{stroke:var(--h-accent)}.cg-seal__sub{fill:var(--h-ink-soft);font-family:var(--h-sans)}.cg-seal__est{font-family:var(--h-serif)}.cg-mark__ring{stroke:var(--h-ink)}.cg-mark__chirho{stroke:var(--h-accent)}.home-state{position:relative;z-index:5;max-width:1100px;margin:0 auto;padding:80px 64px 120px;text-align:center}.home-state .h-title{margin-bottom:16px}.home-state .h-body{max-width:440px;margin:0 auto 28px}.h-event-meta .countdown-badge{font-family:var(--h-sans);font-size:11px;letter-spacing:.06em;color:var(--h-accent)}@media(max-width:900px){.home-state{padding:60px 28px 90px}}.about-prose{position:relative;z-index:5;max-width:720px;margin:0 auto;padding:24px 64px 48px}.about-prose .h-verse{margin-top:0}.about-prose .h-title{margin:48px 0 20px}.about-prose .h-body{margin:0 0 20px}.about-portrait{margin:48px auto;max-width:440px;text-align:center}.about-portrait img{display:block;width:100%;height:auto;border:1px solid var(--h-rule);background:var(--h-paper);padding:12px;box-shadow:0 4px 24px #1c181214}.about-portrait figcaption{margin-top:14px}.about-cta{margin-top:32px}@media(max-width:900px){.about-prose{padding:24px 28px 48px}}.toast-container{position:fixed;top:20px;right:20px;z-index:9999;display:flex;flex-direction:column;gap:12px;pointer-events:none;max-width:400px}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;border-radius:2px;box-shadow:0 8px 30px #1c181226,0 4px 12px #1c18121a;pointer-events:auto;animation:toastSlideIn .3s cubic-bezier(.4,0,.2,1);font-family:var(--h-sans);font-size:.9rem;line-height:1.4}@keyframes toastSlideIn{0%{opacity:0;transform:translate(100%) scale(.9)}to{opacity:1;transform:translate(0) scale(1)}}.toast-icon{flex-shrink:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:14px;font-weight:700}.toast-message{flex:1;font-weight:500}.toast-close{flex-shrink:0;width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:#0000001a;border:none;border-radius:50%;cursor:pointer;font-size:18px;line-height:1;color:inherit;opacity:.7;transition:all .2s ease}.toast-close:hover{opacity:1;background:#0003}.toast-success{background:linear-gradient(135deg,#d4edda,#c3e6cb);border-left:4px solid #28a745;color:#155724}.toast-success .toast-icon{background:#28a745;color:#fff}.toast-error{background:linear-gradient(135deg,#f8d7da,#f5c6cb);border-left:4px solid #dc3545;color:#721c24}.toast-error .toast-icon{background:#dc3545;color:#fff}.toast-warning{background:linear-gradient(135deg,#fff3cd,#ffeeba);border-left:4px solid #ffc107;color:#856404}.toast-warning .toast-icon{background:#ffc107;color:#856404}.toast-info{background:linear-gradient(135deg,#d1ecf1,#bee5eb);border-left:4px solid #17a2b8;color:#0c5460}.toast-info .toast-icon{background:#17a2b8;color:#fff}@media(max-width:480px){.toast-container{inset:auto 10px 20px;max-width:none}.toast{padding:12px 14px;font-size:.9rem}}@media(prefers-reduced-motion:reduce){.toast{animation:none}}.rsvp-form-container{background:transparent;padding:0;border:0}.rsvp-form{max-width:100%}.rsvp-form .btn{width:100%;margin-top:.5rem}.email-suggestion{margin-top:.5rem;font-family:var(--h-sans);font-size:13px;color:var(--h-ink-soft)}.email-suggestion button{background:none;border:0;color:var(--h-accent);font-weight:600;cursor:pointer;text-decoration:underline;padding:0;font-size:inherit}.guest-stepper{display:flex;align-items:stretch}.stepper-btn{width:46px;display:flex;align-items:center;justify-content:center;font-size:1.4rem;background:var(--h-bg);border:1px solid var(--h-rule);color:var(--h-ink);cursor:pointer;transition:background .2s ease}.stepper-btn:first-child{border-right:0}.stepper-btn:last-child{border-left:0}.stepper-btn:hover:not(:disabled){background:var(--h-paper)}.stepper-btn:disabled{opacity:.4;cursor:not-allowed}.stepper-input{width:72px!important;text-align:center;font-size:1.2rem!important;font-family:var(--h-serif)!important;-moz-appearance:textfield}.stepper-input::-webkit-outer-spin-button,.stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.hp-field{position:absolute;left:-9999px;top:-9999px;opacity:0;pointer-events:none;height:0;overflow:hidden}@media(max-width:768px){.guest-stepper{width:100%}.stepper-btn{flex:0 0 46px}.stepper-input{flex:1;width:auto!important}}.subscribe-form-container{background:transparent;padding:0;border:0}.subscribe-form{max-width:100%}.status-message{padding:12px 16px;margin-bottom:1.25rem;font-family:var(--h-sans);font-size:13px;border-left:3px solid var(--h-accent-2)}.status-message.success{background:#2a3f2a14;color:var(--h-accent-2);border-left-color:var(--h-accent-2)}.status-message.error{background:#a3342c1a;color:#a3342c;border-left-color:#a3342c}.subscribe-form .btn{width:100%;margin-top:.5rem}.share-card-container{display:none}.share-card-container.visible{display:block;position:absolute;top:-9999px;left:-9999px;visibility:visible;z-index:-1}.share-card{width:1080px;height:1920px;padding:130px 96px;background:#f5efe1;color:#1c1812;font-family:Newsreader,Georgia,serif;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative;overflow:hidden}.share-card h1{font-family:Newsreader,Georgia,serif;font-weight:400;font-size:8rem;line-height:.98;letter-spacing:-.02em;margin:40px 0 60px}.share-card .card-quote{font-style:italic;font-size:2.1rem;margin-bottom:80px;max-width:90%;line-height:1.4;color:#4a3f30}.share-card .card-description{font-size:1.9rem;margin-bottom:80px;line-height:1.6;max-width:92%;color:#4a3f30}.card-details-box{width:100%;border:1px solid #c9bba0;border-radius:0;padding:64px;margin-top:auto;background:#fdf9ef99}.card-details-box h2{font-family:Newsreader,Georgia,serif;font-weight:500;font-size:3.2rem;margin-bottom:50px}.card-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;text-align:left;margin-bottom:40px}.card-info-item{display:flex;flex-direction:column}.card-info-label{font-family:DM Sans,sans-serif;font-size:1.3rem;text-transform:uppercase;letter-spacing:.2em;color:#8a7d68;margin-bottom:12px;font-weight:600}.card-info-value{font-size:2.1rem;font-weight:400}.card-info-item.full-width{grid-column:1 / -1}.card-features{text-align:left;margin-top:40px;width:100%;border-top:1px solid #c9bba0;padding-top:40px}.card-features h3{font-family:Newsreader,Georgia,serif;font-weight:500;font-size:2.1rem;margin-bottom:25px}.card-features ul{list-style:none;padding:0}.card-features li{margin-bottom:20px;display:flex;align-items:center;gap:20px;font-size:1.8rem;color:#4a3f30}.check-icon{color:#7a2e2e;font-size:1.8rem}.share-card.treatment-ember{background:radial-gradient(ellipse 80% 60% at 50% 100%,#2a1a10,#1a1410 70%);color:#f1e6d0}.share-card.treatment-ember h1{color:#f1e6d0;text-shadow:0 2px 40px rgba(217,122,42,.35)}.share-card.treatment-ember .card-quote,.share-card.treatment-ember .card-description,.share-card.treatment-ember .card-features li{color:#c9b896}.share-card.treatment-ember .card-details-box{border-color:#4a3a28;background:#00000059}.share-card.treatment-ember .card-info-label{color:#d97a2a}.share-card.treatment-ember .card-features{border-top-color:#4a3a28}.share-card.treatment-ember .check-icon{color:#d97a2a}.share-card.treatment-candlelight{background:radial-gradient(ellipse 70% 50% at 50% 12%,#fbeecb,#f4e6c8 70%);color:#2a1d0e}.share-card.treatment-candlelight h1{color:#2a1d0e}.share-card.treatment-candlelight .card-quote,.share-card.treatment-candlelight .card-description,.share-card.treatment-candlelight .card-features li{color:#5a4423}.share-card.treatment-candlelight .card-details-box{border-color:#c9ab6e;background:#fcf2da8c}.share-card.treatment-candlelight .card-info-label{color:#957a4a}.share-card.treatment-candlelight .card-features{border-top-color:#c9ab6e}.share-card.treatment-candlelight .check-icon{color:#b07a1a}.detail-state{position:relative;z-index:5;max-width:720px;margin:0 auto;padding:120px 64px;text-align:center}.detail-state .h-title{margin-bottom:16px}.detail-state .h-body{margin-bottom:28px}.h-subscribe{margin-top:8px;padding-top:28px;border-top:1px solid var(--h-rule)}@media(max-width:900px){.detail-state{padding:90px 28px}}.confirm-overlay{position:fixed;inset:0;background:#0009;display:flex;justify-content:center;align-items:center;z-index:10000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:overlayFadeIn .2s ease-out}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}.confirm-dialog{background:var(--h-paper);border:1px solid var(--h-rule);border-radius:0;padding:2rem;max-width:400px;width:100%;text-align:center;font-family:var(--h-serif);box-shadow:0 20px 60px #1c18124d;animation:dialogSlideIn .3s cubic-bezier(.4,0,.2,1)}@keyframes dialogSlideIn{0%{opacity:0;transform:scale(.9) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-icon{width:60px;height:60px;margin:0 auto 1.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center}.confirm-icon svg{width:32px;height:32px}.confirm-default .confirm-icon{background:#e3f2fd;color:#1976d2}.confirm-danger .confirm-icon{background:#ffebee;color:#dc3545}.confirm-warning .confirm-icon{background:#fff3e0;color:#f57c00}.confirm-dialog h2{font-size:1.4rem;color:#333;margin:0 0 .75rem;font-weight:600}.confirm-dialog p{color:#666;font-size:1rem;margin:0 0 1.75rem;line-height:1.5}.confirm-actions{display:flex;gap:1rem;justify-content:center}.confirm-actions .btn{padding:.75rem 1.5rem;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;min-width:100px}.confirm-actions .btn-cancel{background:#f0f0f0;color:#666}.confirm-actions .btn-cancel:hover{background:#e0e0e0;color:#333}.confirm-actions .btn-confirm{color:#fff}.confirm-actions .btn-confirm-default{background:linear-gradient(135deg,#1976d2,#1565c0)}.confirm-actions .btn-confirm-default:hover{box-shadow:0 4px 15px #1976d266;transform:translateY(-1px)}.confirm-actions .btn-confirm-danger{background:linear-gradient(135deg,#dc3545,#c82333)}.confirm-actions .btn-confirm-danger:hover{box-shadow:0 4px 15px #dc354566;transform:translateY(-1px)}.confirm-actions .btn-confirm-warning{background:linear-gradient(135deg,#f57c00,#ef6c00)}.confirm-actions .btn-confirm-warning:hover{box-shadow:0 4px 15px #f57c0066;transform:translateY(-1px)}@media(prefers-reduced-motion:reduce){.confirm-overlay,.confirm-dialog{animation:none}}@media(max-width:480px){.confirm-dialog{padding:1.5rem}.confirm-actions{flex-direction:column}.confirm-actions .btn{width:100%}}.admin-login{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:40px 20px}.login-container{position:relative;z-index:5;width:100%;max-width:420px;background:var(--h-paper);border:1px solid var(--h-rule);padding:44px 40px 40px;text-align:center}.login-container .login-wordmark{display:inline-block;margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid var(--h-rule)}.login-container .h-eyebrow{margin-bottom:10px}.login-container .h-title{margin-bottom:28px}.login-container form{text-align:left}.login-container .login-submit{width:100%;justify-content:center;margin-top:8px}.login-container .back-link{display:inline-block;margin-top:24px;font-family:var(--h-sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--h-mute);text-decoration:none;border-bottom:1px solid var(--h-rule)}.login-container .back-link:hover{color:var(--h-accent);border-bottom-color:var(--h-accent)}.admin-dashboard{min-height:100dvh;background:var(--h-bg);color:var(--h-ink);display:grid;grid-template-columns:240px 1fr}.admin-side{position:sticky;top:0;align-self:start;height:100dvh;overflow-y:auto;background:var(--h-paper);border-right:2px solid var(--h-ink);padding:28px 16px;display:flex;flex-direction:column;gap:4px}.admin-side-mark{font-size:24px;margin:0 8px 28px}.admin-side-group{display:flex;flex-direction:column;gap:2px}.admin-side-label{margin:16px 8px 8px;color:var(--h-mute)}.admin-side .nav-link{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;border-left:3px solid transparent;padding:10px 12px;font-family:var(--h-sans);font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--h-ink-soft);text-decoration:none;cursor:pointer;transition:background .18s ease,color .18s ease}.admin-side .nav-link svg{flex:0 0 auto;color:currentColor}.admin-side .nav-link>span:first-of-type{flex:1}.admin-side .nav-link:hover{background:var(--h-bg);color:var(--h-ink)}.admin-side .nav-link.active{background:var(--h-ink);color:var(--h-paper);border-left-color:var(--h-accent)}.nav-count{font-family:var(--h-mono);font-size:10px;letter-spacing:.04em;color:var(--h-mute)}.nav-link.active .nav-count{color:var(--h-bg)}.admin-side-foot{margin-top:auto;padding-top:20px;border-top:1px dashed var(--h-rule);display:flex;flex-direction:column;gap:2px}.admin-side-user{margin:0 12px 8px;font-family:var(--h-mono);font-size:10px;letter-spacing:.04em;color:var(--h-mute);word-break:break-all}.admin-main{min-width:0;background:var(--h-bg);padding:32px 48px 80px}.admin-main-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;border-bottom:4px double var(--h-ink);padding-bottom:16px;margin-bottom:28px}.admin-main-head .h-eyebrow{display:block;margin-bottom:6px}.admin-main-head h1{margin:0}.message{margin:0 0 20px;padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;font-family:var(--h-sans);font-size:13px;border-left:3px solid var(--h-accent-2);background:#e9efe4;color:var(--h-accent-2)}.message.error{border-left-color:#a3342c;background:#f7e9e7;color:#a3342c}.message button{background:none;border:0;font-size:18px;line-height:1;cursor:pointer;color:inherit}.admin-content{min-width:0}.admin-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:32px}.admin-stat{background:var(--h-paper);border:2px solid var(--h-ink);box-shadow:3px 3px 0 var(--h-rule);padding:18px 20px}.admin-stat .h-smallcaps{display:block;margin-bottom:8px;color:var(--h-ink-soft)}.stat-num{font-family:var(--h-serif);font-weight:400;font-size:48px;line-height:1;letter-spacing:-.01em}.stat-num--date{font-size:34px}.stat-delta{margin-top:8px;font-family:var(--h-mono);font-size:11px;letter-spacing:.02em;color:var(--h-accent-2)}.admin-overview-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:24px;align-items:start}.admin-card{background:var(--h-paper);border:2px solid var(--h-ink);box-shadow:3px 3px 0 var(--h-rule);padding:24px}.admin-card h3{display:flex;align-items:baseline;justify-content:space-between;gap:12px;font-family:var(--h-sans);font-size:18px;font-weight:700;letter-spacing:-.01em;margin-bottom:16px;padding-bottom:12px;border-bottom:2px solid var(--h-ink)}.admin-card h3 .h-smallcaps{color:var(--h-accent)}.editor-row{display:grid;grid-template-columns:56px 1fr auto;gap:16px;align-items:center;padding:14px 0;border-bottom:1px dashed var(--h-rule)}.editor-row:last-child{border-bottom:0}.editor-row .mini-date{border:1.5px solid var(--h-ink);background:var(--h-bg);text-align:center;padding:4px 0 6px}.editor-row .mini-date .m{font-family:var(--h-mono);font-size:9px;letter-spacing:.16em;font-weight:600;color:var(--h-accent)}.editor-row .mini-date .d{font-family:var(--h-serif);font-size:26px;line-height:1}.editor-row .name{font-family:var(--h-sans);font-size:17px;font-weight:600;margin-bottom:2px}.editor-row .meta{font-family:var(--h-mono);font-size:10px;letter-spacing:.06em;color:var(--h-mute)}.pill{font-family:var(--h-sans);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border:1.5px solid var(--h-accent-2);color:var(--h-accent-2);background:var(--h-paper);white-space:nowrap}.pill--muted{border-color:var(--h-rule);color:var(--h-mute)}.recent-list{list-style:none;margin:0;padding:0}.recent-list li{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;padding:12px 0;border-bottom:1px dashed var(--h-rule)}.recent-list li:last-child{border-bottom:0}.recent-list .person{font-family:var(--h-sans);font-size:15px;font-weight:600}.recent-list .sub{margin-top:2px;font-family:var(--h-mono);font-size:10px;letter-spacing:.06em;color:var(--h-mute)}.recent-list .party{font-family:var(--h-serif);font-size:24px;color:var(--h-accent)}.admin-content h2{font-family:var(--h-serif);font-weight:500;font-size:28px;letter-spacing:-.01em;margin-bottom:8px}.panel-description{font-family:var(--h-serif);color:var(--h-ink-soft);margin-bottom:24px;max-width:640px}.panel-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:24px}.panel-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.settings-form{max-width:640px}.char-count,.form-hint,.date-preview{display:block;margin-top:6px;font-family:var(--h-sans);font-size:11px;letter-spacing:.04em;color:var(--h-mute)}.events-list{display:flex;flex-direction:column;gap:16px}.event-item{display:grid;grid-template-columns:72px 1fr auto auto;align-items:center;gap:24px;padding:20px 24px;background:var(--h-paper);border:2px solid var(--h-ink);box-shadow:3px 3px 0 var(--h-rule);transition:transform .15s ease,box-shadow .15s ease}.event-item:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--h-accent)}.event-stamp{width:72px;text-align:center;border:1.5px solid var(--h-ink);background:var(--h-bg);padding:6px 0 8px}.event-stamp .m{font-family:var(--h-mono);font-size:10px;letter-spacing:.16em;font-weight:600;color:var(--h-accent);border-bottom:1px solid var(--h-ink);padding-bottom:4px}.event-stamp .d{font-family:var(--h-serif);font-size:38px;line-height:1;margin-top:4px}.event-info{min-width:0}.event-info-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}.event-info h3{font-family:var(--h-serif);font-weight:500;font-size:24px;letter-spacing:-.01em}.event-meta-row{display:flex;flex-wrap:wrap;gap:6px 18px;font-family:var(--h-mono);font-size:11px;letter-spacing:.04em;color:var(--h-mute)}.event-meta-row .event-type{display:inline-flex;align-items:center;gap:5px;color:var(--h-ink-soft)}.event-motif{color:var(--h-accent);opacity:.85;display:flex;align-items:center;justify-content:center}.event-item.motif-table .event-motif{color:var(--h-accent-2)}.event-item.motif-candle .event-motif{color:var(--h-gold)}.edit-modal{position:fixed;inset:0;background:#1c18128c;display:flex;align-items:flex-start;justify-content:center;padding:48px 20px;z-index:1000;overflow-y:auto}.edit-modal-content{width:100%;max-width:640px;background:var(--h-paper);border:2px solid var(--h-ink);box-shadow:6px 6px 0 var(--h-accent);padding:40px}.edit-modal-content h2{margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--h-ink)}.modal-actions{display:flex;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid var(--h-rule)}.features-list{display:flex;flex-direction:column;gap:8px}.feature-item{display:flex;gap:8px;align-items:center}.feature-item input{flex:1}.btn-remove-feature{background:none;border:1px solid var(--h-rule);color:var(--h-mute);width:36px;height:36px;cursor:pointer;flex:0 0 auto}.btn-remove-feature:hover{border-color:#a3342c;color:#a3342c}.btn-add-feature{align-self:flex-start;margin-top:8px;background:transparent;border:1px dashed var(--h-rule);color:var(--h-ink-soft);padding:8px 16px;font-family:var(--h-sans);font-size:11px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.btn-add-feature:hover{border-color:var(--h-accent);color:var(--h-accent)}.treatment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.treatment-button{text-align:left;background:var(--h-bg);border:1px solid var(--h-rule);padding:16px;cursor:pointer;display:flex;flex-direction:column;gap:6px;transition:border-color .2s ease,background .2s ease}.treatment-button:hover{border-color:var(--h-accent)}.treatment-button.selected{border-color:var(--h-ink);background:var(--h-paper);box-shadow:inset 0 0 0 1px var(--h-ink)}.treatment-name{font-family:var(--h-serif);font-size:17px;font-weight:500}.treatment-desc{font-family:var(--h-sans);font-size:11px;line-height:1.5;color:var(--h-mute)}.rsvp-summary{display:flex;gap:28px;margin-bottom:16px;font-family:var(--h-sans);font-size:13px;color:var(--h-ink-soft)}.summary-item strong{font-family:var(--h-serif);font-size:20px;color:var(--h-ink)}.search-input{min-width:220px}.rsvps-table,.subscriptions-table{overflow-x:auto;border:2px solid var(--h-ink);background:var(--h-paper)}.rsvps-table table,.subscriptions-table table{width:100%;border-collapse:collapse;font-family:var(--h-sans);font-size:13px}.rsvps-table th,.subscriptions-table th{text-align:left;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--h-mute);font-weight:600;padding:14px 16px;border-bottom:1px solid var(--h-ink);white-space:nowrap}.rsvps-table td,.subscriptions-table td{padding:14px 16px;border-bottom:1px dotted var(--h-rule);color:var(--h-ink-soft)}.rsvps-table tr:last-child td,.subscriptions-table tr:last-child td{border-bottom:0}.btn-delete{background:transparent;border:1px solid var(--h-rule);color:#a3342c;padding:6px 14px;font-family:var(--h-sans);font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}.btn-delete:hover:not(:disabled){background:#a3342c;color:var(--h-paper);border-color:#a3342c}.no-data{padding:28px;text-align:center;font-style:italic;color:var(--h-mute)}.notification-form,.template-selector,.template-editor{max-width:720px}.notification-preview{border:2px solid var(--h-ink);background:var(--h-paper);padding:20px;margin:20px 0}.preview-header{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--h-rule)}.preview-header h4{font-family:var(--h-sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--h-mute)}.preview-note{font-family:var(--h-sans);font-size:11px;color:var(--h-mute)}.preview-subject{font-family:var(--h-sans);font-size:13px;margin-bottom:8px}.preview-message{font-family:var(--h-serif);white-space:pre-wrap;color:var(--h-ink-soft)}.notification-actions,.template-actions{display:flex;gap:12px;margin-top:20px}.info-banner{background:#f3ecd9;border-left:3px solid var(--h-gold);padding:12px 16px;font-family:var(--h-sans);font-size:13px;color:var(--h-ink-soft);margin-bottom:16px}.placeholders-guide{border:2px solid var(--h-ink);background:var(--h-paper);padding:16px 20px;margin-bottom:20px}.placeholders-guide h3{font-family:var(--h-sans);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--h-mute);margin-bottom:12px}.placeholder-list{display:flex;flex-direction:column;gap:4px;font-family:var(--h-sans);font-size:13px;color:var(--h-ink-soft)}.placeholder-list code{background:var(--h-bg);border:1px solid var(--h-rule);padding:1px 6px;margin-right:6px}@media(max-width:1080px){.admin-stats{grid-template-columns:repeat(2,1fr)}.admin-overview-grid{grid-template-columns:1fr}}@media(max-width:860px){.admin-dashboard{grid-template-columns:1fr}.admin-side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 8px;border-right:0;border-bottom:2px solid var(--h-ink);padding:16px 24px}.admin-side-mark{flex-basis:100%;margin:0 0 8px}.admin-side-group{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px}.admin-side-label{display:none}.admin-side .nav-link{width:auto;border-left:0;border-bottom:3px solid transparent;padding:8px 10px}.admin-side .nav-link>span:first-of-type{flex:0 0 auto}.admin-side .nav-link.active{border-left-color:transparent;border-bottom-color:var(--h-accent)}.admin-side-foot{margin:0 0 0 auto;padding:0;border-top:0;flex-direction:row;align-items:center}.admin-side-user{display:none}.admin-main{padding:24px}}@media(max-width:560px){.admin-stats{grid-template-columns:1fr}.edit-modal-content{padding:28px 20px}}.error-boundary{min-height:100vh;display:flex;justify-content:center;align-items:center;padding:2rem;background:var(--h-bg, #f5efe1)}.error-boundary-content{text-align:center;max-width:500px;background:var(--h-paper, #fdf9ef);border:1px solid var(--h-rule, #c9bba0);font-family:var(--h-serif, Georgia, serif);padding:3rem;border-radius:0;box-shadow:0 10px 40px #1c18121a}.error-icon{width:80px;height:80px;margin:0 auto 1.5rem;color:#dc3545}.error-icon svg{width:100%;height:100%}.error-boundary-content h1{font-size:1.8rem;color:#333;margin-bottom:1rem}.error-boundary-content p{color:#666;font-size:1.1rem;margin-bottom:2rem;line-height:1.6}.error-boundary-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.error-boundary-actions .btn{padding:.75rem 2rem;border-radius:8px;font-weight:600;font-size:1rem;text-decoration:none;transition:all .3s ease;cursor:pointer;border:none}.error-boundary-actions .btn-primary{background:var(--h-ink, #1c1812);color:var(--h-paper, #fdf9ef)}.error-boundary-actions .btn-primary:hover{transform:translateY(-1px);background:var(--h-accent, #7a2e2e)}.error-boundary-actions .btn-secondary{background:transparent;border:1px solid var(--h-ink, #1c1812);color:var(--h-ink, #1c1812)}.error-boundary-actions .btn-secondary:hover{background:var(--h-ink, #1c1812);color:var(--h-paper, #fdf9ef)}.error-details{margin-top:2rem;text-align:left;background:#f8f8f8;padding:1rem;border-radius:8px}.error-details summary{cursor:pointer;font-weight:600;color:#666;margin-bottom:.5rem}.error-details pre{font-size:.85rem;color:#dc3545;overflow-x:auto;white-space:pre-wrap;word-break:break-word;margin:.5rem 0 0}.App{min-height:100dvh}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--h-sans);font-size:13px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;padding:14px 26px;border:0;border-radius:0;cursor:pointer;text-decoration:none;transition:background .2s ease,color .2s ease,transform .2s ease}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary{background:var(--h-ink);color:var(--h-paper)}.btn-primary:hover:not(:disabled){background:var(--h-accent);transform:translateY(-1px)}.btn-secondary{background:transparent;color:var(--h-ink);border:1px solid var(--h-ink)}.btn-secondary:hover:not(:disabled){background:var(--h-ink);color:var(--h-paper)}.btn-outline{background:transparent;border:1px solid var(--h-rule);color:var(--h-ink)}.btn-outline:hover:not(:disabled){background:var(--h-bg);border-color:var(--h-ink)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-family:var(--h-sans);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--h-mute)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:12px 14px;border:1px solid var(--h-rule);border-radius:0;font-size:1rem;font-family:var(--h-serif);background:var(--h-paper);color:var(--h-ink);transition:border-color .2s ease,box-shadow .2s ease}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--h-accent);box-shadow:0 0 0 2px #7a2e2e1f}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--h-mute);font-style:italic}.form-group textarea{min-height:100px;resize:vertical}.form-error{color:#a3342c;font-size:.875rem;margin-top:.35rem}.card{background:var(--h-paper);border:1px solid var(--h-rule);border-radius:0;padding:2rem;transition:transform .3s ease,box-shadow .3s ease}.card:hover{transform:translateY(-3px);box-shadow:0 4px 24px #1c18120f}.loading{display:flex;justify-content:center;align-items:center;min-height:400px;font-family:var(--h-serif);font-style:italic;font-size:1.3rem;color:var(--h-mute)}.error{background:#f7e9e7;color:#a3342c;padding:1rem 1.5rem;border-radius:0;margin:1rem 0;border-left:3px solid #a3342c}.success{background:#e9efe4;color:var(--h-accent-2);padding:1rem 1.5rem;border-radius:0;margin:1rem 0;border-left:3px solid var(--h-accent-2)}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .6s ease-out}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.mb-4{margin-bottom:2rem}@media(max-width:768px){.btn{padding:12px 20px;font-size:12px}}
