:root{--wine:#672539;--wine-dark:#431626;--rose:#f3e8ec;--ink:#252323;--muted:#736c6b;--line:#e9e4e1;--paper:#fff;--bg:#fbf9f7;--green:#24664b}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{opacity:.6;cursor:wait}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid #bd6985;outline-offset:4px}[hidden]{display:none!important}.skip{position:fixed;left:20px;top:-100px;z-index:100;background:white;padding:12px}.skip:focus{top:10px}#sidebar{position:fixed;inset:0 auto 0 0;width:242px;background:#fff;border-right:1px solid var(--line);padding:35px 22px 22px;display:flex;flex-direction:column;z-index:30;overflow-y:auto}.brand{display:flex;align-items:center;justify-content:center;width:100%;padding:0;margin:0;text-decoration:none}.brand-lockup{display:block;width:186px;height:auto;max-width:100%;}.region{font-size:14px;letter-spacing:1.6px;margin:11px 0 28px;text-align:center;color:var(--muted)}#nav{display:grid;gap:8px}#nav a{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:9px;font-size:14px;font-weight:500;color:#6c6667}#nav a>span{width:20px;font-size:21px;line-height:1}#nav a small{margin-left:auto}#nav a:hover{background:#faf5f7}#nav a.active{background:var(--rose);color:var(--wine);font-weight:700}.sidebar-bottom{margin-top:auto;padding-top:50px}.side-note{border-top:1px solid var(--line);padding-top:20px}.side-note>span{font-size:14px;letter-spacing:1.5px;color:var(--wine);font-weight:700}.side-note p{font-family:'Playfair Display',serif;font-size:18px;line-height:1.5;color:#696062}.account-link{margin:25px 0 14px;display:flex;justify-content:space-between;font-size:14px;font-weight:700}.sidebar-bottom>small{font-size:14px;color:var(--muted)}.workspace{margin-left:242px}.topbar{height:80px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 46px;color:var(--muted);font-size:14px}.site-badge{font-size:14px;letter-spacing:1px;border:1px solid #dcd3d4;border-radius:30px;padding:7px 11px;color:var(--wine)}main{min-height:calc(100vh - 155px)}.landing{padding:52px 46px 28px;max-width:1500px;margin:auto}.intro{position:relative;border-bottom:1px solid var(--line);padding-bottom:43px}.eyebrow{font-size:14px;letter-spacing:2px;color:var(--wine);font-weight:700;text-transform:uppercase;display:block}.eyebrow:before{content:'—';margin-right:10px}h1,h2,h3,p{margin-top:0}h1,h2{font-family:'Playfair Display',serif;font-weight:500;letter-spacing:-1.6px;line-height:1.1}h1{font-size:clamp(42px,4.7vw,70px);margin:20px 0}h1 em{font-weight:500;color:var(--wine)}.hero-bottom{display:flex;justify-content:space-between;align-items:end;gap:26px}.intro p{max-width:540px;color:var(--muted);font-size:16px;line-height:1.8;margin:0}.button{display:inline-flex;gap:25px;align-items:center;justify-content:center;border:1px solid var(--wine);border-radius:7px;background:var(--wine);color:white;padding:14px 22px;font-size:14px;font-weight:600}.button:hover{background:var(--wine-dark)}.button.secondary{color:var(--wine);background:white}.button.secondary:hover{background:var(--rose)}.button.full{width:100%}.hero-cta{flex-shrink:0;text-align:center}.hero-cta small{display:block;margin-top:9px;font-size:14px;color:var(--muted)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:32px 0 18px}.section-heading h2{font-size:26px;letter-spacing:-.6px;margin:0}.section-heading p{font-size:14px;color:var(--muted);margin:0}.preview-grid,.profile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px}.profile-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;min-width:0}.portrait{height:218px;position:relative;overflow:hidden;background:#c3b5b0}.photo{position:absolute;inset:-10px;background-image:url('/portraits-gendered.png');background-size:500% 200%;filter:none;transform:scale(1.01)}.photo.gender-female.p0{background-position:0 0}.photo.gender-female.p1{background-position:25% 0}.photo.gender-female.p2{background-position:50% 0}.photo.gender-female.p3{background-position:75% 0}.photo.gender-female.p4{background-position:100% 0}.photo.gender-male.p0{background-position:0 100%}.photo.gender-male.p1{background-position:25% 100%}.photo.gender-male.p2{background-position:50% 100%}.photo.gender-male.p3{background-position:75% 100%}.photo.gender-male.p4{background-position:100% 100%}.portrait:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,#19101555)}.privacy-chip{position:absolute;z-index:1;left:11px;bottom:11px;color:white;border:1px solid #ffffff66;background:#ffffff18;backdrop-filter:blur(4px);font-size:14px;border-radius:30px;padding:4px 8px}.profile-info{padding:14px}.profile-top{display:flex;justify-content:space-between;gap:6px;font-size:14px;color:var(--muted)}.profile-info h3{margin:8px 0 4px;font-size:17px;font-weight:600}.profile-info p{font-size:14px;color:var(--muted);margin:0 0 7px}.profile-info .habit{font-size:14px;color:#7b7474}.card-link{display:flex;justify-content:space-between;align-items:center;border:0;border-top:1px solid var(--line);padding:12px 14px;background:white;color:var(--wine);font-size:14px;width:100%;text-align:left}.card-link:hover{background:var(--rose)}.landing-note{display:flex;justify-content:space-between;gap:15px;padding-top:23px;font-size:14px;color:var(--muted)}.landing-note span:first-child{color:var(--wine)}footer{padding:23px 46px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.page{padding:50px 46px;max-width:1450px;margin:auto}.page>h1{font-size:46px}.lede{color:var(--muted);max-width:700px;line-height:1.8}.page-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.page-head h1{font-size:44px;margin-bottom:10px}.panel{border:1px solid var(--line);background:white;border-radius:15px;padding:30px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.form-panel{max-width:540px}.form-panel h2{font-size:31px}.form-panel p{font-size:14px;color:var(--muted)}label{display:block;font-size:14px;font-weight:600;margin:18px 0 7px}input,select,textarea{width:100%;border:1px solid #dcd5d4;padding:12px 13px;border-radius:7px;color:var(--ink);background:white;min-width:0}textarea{min-height:115px;resize:vertical}.row{display:grid;grid-template-columns:1fr 1fr;gap:15px}.check{display:flex;align-items:start;gap:10px;font-size:14px;line-height:1.6;font-weight:400;margin-bottom:20px}.check input{width:18px;height:18px;flex-shrink:0;margin-top:2px}.tabs{display:flex;border-bottom:1px solid var(--line);gap:25px;margin-bottom:25px}.tabs button{border:0;background:none;padding:0 0 12px;font-size:14px;color:var(--muted)}.tabs button.active{color:var(--wine);border-bottom:2px solid var(--wine)}.form-error{color:#a02037;background:#fff0f2;border-radius:6px;padding:10px;font-size:14px;margin-top:15px}.hint{font-size:14px;color:var(--muted);margin:9px 0}.form-aside{padding:30px}.form-aside h2{font-size:38px;color:var(--wine);max-width:350px}.flow-step{display:flex;gap:16px;margin:28px 0}.step-number{background:var(--rose);color:var(--wine);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;flex-shrink:0;font-size:14px}.flow-step h3{font-size:16px;margin:0 0 5px}.flow-step p{font-size:14px;color:var(--muted);max-width:330px}.notice{border:1px solid #e9d7ba;background:#fcf7ee;color:#72522e;padding:16px 20px;border-radius:10px;font-size:14px;margin-bottom:24px}.notice.success{background:#edf7f1;border-color:#cee2d5;color:var(--green)}.pass-card{padding:32px;position:relative}.pass-card.featured{border-color:var(--wine)}.pass-card h2{font-size:32px;letter-spacing:-.5px;margin:17px 0}.pass-card .price{font-size:47px;font-family:'Playfair Display';color:var(--wine)}.price small{font-size:14px;font-family:'DM Sans';color:var(--muted)}.pass-card ul{padding-left:20px;color:var(--muted);font-size:14px;line-height:2.3;margin:22px 0}.status-card{max-width:650px;margin:25px auto;text-align:center;padding:50px 30px}.status-icon{width:66px;height:66px;border:1px solid #ddc4cc;background:var(--rose);color:var(--wine);border-radius:50%;display:grid;place-items:center;font-size:32px;margin:0 auto 24px}.status-card h2{font-size:35px}.status-card p{color:var(--muted)}.status-card .button{margin:12px 5px}.filters{display:flex;gap:12px;margin:20px 0 25px}.filters input{flex:1}.filters select{width:180px}.empty{padding:45px;text-align:center;color:var(--muted);grid-column:1/-1}.office h3{font-size:18px;margin-bottom:6px}.office p{color:var(--muted);font-size:14px}.office+.office{border-top:1px solid var(--line);padding-top:24px;margin-top:24px}.upload-box{border:1px dashed #cfb5be;border-radius:9px;background:#fdf9fa;padding:15px}.upload-box input{border:0;padding:5px;background:transparent;font-size:14px}#uploadPreview{max-height:170px;max-width:100%;border-radius:8px;margin-top:12px}.text-button{background:none;border:0;color:var(--wine);font-size:14px;text-decoration:underline;padding:7px 0}.policy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.policy-grid h2{font-size:26px}.policy-grid p{font-size:16px;color:var(--muted)}.policy-grid ul{padding-left:18px;font-size:14px;color:var(--muted);line-height:1.9}.admin-mode #sidebar{background:var(--wine-dark);color:#fff;border-color:transparent}.admin-mode .region,.admin-mode .sidebar-bottom small{color:#cfb5bf}.admin-mode #nav a{color:#ddc4cd}.admin-mode #nav a.active{background:#ffffff14;color:white}.admin-mode .account-link{color:white}.admin-mode .side-note{border-color:#ffffff22}.admin-mode .side-note p,.admin-mode .side-note span,.admin-mode .text-button{color:#ddc4cd}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:20px 0 30px}.stat{padding:20px}.stat strong{display:block;font-size:30px;font-weight:500;color:var(--wine)}.stat span{color:var(--muted);font-size:14px}.review-card{display:grid;grid-template-columns:1fr auto;gap:20px;border-bottom:1px solid var(--line);padding:22px 0}.review-card:last-child{border-bottom:0}.review-card h3{font-size:17px;margin-bottom:5px}.review-card p{font-size:14px;color:var(--muted);margin-bottom:5px;overflow-wrap:anywhere}.review-actions{display:flex;gap:8px;align-items:center}.review-actions .button{padding:9px 12px;font-size:14px}.badge{padding:3px 8px;border-radius:20px;background:var(--rose);color:var(--wine);font-size:14px;display:inline-block}.ticket-text{white-space:pre-wrap;overflow-wrap:anywhere}.ticket-image{max-width:100%;max-height:450px}.mobile-menu,.scrim{display:none}.loading{padding:70px;text-align:center;color:var(--muted)}dialog{padding:36px;border:1px solid var(--line);border-radius:17px;max-width:510px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#27131dc2;backdrop-filter:blur(5px)}dialog h2{font-size:34px;letter-spacing:-1px;margin:12px 0 20px}dialog p{color:var(--muted);font-size:14px}.close{position:absolute;right:12px;top:10px;background:none;border:0;font-size:24px;color:var(--muted)}.checkout-total{display:flex;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:17px 0;margin:20px 0}.checkout-total strong{color:var(--wine)}.modal-actions{display:flex;gap:10px;margin-top:15px;flex-wrap:wrap}.detail-portrait{height:220px;border-radius:9px;margin-bottom:20px}#toast{position:fixed;bottom:24px;right:24px;max-width:calc(100% - 48px);background:var(--wine-dark);color:white;font-size:14px;border-radius:9px;padding:14px 20px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s}#toast.show{opacity:1}@media(min-width:1500px){.portrait{height:265px}}
/* Password security panel — polished */
.password-strength{margin:14px 0 8px;padding:14px 15px;border:1px solid #eadfe3;border-radius:12px;background:linear-gradient(180deg,#fffafb 0%,#faf6f8 100%);box-shadow:0 5px 16px rgba(67,22,39,.05)}
.password-strength-head{display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:14px;font-weight:600;color:var(--ink);margin-bottom:9px}
.password-strength-head strong{font-size:14px;color:var(--wine);letter-spacing:.02em}
.strength-track{height:7px;background:#eee5e8;border-radius:999px;overflow:hidden;margin:0 0 12px}
.strength-track>span{display:block;height:100%;width:0;border-radius:999px;background:var(--wine);transition:width .22s ease,background .22s ease}
.strength-track>span[data-strength="weak"]{background:#b33a4d}.strength-track>span[data-strength="fair"]{background:#b27b2e}.strength-track>span[data-strength="good"]{background:#70803b}.strength-track>span[data-strength="strong"]{background:#2e7d5b}
.strength-rules{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.strength-rules span{display:flex;align-items:center;gap:6px;min-height:29px;padding:5px 9px;border:1px solid #e7dce0;border-radius:8px;background:#fff;color:#756b6f;font-size:14px;font-weight:600;line-height:1.2}
.strength-rules span:before{content:'○';display:inline-grid;place-items:center;width:14px;height:14px;font-size:14px;color:#a99ba0}
.strength-rules span.pass{color:#287151;border-color:#cfe4d9;background:#f2faf5}.strength-rules span.pass:before{content:'✓';font-weight:800;color:#287151}
.password-strength+.hint{margin-top:8px}
@media(max-width:480px){.strength-rules{grid-template-columns:1fr}.password-strength{padding:12px}}

@media(max-width:1150px){#sidebar{width:215px;padding:28px 17px}.workspace{margin-left:215px}.landing,.page{padding:35px 28px}.topbar,footer{padding-left:28px;padding-right:28px}.preview-grid,.profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portrait{height:255px}.hero-bottom{align-items:start;flex-direction:column}.hero-cta{text-align:left}.policy-grid{grid-template-columns:1fr}.two-col{grid-template-columns:1fr}.form-aside{padding:15px 0}.form-panel{max-width:none}}@media(max-width:720px){#sidebar{transform:translateX(-100%);width:260px;transition:transform .2s}.menu-open #sidebar{transform:none}.workspace{margin-left:0}.mobile-menu{display:flex;align-items:center;gap:12px;background:white;border:0;border-bottom:1px solid var(--line);width:100%;padding:13px 22px;color:var(--wine);font-size:20px;position:sticky;top:0;z-index:20}.mobile-menu span{font-weight:700}.scrim:not([hidden]){display:block;position:fixed;inset:0;border:0;background:#0008;z-index:25}.topbar{height:55px;padding:0 22px;font-size:14px}.site-badge{font-size:14px;padding:5px 7px}.landing,.page{padding:30px 22px}.intro{padding-bottom:28px}h1{font-size:42px}.page>h1,.page-head h1{font-size:37px}.section-heading{align-items:start;flex-direction:column}.portrait{height:200px}.preview-grid,.profile-grid{gap:12px}.profile-info{padding:12px}.landing-note{flex-direction:column}.row{grid-template-columns:1fr;gap:0}.panel{padding:23px}.filters{flex-direction:column}.filters select{width:100%}.stats{gap:8px}.stat{padding:14px}.stat strong{font-size:26px}.stat span{font-size:14px}.review-card{grid-template-columns:1fr}.review-actions{flex-wrap:wrap}.page-head{align-items:start;flex-direction:column}.sidebar-bottom{padding-top:25px}footer{padding:20px 22px}.section-heading h2{font-size:25px}}@media(max-width:380px){.preview-grid,.profile-grid{grid-template-columns:1fr}.portrait{height:260px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}


.checkout-modal{max-width:430px;width:min(430px,calc(100% - 24px));padding:20px 22px;border-radius:14px}.checkout-modal h2{font-size:25px;margin:5px 0 0}.checkout-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.checkout-price{font-size:24px;color:var(--wine);white-space:nowrap}.checkout-modal .eyebrow{font-size:14px;letter-spacing:1.4px}.checkout-modal .checkout-total{padding:10px 0;margin:13px 0}.checkout-modal .checkout-note{padding:10px 12px;margin-bottom:12px;font-size:14px}.checkout-modal .check{font-size:14px;line-height:1.45;margin:10px 0 12px}.checkout-modal .check input{width:16px;height:16px}.checkout-modal .modal-actions{margin-top:8px}.checkout-modal .button{padding:10px 14px;font-size:14px;border-radius:8px}.checkout-modal .checkout-actions{display:grid;grid-template-columns:1fr auto}.checkout-modal .checkout-actions .secondary{min-width:92px}
@media(max-width:520px){.checkout-modal{width:calc(100% - 18px);padding:17px}.checkout-modal .checkout-actions{grid-template-columns:1fr}.checkout-modal .checkout-actions .button{width:100%}}

/* Security/availability UI */
.photo-real{width:100%;height:100%;object-fit:cover;display:block;border-radius:inherit}
.blur-photo{filter:none;transform:none}
.privacy-notice{border-left:4px solid var(--wine);margin-top:24px}
.availability-row{display:grid;grid-template-columns:110px 1fr auto 1fr;gap:10px;align-items:center;padding:8px 0}
.availability-row input{min-width:0}
.chat-messages{display:grid;gap:8px;max-height:360px;overflow:auto;margin:16px 0}
.chat-message{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}
.chat-message p{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:700px){.availability-row{grid-template-columns:1fr 1fr;}.availability-row strong{grid-column:1/-1}.availability-row span{display:none}}

.profile-summary-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}
.profile-summary-head h2{margin:4px 0 0}
.saved-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.saved-detail{padding:14px 15px;border:1px solid rgba(255,255,255,.1);border-radius:14px;background:rgba(255,255,255,.035)}
.saved-detail.full{grid-column:1/-1}
.saved-detail small{display:block;opacity:.68;margin-bottom:5px}
.saved-detail strong{display:block;white-space:pre-wrap;overflow-wrap:anywhere}
.profile-editor{margin-top:16px}
@media (max-width:700px){.saved-details{grid-template-columns:1fr}.saved-detail.full{grid-column:auto}.profile-summary-head{align-items:stretch;flex-direction:column}.profile-summary-head .button{width:100%}}

.role-switcher{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0;padding:14px 16px;background:var(--rose);border-radius:10px}.partner-upgrade-panel{border:1px solid #ead7df}.partner-upgrade-panel .button{margin-top:8px}
