/* OnlineVCard — shared glossy design system */
:root{
  --ink:#12312B;--ink-2:#1C4A40;--paper:#F5F5F1;--card:#fff;
  --brass:#B98A2F;--brass-deep:#8F681C;--brass-soft:#F3EAD2;
  --orchid:#7C4DC4;--orchid-deep:#5B349B;--orchid-soft:#EFE7FB;
  --blush:#E8B4C8;--blush-deep:#C2678F;--blush-soft:#FBEFF4;
  --text:#22312B;--muted:#5E6B64;--line:#E4E6E0;--radius:18px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:"Instrument Sans",system-ui,sans-serif;background:var(--paper);color:var(--text);line-height:1.6;overflow-x:hidden}
img{max-width:100%}a{color:inherit}button{font:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--brass);outline-offset:2px;border-radius:6px}
h1,h2,h3{font-family:"Bricolage Grotesque",serif;color:var(--ink);line-height:1.12}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
section{padding:72px 0}
.eyebrow{font-size:12.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);font-weight:600;margin-bottom:10px}
.sec-title{font-size:clamp(26px,4vw,38px);font-weight:700;margin-bottom:12px}
.sec-sub{color:var(--muted);max-width:580px;font-size:16.5px}

/* ambient animated background blobs */
.aurora{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.aurora i{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5;animation:drift 22s ease-in-out infinite alternate}
.aurora i:nth-child(1){width:520px;height:520px;background:#DCE9DF;top:-160px;left:-120px}
.aurora i:nth-child(2){width:460px;height:460px;background:var(--orchid-soft);top:20%;right:-160px;animation-delay:-7s}
.aurora i:nth-child(3){width:420px;height:420px;background:var(--blush-soft);bottom:-140px;left:30%;animation-delay:-14s}
@keyframes drift{to{transform:translate(60px,40px) scale(1.12)}}

/* header */
header.top{position:sticky;top:0;z-index:40;background:rgba(245,245,241,.82);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:26px;height:64px}
.logo{display:flex;align-items:center;gap:9px;font-family:"Bricolage Grotesque",serif;font-weight:700;font-size:18px;color:var(--ink);text-decoration:none}
.logo .ov{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--ink),var(--ink-2));color:#F2E7C8;display:grid;place-items:center;font-size:12px;box-shadow:inset 0 1px 1px rgba(255,255,255,.3)}
.menu{display:none;gap:22px;font-size:14.5px;font-weight:500;color:var(--muted);align-items:center}
.menu>a,.menu .dd>a{text-decoration:none;padding:6px 2px}
.menu>a:hover,.menu .dd>a:hover{color:var(--ink)}
.menu a.on{color:var(--ink);font-weight:600;border-bottom:2px solid var(--brass)}
.dd{position:relative}
.dd-panel{position:absolute;top:100%;left:-12px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px -24px rgba(18,49,43,.3);padding:10px;min-width:230px;display:none;z-index:50}
.dd:hover .dd-panel,.dd:focus-within .dd-panel{display:block}
.dd-panel a{display:block;text-decoration:none;padding:9px 12px;border-radius:10px;font-size:14px;color:var(--text)}
.dd-panel a:hover{background:var(--orchid-soft);color:var(--orchid-deep)}
.dd-panel h5{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:8px 12px 4px}
.nav-cta{margin-left:auto;display:flex;gap:10px;align-items:center}
.link-login{font-size:14.5px;font-weight:600;text-decoration:none;color:var(--ink)}
@media(min-width:880px){.menu{display:flex}}

/* glossy buttons */
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;padding:12px 20px;font-weight:600;font-size:15px;border:0;text-decoration:none;transition:transform .15s,box-shadow .15s,filter .15s}
.btn::after{content:"";position:absolute;top:0;left:-80%;width:50%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.55),transparent);transform:skewX(-20deg);transition:left .5s ease}
.btn:hover::after{left:130%}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.97)}
.btn-brass{background:linear-gradient(135deg,#D4A63E,var(--brass));color:#2B2005;box-shadow:0 10px 24px -10px rgba(143,104,28,.6)}
.btn-ink{background:linear-gradient(135deg,#1B4A3F,var(--ink));color:#F2F6F1;box-shadow:0 10px 24px -10px rgba(18,49,43,.55)}
.btn-orchid{background:linear-gradient(135deg,#9666DD,var(--orchid));color:#fff;box-shadow:0 10px 24px -10px rgba(91,52,155,.55)}
.btn-ghost{background:rgba(255,255,255,.7);border:1.5px solid var(--line);color:var(--ink)}

/* glossy cards */
.glass{position:relative;background:linear-gradient(180deg,#fff, #FDFDFB);border:1px solid var(--line);border-radius:var(--radius);transition:transform .2s ease,box-shadow .2s ease,border-color .2s}
.glass::before{content:"";position:absolute;inset:0 0 auto 0;height:46%;border-radius:var(--radius) var(--radius) 60% 60%/var(--radius) var(--radius) 100% 100%;background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(255,255,255,0));pointer-events:none}
.glass:hover{transform:translateY(-4px);box-shadow:0 26px 50px -24px rgba(18,49,43,.28);border-color:#D8CBAE}

/* scroll reveal */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}

/* footer */
footer.site{border-top:1px solid var(--line);background:#fff;padding:44px 0 40px;margin-top:72px}
.fcols{display:grid;gap:28px;font-size:14px}
@media(min-width:760px){.fcols{grid-template-columns:2fr 1fr 1fr 1fr}}
.fcols h4{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.fcols a{display:block;text-decoration:none;color:var(--text);margin-bottom:8px}
.fcols a:hover{color:var(--orchid-deep)}
.fnote{margin-top:30px;font-size:12.5px;color:var(--muted);display:flex;gap:16px;flex-wrap:wrap}

@media(prefers-reduced-motion:reduce){
  *{transition:none!important;animation:none!important;scroll-behavior:auto!important}
  .reveal{opacity:1;transform:none}
}

/* v2 — glossier + left-aligned cookie + two-tone titles */
.glass{overflow:hidden}
.glass::after{content:"";position:absolute;top:0;left:-90%;width:55%;height:100%;background:linear-gradient(105deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-18deg);transition:left .6s ease;pointer-events:none}
.glass:hover::after{left:140%}
.two-tone em{font-style:normal;background:linear-gradient(100deg,var(--brass-deep),var(--orchid));-webkit-background-clip:text;background-clip:text;color:transparent}
/* v3 — ribbons on plan cards must not clip; disable shine there */
.plan,.bt{overflow:visible}
.plan::after,.bt::after,.plan::before,.bt::before{display:none}
