@import "https://fonts.googleapis.com/css2?family=Playfair+Display:wght@500;700&family=Nunito:wght@400;600;700&display=swap";:root{--bg:#fff8ef;--bg-soft:#fff2df;--panel:#fffaf4e6;--text:#4a302a;--text-soft:#7d5a50;--accent:#c4553d;--accent-strong:#ab3b26;--gold:#d8a25a;--rose:#d27b8f;--line:#c4553d38;--shadow:0 18px 40px #ba7a582e}*{box-sizing:border-box}body{min-height:100vh;color:var(--text);background:radial-gradient(circle at 10% 15%, #d27b8f33, transparent 35%), radial-gradient(circle at 85% 15%, #d8a25a33, transparent 32%), radial-gradient(circle at 30% 85%, #c4553d21, transparent 40%), var(--bg);background-attachment:fixed;margin:0;font-family:Nunito,sans-serif}h1,h2,h3{letter-spacing:.01em;font-family:Playfair Display,serif}.page{width:min(1180px,96vw);margin:0 auto;padding:32px 0 48px}.shell{place-items:center;min-height:100vh;display:grid}.loading-card,.login-card{border:1px solid var(--line);background:var(--panel);width:min(680px,100%);box-shadow:var(--shadow);border-radius:28px;padding:34px}.loading-card{text-align:center;font-size:1.15rem}.eyebrow{text-transform:uppercase;letter-spacing:.24em;color:var(--accent);margin:0;font-size:.73rem;font-weight:700}.subtitle{color:var(--text-soft);margin:0;line-height:1.55}.login-card h1{margin:10px 0;font-size:clamp(2rem,5vw,3rem)}.login-form{gap:10px;margin-top:22px;display:flex}input,button{font:inherit;border-radius:14px}input{border:1px solid var(--line);color:var(--text);background:#fff;flex:1;min-width:0;padding:12px 14px}input:focus{outline-offset:1px;outline:2px solid #c4553d59}button{cursor:pointer;background:linear-gradient(120deg, var(--accent), var(--rose));color:#fffdf9;border:0;padding:11px 16px;font-weight:700;transition:transform .16s,filter .16s}button:hover{filter:saturate(1.1);transform:translateY(-1px)}button:disabled{opacity:.6;cursor:not-allowed}.ghost{color:var(--accent-strong);border:1px solid var(--line);background:#fff}.hero{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:28px;justify-content:space-between;align-items:flex-start;gap:18px;padding:26px;animation:.42s both reveal;display:flex}.hero h1{margin:10px 0 8px;font-size:clamp(1.9rem,4.2vw,2.8rem)}.progress-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px;margin-top:18px;display:grid}.progress-card{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:16px}.progress-card p{color:var(--text-soft);margin:0}.progress-card strong{margin-top:4px;font-size:1.2rem;display:block}.progress-card.done strong{color:var(--accent-strong)}.progress-track{background:#c4553d26;border-radius:999px;height:9px;margin-top:10px;overflow:hidden}.progress-track span{background:linear-gradient(90deg, var(--gold), var(--accent));height:100%;display:block}.composer,.catalogue,.result{border:1px solid var(--line);background:var(--panel);box-shadow:var(--shadow);border-radius:24px;margin-top:18px;padding:22px}.composer h2,.catalogue h2,.result h2{margin:0 0 12px;font-size:1.7rem}.composer-form{grid-template-columns:1.2fr 1fr auto;gap:10px;display:grid}.catalogue-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.category{margin-top:18px}.category h3{color:var(--accent-strong);margin:0 0 9px;font-size:1.2rem}.cards{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.passion-card{border:1px solid var(--line);background:var(--bg-soft);border-radius:16px;padding:12px;animation:.28s both fadeIn;position:relative}.passion-card.shared{background:linear-gradient(170deg,#fff6f2f5,#ffebe5f5);border-color:#c4313b94;box-shadow:0 10px 24px #c4313b29}.passion-card p{margin:0 0 10px;font-weight:700}.shared-badge{letter-spacing:.04em;color:#fff;background:linear-gradient(130deg,#bf2e3f,#df6a5c);border-radius:999px;padding:4px 8px;font-size:.68rem;font-weight:800;position:absolute;top:8px;right:10px}.passion-card.celebrate:before,.passion-card.celebrate:after{content:"";pointer-events:none;border-radius:18px;position:absolute;inset:-8px}.passion-card.celebrate:before{background:radial-gradient(circle,#f04d61 2px,#0000 3px) 10% 10%/28px 24px,radial-gradient(circle,#d68d3a 2px,#0000 3px) 40% 12%/26px 22px,radial-gradient(circle,#cf516a 2px,#0000 3px) 70% 14%/30px 24px,radial-gradient(circle,#db9a49 2px,#0000 3px) 88% 10%/24px 20px,radial-gradient(circle,#f07286 2px,#0000 3px) 12% 82%/26px 22px,radial-gradient(circle,#c73c56 2px,#0000 3px) 60% 86%/30px 24px,radial-gradient(circle,#e0a55a 2px,#0000 3px) 85% 82%/24px 20px;animation:.9s ease-out both confettiBurst}.passion-card.celebrate:after{border:2px solid #c8364659;animation:.9s ease-out both pulseRing}.rating-row{gap:6px;display:flex}.rating-row button{min-width:32px;color:var(--text-soft);background:#fff;border:1px solid #c4553d33;border-radius:10px;flex:1;padding:7px 0}.rating-row button.active{color:#fff;background:linear-gradient(130deg, var(--accent), var(--rose));border-color:#0000}.loading-line,.pending{color:var(--text-soft);margin:0}.match-list{gap:12px;display:grid}.category-compatibility{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;display:grid}.category-compat-card{border:1px solid var(--line);background:var(--bg-soft);border-radius:16px;padding:12px}.category-compat-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.category-compat-head h3{margin:0;font-size:1.1rem}.category-compat-card p{color:var(--text-soft);margin:8px 0 0}.done,.draft{border-radius:999px;padding:4px 8px;font-size:.74rem;font-weight:700}.done{color:#fff;background:linear-gradient(130deg, var(--gold), var(--accent))}.draft{color:var(--accent-strong);border:1px solid var(--line);background:#fff}.mini-common-list{color:var(--text);margin:10px 0 0;padding-left:18px}.small{font-size:.9rem}.match-card{border:1px solid var(--line);background:linear-gradient(115deg,#fff5e9f2,#fff0eaf2);border-radius:16px;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:12px 14px;display:grid}.rank{color:#fff;background:linear-gradient(145deg, var(--gold), var(--accent));border-radius:50%;place-items:center;width:38px;height:38px;font-weight:700;display:grid}.match-card h3{margin:0}.match-card p{color:var(--text-soft);margin:2px 0 0}.scores{text-align:right;color:var(--text-soft);gap:2px;display:grid}.scores strong{color:var(--accent-strong)}.error{color:#b72f2f;margin:10px 0 0;font-weight:700}@keyframes reveal{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@keyframes confettiBurst{0%{opacity:0;transform:scale(.88)}20%{opacity:1}to{opacity:0;transform:scale(1.04)}}@keyframes pulseRing{0%{opacity:.75;transform:scale(.94)}to{opacity:0;transform:scale(1.06)}}@media (width<=880px){.hero{flex-direction:column;align-items:stretch}.composer-form{grid-template-columns:1fr}.match-card{text-align:left;grid-template-columns:1fr}.scores{text-align:left}.login-form{flex-direction:column}}
