.page-loader{display:flex;align-items:center;justify-content:center;min-height:50vh}.loader-dots{display:flex;gap:8px}.loader-dots span{display:block;width:8px;height:8px;background:var(--gold);border-radius:50%;animation:dotPulse 1.2s infinite ease-in-out}.loader-dots span:nth-child(2){animation-delay:.2s}.loader-dots span:nth-child(3){animation-delay:.4s}.toast-container{position:fixed;bottom:24px;right:24px;z-index:9999;display:flex;flex-direction:column;gap:10px;max-width:360px}.toast{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--ink2);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:var(--radius-md);box-shadow:var(--shadow);font-size:14px;color:var(--smoke);opacity:0;transform:translate(20px);transition:opacity .25s var(--ease),transform .25s var(--ease)}.toast-visible{opacity:1;transform:translate(0)}.toast-success{border-left-color:var(--success)}.toast-error{border-left-color:var(--error)}.toast-warning{border-left-color:var(--warning)}.toast-info{border-left-color:var(--gold)}.toast-icon{font-size:16px;flex-shrink:0}.toast-success .toast-icon{color:var(--success)}.toast-error .toast-icon{color:var(--error)}.toast-warning .toast-icon{color:var(--warning)}.toast-info .toast-icon{color:var(--gold)}.toast-message{flex:1;line-height:1.4}.toast-close{background:none;border:none;color:var(--silver);cursor:pointer;font-size:12px;padding:2px;flex-shrink:0;transition:color var(--duration) var(--ease)}.toast-close:hover{color:var(--smoke)}@media(max-width:640px){.toast-container{bottom:16px;right:16px;left:16px;max-width:100%}}.navbar{position:fixed;top:0;left:0;right:0;z-index:1000;height:72px;background:transparent;transition:background var(--duration) var(--ease),box-shadow var(--duration) var(--ease),border-bottom var(--duration) var(--ease)}.navbar-scrolled{background:#0a0a0ceb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);box-shadow:0 4px 24px #0006}.navbar-inner{display:flex;align-items:center;justify-content:space-between;height:100%}.navbar-logo{display:flex;flex-direction:column;text-decoration:none;gap:1px}.logo-text{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--gold);letter-spacing:4px;line-height:1}.logo-sub{font-size:9px;letter-spacing:3px;text-transform:uppercase;color:var(--silver)}.navbar-nav{display:flex;align-items:center;gap:var(--space-lg)}.nav-link{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--silver);text-decoration:none;transition:color var(--duration) var(--ease);position:relative}.nav-link:after{content:"";position:absolute;left:0;bottom:-4px;width:0;height:1px;background:var(--gold);transition:width var(--duration) var(--ease)}.nav-link:hover,.nav-link.active{color:var(--smoke)}.nav-link.active:after,.nav-link:hover:after{width:100%}.nav-user,.nav-auth{display:flex;align-items:center;gap:var(--space-md)}.nav-burger{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:4px}.nav-burger span{display:block;width:22px;height:1.5px;background:var(--silver);transition:all .25s var(--ease);transform-origin:center}.nav-burger-open span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}.nav-burger-open span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-burger-open span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}@media(max-width:768px){.nav-burger{display:flex}.navbar-nav{position:fixed;top:72px;left:0;right:0;background:#0a0a0cfa;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:0;padding:var(--space-md) var(--space-lg);transform:translateY(-100%);opacity:0;pointer-events:none;transition:transform .3s var(--ease),opacity .3s var(--ease)}.navbar-nav.nav-open{transform:translateY(0);opacity:1;pointer-events:auto}.nav-link{width:100%;padding:14px 0;border-bottom:1px solid var(--line);font-size:13px}.nav-user,.nav-auth{flex-direction:column;align-items:flex-start;width:100%;gap:var(--space-sm);padding-top:var(--space-md)}.nav-auth .btn{width:100%;justify-content:center}}.footer{border-top:1px solid var(--line);padding:var(--space-xl) 0;margin-top:auto}.footer-inner{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);flex-wrap:wrap}.footer-logo{font-family:var(--font-display);font-size:20px;font-weight:700;color:var(--gold);letter-spacing:4px;display:block}.footer-tagline{font-size:12px;color:var(--silver);letter-spacing:1px;margin-top:2px}.footer-nav{display:flex;gap:var(--space-lg)}.footer-nav a{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--silver);transition:color var(--duration) var(--ease)}.footer-nav a:hover{color:var(--gold)}.footer-copy{font-size:11px;color:var(--silver);opacity:.6}@media(max-width:640px){.footer-inner{flex-direction:column;text-align:center}.footer-nav{justify-content:center}}.cookie-backdrop{position:fixed;bottom:0;left:0;right:0;z-index:8000;padding:16px;background:linear-gradient(to top,rgba(10,10,12,.95) 0%,transparent 100%);display:flex;justify-content:center;align-items:flex-end;pointer-events:none}.cookie-banner{width:100%;max-width:680px;background:var(--ink2);border:1px solid var(--line);border-radius:var(--radius-lg);padding:var(--space-lg) var(--space-xl);box-shadow:var(--shadow);pointer-events:auto;animation:slideUp .4s var(--ease)}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.cookie-header{display:flex;align-items:flex-start;gap:14px;margin-bottom:var(--space-md)}.cookie-icon{font-size:22px;flex-shrink:0;margin-top:2px}.cookie-header strong{display:block;font-size:15px;color:var(--smoke);margin-bottom:3px}.cookie-header p{font-size:13px;color:var(--silver);line-height:1.5}.cookie-details{border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:var(--space-md);overflow:hidden;animation:fadeIn .2s var(--ease)}.cookie-type{padding:var(--space-md);border-bottom:1px solid var(--line)}.cookie-type:last-child{border-bottom:none}.ct-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px;font-size:13px;font-weight:600;color:var(--smoke)}.cookie-type p{font-size:12px;color:var(--silver);line-height:1.5}.ct-badge{font-size:10px;letter-spacing:1px;text-transform:uppercase;padding:2px 8px;border-radius:2px}.ct-required{background:var(--success-dim);color:var(--success)}.ct-optional{background:var(--gold-dim);color:var(--gold)}.cookie-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);flex-wrap:wrap;margin-bottom:var(--space-sm)}.cookie-details-toggle{background:none;border:none;color:var(--silver);font-size:12px;cursor:pointer;text-decoration:underline;font-family:var(--font-body);padding:0;transition:color var(--duration)}.cookie-details-toggle:hover{color:var(--gold)}.cookie-btns{display:flex;gap:10px}.cookie-legal{font-size:11px;color:var(--silver);opacity:.7;text-align:center;margin-top:10px}.cookie-legal a{color:var(--silver);text-decoration:underline}.cookie-legal a:hover{color:var(--gold)}@media(max-width:480px){.cookie-banner{padding:var(--space-md)}.cookie-actions{flex-direction:column;align-items:stretch}.cookie-btns{justify-content:flex-end}}.pwa-banner{position:fixed;bottom:80px;left:50%;transform:translate(-50%);z-index:9000;width:calc(100% - 32px);max-width:480px;display:flex;align-items:center;gap:14px;padding:16px 20px;background:var(--ink2);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow);animation:slideUp .35s var(--ease)}.pwa-install{border-bottom:3px solid var(--gold)}.pwa-update{border-bottom:3px solid var(--success)}@keyframes slideUp{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.pwa-app-icon{width:44px;height:44px;border-radius:10px;background:var(--gold-dim);border:1px solid var(--gold);color:var(--gold);font-family:var(--font-display);font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.pwa-icon{font-size:22px;flex-shrink:0}.pwa-text{flex:1;display:flex;flex-direction:column;gap:2px}.pwa-text strong{font-size:14px;color:var(--smoke)}.pwa-text span{font-size:12px;color:var(--silver)}.pwa-actions{display:flex;gap:8px;flex-shrink:0}.pwa-close{background:none;border:none;color:var(--silver);cursor:pointer;font-size:13px;padding:4px;flex-shrink:0;transition:color var(--duration)}.pwa-close:hover{color:var(--smoke)}@media(max-width:480px){.pwa-banner{flex-wrap:wrap;bottom:16px}.pwa-actions{width:100%;justify-content:flex-end}}:root{--ink: #0a0a0c;--ink2: #111116;--ink3: #18181f;--ink4: #22222c;--smoke: #f5f3ef;--fog: #e8e5de;--gold: #c8a96e;--gold2: #e8c98a;--gold-dim: rgba(200, 169, 110, .12);--silver: #8a8a9a;--line: #2a2a35;--error: #e05252;--error-dim: rgba(224, 82, 82, .12);--success: #52a88e;--success-dim: rgba(82, 168, 142, .12);--warning: #e0a352;--font-display: "Playfair Display", Georgia, serif;--font-serif: "Cormorant Garamond", Georgia, serif;--font-body: "Outfit", system-ui, sans-serif;--space-xs: 4px;--space-sm: 8px;--space-md: 16px;--space-lg: 24px;--space-xl: 40px;--space-2xl: 64px;--radius: 3px;--radius-md: 6px;--radius-lg: 12px;--shadow: 0 8px 40px rgba(0, 0, 0, .5);--shadow-sm: 0 2px 12px rgba(0, 0, 0, .3);--shadow-gold: 0 0 24px rgba(200, 169, 110, .15);--ease: cubic-bezier(.4, 0, .2, 1);--duration: .2s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px}body{background-color:var(--ink);color:var(--smoke);font-family:var(--font-body);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--smoke)}h1{font-size:clamp(2rem,5vw,3.5rem)}h2{font-size:clamp(1.5rem,3vw,2.25rem)}h3{font-size:clamp(1.2rem,2vw,1.5rem)}a{color:var(--gold);text-decoration:none;transition:color var(--duration) var(--ease)}a:hover{color:var(--gold2)}input,textarea,select,button{font-family:var(--font-body)}.app{display:flex;flex-direction:column;min-height:100vh}.main-content{flex:1;padding-top:72px}.container{max-width:1200px;margin:0 auto;padding:0 var(--space-lg)}.page{padding:var(--space-2xl) 0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:12px 28px;font-size:13px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;cursor:pointer;border:1px solid transparent;border-radius:var(--radius);transition:all var(--duration) var(--ease);white-space:nowrap;text-decoration:none}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--gold);color:var(--ink);border-color:var(--gold)}.btn-primary:hover:not(:disabled){background:transparent;color:var(--gold)}.btn-secondary{background:transparent;color:var(--gold);border-color:var(--gold)}.btn-secondary:hover:not(:disabled){background:var(--gold);color:var(--ink)}.btn-ghost{background:transparent;color:var(--silver);border-color:var(--line)}.btn-ghost:hover:not(:disabled){color:var(--smoke);border-color:var(--silver)}.btn-danger{background:transparent;color:var(--error);border-color:var(--error)}.btn-danger:hover:not(:disabled){background:var(--error);color:#fff}.btn-sm{padding:8px 18px;font-size:11px}.btn-lg{padding:16px 40px;font-size:14px}.btn-full{width:100%}.field{display:flex;flex-direction:column;gap:var(--space-xs);margin-bottom:var(--space-md)}.field label{font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--silver)}.input{width:100%;padding:12px 0;background:transparent;border:none;border-bottom:1px solid var(--line);color:var(--smoke);font-size:15px;outline:none;transition:border-color var(--duration) var(--ease);border-radius:0}.input:focus{border-bottom-color:var(--gold)}.input::placeholder{color:var(--silver)}.input.error{border-bottom-color:var(--error)}.field-error{font-size:12px;color:var(--error);display:flex;align-items:center;gap:4px}.textarea{min-height:120px;resize:vertical;border:1px solid var(--line);border-radius:var(--radius);padding:12px;background:var(--ink2)}.textarea:focus{border-color:var(--gold)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:var(--ink2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 40px 12px 14px;color:var(--smoke);cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%238a8a9a' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:20px}.select:focus{border-color:var(--gold);outline:none}.card{background:var(--ink2);border:1px solid var(--line);border-radius:var(--radius-md);padding:var(--space-lg);transition:border-color var(--duration) var(--ease)}.card:hover{border-color:#c8a96e4d}.card-gold{border-left:3px solid var(--gold)}.badge{display:inline-block;padding:3px 10px;font-size:11px;font-weight:500;letter-spacing:1px;text-transform:uppercase;border-radius:20px}.badge-pending{background:#e0a35226;color:var(--warning)}.badge-confirmed{background:var(--success-dim);color:var(--success)}.badge-cancelled{background:var(--error-dim);color:var(--error)}.badge-completed{background:#8a8a9a26;color:var(--silver)}.badge-read{background:var(--gold-dim);color:var(--gold)}.badge-replied{background:var(--success-dim);color:var(--success)}.divider{height:1px;background:var(--line);margin:var(--space-lg) 0}.gold-divider{height:1px;width:60px;background:var(--gold);margin:var(--space-md) 0}.empty-state{text-align:center;padding:var(--space-2xl);color:var(--silver)}.empty-state h3{font-family:var(--font-display);color:var(--silver);margin-bottom:var(--space-sm)}.section-title{margin-bottom:var(--space-xl)}.section-title .eyebrow{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:var(--space-sm)}@keyframes fadeIn{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .35s var(--ease) both}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--ink)}::-webkit-scrollbar-thumb{background:var(--line);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--silver)}@keyframes dotPulse{0%,80%,to{transform:scale(0);opacity:.3}40%{transform:scale(1);opacity:1}}@media(max-width:640px){.container{padding:0 var(--space-md)}.page{padding:var(--space-xl) 0}}
