:root{--ink:#1d1d1f;--mute:#6e6e73;--bg:#fff;--gray:#f5f5f7;--line:#d2d2d7;--accent:#0071e3;--warn:#bf4800;--r:22px;--r-ctl:12px;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--dur-press:120ms;--dur-ui:200ms}
*{box-sizing:border-box;margin:0;padding:0}

/* —— mobile-native floor (GitHub skills 2026-10-21) —— */
html{-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,[role="button"],.btn,.tc,.cat,.chips label,.tierpick label,.osteps span,.catrow a,.cpbtn,.kf-fab,.kf-send,.kf-x,.upbox,.paytabs button,.feat a,.case{touch-action:manipulation}
button,.btn,[role="button"],.chips label,.tierpick label,.catrow a,.osteps span,.tc,.cpbtn,.kf-fab,.kf-send,.kf-x,.paytabs button,.upbox{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.btn,.chips label,.tierpick label,.catrow a,.tc,.upbox,.feat a,.case,.paytabs button,.cpbtn,.kf-fab,.kf-send{transition:transform var(--dur-press) var(--ease-out),background var(--dur-ui) ease,border-color var(--dur-ui) ease,box-shadow var(--dur-ui) ease,opacity var(--dur-ui) ease}
.btn:active,.chips label:active,.tierpick label:active,.catrow a:active,.tc:active,.upbox:active,.feat a:active,.case:active,.paytabs button:active,.cpbtn:active,.kf-fab:active,.kf-send:active{transform:scale(.97)}
.osteps span.on{transition:background var(--dur-ui) var(--ease-out),box-shadow var(--dur-ui) var(--ease-out),color var(--dur-ui) ease}
body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","PingFang SC","Helvetica Neue","Microsoft YaHei",sans-serif;background:var(--bg);color:var(--ink);line-height:1.5;-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
a{color:inherit;text-decoration:none}
::selection{background:rgba(0,113,227,.18);color:var(--ink)}
input,textarea,select{caret-color:var(--accent)}
a:focus-visible,.btn:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.btn{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.btn.sm{min-height:40px}
.wrap{max-width:1000px;margin:0 auto;padding:0 22px}
header{position:sticky;top:0;z-index:9;background:rgba(251,251,253,.72);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:.5px solid rgba(0,0,0,.08);padding-top:env(safe-area-inset-top,0px)}
body.fest-top-on header{top:var(--fest-top-h,40px);padding-top:0}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:48px}
.logo{font-weight:600;font-size:17px;display:inline-flex;align-items:center;min-height:44px}.logo span{color:var(--mute);font-weight:400}
nav a{margin-left:12px;padding:12px 8px;font-size:13px;color:var(--ink);opacity:.8;display:inline-flex;align-items:center;min-height:44px}nav a.on{opacity:1;font-weight:600}
.hero{padding:88px 0 72px;text-align:center;overflow:hidden}
.hero h1{font-size:clamp(34px,9vw,48px);line-height:1.08;font-weight:700;letter-spacing:-.03em;margin-bottom:16px;text-wrap:balance}
.hero h1 em{font-style:normal;color:var(--mute)}
.hero p{color:var(--mute);font-size:16px;line-height:1.65;max-width:34em;margin:0 auto 28px;text-wrap:pretty}
.hero .cta{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;align-items:center}
.hero-ready .hero-stage{opacity:0;transform:translateY(10px) scale(.985)}
.hero-in .hero-stage{opacity:1;transform:none;transition:opacity .42s var(--ease-out),transform .42s var(--ease-out)}
.hero-in .hero-stage.d1{transition-delay:.06s}
.hero-in .hero-stage.d2{transition-delay:.12s}
.hero-in .hero-stage.d3{transition-delay:.18s}
@media(prefers-reduced-motion:reduce){.hero-ready .hero-stage,.hero-in .hero-stage{opacity:1;transform:none;transition:none}}
.btn{display:inline-block;padding:11px 22px;border-radius:980px;background:var(--accent);color:#fff;font-weight:500;border:0;font-size:16px;cursor:pointer;font-family:inherit}
.btn.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}
.btn.sm{padding:7px 15px;font-size:14px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:56px auto 0;max-width:600px}
.steps div{font-size:13px;color:var(--mute)}.steps b{display:block;font-size:28px;font-weight:600;color:var(--ink)}
h2{font-size:clamp(26px,6vw,36px);font-weight:700;letter-spacing:-.025em;margin:72px 0 12px;text-align:center;text-wrap:balance}
.h2-sub{text-align:center;color:var(--mute);font-size:15px;margin:0 auto 28px;max-width:36em;line-height:1.6}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.cat{background:var(--gray);border-radius:var(--r);padding:22px 18px;text-align:left;display:flex;flex-direction:column;gap:6px;min-height:100%;border:1px solid transparent;transition:border-color .2s,background .2s}
.cat .ic{width:36px;height:36px;border-radius:10px;background:#fff;border:1px solid var(--line);display:grid;place-items:center;color:var(--ink)}
.cat .ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.cat h3{font-size:17px;font-weight:600;margin:4px 0 0;letter-spacing:-.02em}
.price{font-weight:600;font-size:17px}.tag{font-size:11px;color:var(--mute);margin-left:5px;font-weight:400}
.cat small{display:block;color:var(--mute);font-size:12px;margin:2px 0 16px}
.cases{display:grid;gap:14px}
.case{border-radius:var(--r);overflow:hidden;background:var(--gray)}
.case .cover{min-height:300px;display:flex;align-items:center;justify-content:center;flex-direction:column;font-weight:700;font-size:30px;letter-spacing:-.02em;text-align:center;padding:30px}
.case .cover small{font-size:15px;font-weight:400;margin-top:8px;opacity:.75}
.case.dark .cover{background:#000;color:#f5f5f7}
.case .body{padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:10px;background:#fff;border:1px solid var(--gray);border-top:0;border-radius:0 0 var(--r) var(--r)}
.case .body p{font-size:14px;color:var(--mute)}
.wip .cover{color:#86868b}
.card{background:var(--gray);border-radius:var(--r);padding:28px 22px;margin-bottom:18px}
.card h2{text-align:left;margin:0 0 6px;font-size:28px}
label{display:block;font-size:14px;font-weight:600;margin:18px 0 8px}
input,select,textarea{width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:12px;font-size:16px;font-family:inherit;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 4px rgba(0,113,227,.15)}
.chips{display:flex;flex-wrap:wrap;gap:8px}.chips label{margin:0;font-weight:400;padding:8px 16px;border:1px solid var(--line);border-radius:980px;font-size:14px;cursor:pointer;background:#fff}
.chips input{display:none}.chips label:has(input:checked){border-color:var(--ink);background:var(--ink);color:#fff}
.qr{width:200px;height:200px;margin:18px auto;border:1px dashed var(--line);background:#fff;border-radius:18px;display:flex;align-items:center;justify-content:center;color:var(--mute);font-size:13px;text-align:center}
.amt{font-size:48px;font-weight:700;letter-spacing:-.03em;text-align:center}
.note{font-size:12px;color:var(--mute);background:#fff;border-radius:12px;padding:12px 14px;margin-top:14px}
.oid{font-family:"SF Mono",Menlo,monospace;background:#fff;padding:2px 8px;border-radius:6px;font-weight:600}
.hide{display:none}
.status{display:inline-block;padding:3px 10px;border-radius:980px;font-size:12px;background:var(--ink);color:#fff}
footer{text-align:center;color:var(--mute);font-size:12px;padding:70px 0 calc(40px + env(safe-area-inset-bottom,0px));margin-top:80px;background:var(--gray)}
.fade{opacity:1;transform:none} /* scatter fades retired; hero owns the only entrance */
@media(min-width:720px){
.hero{padding:120px 0 96px}.hero h1{font-size:64px}.hero p{font-size:19px}
h2{font-size:42px}.grid{grid-template-columns:repeat(3,1fr)}
.cases{grid-template-columns:repeat(2,1fr)}.cases .case:first-child{grid-column:1/-1}.case .cover{min-height:380px;font-size:40px}
}
.tiers{display:grid;gap:14px}
.tier{position:relative;background:var(--gray);border-radius:var(--r);padding:28px 22px}
.tier h3{font-size:21px;font-weight:600}.tier .tp{font-size:36px;font-weight:700;letter-spacing:-.03em;margin:4px 0 8px}
.tier p{color:var(--mute);font-size:14px;margin-bottom:18px;min-height:42px}
.tier.hot{background:#fff;border:1.5px solid var(--ink)}
.badge{position:absolute;top:18px;right:18px;font-size:11px;background:var(--ink);color:#fff;padding:3px 10px;border-radius:980px}
.tier.flag{background:#000;color:#f5f5f7}.tier.flag p{color:#a1a1a6}
.wxbox{margin-top:18px;text-align:center}.wxbox p{margin:6px 0 2px;color:#f5f5f7}.wxbox small{color:#a1a1a6}
.qr.sm{width:150px;height:150px;margin:0 auto 10px;background:#1d1d1f;border-color:#424245;color:#86868b}
.case .body span{display:flex;gap:8px;flex-shrink:0}
.c-stars .cover{background:radial-gradient(ellipse at 50% 120%,#1b2a5a,#05060f 70%);color:#fff}
.c-env .cover{background:linear-gradient(160deg,#f3ece2,#e6d8c3);color:#5a4632}
.c-prank .cover{background:#0b0b0d;color:#ff453a;font-family:"SF Mono",Menlo,monospace}
.tierpick{display:grid;gap:8px}.tierpick label{margin:0;font-weight:400;display:flex;justify-content:space-between;gap:10px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-size:14px}
.tierpick input{display:none}.tierpick label:has(input:checked){border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}
.tierpick b{white-space:nowrap}
@media(min-width:720px){.tiers{grid-template-columns:repeat(2,1fr)}.tier.flag{grid-column:1/-1}}
@media(min-width:980px){.tiers{grid-template-columns:repeat(4,1fr)}}
.c-letter .cover{background:linear-gradient(180deg,#0b1a33,#2c4468 60%,#e9c9c4);color:#fdf3ea}

.paytabs{display:inline-flex;background:rgba(118,118,128,.12);border-radius:10px;padding:3px;margin:16px auto 4px}
.paytabs button{border:0;background:transparent;font:inherit;font-size:14px;padding:7px 22px;border-radius:8px;color:#1d1d1f;cursor:pointer;min-height:40px;transition:background var(--dur-ui) ease,box-shadow var(--dur-ui) ease,transform var(--dur-press) var(--ease-out)}
.paytabs button.on{background:#fff;box-shadow:0 3px 8px rgba(0,0,0,.12);font-weight:600}
.payqr{margin:14px auto;max-width:340px;width:90%}
.payqr img{width:100%;display:block;border-radius:18px;box-shadow:0 8px 30px rgba(0,0,0,.10);-webkit-touch-callout:default;user-select:auto;pointer-events:auto}
.paynote{font-size:15px;margin:10px 0 4px}.paynote b{color:#bf4800}
.paytip{font-size:12px;color:var(--mute);margin:0 0 16px;line-height:1.6}

.payguide{text-align:left;margin:0 0 14px;padding:14px 14px 12px;border-radius:16px;background:rgba(0,113,227,.06);border:1px solid rgba(0,113,227,.18)}
.payguide-lead{margin:0 0 10px;font-size:14px;line-height:1.55;color:#1d1d1f}
.paysteps{margin:0;padding:0;list-style:none}
.paysteps li{margin:0 0 12px;padding:0;font-size:14px;line-height:1.55;color:#1d1d1f}
.paysteps li:last-child{margin-bottom:4px}
.payoidrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:6px}
.payback{margin-top:6px;font-size:13px;color:var(--mute);line-height:1.55}
.deeplink{color:#0071e3;font-weight:600;text-decoration:none}
.paysafe{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:rgba(52,199,89,.1);border:1px solid rgba(52,199,89,.28);font-size:13px;line-height:1.55;color:#1d1d1f}
.wxtip{margin:0 0 12px;padding:12px 14px;border-radius:14px;background:rgba(255,149,0,.12);border:1px solid rgba(255,149,0,.35);font-size:13px;line-height:1.6;text-align:left;color:#5c4a2e}
.wxtip.hide{display:none}
.payqr-actions{margin:0 auto 8px;max-width:340px;width:90%}
.btn.g{background:#34c759;color:#fff}
.btn.g:active{opacity:.9}

.wxqr{display:block;width:200px;max-width:70%;margin:12px auto 6px;border-radius:14px;background:#fff;-webkit-touch-callout:default}

.cpbtn{border:0;background:rgba(0,113,227,.1);color:#0071e3;font:inherit;font-size:13px;padding:4px 12px;border-radius:999px;cursor:pointer;margin-left:4px}
.vh{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.upbox{display:flex;flex-direction:column;align-items:center;gap:6px;border:2px dashed #0071e3;background:rgba(0,113,227,.06);border-radius:18px;padding:22px 14px;margin:18px 0 6px;cursor:pointer;text-align:center;overflow:hidden;max-width:100%;box-sizing:border-box}
.upbox b{font-size:17px;color:#0071e3}.upbox small{color:var(--mute);font-size:12px}.upic{width:44px;height:44px;border-radius:50%;background:#0071e3;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;flex:none}
.upbox.done{border-style:solid;border-color:#34c759;background:rgba(52,199,89,.08)}.upbox.done b{color:#248a3d}.upbox.done .upic{background:#34c759}
/* 付款截图预览：手机大图不得撑满屏（下单页 #upprev / 查询页 #qupprev） */
.upbox img.upprev,#upprev,#qupprev{display:block;width:auto;height:auto;max-width:min(100%,160px);max-height:min(36vh,200px);object-fit:contain;object-position:center;border-radius:10px;margin-top:6px;flex:none;pointer-events:none;-webkit-user-drag:none}
.pmask{position:fixed;inset:0;z-index:100;background:rgba(0,0,0,.45);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;align-items:flex-end;justify-content:center;animation:pf .25s}
.psheet{background:#fff;width:100%;max-width:440px;border-radius:24px 24px 0 0;padding:24px 20px calc(20px + env(safe-area-inset-bottom));text-align:left;animation:pu .3s cubic-bezier(.2,.8,.2,1);max-height:92dvh;overflow:auto}
@media(min-width:600px){.pmask{align-items:center}.psheet{border-radius:24px}}
.psheet h3{margin:0 0 16px;font-size:21px;text-align:center}
.pstep{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid #f0f0f2;font-size:15px;line-height:1.5}.pstep:last-of-type{border:0}
.pstep i{flex:none;width:26px;height:26px;border-radius:50%;background:#1d1d1f;color:#fff;font-style:normal;font-size:13px;display:flex;align-items:center;justify-content:center;margin-top:1px}
.pstep>div{flex:1}.pstep small{display:block;color:var(--mute);font-size:12px}
.pbig{font-size:28px;font-weight:700;color:#bf4800;margin:4px 0;letter-spacing:.5px}.pbig.mono{font-size:22px;color:#1d1d1f;font-family:ui-monospace,Menlo,monospace}
.pcopy{width:100%;margin-top:6px}.pok{width:100%;margin-top:16px;background:#1d1d1f}
@keyframes pf{from{opacity:0}}@keyframes pu{from{transform:translateY(40px);opacity:0}}
.toast{position:fixed;left:50%;top:40%;transform:translate(-50%,-50%) scale(.96);background:rgba(29,29,31,.88);color:#fff;padding:12px 20px;border-radius:14px;font-size:15px;z-index:200;opacity:0;pointer-events:none;transition:opacity var(--dur-ui) var(--ease-out),transform var(--dur-ui) var(--ease-out)}.toast.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.pmask.hide,.upprev.hide,#upprev.hide,#qupprev.hide{display:none}

.policy{margin:20px 0 14px;padding:14px 16px;border-radius:14px;background:rgba(255,149,0,.08);border:1px solid rgba(255,149,0,.25);font-size:13px;line-height:1.7}.policy p{margin:4px 0 10px;color:#5c4a2e}
.policy .agree{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;margin:0;cursor:pointer}.policy .agree input{width:20px;height:20px;margin:0;accent-color:#0071e3}
.policy.shake{animation:shk .5s}@keyframes shk{20%,60%{transform:translateX(-6px)}40%,80%{transform:translateX(6px)}}
.revbox{margin-top:22px;padding:18px 16px;border-radius:18px;background:rgba(0,113,227,.05);border:1px solid rgba(0,113,227,.15);text-align:left}.revbox h3{margin:0 0 4px;font-size:18px}.revc{font-size:14px;color:var(--mute);margin:0 0 10px}.revc b{color:#0071e3;font-size:18px}.revbox textarea{width:100%;box-sizing:border-box}
.faq{max-width:720px;margin:0 auto;padding:40px 20px}.faq h2{text-align:center}.faq details{background:var(--card,#fff);border-radius:14px;padding:14px 18px;margin:10px 0;box-shadow:0 2px 12px rgba(0,0,0,.04)}.faq summary{font-weight:600;cursor:pointer;min-height:44px;display:flex;align-items:center}.faq p{font-size:14px;line-height:1.8;color:var(--mute);margin:8px 0 0}

.payerr{margin:14px 0 4px;padding:12px 14px;border-radius:14px;background:rgba(255,59,48,.08);border:1px solid rgba(255,59,48,.3);color:#c41e3a;font-size:14px;line-height:1.6;text-align:left}.payerr small{color:#86868b}
.kf{text-align:center;margin:12px 0 0;font-size:13px}.kf a{color:#0071e3;text-decoration:none}
/* online support */
.kf-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:90;display:flex;align-items:center;gap:6px;padding:11px 16px;border:0;border-radius:980px;background:rgba(29,29,31,.92);color:#fff;font:500 14px/1 -apple-system,"PingFang SC",sans-serif;box-shadow:0 6px 24px rgba(0,0,0,.18);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
.kf-fab.on{opacity:0;pointer-events:none}.kf-dot{position:absolute;top:6px;right:8px;width:8px;height:8px;border-radius:50%;background:#ff3b30}
.kf-panel{position:fixed;right:16px;bottom:16px;z-index:95;width:360px;max-width:calc(100vw - 24px);height:min(560px,calc(100vh - 32px));display:flex;flex-direction:column;background:#fff;border-radius:20px;box-shadow:0 12px 48px rgba(0,0,0,.2);overflow:hidden;animation:pf .25s}
.kf-panel[hidden]{display:none}
.kf-hd{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border-bottom:1px solid #f0f0f2}.kf-hd b{display:block;font-size:16px}.kf-hd small{color:var(--mute);font-size:12px}
.kf-x{border:0;background:#f5f5f7;width:30px;height:30px;border-radius:50%;cursor:pointer;color:#1d1d1f}
.kf-list{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:8px;background:#fafafa}
.kf-b{max-width:82%;padding:9px 13px;border-radius:18px;font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.kf-b small{display:block;font-size:10px;opacity:.6;margin-top:3px}
.kf-s{background:#fff;border:1px solid #ececee;align-self:flex-start;border-bottom-left-radius:6px}.kf-u{background:#1d1d1f;color:#fff;align-self:flex-end;border-bottom-right-radius:6px}
.kf-tip{align-self:center;font-size:12px;color:var(--mute);text-align:center;padding:2px 10px}
.kf-ft{padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid #f0f0f2;background:#fff}
.kf-more summary{font-size:12px;color:var(--mute);cursor:pointer;margin-bottom:6px}.kf-more input{padding:9px 12px;font-size:16px;margin-bottom:6px;border-radius:10px}
.kf-err{font-size:12px;color:#d70015;margin:0 0 6px}
.kf-in{display:flex;gap:8px;align-items:flex-end}.kf-tx{flex:1;resize:none;padding:10px 12px;border-radius:18px;font-size:16px;line-height:1.35;max-height:120px}
.kf-send{border:0;background:var(--accent);color:#fff;border-radius:980px;padding:10px 16px;font:500 15px -apple-system,"PingFang SC",sans-serif;cursor:pointer;white-space:nowrap}.kf-send:disabled{opacity:.5}
@media (max-width:600px){.kf-panel{right:0;left:0;top:0;bottom:auto;width:100%;max-width:none;height:100dvh;max-height:100dvh;border-radius:0}}
.sup-r{margin-top:14px;padding:12px 14px;background:#fff;border-radius:14px;font-size:14px}.sup-r p{margin:6px 0 0;white-space:pre-wrap;word-break:break-word}.sup-r small{color:var(--mute);font-size:11px}
.kf-typing{color:var(--mute);font-size:13px}
.cpbox{margin:18px 0 4px}.cp-t{min-height:44px;display:inline-flex;align-items:center;border:0;background:none;color:var(--accent);font:inherit;font-size:15px;padding:0;cursor:pointer}
.cp-p{margin-top:10px;animation:pf .25s}.cp-row{display:flex;gap:8px}.cp-in{flex:1}
.cp-go{border:0;border-radius:12px;background:var(--ink);color:#fff;padding:0 20px;font:500 15px -apple-system,"PingFang SC",sans-serif;cursor:pointer}.cp-go:disabled{opacity:.5}
.cp-msg{font-size:14px;margin:8px 2px 0;color:var(--mute);min-height:1em}.cp-msg.bad{color:#d70015}.cp-msg.good{color:var(--ink)}.cp-msg s{color:var(--mute)}.cp-msg b{font-size:17px}.cp-msg small{display:block;color:var(--mute);font-size:12px;margin-top:2px}
.tierpick b.cp-old{text-decoration:line-through;color:var(--mute);font-weight:400;font-size:.85em}.cp-strike{margin-left:6px;color:#d70015}
.kf-ctw{margin-bottom:6px}.kf-ctw input{padding:9px 12px;font-size:16px;border-radius:10px}
.tplgrid label{position:relative}.tc .th{position:relative}.tc .th::after{content:"";position:absolute;inset:0;pointer-events:none;background:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22300%22%20height%3D%22180%22%3E%3Ctext%20x%3D%22150%22%20y%3D%2295%22%20text-anchor%3D%22middle%22%20transform%3D%22rotate%28-28%20150%2090%29%22%20font-family%3D%22-apple-system%2CPingFang%20SC%2Csans-serif%22%20font-size%3D%2217%22%20fill%3D%22%23888%22%3E%E6%8B%BE%E9%A1%B5%E4%B8%80%E9%9A%85%20%C2%B7%20Flower%20Studio%20%E7%A4%BA%E4%BE%8B%3C/text%3E%3C/svg%3E") repeat;background-size:200px 120px;opacity:.12;border-radius:inherit;z-index:2}
/* support panel: scroll containment */
.kf-panel{overscroll-behavior:contain}.kf-hd,.kf-ft{flex:none}
.kf-list{min-height:0;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.kf-tx,.kf-ct,.kf-oid{font-size:16px!important}
.kf-x{width:44px;height:44px;margin:-7px -7px -7px 0}.kf-send{min-height:44px}.kf-more summary{min-height:32px;display:flex;align-items:center}
@media (max-width:600px){.kf-panel{top:0;left:0;right:0;bottom:auto;width:100%;height:100dvh;max-height:100dvh;border-radius:0;transform:none}.kf-hd{padding-top:calc(14px + env(safe-area-inset-top))}.kf-ft{padding-bottom:calc(10px + env(safe-area-inset-bottom));flex:none;background:#fff}.kf-panel{display:flex;flex-direction:column}}
@media (prefers-reduced-motion:reduce){.kf-panel,.cp-p{animation:none!important}*{scroll-behavior:auto!important}}

/* iOS keyboard: geometry set by support.js via visualViewport; avoid 100vh+bottom anchoring */


/* —— Impeccable polish 2026-10-21: Operate + Persuade helpers —— */
.feat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:8px 0 8px}
@media(min-width:720px){.feat{grid-template-columns:repeat(4,minmax(0,1fr))}}
.feat a{display:block;border-radius:18px;overflow:hidden;border:1px solid #e5e5ea;background:#fff;position:relative;aspect-ratio:2/3}
.feat a img{width:100%;height:100%;object-fit:cover;display:block}
.feat a span{position:absolute;left:10px;bottom:10px;right:10px;font-size:13px;font-weight:600;color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.45)}
.feat a::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.45));pointer-events:none}
.catrow{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin:0 0 8px}
.catrow a{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;min-height:44px;border-radius:980px;border:1px solid var(--line);background:#fff;font-size:14px;color:var(--ink)}
.catrow a .ic{width:28px;height:28px;border-radius:8px;background:var(--gray);display:grid;place-items:center}
.catrow a .ic svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.catrow a small{color:var(--mute);font-size:12px}
.osteps{display:flex;gap:6px;margin:0 0 18px;padding:4px;background:var(--gray);border-radius:14px}
.osteps span{flex:1;text-align:center;font-size:12px;color:var(--mute);padding:10px 6px;border-radius:10px;min-height:44px;display:flex;align-items:center;justify-content:center;gap:6px}
.osteps span b{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;color:var(--ink);font-size:11px;font-weight:700}
.osteps span.on{background:#fff;color:var(--ink);font-weight:600;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.osteps span.on b{background:var(--ink);color:#fff}
.q-empty,.q-err,.q-ok{margin-top:16px;padding:16px 14px;border-radius:16px;font-size:14px;line-height:1.65;text-align:left}
.q-empty{background:var(--gray);color:var(--mute)}
.q-err{background:rgba(215,0,21,.06);border:1px solid rgba(215,0,21,.22);color:#8a0010}
.q-ok{background:rgba(0,113,227,.05);border:1px solid rgba(0,113,227,.15);color:var(--ink)}
.q-empty b,.q-err b,.q-ok b{display:block;font-size:15px;color:var(--ink);margin-bottom:4px}
.card{box-shadow:0 1px 0 rgba(0,0,0,.02)}
.tier .dt,.cat small,.dtnote{font-variant-numeric:tabular-nums}
.tier p.dt,.cat .eta{font-size:12px;color:var(--mute);margin:2px 0 14px;min-height:0}
.advbox{margin:14px 0 4px;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}
.advbox>summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px;min-height:48px;font-size:14px;font-weight:600}
.advbox>summary::-webkit-details-marker{display:none}
.advhint{font-weight:400;color:var(--mute);font-size:12px}
.advbody{padding:0 16px 16px;border-top:1px solid #f0f0f2}
label .hint,small.hint{display:block;font-size:12px;font-weight:400;color:var(--mute);margin-top:4px}
.status.ok{background:#1a7f37}.status.warn{background:var(--warn)}.status.muted{background:#86868b}
@media(max-width:420px){
  .hero{padding:64px 0 48px}
  .steps{grid-template-columns:repeat(2,1fr);gap:14px;margin-top:40px}
  nav a{margin-left:4px;padding:12px 6px;font-size:12px}
}


/* —— hover gated to fine pointer (mobile-native / animate) —— */
@media (hover:hover) and (pointer:fine){
  .btn:hover{background:#0077ed}
  .btn.ghost:hover{background:rgba(0,113,227,.06)}
  .cat:hover{background:#fff;border-color:var(--line)}
  .catrow a:hover{border-color:var(--ink)}
  .feat a:hover{transform:scale(1.01)}
  .tc:hover{border-color:var(--ink)}
  .tierpick label:hover{border-color:#86868b}
}
@media (prefers-reduced-motion:reduce){
  .btn,.chips label,.tierpick label,.catrow a,.tc,.upbox,.feat a,.case,.paytabs button,.cpbtn,.kf-fab,.kf-send,.osteps span,.toast{transition:none!important}
  .btn:active,.chips label:active,.tierpick label:active,.catrow a:active,.tc:active,.upbox:active,.feat a:active,.case:active{transform:none}
  .policy.shake{animation:none}
  @keyframes pf{from{opacity:1}}@keyframes pu{from{transform:none;opacity:1}}
}
/* template cards press (order page) */
.tc{transition:transform var(--dur-press) var(--ease-out),border-color var(--dur-ui) ease,box-shadow var(--dur-ui) ease}
.tc:active{transform:scale(.97)}
.tplgrid label:has(input:checked) .tc,.tplgrid .tc.on{box-shadow:0 0 0 1.5px var(--ink)}

/* pending order choice bar — do not lock user on pay page */
.pendingbar{margin:0 0 14px;padding:14px 16px;border-radius:14px;background:#fff8e6;border:1px solid #f5d78e;color:#1d1d1f}
.pendingbar.hide{display:none}
.pendingbar-inner{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between}
.pendingbar-meta{display:block;margin-top:4px;font-size:13px;color:#86868b;font-variant-numeric:tabular-nums}
.pendingbar-actions{display:flex;gap:8px;flex-shrink:0}
.pendingbar-actions .btn.sm{padding:8px 14px;font-size:13px;width:auto}
@media(max-width:420px){
  .pendingbar-inner{flex-direction:column;align-items:stretch}
  .pendingbar-actions{width:100%}
  .pendingbar-actions .btn.sm{flex:1}
}


/* 页顶可关掉优惠广告条 */
.fest-topbar{display:none;position:sticky;top:0;z-index:12;background:linear-gradient(90deg,#ff6a3d,#ff3b5c 55%,#e6002d);color:#fff;box-shadow:0 1px 0 rgba(0,0,0,.06)}
.fest-topbar:not(.hide){display:block}
.fest-topbar[hidden]{display:none!important}
.fest-topbar-inner{display:flex;align-items:center;gap:10px;justify-content:center;min-height:40px;padding:8px 12px 8px 16px;padding-top:max(8px,env(safe-area-inset-top,0px))}
.fest-topbar-text{flex:1;text-align:center;font-size:14px;font-weight:650;letter-spacing:.02em;line-height:1.35}
.fest-topbar-x{flex:none;width:36px;height:36px;border:0;border-radius:999px;background:rgba(255,255,255,.18);color:#fff;font-size:22px;line-height:1;cursor:pointer;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;-webkit-tap-highlight-color:transparent}
.fest-topbar-x:active{transform:scale(.94);background:rgba(255,255,255,.28)}
@media(max-width:420px){.fest-topbar-text{font-size:13px}}

/* 节日/全场优惠横幅与划价（页内次要提示，可与顶栏并存） */
.fest-banner{display:none;margin:0 0 14px;padding:12px 14px;border-radius:14px;background:linear-gradient(135deg,#fff4e5,#ffe8f0);color:#bf4800;font-size:14px;font-weight:600;line-height:1.4;border:1px solid rgba(191,72,0,.12)}
.fest-banner:not(.hide){display:block}
.fest-old{font-size:.55em;font-weight:500;color:var(--mute);text-decoration:line-through;margin-right:4px}
.tier .tp .fest-old{font-size:.45em;display:inline;margin-right:6px;vertical-align:middle}
.tier .tp .fest-now{color:#d70015}
.tierpick b .fest-old{font-size:.85em;margin-right:4px}
.cmp thead th b .fest-old{font-size:11px;display:inline;font-weight:500}

/* tpl-card-polish-20261021 */
.tc{border-radius:16px;overflow:hidden;background:#fff;border:1px solid rgba(0,0,0,.06);box-shadow:0 8px 24px rgba(15,23,32,.06)}
.tc .th{display:block;overflow:hidden}
.tc .th img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;transition:transform .35s ease}
.tc:hover .th img{transform:scale(1.03)}
.tc .bd{padding:12px 12px 14px}
.tc .bd b{display:block;font-size:14px;font-weight:650;letter-spacing:-.01em;margin-bottom:4px}
.tc .bd small{display:block;color:var(--mute);font-size:12px;line-height:1.45;min-height:2.7em}
.tc .ct{backdrop-filter:blur(8px);background:rgba(255,255,255,.82);color:#1d1d1f;font-weight:600}
.tc .pv{backdrop-filter:blur(8px);background:rgba(29,29,31,.78)}


/* template-premium-pass-20261021 */
:root{
  --bg:#fbfaf8;
  --gray:#f3f1ed;
  --line:rgba(29,29,31,.12);
  --card-shadow:0 10px 28px rgba(28,25,23,.06),0 2px 6px rgba(28,25,23,.04);
  --card-shadow-hover:0 18px 40px rgba(28,25,23,.1),0 4px 12px rgba(28,25,23,.05);
}
body{background:var(--bg)}
.feat{gap:14px}
.feat a{border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--card-shadow);background:#fff;position:relative}
.feat a:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,transparent 55%,rgba(10,12,18,.42));opacity:.9}
.feat a span{z-index:1;font-weight:600;letter-spacing:-.01em;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.feat a img{transition:transform .45s cubic-bezier(.23,1,.32,1)}
.feat a:hover img{transform:scale(1.035)}
.tc{border-radius:18px!important;overflow:hidden;background:#fff;border:1px solid var(--line)!important;box-shadow:var(--card-shadow);transition:box-shadow .3s ease,transform .2s ease}
.tc:hover{box-shadow:var(--card-shadow-hover)}
.tc a.th{position:relative}
.tc a.th:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 28%,transparent 62%,rgba(12,14,20,.18));z-index:1}
.tc .th img{aspect-ratio:3/4!important;transition:transform .45s cubic-bezier(.23,1,.32,1)}
.tc:hover .th img{transform:scale(1.035)}
.tc .ct{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(255,255,255,.86)!important;border:1px solid rgba(255,255,255,.5);font-weight:600;letter-spacing:.02em}
.tc .pv{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(20,20,22,.72)!important;letter-spacing:.02em}
.tc .bd{padding:12px 12px 14px}
.tc .bd b{font-size:14px;font-weight:650;letter-spacing:-.015em}
.tc .bd small{color:var(--mute);font-size:12px;line-height:1.5}
.tier{border:1px solid transparent;box-shadow:0 1px 0 rgba(255,255,255,.6) inset}
.tier.hot{box-shadow:var(--card-shadow),0 0 0 1.5px var(--ink)}
.catrow a{box-shadow:var(--card-shadow);border:1px solid var(--line)!important;background:#fff}
