
:root{
  --ink:#3b2031;--muted:#806b7a;--soft:#fff7fb;--card:rgba(255,255,255,.84);
  --line:#f3c4d7;--pink:#f24f86;--red:#df3d72;--shadow:0 28px 80px rgba(116,40,76,.17);
  --great:#dff8e8;--great-ink:#176c37;--good:#dff1ff;--good-ink:#135a8a;
  --neutral:#fff4c7;--neutral-ink:#8a6500;--bad:#ffe0e0;--bad-ink:#9b2226;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;min-height:100vh;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:radial-gradient(circle at top left,#ffe7f2 0,#fff7fb 38%,#fffaf0 100%)}
a{color:#b91e55}
.page{width:min(1040px,100%);margin:0 auto;padding:24px;min-height:100vh;display:flex;flex-direction:column}
header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:6px 0 18px}
.brand{font-weight:900;letter-spacing:.01em;font-size:1.06rem;text-decoration:none;color:var(--ink)}
.header-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.header-actions a{font-weight:750;text-decoration:none;color:var(--muted);font-size:.95rem}
.shell{margin:34px auto 0;width:100%;background:var(--card);border:1px solid rgba(243,196,215,.8);box-shadow:var(--shadow);border-radius:32px;overflow:hidden}
.hero{display:grid;grid-template-columns:1.05fr .95fr;gap:22px;padding:42px;align-items:center}
.eyebrow{display:inline-flex;gap:8px;align-items:center;background:#fff0f6;border:1px solid var(--line);color:#a4184d;border-radius:999px;padding:8px 12px;font-size:.9rem;font-weight:800}
h1{font-size:clamp(2.3rem,6vw,4.9rem);line-height:.98;margin:18px 0 16px;letter-spacing:-.058em}
h2{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.05;letter-spacing:-.04em;margin:0 0 14px}
.hero p,.lede{font-size:1.12rem;line-height:1.55;color:var(--muted);max-width:58ch}
.btn{appearance:none;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;background:linear-gradient(135deg,var(--pink),var(--red));color:white;font-weight:900;padding:15px 22px;box-shadow:0 12px 22px rgba(229,72,109,.25);cursor:pointer;font-size:1rem;text-decoration:none}
.btn.secondary{background:white;color:var(--ink);border:1px solid var(--line);box-shadow:none}
.btn.small{padding:10px 14px;font-size:.92rem}
.btn:disabled{opacity:.55;cursor:not-allowed}
button{font:inherit}
:focus-visible{outline:3px solid rgba(124,60,255,.32);outline-offset:3px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.art{min-height:330px;display:grid;place-items:center;position:relative}
.cupid-card{width:min(360px,100%);aspect-ratio:1;border-radius:34px;background:linear-gradient(160deg,#fff,#ffe3ef);border:1px solid var(--line);position:relative;box-shadow:0 18px 45px rgba(181,41,95,.16);display:grid;place-items:center;overflow:hidden}
.cupid-card:before,.cupid-card:after{content:"";position:absolute;border-radius:999px;background:rgba(255,255,255,.75)}
.cupid-card:before{width:230px;height:230px;left:-80px;top:-90px}
.cupid-card:after{width:170px;height:170px;right:-50px;bottom:-40px}
.cupid-img{position:relative;z-index:3;width:112%;height:112%;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(181,41,95,.18))}
.section{padding:48px 42px;border-top:1px solid rgba(243,196,215,.55)}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.card{background:white;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 12px 30px rgba(181,41,95,.08)}
.card h3{margin:0 0 8px;font-size:1.12rem}.card p{margin:0;color:var(--muted);line-height:1.5}
.panel{background:white;border:1px solid var(--line);border-radius:28px;padding:28px;box-shadow:0 14px 40px rgba(181,41,95,.1)}
.page-title{padding:42px;max-width:900px}
label{display:block;font-weight:850;margin:14px 0 6px}
input,textarea,select{width:100%;border:1.5px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);font:inherit;padding:13px 14px}
textarea{min-height:120px;resize:vertical}
.notice,.hint{font-size:.93rem;color:var(--muted);line-height:1.45}
.status{margin-top:14px;font-weight:800}
.hidden{display:none!important}
.builder-layout{display:grid;grid-template-columns:260px minmax(0,1fr);gap:18px}
.rating-palette{display:grid;gap:10px;align-content:start;position:sticky;top:14px}
.rating-chip{border:2px solid transparent;border-radius:18px;padding:14px;text-align:left;font-weight:900;cursor:pointer;background:white;color:var(--ink)}
.rating-chip[aria-pressed="true"]{border-color:#3b2031;box-shadow:0 0 0 4px rgba(59,32,49,.08)}
.rating-chip[data-rating="great"]{background:var(--great);color:var(--great-ink)}
.rating-chip[data-rating="good"]{background:var(--good);color:var(--good-ink)}
.rating-chip[data-rating="neutral"]{background:var(--neutral);color:var(--neutral-ink)}
.rating-chip[data-rating="bad"]{background:var(--bad);color:var(--bad-ink)}
.builder-question{background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;margin-bottom:16px}
.answer-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;width:100%;text-align:left;border:1.5px solid var(--line);border-radius:18px;background:#fff;padding:14px 16px;margin:10px 0;cursor:pointer}
.answer-row[data-rating="great"]{background:var(--great);border-color:#9be2b6}
.answer-row[data-rating="good"]{background:var(--good);border-color:#a8d9ff}
.answer-row[data-rating="neutral"]{background:var(--neutral);border-color:#ffe18a}
.answer-row[data-rating="bad"]{background:var(--bad);border-color:#ffb0b0}
.rating-label{font-size:.82rem;font-weight:900;border-radius:999px;padding:6px 10px;background:rgba(255,255,255,.8)}
.copy-box{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.copy-box input{flex:1;min-width:240px}
.submission-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;background:white;border:1px solid var(--line);border-radius:18px;padding:14px;margin:10px 0}
.quiz-card{max-width:780px;margin:0 auto}
.progress{height:10px;background:#f7d9e5;border-radius:999px;overflow:hidden;margin:18px 0}.bar{height:100%;background:linear-gradient(135deg,var(--pink),var(--red));width:0%}
.answers{display:grid;gap:10px}.choice{border:1.5px solid var(--line);background:white;border-radius:18px;padding:14px 16px;text-align:left;cursor:pointer}
.choice[aria-pressed="true"]{border-color:#f24f86;background:#fff0f6}
.nav-row{display:flex;justify-content:space-between;gap:12px;margin-top:20px}.score{font-size:4rem;font-weight:950;letter-spacing:-.05em;margin:12px 0}
.legal-footer{margin-top:auto;padding:26px 0 8px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#8a7a85;font-size:14px}
.legal-links{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.legal-footer a{color:#8a7a85;text-decoration:none;font-weight:750}.legal-footer a:hover{color:#f24f86;text-decoration:underline}
.content{background:white;border:1px solid var(--line);border-radius:28px;padding:28px;line-height:1.65;color:var(--muted)}.content h2{color:var(--ink);margin-top:30px}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
@media (max-width:840px){.hero{grid-template-columns:1fr;padding:28px}.grid,.builder-layout{grid-template-columns:1fr}.rating-palette{position:static}.art{min-height:250px}.cupid-card{width:min(280px,100%)}.section,.page-title{padding:34px 24px}.legal-footer{align-items:flex-start;flex-direction:column}.page{padding:18px}}
