:root{--ink:#1b1533;--ink-soft:#2a2145;--cream:#fffbf5;--coral:#ff4d6d;--coral-dark:#e23a57;--denim:#3e5c76;--denim-light:#7c93ab;--gold:#ffc857;--text-muted:#6e6580;--text-muted-dark:#a79cc4;--border:#1b15331f;--font-display:"Fraunces", serif;--font-body:"Inter", sans-serif;--font-mono:"JetBrains Mono", monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--cream);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font-family:var(--font-body)}img{max-width:100%;display:block}.container{max-width:1120px;margin:0 auto;padding:0 20px}.btn-primary{background:var(--coral);color:#fff;cursor:pointer;font-size:14.5px;font-weight:700;font-family:var(--font-body);border:none;border-radius:12px;padding:13px 22px;transition:background .15s}.btn-primary:hover{background:var(--coral-dark)}.btn-secondary{color:var(--ink);border:1.5px solid var(--border);cursor:pointer;font-size:14.5px;font-weight:700;font-family:var(--font-body);background:0 0;border-radius:12px;padding:13px 22px}.btn-secondary:hover{border-color:var(--ink)}.btn-dark{background:var(--ink);color:#fff;cursor:pointer;font-size:14.5px;font-weight:700;font-family:var(--font-body);border:none;border-radius:12px;padding:13px 22px}.tag{color:var(--ink);background:#1b15330f;border-radius:999px;align-items:center;gap:5px;padding:5px 10px;font-size:12.5px;font-weight:600;display:inline-flex}.card{border:1px solid var(--border);background:#fff;border-radius:18px;transition:transform .15s,box-shadow .15s;overflow:hidden}.card:hover{transform:translateY(-3px);box-shadow:0 14px 30px #1b15331f}input,select{font-family:var(--font-body);border:1.5px solid var(--border);color:var(--ink);background:#fff;border-radius:10px;padding:10px 12px;font-size:14px}input:focus,select:focus,button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}@media (max-width:720px){.container{padding:0 16px}}@keyframes shimmer{to{opacity:.4}}.shimmer{animation:.8s ease-in-out infinite alternate shimmer}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(6px)}}
