@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
/* Opus Monogram: black & white, one orange, the "O" ring as recurring element */
:root{
  --ink:#111; --ink-2:#444; --muted:#8c8c8c; --line:#ececec; --chip:#f5f5f5; --bg:#fff; --card:#fff;
  --accent:#ff4d00; --accent-soft:#fff1ea;
  --green:#13a35b; --green-soft:#e8f7ef; --amber:#b86e00; --amber-soft:#fff6e5; --spotify:#1db954;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:inherit}
button{font:inherit;cursor:pointer;color:inherit}
input,textarea,select{font:inherit;color:var(--ink)}
.hidden{display:none!important}
::selection{background:var(--accent);color:#fff}

/* the monogram */
.logo{display:inline-flex;align-items:center;gap:10px;font-weight:800;font-size:26px;letter-spacing:-.045em;text-decoration:none;color:var(--ink)}
.ring{width:1.15em;height:1.15em;border-radius:50%;border:.27em solid currentColor;display:inline-block;flex:none}
.logo small{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-left:2px}
.deco-ring{position:fixed;border-radius:50%;border:120px solid #f5f5f5;pointer-events:none;z-index:-1}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:8px;border:2px solid transparent;border-radius:999px;padding:12px 22px;font-weight:700;font-size:15px;transition:.15s;text-decoration:none;line-height:1.2}
.btn svg{width:18px;height:18px}
.btn-black{background:var(--ink);color:#fff}
.btn-black:hover{background:#000;transform:translateY(-1px)}
.btn-black:disabled{background:#cfcfcf;cursor:not-allowed;transform:none}
.btn-outline{border-color:var(--ink);background:#fff}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-grey{background:var(--chip);color:var(--ink)}
.btn-grey:disabled{opacity:.4;cursor:not-allowed}
.btn-ghost{background:transparent;color:var(--muted);padding:10px 12px}
.btn-ghost:hover{color:var(--ink)}
.btn-accent{background:var(--accent);color:#fff}
.btn-sm{padding:8px 16px;font-size:14px}

/* form fields */
.field{margin-bottom:18px}
.field label{display:block;font-weight:700;margin-bottom:8px;font-size:14px}
.field .hint{font-size:13px;color:var(--muted);margin-top:6px}
.input{width:100%;border:1.5px solid var(--line);border-radius:16px;padding:14px 18px;font-size:16px;background:#fff;outline:none;transition:.15s}
.input::placeholder{color:#b3b3b3}
.input:focus{border-color:var(--ink)}
.input.with-icon{padding-left:48px}
.input-wrap{position:relative}
.input-wrap svg{position:absolute;left:17px;top:50%;transform:translateY(-50%);width:20px;height:20px}
textarea.input{min-height:110px;resize:vertical}
select.input{appearance:none;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none' stroke='%23111' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") no-repeat right 18px center}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:0 16px}
@media(max-width:640px){.grid2,.grid3{grid-template-columns:1fr}}
.check{display:flex;align-items:center;gap:14px;border:1.5px solid var(--line);border-radius:16px;padding:16px 18px;cursor:pointer;font-weight:500;transition:.15s}
.check:has(input:checked){border-color:var(--ink)}
.check input{width:20px;height:20px;accent-color:var(--ink);flex:none}
.req{color:var(--accent)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:13px 20px;border-radius:999px;font-weight:600;font-size:14px;display:flex;gap:16px;align-items:center;box-shadow:0 10px 30px rgba(0,0,0,.2);z-index:50;max-width:calc(100vw - 32px)}
.toast button{background:none;border:0;color:var(--accent);font-weight:800;white-space:nowrap}
