@font-face{font-family:Alice;font-display:swap;src:url('./assets/alice.woff2')}@font-face{font-family:Funnel;font-display:swap;src:url('./assets/funnel-sans.woff2')}
:root{--paper:#fffbec;--ink:#292823;--wine:#a84755;--pink:#f3e5e2;--line:#e5dfd5;--muted:#7a756c}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.7 Funnel,"PingFang SC","Microsoft YaHei",sans-serif}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation;-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible{outline:3px solid #b06a72;outline-offset:4px}a{color:inherit;text-decoration:none}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:"Songti SC",SimSun,serif;font-weight:600}h1{font-size:36px;line-height:1.35}h2{font-size:25px;line-height:1.5}.topbar{max-width:980px;margin:auto;height:92px;padding:20px 28px;display:flex;align-items:center;justify-content:space-between;gap:16px}.brand{font:32px/1 Alice,Georgia,serif;letter-spacing:-1.5px}.brand span{display:block;font:10px/1.8 "PingFang SC",sans-serif;letter-spacing:4px;margin:5px 0 0 3px}.edition{font-size:10px;color:var(--muted)}.text-button{border:0;background:none;font-size:13px;padding:8px 0}.text-button span{color:var(--wine);padding-left:5px}.preview-note{text-align:center;background:#f1ede1;color:#716b61;font-size:11px;padding:6px 12px}.wrap{max-width:640px;margin:auto;padding:24px 24px 120px}.eyebrow{font-size:10px;letter-spacing:2.4px;color:var(--wine);margin-bottom:12px}.hero{position:relative;overflow:hidden;border-radius:120px 120px 24px 24px;min-height:265px;background:linear-gradient(0deg,#262b2fc9,#332e3520),url('./assets/bench.webp') center/cover;display:flex;align-items:flex-end;padding:30px;color:#fff9ed;margin-bottom:25px}.hero h1{font-size:30px}.hero .eyebrow{color:#fff2c9}.hero-mark{position:absolute;right:25px;top:25px;border:1px solid #fff6;width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font:30px Alice;transform:rotate(12deg)}.intro-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.intro-row p{color:var(--muted);font-size:12px}.step-badge{font:italic 27px Alice;color:#b4997c}.card{padding:25px;background:#fffdf7;border:1px solid var(--line);border-radius:20px;margin:16px 0;box-shadow:0 4px 16px #4d3c211f}.card-heading{display:flex;gap:12px;align-items:center;margin-bottom:22px}.number{width:26px;height:26px;border:1px solid #c7b4a4;border-radius:50%;display:grid;place-items:center;font:12px Alice;color:#9b6d60;flex-shrink:0}.card h2{font-size:21px}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.upload-label{display:block;font-size:13px;margin:0 0 12px}.upload{height:150px;width:100%;background:#f5eee7;border:1px dashed #c4b5a6;border-radius:13px;display:flex;flex-direction:column;justify-content:center;align-items:center;position:relative;overflow:hidden;color:#807368;cursor:pointer}.upload input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.upload:focus-within{outline:2px solid var(--wine)}.upload img{width:100%;height:100%;object-fit:contain}.upload svg{width:28px;height:28px;margin-bottom:8px}.upload small{font-size:12px}.upload-actions{font-size:11px;color:var(--muted);margin-top:8px}.field{display:grid;grid-template-columns:90px 1fr;align-items:center;gap:12px;border-bottom:1px solid #eee7dd;min-height:65px}.field:last-child{border:0}.field label{font-size:14px}.field input,.field select{width:100%;min-width:0;padding:12px 2px;border:0;background:transparent;color:var(--ink);outline-offset:2px}.field input::placeholder,textarea::placeholder{color:#aaa297}.field select:invalid{color:#aaa297}.field select{padding-right:18px}.required{color:var(--wine);font-size:10px;margin-right:5px}textarea{width:100%;min-height:140px;padding:16px;border:1px solid var(--line);border-radius:12px;background:#fbf7ef;resize:vertical;margin-top:20px;font-size:13px}input,select,textarea{accent-color:var(--wine)}.continuous{padding:10px 6px}.continuous label{display:flex;align-items:center;gap:9px;font-size:17px}.continuous input{width:19px;height:19px}.continuous p{font-size:12px;color:var(--muted);margin-top:8px}.actions-bar{position:fixed;z-index:3;bottom:0;left:0;right:0;background:#fffbeced;backdrop-filter:blur(12px);border-top:1px solid var(--line);padding:12px 24px calc(12px + env(safe-area-inset-bottom));display:flex;gap:14px;align-items:center;justify-content:center}.actions-bar .primary{max-width:400px;flex:1}.primary,.secondary{border-radius:50px;padding:14px 24px;border:1px solid var(--wine);font-size:15px}.primary{background:var(--wine);color:white}.primary:hover{background:#943b49}.secondary{background:transparent;border-color:#d1c3b4}.wide{width:100%}.error{color:#a33145;font-size:13px;margin-top:12px;min-height:22px}.fine{color:var(--muted);font-size:12px}.progress-dots{display:flex;gap:7px;margin:25px 0}.progress-dots i{width:25px;height:3px;border-radius:5px;background:#e0d6c7}.progress-dots i.active{background:var(--wine)}.gender-wrap{max-width:560px;padding:40px 26px 70px;margin:auto}.gender-wrap h1{font-size:32px}.gender-options{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:35px 0}.gender-option{border:1px solid #d9cbbd;background:#f7f0e6;border-radius:85px 85px 18px 18px;min-height:220px;padding:20px 12px;transition:.2s}.gender-option[aria-pressed=true]{border-color:var(--wine);background:#f4e3e2;box-shadow:0 0 0 2px #a8475520}.gender-option .avatar{font:74px/1.5 Alice,serif;color:#7b8267;display:block}.gender-option:nth-child(2) .avatar{color:#a96877}.gender-option .check{font-size:11px;display:block;color:var(--wine);height:20px;margin-top:8px}.gender-wrap .fine{margin-top:16px;text-align:center}.back{margin-bottom:24px;color:#8b7664}.results{max-width:640px;margin:auto;padding:25px 24px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:35px}.tab{background:none;border:0;padding:15px 0;color:var(--muted);position:relative}.tab[aria-selected=true]{color:var(--wine)}.tab[aria-selected=true]:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--wine);border-radius:3px}.empty{text-align:center;padding:65px 0 45px}.empty-art{width:210px;height:230px;object-fit:contain;mix-blend-mode:multiply;margin-bottom:20px}.empty h2{font-size:23px;margin-bottom:24px}.empty .primary{display:inline-block}.empty p{margin:10px 0 22px}.footer-note{text-align:center;margin:24px 0;color:#978b7d;font:13px Alice}.gate{min-height:70vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}.gate img{width:130px;height:130px;object-fit:contain;mix-blend-mode:multiply}.gate h1{margin:20px 0;font-size:28px}.gate .primary{margin:15px 0}.gate .fine{max-width:330px}dialog{width:min(480px,calc(100% - 32px));max-height:85dvh;border:1px solid #ddd1c1;border-radius:25px;background:var(--paper);padding:30px;color:var(--ink);box-shadow:0 25px 90px #32272145}dialog::backdrop{background:#302b246e;backdrop-filter:blur(5px)}.close{position:absolute;right:15px;top:12px;font-size:27px;border:0;background:none;color:#8e8072;width:34px;height:34px}.dialog-header{padding:5px 20px 20px 0;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:28px}.reading{max-height:43dvh;overflow:auto;padding:20px 4px 14px 0;font-size:14px;line-height:1.85;overscroll-behavior:contain}.reading p{margin-bottom:15px;white-space:pre-line}.dialog-footer{border-top:1px solid var(--line);padding-top:20px}.dialog-footer .fine{margin-bottom:12px}.dialog-buttons{display:flex;gap:10px;margin-top:24px}.dialog-buttons button{flex:1}.modal-copy{margin-top:24px;font-size:17px}.phone-input{width:100%;padding:14px;border:1px solid var(--line);border-radius:12px;background:#fffdf7;margin:18px 0 8px}#toast{position:fixed;bottom:110px;left:50%;transform:translateX(-50%);max-width:90%;width:max-content;background:#292823;color:#fff;padding:12px 18px;border-radius:12px;font-size:13px;z-index:9;display:none}#toast.visible{display:block}[hidden]{display:none!important}@media(max-width:540px){.topbar{height:78px;padding:15px 22px}.brand{font-size:28px}.edition{display:none}.wrap{padding:20px 18px 125px}.hero{min-height:220px;border-radius:90px 90px 20px 20px;padding:25px}.hero h1{font-size:28px}.card{padding:20px 17px}.card h2{font-size:19px}.upload-grid{gap:12px}.upload-label{font-size:12px}.upload{height:135px}.field{grid-template-columns:82px 1fr;gap:8px}.field input,.field select{font-size:14px}.gender-wrap{padding-top:30px}.gender-option{min-height:215px}dialog{padding:26px 22px}.actions-bar{padding-left:20px;padding-right:20px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.upload-placeholder{display:flex;flex-direction:column;align-items:center}
/* Screenshot-aligned registration layout: retain structure, soften palette. */
.application-page{background:#f7f5ef;font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.application-page .topbar{display:none}
.application-page .preview-note{background:#eee6dc;color:#8a7464;font-size:10px;padding:7px}
.application-page .wrap{max-width:600px;padding:16px 16px 120px}
.reference-banner{height:108px;border-radius:5px;background:repeating-linear-gradient(110deg,#eed6d0 0,#f3e2da 18px,#efdad4 40px);display:flex;align-items:center;justify-content:center;gap:18px;margin:0 0 16px;overflow:hidden}
.banner-person{width:94px;height:94px;border-radius:50%;background:#fffaf3;display:grid;place-items:center;font:62px/1 Georgia;color:#6f7c88}
.banner-person:last-child{color:#ad7480}.banner-heart{font:64px/1 Georgia;color:var(--wine)}
.application-page .card{border:0;border-radius:12px;box-shadow:none;background:#fff;margin:16px 0;padding:17px 16px}
.application-page h2,.application-page .upload-label{font-family:"PingFang SC","Microsoft YaHei",sans-serif;font-size:18px;font-weight:650;line-height:1.5}
.application-page .upload-card{background:linear-gradient(#f4e2e3 0,#fff 48%);padding:16px 16px 18px}
.application-page .upload-label{margin-bottom:17px;position:relative;isolation:isolate}
.application-page .upload-label:before,.application-page .card-heading h2:before{content:'';position:absolute;left:0;bottom:3px;width:46px;height:6px;background:#dca5af;z-index:-1;border-radius:3px}
.application-page .upload{width:100px;height:100px;background:#fff;border:1px solid #d8d4d1;border-radius:5px;margin:auto;color:#c0bbb6}
.application-page .upload svg{width:36px;height:36px;margin-bottom:0}
.application-page .upload small{font-size:12px}
.application-page .upload-actions{display:none}
.application-page .card-heading{margin-bottom:6px;padding-bottom:14px;border-bottom:1px dashed #dca5af}
.application-page .card-heading h2{position:relative;isolation:isolate}
.application-page .field{border:0;min-height:53px;grid-template-columns:88px 1fr;gap:8px}
.application-page .field label{font-size:16px;font-weight:600}
.application-page .required{font-size:20px;color:#d4a0ae;line-height:0;margin-right:5px}
.application-page .field input,.application-page .field select{font-size:15px}
.application-page textarea{border:1px dashed #d4a0ae;border-radius:12px;background:white;margin-top:10px;min-height:165px;font-size:13px;line-height:1.5;padding:15px 10px}
.application-page .continuous{padding:3px 0}
.application-page .continuous label{font-size:20px;gap:10px}.application-page .continuous input{width:22px;height:22px;margin:0}
.application-page .continuous p{font-size:15px;line-height:1.5;color:#373330}
.application-page .footer-note{display:none}
.application-page .actions-bar{background:#f7f5eff5;border:0;padding:12px 16px calc(18px + env(safe-area-inset-bottom))}
.application-page .actions-bar .primary{max-width:568px;font-size:21px;font-weight:600;padding:12px;background:#a95868;border:0;box-shadow:0 5px 15px #a9586825}
.floating-tools{position:fixed;z-index:4;right:max(16px,calc((100vw - 570px)/2));bottom:calc(180px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:18px}
.floating-tools button{width:62px;height:62px;border-radius:50%;border:4px double #fff;background:#b66b7b;color:#fff;font-size:14px;line-height:1.2;box-shadow:0 0 0 2px #ebced2,0 3px 10px #a9586833}
@media(min-width:600px){.reference-banner{height:150px}.banner-person{width:120px;height:120px}.application-page .upload{width:125px;height:125px}}

.reference-banner{height:auto;aspect-ratio:3/1;padding:0;gap:0}.couple-banner{display:block;width:100%;height:100%;object-fit:cover}
/* WeChat-style bottom wheel pickers. */
.picker-field{min-width:0}.picker-trigger{border:0;background:none;width:100%;padding:13px 0;display:flex;align-items:center;justify-content:space-between;gap:6px;text-align:left;font-size:15px;min-height:48px}.picker-trigger.is-empty{color:#999}.picker-trigger span{min-width:0;overflow-wrap:anywhere}.picker-trigger i{border-right:1.5px solid #888;border-bottom:1.5px solid #888;width:8px;height:8px;transform:rotate(45deg);margin:0 3px 5px;flex-shrink:0}
dialog.wheel-dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:600px;max-height:90dvh;border:0;border-radius:12px 12px 0 0;background:#fff;color:#151515;padding:0;box-shadow:none;font-family:"PingFang SC","Microsoft YaHei",sans-serif;overflow:hidden}
dialog.wheel-dialog::backdrop{background:#0006;backdrop-filter:none}.wheel-header{height:68px;position:relative;display:flex;align-items:center;justify-content:center;padding:0 50px}.wheel-header h2{font:600 16px/1.5 "PingFang SC","Microsoft YaHei",sans-serif;text-align:center}.wheel-cancel{position:absolute;left:18px;top:14px;width:38px;height:38px;background:none;border:0;font-size:33px;line-height:1;color:#111;padding:0}.wheel-group{display:flex;position:relative;margin:0 20px;height:220px}.wheel-group:after{content:'';pointer-events:none;position:absolute;left:0;right:0;top:88px;height:44px;border-top:1px solid #eee;border-bottom:1px solid #eee}.wheel-column{flex:1;min-width:0;height:220px;overflow-y:auto;overscroll-behavior:contain;scroll-snap-type:y mandatory;scrollbar-width:none;padding:88px 0;touch-action:pan-y;outline-offset:-2px}.wheel-column::-webkit-scrollbar{display:none}.wheel-option{height:44px;line-height:44px;text-align:center;scroll-snap-align:center;white-space:nowrap;font-size:17px;cursor:pointer;overflow:hidden;text-overflow:ellipsis;padding:0 5px;user-select:none;color:#161616}.wheel-footer{height:105px;display:flex;align-items:center;justify-content:center;padding-bottom:env(safe-area-inset-bottom)}.wheel-confirm{border:0;background:#07c160;color:#fff;border-radius:4px;min-width:120px;height:36px;font-size:16px;font-weight:600;padding:0 22px}.region-dialog .wheel-header{height:50px;border-bottom:1px solid #f2f2f2;justify-content:space-between;padding:0 20px}.region-dialog .wheel-header h2{display:none}.region-dialog .wheel-cancel{position:static;width:auto;height:auto;font-size:17px;color:#07a84f}.region-dialog .wheel-confirm{background:none;color:#07a84f;font-size:17px;min-width:0;padding:0;height:auto}.region-dialog .wheel-group{margin:0 5px;margin-bottom:env(safe-area-inset-bottom)}.region-dialog .wheel-option{font-size:15px}@media(max-height:500px){.wheel-header{height:48px}.wheel-footer{height:60px}.wheel-group,.wheel-column{height:176px}.wheel-column{padding:66px 0}.wheel-group:after{top:66px}}
/* Keep the close control quiet when a dialog opens; keyboard focus uses a soft fill. */
#modal .close:focus-visible{outline:none;background:#f3e5e2;border-radius:50%}
/* Screenshot-inspired gender selection, using the approved campus characters. */
body.gender-page{min-height:100dvh;background:linear-gradient(180deg,#f2cbbd 0%,#cc8490 48%,#a84755 100%)}
.gender-page .topbar,.gender-page .preview-note{display:none}
.gender-page .gender-wrap{max-width:540px;margin:auto;min-height:100dvh;padding:clamp(80px,13dvh,130px) 38px 60px;text-align:center;color:#fffaf2}
.gender-page .gender-wrap h1{font:500 23px/1.5 "PingFang SC","Microsoft YaHei",sans-serif}
.gender-page .gender-options{gap:48px;margin:55px 0 52px}
.gender-page .gender-option{display:block;min-height:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:inherit;opacity:.48;transition:opacity .18s}
.gender-page .gender-option[aria-pressed=true],.gender-page .gender-option:hover{opacity:1;background:none;box-shadow:none}
.gender-page .gender-portrait{display:block;width:100%;aspect-ratio:1;border-radius:50%;background-image:url('./assets/couple-campus-v2.webp');background-size:390% auto;background-repeat:no-repeat;background-position:15% 48%;overflow:hidden}
.gender-page .gender-portrait.girl{background-position:85.4% 48%}
.gender-page .gender-label{display:flex;justify-content:center;align-items:center;gap:7px;font-size:20px;white-space:nowrap;margin-top:12px}
.gender-page .gender-tick{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#fffaf2;color:#b76776;font-size:14px;font-weight:700}
.gender-page #gender-confirm{background:#fffdf7;color:#a84755;border:0;font-size:20px;font-weight:600;padding:15px;width:100%;max-width:none}
.gender-page #gender-confirm:disabled{opacity:.65}
@media(max-width:360px){.gender-page .gender-wrap{padding-left:28px;padding-right:28px}.gender-page .gender-options{gap:34px}.gender-page .gender-label{font-size:18px}}
#modal .close{padding:0;line-height:1;appearance:none;display:block}
#modal .close::before,#modal .close::after{content:"";position:absolute;left:50%;top:50%;width:17px;height:2px;background:currentColor;border-radius:1px;transform:translate(-50%,-50%) rotate(45deg)}
#modal .close::after{transform:translate(-50%,-50%) rotate(-45deg)}

.startup-shell{max-width:640px;margin:auto;padding:24px 18px}.startup-shell img{display:block;width:100%;height:auto;border-radius:8px}.startup-shell p{text-align:center;color:var(--muted);padding:18px;font-size:14px}.startup-placeholder{height:155px;border-radius:16px;background:#f2ede3;margin:16px 0}

/* Avoid blurred compositor layers behind native dialogs on mobile WebKit. */
dialog::backdrop,dialog.wheel-dialog::backdrop{background:rgba(0,0,0,.4);-webkit-backdrop-filter:none;backdrop-filter:none}
.actions-bar{-webkit-backdrop-filter:none;backdrop-filter:none}
.wheel-cancel:focus,.wheel-cancel:focus-visible{outline:none;box-shadow:none;background:#f5f5f5;border-radius:50%}
.wheel-header h2:focus{outline:none}
.wheel-dialog:not(.region-dialog) .wheel-cancel{padding:0;line-height:1;appearance:none;-webkit-appearance:none}
.wheel-dialog:not(.region-dialog) .wheel-cancel::before,.wheel-dialog:not(.region-dialog) .wheel-cancel::after{content:"";position:absolute;left:50%;top:50%;width:21px;height:2px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.wheel-dialog:not(.region-dialog) .wheel-cancel::after{transform:translate(-50%,-50%) rotate(-45deg)}

body.results-page{background:#fff;min-height:100dvh}
:is(.results-page,.results-entry) .topbar,:is(.results-page,.results-entry) .preview-note{display:none}
:is(.results-page,.results-entry) .results{max-width:640px;padding:0 16px 30px;margin:0 auto}
:is(.results-page,.results-entry) .tabs{gap:0;border-bottom:1px solid #ececec}
:is(.results-page,.results-entry) .tab{flex:1;text-align:center;padding:15px 0;font-size:18px;color:#292823}
:is(.results-page,.results-entry) .tab[aria-selected=true]{font-weight:600;color:var(--wine)}
:is(.results-page,.results-entry) .tab[aria-selected=true]::after{width:32px;height:4px;left:50%;right:auto;transform:translateX(-50%);border-radius:4px}
:is(.results-page,.results-entry) .empty{padding:clamp(100px,20dvh,190px) 10px 36px;text-align:center}
:is(.results-page,.results-entry) .empty-art{width:200px;height:210px;margin-bottom:22px;object-fit:contain}
:is(.results-page,.results-entry) .empty h2{font:400 17px/1.6 "PingFang SC","Microsoft YaHei",sans-serif;color:#777;margin-bottom:20px}
:is(.results-page,.results-entry) .empty p:empty{display:none}
:is(.results-page,.results-entry) .empty .primary{font-size:17px;font-weight:600;min-width:158px;padding:12px 23px}
:is(.results-page,.results-entry) .empty .fine{max-width:290px;margin:12px auto;font-size:13px}
@media(max-height:650px){:is(.results-page,.results-entry) .empty{padding-top:65px}:is(.results-page,.results-entry) .empty-art{height:170px;width:170px}}

#modal.notices-dialog{position:fixed;inset:auto 0 0;margin:0 auto;width:100%;max-width:600px;max-height:88dvh;border:0;border-radius:12px 12px 0 0;background:#fff;color:#222;box-shadow:none;padding:17px 16px calc(35px + env(safe-area-inset-bottom));overflow-y:auto;font:14px/1.55 "PingFang SC","Microsoft YaHei",sans-serif}
#modal.notices-dialog>.close{display:none}
#modal.notices-dialog h2{text-align:center;color:#666;font:600 18px/1.5 "PingFang SC","Microsoft YaHei",sans-serif;margin:0 0 20px;outline:none}
.notice-copy p{margin:0 0 20px;white-space:normal}.notice-copy p:last-child{margin-bottom:0}.notice-copy strong{color:#f00;font-weight:700}

/* Compact, consistent spacing for the activity agreement only. */
#modal.agreement-dialog{padding-top:20px}
.agreement-dialog .dialog-header{padding:0 38px 12px 0}
.agreement-dialog .reading{padding:14px 0 12px;font-size:14px;line-height:1.6}
.agreement-dialog .reading p{margin:0 0 10px;line-height:inherit}
.agreement-dialog .reading p:last-child{margin-bottom:0}
.agreement-dialog .dialog-footer{padding-top:14px}

.results-entry .results-startup .tabs{display:flex;gap:0}.results-entry .results-startup .tab{flex:1;opacity:1}.results-entry .results-startup .empty{padding-top:15vh}

/* Explicit viewport anchoring avoids native-dialog horizontal offset on iOS. */
dialog.wheel-dialog{left:50%;right:auto;top:auto;bottom:0;margin:0;width:100vw;max-width:600px;min-width:0;box-sizing:border-box;transform:translateX(-50%);-webkit-text-size-adjust:100%;text-size-adjust:100%}
.region-dialog .wheel-header{display:grid;grid-template-columns:1fr 1fr;width:100%;padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
.region-dialog .wheel-cancel,.region-dialog .wheel-confirm{position:static;inset:auto;display:flex;align-items:center;justify-content:center;min-width:48px;min-height:44px;margin:0;padding:0 4px;line-height:1.2;appearance:none;-webkit-appearance:none}
.region-dialog .wheel-cancel{justify-self:start}.region-dialog .wheel-confirm{justify-self:end}
.region-dialog .wheel-group{margin-left:max(8px,env(safe-area-inset-left));margin-right:max(8px,env(safe-area-inset-right))}
.region-dialog .wheel-column{flex:1 1 0;width:0;overflow-x:hidden}
.region-dialog .wheel-option{display:flex;align-items:center;justify-content:center;white-space:normal;overflow-wrap:anywhere;line-height:1.2;font-size:14px;padding:0 4px;text-overflow:clip}

/* Matching plan selection after the profile has been submitted. */
body.checkout-page{background:#fff}.checkout-page .topbar,.checkout-page .preview-note{display:none}
.checkout-wrap{max-width:600px;margin:auto;padding:18px 16px calc(110px + env(safe-area-inset-bottom));font-family:"PingFang SC","Microsoft YaHei",sans-serif}
.checkout-back{border:0;background:none;padding:6px 0;color:#8a6971;font-size:13px}
.checkout-plans{height:210px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:30px;margin:0 0 18px}
.checkout-plan{flex-shrink:0;position:relative;isolation:isolate;overflow:hidden;width:68%;height:58px;border:0;border-radius:10px;color:#fff;font-size:21px;font-weight:700;background:linear-gradient(105deg,#ff0035,#ff498f);transition:width .18s,height .18s}
.checkout-plan::before{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(circle at 5% 85%,#ffffff15 0 17%,transparent 18%),radial-gradient(circle at 65% 0%,#ffffff14 0 19%,transparent 20%),radial-gradient(circle at 80% 110%,#ffffff12 0 23%,transparent 24%)}
.checkout-plan.premium{background:linear-gradient(105deg,#a61aff,#b692fb)}.checkout-plan.selected{width:94%;height:78px;font-size:25px;box-shadow:0 7px 20px #fa3c6540}.checkout-plan.premium.selected{box-shadow:0 7px 20px #9a30ee45}
.checkout-benefits{position:relative;overflow:hidden;background-color:#ff9ccb;background-image:linear-gradient(#ffffff42 1px,transparent 1px),linear-gradient(90deg,#ffffff42 1px,transparent 1px);background-size:18px 18px;padding:22px 16px 20px;color:#7d234d;min-height:290px}
.checkout-benefits.premium{background-color:#76ddf4;color:#392b62;background-image:linear-gradient(145deg,#47dff2,#b7c6ff)}
.checkout-benefits h1{position:relative;font:900 clamp(25px,7vw,38px)/1.3 "PingFang SC",sans-serif;text-align:center;margin:4px 0 24px;color:#fff8d8;text-shadow:2px 2px #ae1754,-1px -1px #ae1754}.checkout-benefits.premium h1{text-shadow:2px 2px #292332,-1px -1px #292332;color:white;font-size:clamp(23px,6vw,34px)}
.checkout-decoration{position:absolute;right:8px;top:0;color:#ff4c93;font-size:100px;line-height:1;transform:rotate(12deg)}
.checkout-benefit-sheet{position:relative;background:#fffef9;border:2px solid #d25b91;border-radius:15px;padding:14px 12px;box-shadow:5px 6px #d3489630}
.checkout-benefit-sheet p{display:flex;align-items:center;gap:10px;margin:0 0 12px;padding:12px 8px;border:1px solid #e499b4;border-radius:9px;background:linear-gradient(110deg,#ffe3c9,#ffb9dc);font-size:15px;font-weight:600;line-height:1.5}.checkout-benefit-sheet b{font-size:19px;color:#b84a73}.premium .checkout-benefit-sheet p{background:#fff;border:0;color:#302b3c}
.checkout-wish{border-radius:24px;background:linear-gradient(100deg,#ffc99e,#ff82bb);padding:8px 4px;text-align:center;color:white;font-size:17px;font-weight:800;text-shadow:1px 1px #b65078}
.checkout-payment-note{font-size:12px;color:#8e7f83;margin:18px 4px;line-height:1.6}
.checkout-paybar{position:fixed;left:0;right:0;bottom:0;z-index:5;display:flex;min-height:60px;background:#ffe5ed;padding-bottom:env(safe-area-inset-bottom)}
.checkout-price{width:31%;display:flex;align-items:center;justify-content:center;gap:4px;color:#f50051;font-size:26px;font-weight:700}.checkout-price small{font-size:20px}.checkout-paybar button{flex:1;border:0;background:#ff0056;color:#fff;font-size:23px;font-weight:700;opacity:1;cursor:not-allowed;min-height:60px}
@media(prefers-reduced-motion:reduce){.checkout-plan{transition:none}}

body.success-page{background:linear-gradient(110deg,#cef3fa 0%,#e9defc 43%,#ffe7e3 74%,#fde1f6 100%);min-height:100dvh}.success-page .preview-note,.success-page .topbar{display:none}.payment-success{max-width:640px;margin:auto;text-align:center;padding:clamp(70px,13vh,130px) 22px 50px;min-height:100dvh}.payment-success h1{font:700 clamp(20px,5.8vw,28px)/1.5 sans-serif;color:#ed7997;margin:0 0 22px}.payment-success h2{font:600 17px/1.6 sans-serif;color:#ed7997;margin:0 0 20px}.official-qr{display:block;width:min(68vw,300px);margin:auto}.official-qr img{display:block;width:100%;height:auto}.payment-success p{color:#777;margin:15px 0;font-size:16px}.success-results{display:inline-block;margin-top:24px;color:var(--wine);font-size:14px}.match-record{margin:22px 0;border:1px solid #f1ecee;border-radius:5px;overflow:hidden;background:white}.match-record header{background:#d995a7;color:white;padding:11px 16px;font-size:14px;overflow-wrap:anywhere}.match-record-body{display:flex;gap:16px;align-items:center;padding:20px 16px}.match-record-body>img{width:64px;height:64px;object-fit:cover;border-radius:5px}.match-record-body>div{min-width:0;flex:1}.match-record-body p{margin:3px 0;font-size:14px;line-height:1.7}.match-plan{display:inline-block;background:#d995a7;color:#fff;border-radius:2px;padding:0 6px;font-size:12px}.match-settings{margin-top:24px;color:#817677;font-size:13px}.match-settings summary{cursor:pointer}.match-record-body a{color:var(--wine);font-size:13px}

/* Keep the two price lines together on narrow WeChat viewports. */
.checkout-price{flex:0 0 40%;width:auto;min-width:0;flex-direction:column;gap:3px;padding:7px 8px;line-height:1.2;white-space:nowrap}.checkout-original{font-size:12px;font-weight:400;color:#93838a}.checkout-current{display:flex;align-items:baseline;justify-content:center;gap:3px}.checkout-current strong{font-size:28px;line-height:1}.checkout-current small{font-size:17px}.checkout-offer{font-size:13px;margin-right:3px}.checkout-paybar button{min-width:0;font-size:20px}.checkout-paybar{min-height:64px}

.match-avatar{display:block;flex:none;width:52px;height:52px;border-radius:0;background:transparent url('./assets/match-people-v1.png') 0 50% / 200% auto no-repeat}.match-avatar.girl{background-position:100% 50%}.match-record-clickable{position:relative}.pending-card-link{position:absolute;inset:0;z-index:1;border-radius:inherit}.pending-card-link:focus-visible{outline:2px solid #a84755;outline-offset:3px}

.connection-card{margin:22px 0 0;border:1px solid #eedfe3;border-radius:16px;overflow:hidden;background:#fff;box-shadow:0 8px 28px #a8475509}.connection-card>header{display:flex;justify-content:space-between;align-items:center;gap:10px;background:#f7e6eb;color:#9d465b;padding:13px 16px;font-size:13px}.connection-badge{white-space:nowrap;background:#a84755;color:white;border-radius:20px;padding:2px 9px;font-size:11px}.connection-body{text-align:center;padding:25px 18px 18px}.connection-avatars{display:flex;align-items:center;justify-content:center;gap:17px;margin-bottom:17px}.connection-avatars .match-avatar{width:60px;height:60px;border-radius:50%;border:3px solid #fff5ed;box-shadow:0 3px 14px #a8475515}.connection-heart{color:#c7758a;font-size:30px}.connection-body h1{font:600 23px/1.5 sans-serif;color:#a84755}.connection-intro{font-size:13px;color:#99818a;margin:8px 0 24px}.connection-qr{padding:12px;border:1px solid #f1e5e8;border-radius:12px;width:min(100%,284px);margin:0 auto 18px;background:#fff}.connection-qr img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}.connection-instruction{font-size:16px;font-weight:600}.connection-expiry{font-size:13px;color:#a84755;margin-top:9px}.connection-private,.connection-date{font-size:11px;color:#a3979b;margin-top:7px}.connection-help{margin:23px 0 17px;border-top:1px solid #f1e9ec;padding-top:16px;font-size:13px;color:#a84755}.connection-help summary{cursor:pointer}.connection-help p{margin:15px 0;color:#817078}.connection-help img{max-width:100%;height:auto}.connection-end{text-align:center;padding:20px 0 4px}.connection-end button{border:0;background:none;color:#99898e;font-size:13px;padding:8px 18px}.connection-end p{font-size:11px;color:#aaa}

/* Pair portraits face the center regardless of which gender is on each side. */
.connection-avatars>.match-avatar:first-child{transform:none}.connection-avatars>.match-avatar:last-child{transform:scaleX(-1)}

.match-settings>.card{margin:10px 0 0;padding:12px 16px}.match-settings>.card>label{display:flex;align-items:center;gap:8px}.match-settings #continuous-setting{margin:0}

/* Reference-style match result, using the Meetwell palette. */
.match-success-screen{min-height:100dvh;background:linear-gradient(155deg,#eed0cb 0%,#d795a5 42%,#a84760 100%);padding:16px 16px calc(105px + env(safe-area-inset-bottom));text-align:center;color:white;box-sizing:border-box}.match-success-banner{display:block;width:100%;height:auto;aspect-ratio:3/1;object-fit:cover;object-position:center top;border-radius:12px;margin-bottom:24px}.match-success-screen h1{font:600 clamp(16px,4.4vw,23px)/1.6 "PingFang SC","Microsoft YaHei",sans-serif;color:#fff;margin:0}.match-success-hint{font-size:16px;margin:6px 0 22px;color:#fff5f4}.match-success-qr{width:min(78%,360px);margin:0 auto 18px;background:white;border-radius:6px;overflow:hidden;padding:8px}.match-success-qr img{display:block;width:100%;height:auto;min-height:160px;object-fit:contain}.match-success-expiry,.match-success-private{font-size:12px;line-height:1.7;color:#fff5f4;margin:5px 0}.match-success-help{font-size:13px;max-width:330px;margin:22px auto}.match-success-help summary{cursor:pointer}.match-success-help p{font-size:12px;line-height:1.7;margin:12px 0}.match-success-help img{display:block;margin:12px auto;max-width:70%;height:auto}.match-success-footer{position:fixed;z-index:30;bottom:0;left:0;right:0;background:#fff;padding:0 16px env(safe-area-inset-bottom);box-shadow:0 -2px 12px #8830490a}.match-success-footer button{border:0;background:#fff;color:#a84760;font-size:20px;font-weight:600;width:100%;min-height:62px}.match-success-footer button:disabled{opacity:.5}.match-success-page .results{padding:0;max-width:640px;margin:0 auto}.match-success-page .results>.tabs,.match-success-page .match-settings,.match-success-page #signup-ticker,.match-success-page #results-top{display:none!important}.match-success-page{background:#a84760}
.past-matches{margin:22px 16px;font-size:13px;text-align:left}.past-matches summary{cursor:pointer;padding:10px 0}.past-matches a{display:block;padding:12px 0;border-top:1px solid #e5c4ce;text-decoration:none}.match-success-screen .past-matches a,.match-success-screen .match-back{color:#fff}.match-back{display:block;margin:20px 0;font-size:13px}.next-round-action{text-align:center;margin:24px 0}.round-notice{font-size:13px;color:#924b60;line-height:1.7;padding:14px 16px;margin:0 0 16px;border-radius:10px;background:#f4e4e8}
.pool-preferences{padding:20px!important;text-align:left}
.pool-toggle{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #eee2e5;cursor:pointer}
.pool-toggle:first-child{padding-top:0}.pool-toggle strong,.pool-preferences legend{font-size:17px;font-weight:600;color:#292525}
.pool-preferences small{display:block;font-size:13px;line-height:1.6;color:#8d7e83;margin-top:5px}
.pool-toggle input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:46px;height:28px;border:0;border-radius:20px;background:#d8d5d5;position:relative;margin:0;cursor:pointer}
.pool-toggle input:before{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:white;box-shadow:0 1px 4px #0002;transition:transform .18s}
.pool-toggle input:checked{background:#aa4e64}.pool-toggle input:checked:before{transform:translateX(18px)}.pool-toggle input:disabled{opacity:.45;cursor:not-allowed}
.pool-preferences fieldset{border:0;padding:20px 0 0;margin:0;min-width:0}.pool-preferences legend{float:left;width:100%;margin-bottom:16px}.pool-choice{display:flex;clear:both;align-items:flex-start;gap:10px;padding:10px 0;font-size:16px;cursor:pointer}.pool-choice input{width:18px;height:18px;margin:3px 0 0;accent-color:#aa4e64;flex:none}.pool-note{font-size:12px;line-height:1.7;color:#8d7e83;margin:14px 0 0}.pool-preferences input:focus-visible{outline:2px solid #aa4e64;outline-offset:3px}
.match-success-page .pool-settings-panel{display:block!important;background:#fff;padding:20px;margin:0 16px 110px;border-radius:12px;color:#292525}.pool-settings-panel>summary{cursor:pointer}.pool-settings-panel form>button{margin:0 20px 20px}

/* Text contacts share the existing rose palette and remain selectable on mobile. */
.contact-form-note{margin:14px 0 0;color:#866973;font-size:12px;line-height:1.7}
.match-contacts{margin:24px auto;width:min(100%,380px);padding:4px 20px;border:1px solid #ead4dc;border-radius:20px;background:#fff9fb;text-align:left;box-sizing:border-box}
.match-contact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 0}
.match-contact-row+.match-contact-row{border-top:1px solid #efdee5}
.match-contact-row>div{min-width:0}
.match-contact-row span{display:block;font-size:12px;color:#987780;margin-bottom:6px}
.match-contact-row strong{font-size:19px;color:#74344e;overflow-wrap:anywhere;user-select:text;-webkit-user-select:text}
.match-contact-row button{flex-shrink:0;border:0;background:#f3e1e9;color:#873b58;border-radius:12px;min-height:44px;padding:0 15px;font:inherit;font-size:13px}

.pool-preferences .pool-toggle:only-child{padding-bottom:0;border-bottom:0}
.application-page .wrap{padding-bottom:calc(76px + env(safe-area-inset-bottom))}

.application-page .floating-tools{bottom:calc(300px + env(safe-area-inset-bottom))}

.connection-state .topbar,.connection-state .signup-ticker{display:none!important}
.connection-status{max-width:440px;min-height:65vh;margin:auto;padding:100px 24px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px}
.connection-status h1{font-size:25px}.connection-status>p:not(.eyebrow){color:#866973;font-size:14px}.connection-status button{min-width:180px}
.connection-spinner{width:28px;height:28px;border:3px solid #ead4dc;border-top-color:#a95868;border-radius:50%;animation:connection-spin 1s linear infinite}@keyframes connection-spin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.connection-spinner{animation:none}}

/* Small secondary entry below the current registration card. */
.next-round-action{display:flex;justify-content:flex-end;margin:14px 0 20px}.reapply-link{display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:6px 12px;border:1px solid #e5cdd1;border-radius:22px;background:#fff8f8;color:#a84658;font:inherit;font-size:14px;cursor:pointer}.reapply-link:disabled{opacity:.6;cursor:wait}
