:root { --vip-purple: #9875fb; --vip-text: #32353a; --vip-muted: #65686f; }
* { box-sizing: border-box; }
html { font-size: min(10vw, 75px); -webkit-text-size-adjust: 100%; }
html, body { min-width: 320px; min-height: 100%; margin: 0; background: #f6f7f9; }
body { color: var(--vip-text); font: .4266667rem/1.5 -apple-system, BlinkMacSystemFont, "SF UI Text", "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
button, a { -webkit-tap-highlight-color: transparent; }
button { margin: 0; font: inherit; cursor: pointer; }
a { color: inherit; }
.subscribe-app { position: relative; width: min(100%, 750px); min-height: 100vh; margin: 0 auto; padding-bottom: .6666667rem; background: url("assets/membership-bg.webp") no-repeat top left / 100% auto; }
.subscribe-hero { padding: env(safe-area-inset-top) .5333333rem 0; }
.subscribe-hero h1 { display: grid; place-items: center; height: 1.1733333rem; margin: 0; font-size: .5333333rem; font-weight: 700; }
.subscribe-back { position: fixed; z-index: 10; top: env(safe-area-inset-top); left: max(0px, calc((100vw - 750px) / 2)); display: grid; place-items: center; width: 1.1733333rem; height: 1.1733333rem; padding: .2133333rem; border: 0; color: var(--vip-muted); background: transparent; }
.subscribe-back svg { display: block; width: .7466667rem; height: .7466667rem; fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; }
.subscribe-hero h2 { margin: .2133333rem 0 0; color: var(--vip-purple); font-size: .7466667rem; line-height: 1.5; font-weight: 700; }
.subscribe-hero p { margin: 0; color: var(--vip-muted); font-size: .3733333rem; line-height: 1.5; }
.subscribe-hero .subscribe-identification { margin-top: .0533333rem; color: var(--vip-purple); }
.subscribe-card { min-height: calc(100vh - 5.12rem); margin: .2133333rem .2666667rem 0; padding: .4266667rem .2666667rem 0; border-radius: .2133333rem; background: #fff; box-shadow: 0 .0533333rem .2666667rem #dce0e466; }
.subscribe-plan { display: flex; align-items: center; width: 100%; margin-bottom: .2666667rem; padding: .5333333rem .3733333rem .4266667rem; border: 1px solid #f3f5fa; border-radius: .32rem; color: var(--vip-text); background: #f3f5fa; text-align: left; }
.subscribe-plan.is-selected { border-color: var(--vip-purple); }
.subscribe-plan:focus-visible { outline: 2px solid var(--vip-purple); outline-offset: 2px; }
.subscribe-plan > img { display: block; flex: 0 0 22px; width: 22px; height: 20px; margin-right: .4266667rem; object-fit: contain; }
.subscribe-plan-copy { display: block; flex: 1; min-width: 0; }
.subscribe-plan-copy > strong { display: block; font-size: .48rem; line-height: 1.5; font-weight: 500; }
.subscribe-plan-copy > small { display: block; color: var(--vip-purple); font-size: .3466667rem; line-height: 1.5; overflow-wrap: anywhere; }
.subscribe-plan-price { display: block; flex-shrink: 0; white-space: nowrap; text-align: right; }
.subscribe-plan-price > strong { display: block; font-size: .48rem; line-height: 1.5; font-weight: 700; }
.subscribe-plan-price strong > span { font-size: .32rem; font-weight: 400; }
.subscribe-plan-price > small { display: block; color: var(--vip-muted); font-size: .32rem; line-height: 1.5; }
.subscribe-tips { padding: 0 .1066667rem 2.6666667rem; color: #9296a0; font-size: .2666667rem; line-height: 1.5; }
.subscribe-tips p { margin: .16rem 0 0; }
.subscribe-tips .subscribe-tips-title { font-size: .32rem; }
.subscribe-tips .subscribe-legal { margin-top: .1066667rem; }
.subscribe-legal a { font-weight: 700; }
.subscribe-toast { position: fixed; z-index: 300; bottom: max(30px, env(safe-area-inset-bottom)); left: 50%; max-width: calc(100% - 40px); padding: 10px 14px; border-radius: 8px; color: #fff; background: #18181fd9; font-size: 12px; line-height: 1.5; opacity: 0; pointer-events: none; transform: translate(-50%, 8px); transition: opacity .18s, transform .18s; }
.subscribe-toast.visible { opacity: 1; transform: translate(-50%, 0); }
.subscribe-toast.is-error { background: #6d2336e8; }
