@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600&display=swap");:root{--violet:#5754A0;--violet-light:#7b78c0;--violet-deep:#3f3d7a;--violet-mist:#efeff9;--violet-pale:#f7f7fc;--green:#5E9E65;--green-light:#88bb8e;--green-deep:#3d7244;--green-mist:#eef6ef;--green-pale:#f5faf5;--offwhite:#f8f6f1;--offwhite-2:#f2efe8;--offwhite-3:#ede9e0;--stone-50:#faf9f7;--stone-100:#f2f0eb;--stone-200:#e4e0d8;--stone-300:#c8c3b8;--stone-400:#a09890;--stone-500:#7a7268;--stone-600:#5e5850;--stone-700:#46413a;--stone-800:#302c26;--stone-900:#1e1b16;--bg:var(--offwhite);--surface:#ffffff;--surface-2:var(--offwhite-2);--border:#e2ddd4;--border-md:#cec8bc;--text-1:var(--stone-900);--text-2:var(--stone-700);--text-3:var(--stone-500);--accent:var(--violet);--accent-2:var(--violet-light);--accent-bg:var(--violet-mist);--accent-pale:var(--violet-pale);--green-accent:var(--green);--green-accent-bg:var(--green-mist);--radius-sm:8px;--radius:14px;--radius-lg:20px;--radius-pill:999px;--font-display:"Cormorant Garamond",Georgia,serif;--font-body:"DM Sans","Helvetica Neue",Arial,sans-serif;--nav-h:62px;--shadow-xs:0 1px 3px rgba(87,84,160,0.06);--shadow-sm:0 2px 8px rgba(87,84,160,0.08);--shadow-md:0 4px 20px rgba(87,84,160,0.11);--shadow-lg:0 8px 36px rgba(87,84,160,0.14)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font-body);background:var(--bg);color:var(--text-1);line-height:1.6;min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 900px 600px at 0 0,rgba(87,84,160,.06) 0,transparent 70%),radial-gradient(ellipse 700px 700px at 100% 100%,rgba(94,158,101,.05) 0,transparent 70%),radial-gradient(ellipse 500px 400px at 50% 50%,rgba(248,246,241,.4) 0,transparent 70%)}#root{position:relative;z-index:1}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--offwhite-2)}::-webkit-scrollbar-thumb{background:var(--violet-light);border-radius:10px;opacity:.5}::-webkit-scrollbar-thumb:hover{background:var(--violet)}h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-1);font-weight:600;line-height:1.25}a{text-decoration:none;color:inherit}button{cursor:pointer}button,input,select,textarea{font-family:var(--font-body);border:none;outline:none}@keyframes fadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes heartPop{0%{transform:scale(1)}35%{transform:scale(1.55)}65%{transform:scale(.9)}to{transform:scale(1)}}@keyframes wingFloat{0%,to{transform:translateY(0) rotate(-4deg)}25%{transform:translateY(-12px) rotate(3deg)}50%{transform:translateY(-5px) rotate(-2deg)}75%{transform:translateY(-15px) rotate(4deg)}}@keyframes drift{0%{transform:translateX(-80px) translateY(0);opacity:0}6%{opacity:1}90%{opacity:1}to{transform:translateX(110vw) translateY(-40px);opacity:0}}.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);transition:box-shadow .28s ease,transform .28s ease}.card:hover{box-shadow:var(--shadow-md)}.btn{display:inline-flex;align-items:center;gap:7px;padding:9px 20px;border-radius:var(--radius-pill);font-size:.875rem;font-weight:500;letter-spacing:.01em;transition:all .22s ease}.btn-primary{background:var(--violet);color:#fff;box-shadow:0 3px 12px rgba(87,84,160,.28)}.btn-primary:hover{background:var(--violet-deep);transform:translateY(-1px);box-shadow:0 5px 18px rgba(87,84,160,.36)}.btn-secondary{background:var(--accent-bg);color:var(--violet);border:1px solid #d0ceee}.btn-secondary:hover{background:#e4e3f5;transform:translateY(-1px)}.btn-green{background:var(--green);color:#fff;box-shadow:0 3px 12px rgba(94,158,101,.28)}.btn-green:hover{background:var(--green-deep);transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--text-2)}.btn-ghost:hover{background:var(--accent-bg);color:var(--violet)}.input-field{width:100%;padding:11px 15px;background:var(--offwhite);border:1.5px solid var(--border-md);border-radius:var(--radius-sm);font-size:.9rem;color:var(--text-1);transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--violet);box-shadow:0 0 0 3px rgba(87,84,160,.12);background:#fff}.input-field::placeholder{color:var(--text-3)}.tag{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--radius-pill);font-size:.72rem;font-weight:500;letter-spacing:.03em;background:var(--violet-mist);color:var(--violet);border:1px solid #d0ceee}.tag-green{background:var(--green-mist);color:var(--green-deep);border-color:#c0dbc3}.avatar{border-radius:50%;background:linear-gradient(135deg,var(--violet-mist),#d0ceee);font-family:var(--font-display);font-weight:600;color:var(--violet-deep);flex-shrink:0}.avatar,.modal-overlay{display:flex;align-items:center;justify-content:center}.modal-overlay{position:fixed;inset:0;background:rgba(30,27,22,.4);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;animation:fadeIn .2s ease;padding:20px}.modal{background:var(--surface);border-radius:var(--radius-lg);animation:scaleIn .22s ease;max-height:90vh;overflow-y:auto;width:100%}.modal,.toast{box-shadow:var(--shadow-lg)}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:var(--stone-800);color:#fff;padding:11px 22px;border-radius:var(--radius-pill);font-size:.875rem;font-weight:400;z-index:9999;animation:fadeUp .3s ease;letter-spacing:.01em;white-space:nowrap}.spinner{width:34px;height:34px;border:2px solid var(--border-md);border-top-color:var(--violet);border-radius:50%;animation:spin .75s linear infinite;margin:40px auto}.divider{height:1px;background:var(--border);margin:12px 0}.no-clip{overflow:visible!important}