:root{--ink:#3e2d2f;--rose:#bc8085;--deep:#964f55;--muted:#816a6c;--blush:#f6eeee;--ivory:#faf7f4;--line:#e8ddd9;--gold:#c9a67f;--ok:#5f8a6b;--err:#a4474f}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ivory);color:var(--ink);font:16px/1.65 'DM Sans',system-ui,sans-serif;min-height:100vh;display:flex;flex-direction:column}
h1,h2,h3,.serif{font-family:'Playfair Display',Georgia,serif;font-weight:500;line-height:1.15;letter-spacing:-.03em}
h1{font-size:clamp(2.2rem,5vw,3.6rem);margin:8px 0 18px}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem);margin:0 0 14px}
h3{font-size:1.35rem;margin:0 0 10px}
p{margin:0 0 16px}
a{color:var(--deep)}
.wrap{width:min(1040px,calc(100% - 32px));margin:auto}
.narrow{width:min(620px,calc(100% - 32px));margin:auto}
.header{background:#fffdfc;border-bottom:1px solid #eee3e4}
.nav{min-height:68px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:inline-flex;align-items:center;gap:9px;font:700 22px 'Playfair Display',Georgia,serif;color:var(--rose);text-decoration:none;letter-spacing:-.02em}
.brand img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none}
.logo-mark{display:block;width:46px;height:46px;border-radius:50%;margin:0 auto}
html,body{overflow-x:hidden}
.navlink{font-size:13px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--rose);padding-bottom:3px}
main{flex:1}
.page{padding:56px 0 80px}
.eyebrow{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--deep);font-weight:700}
.muted{color:var(--muted)}
.small{font-size:13px;color:var(--muted)}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:0 15px 50px #6b4b5010}
.btn{border:0;display:inline-flex;justify-content:center;align-items:center;text-align:center;gap:9px;border-radius:40px;padding:15px 26px;background:var(--rose);color:#fff;text-decoration:none;font:700 14px 'DM Sans',sans-serif;box-shadow:0 10px 30px #bc808535;transition:.2s;cursor:pointer}
.btn:hover{background:var(--deep);transform:translateY(-1px)}
.btn:disabled{opacity:.6;cursor:wait;transform:none}
.btn.ghost{background:transparent;color:var(--deep);box-shadow:inset 0 0 0 1px #d9c3c6}
.btn.ghost:hover{background:#fff}
.btn.dark{background:var(--ink)}
label{display:block;font-weight:600;font-size:14px;margin:0 0 6px}
input[type=text],input[type=email],textarea{width:100%;font:16px 'DM Sans',sans-serif;color:var(--ink);background:#fffdfc;border:1px solid #dcc9cb;border-radius:10px;padding:13px 14px;outline:none;transition:border .15s}
input:focus,textarea:focus{border-color:var(--rose);box-shadow:0 0 0 3px #bc808522}
textarea{resize:vertical;min-height:90px}
.field{margin-bottom:18px}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:13px;color:#5f4f54;margin-bottom:12px;cursor:pointer}
.check input{margin-top:3px;accent-color:var(--rose);width:17px;height:17px;flex:none}
.notice{border-radius:12px;padding:14px 16px;font-size:14px;margin:16px 0}
.notice.ok{background:#eef5ef;color:#3d5f45}
.notice.err{background:#f9ecec;color:var(--err)}
.notice.info{background:var(--blush);color:var(--ink)}
.linkbox{display:flex;gap:8px;align-items:center;background:var(--blush);border-radius:12px;padding:10px 10px 10px 14px;margin:10px 0 18px}
.linkbox code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.linkbox button{flex:none;border:0;background:#fff;border-radius:8px;padding:8px 12px;font:600 12px 'DM Sans',sans-serif;color:var(--deep);cursor:pointer}
.footer{background:#f4eeee;padding:30px 0;color:#78686c;font-size:12px}
.footer .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}
.footer a{color:inherit}
.spinner{width:28px;height:28px;border:3px solid #ead7d9;border-top-color:var(--rose);border-radius:50%;animation:spin 1s linear infinite;margin:30px auto}
@keyframes spin{to{transform:rotate(360deg)}}
.legal h2{font-size:1.5rem;margin-top:34px}
.legal li{margin-bottom:6px}
.todo{background:#fff4d6;border-radius:4px;padding:0 4px}
@media(max-width:480px){.card{padding:24px 18px}.page{padding:36px 0 60px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
