:root{--bg: #faf6ed;--bg2: #f5efe0;--bg3: #ede3d0;--bg-dark: #1a0f0a;--bg-dark2: #2c1810;--ink: #1a0f0a;--ink2: #3d2b1f;--ink3: #6b4c3b;--sepia: #c8a96e;--sepia2: #e8d5a3;--sepia3: #f0e4c2;--bordeaux: #6b1a2a;--bordeaux2: #8b2a3c;--bordeaux3: #c44d64;--gold: #d4a017;--gold2: #f0c040;--sage: #4a6741;--text: #1a0f0a;--text2: #4a3728;--text3: #7a6050;--text-inv: #faf6ed;--border: #d4c4a8;--border2: #e8d8bc;--border-dark: #3d2b1f;--shadow: 0 4px 20px rgba(26,15,10,.12);--shadow-lg: 0 8px 40px rgba(26,15,10,.18);--shadow-ink: 0 2px 8px rgba(26,15,10,.25);--radius: 10px;--radius-lg: 18px;--radius-xl: 28px;--font-d: "Playfair Display", Georgia, serif;--font-b: "Outfit", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-b);background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)' opacity='0.03'/%3E%3C/svg%3E")}h1,h2,h3{font-family:var(--font-d);line-height:1.2}h4,h5,h6{font-family:var(--font-b);font-weight:600}a{color:var(--bordeaux);text-decoration:none;transition:color .18s}a:hover{color:var(--bordeaux2)}.drop-cap:first-letter{font-family:var(--font-d);font-size:4rem;font-weight:900;float:left;line-height:.75;margin:0 8px -4px 0;color:var(--bordeaux)}::-webkit-scrollbar{width:7px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--sepia);border-radius:4px}.divider{border:none;border-top:1px solid var(--border);position:relative;margin:32px 0}.divider:after{content:"◆";position:absolute;top:-10px;left:50%;transform:translate(-50%);background:var(--bg);padding:0 12px;color:var(--sepia);font-size:.7rem}.btn{display:inline-flex;align-items:center;gap:7px;padding:10px 22px;border-radius:var(--radius);border:none;font-family:var(--font-b);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease;white-space:nowrap;letter-spacing:.02em}.btn-primary{background:var(--bordeaux);color:var(--text-inv);box-shadow:0 2px 8px #6b1a2a4d}.btn-primary:hover{background:var(--bordeaux2);transform:translateY(-1px);box-shadow:0 4px 14px #6b1a2a66}.btn-gold{background:var(--gold);color:var(--ink);box-shadow:0 2px 8px #d4a0174d}.btn-gold:hover{background:var(--gold2);transform:translateY(-1px)}.btn-outline{background:transparent;color:var(--bordeaux);border:1.5px solid var(--bordeaux)}.btn-outline:hover{background:var(--bordeaux);color:var(--text-inv)}.btn-ghost{background:var(--bg3);color:var(--text2);border:1px solid var(--border)}.btn-ghost:hover{background:var(--bg2);border-color:var(--sepia)}.btn-ghost-dark{background:#ffffff14;color:var(--text-inv);border:1px solid rgba(255,255,255,.15)}.btn-ghost-dark:hover{background:#ffffff26}.btn-danger{background:#8b1a1a;color:#fff}.btn-sm{padding:6px 14px;font-size:.82rem}.btn-lg{padding:13px 32px;font-size:1rem}.btn-xl{padding:16px 40px;font-size:1.05rem}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.form-group label{font-size:.83rem;font-weight:600;color:var(--ink3);letter-spacing:.03em;text-transform:uppercase}.form-control{width:100%;padding:11px 14px;background:#fff;border:1.5px solid var(--border);border-radius:var(--radius);color:var(--text);font-family:var(--font-b);font-size:.95rem;transition:border-color .18s,box-shadow .18s}.form-control:focus{outline:none;border-color:var(--bordeaux);box-shadow:0 0 0 3px #6b1a2a1a}.form-control::placeholder{color:var(--text3);opacity:.7}select.form-control{cursor:pointer}textarea.form-control{resize:vertical;min-height:90px}.checkbox-row{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.checkbox-row input[type=checkbox]{width:18px;height:18px;accent-color:var(--bordeaux);flex-shrink:0;margin-top:2px;cursor:pointer}.checkbox-row span{font-size:.85rem;color:var(--text2);line-height:1.5}.card{background:#fff;border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;transition:transform .22s ease,box-shadow .22s ease;box-shadow:var(--shadow)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.card-dark{background:var(--bg-dark2);border:1px solid var(--border-dark);border-radius:var(--radius-lg);overflow:hidden}.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.badge-bordeaux{background:#6b1a2a1f;color:var(--bordeaux2);border:1px solid rgba(107,26,42,.2)}.badge-gold{background:#d4a01726;color:#8a6200;border:1px solid rgba(212,160,23,.3)}.badge-sage{background:#4a67411f;color:var(--sage);border:1px solid rgba(74,103,65,.2)}.badge-sepia{background:#c8a96e33;color:var(--ink3);border:1px solid rgba(200,169,110,.3)}.badge-gray{background:var(--bg3);color:var(--text3);border:1px solid var(--border)}.badge-exchange{background:#4a67411f;color:var(--sage);border:1px solid rgba(74,103,65,.25)}.stars{color:var(--gold);letter-spacing:2px}.tabs{display:flex;gap:4px;background:var(--bg3);padding:4px;border-radius:12px;margin-bottom:24px;border:1px solid var(--border)}.tab{flex:1;padding:9px 16px;border-radius:9px;border:none;font-family:var(--font-b);font-size:.88rem;font-weight:600;cursor:pointer;transition:all .18s;color:var(--text3);background:transparent}.tab.active{background:var(--bordeaux);color:#fff;box-shadow:0 2px 8px #6b1a2a40}.tab:hover:not(.active){background:var(--bg2);color:var(--text)}.alert{padding:12px 16px;border-radius:var(--radius);font-size:.9rem;display:flex;align-items:flex-start;gap:10px;line-height:1.5}.alert-success{background:#4a67411a;color:var(--sage);border:1px solid rgba(74,103,65,.3)}.alert-error{background:#8b1a1a14;color:#8b1a1a;border:1px solid rgba(139,26,26,.2)}.alert-info{background:#c8a96e1f;color:var(--ink3);border:1px solid var(--border)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1a0f0aa6;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.modal{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-xl);padding:32px;max-width:500px;width:100%;max-height:92vh;overflow-y:auto;box-shadow:var(--shadow-lg);position:relative}.container{max-width:1200px;margin:0 auto;padding:0 24px}.container-sm{max-width:720px;margin:0 auto;padding:0 24px}.page-wrap{padding:40px 0 80px}.spinner{width:38px;height:38px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--bordeaux);animation:spin .75s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.eyebrow{display:inline-block;padding:4px 14px;background:#6b1a2a1a;color:var(--bordeaux2);border-radius:20px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;border:1px solid rgba(107,26,42,.15)}.ornament{display:flex;align-items:center;gap:16px;color:var(--sepia);font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;margin:32px 0}.ornament:before,.ornament:after{content:"";flex:1;height:1px;background:linear-gradient(to right,transparent,var(--border),transparent)}.spine-pattern{background-image:repeating-linear-gradient(90deg,transparent 0px,transparent 28px,rgba(200,169,110,.08) 28px,rgba(200,169,110,.08) 30px)}.chat-bubble{max-width:75%;padding:10px 14px;border-radius:16px;font-size:.9rem;line-height:1.5;position:relative}.chat-bubble-mine{background:var(--bordeaux);color:#fff;border-bottom-right-radius:4px;margin-left:auto}.chat-bubble-theirs{background:#fff;border:1px solid var(--border);color:var(--text);border-bottom-left-radius:4px}.leaflet-container{font-family:var(--font-b)!important}.leaflet-popup-content-wrapper{background:#fff;border:1px solid var(--border);border-radius:12px!important;box-shadow:var(--shadow-lg);color:var(--text)}.leaflet-popup-tip{background:#fff}@media(max-width:768px){.hide-mobile{display:none!important}.container{padding:0 16px}.modal{padding:24px 20px}}@media(min-width:769px){.hide-desktop{display:none!important}}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-up{animation:fadeUp .5s ease forwards}.fade-up-1{animation-delay:.1s;opacity:0}.fade-up-2{animation-delay:.2s;opacity:0}.fade-up-3{animation-delay:.3s;opacity:0}.fade-up-4{animation-delay:.4s;opacity:0}
