:root{--bg: oklch(.17 .02 25);--surface: oklch(.23 .025 25);--surface-2: oklch(.29 .03 32);--line: oklch(.33 .02 30);--text: oklch(.93 .015 40);--muted: oklch(.69 .02 40);--accent: oklch(.77 .13 72);--accent-ink: oklch(.24 .04 45);--online: oklch(.73 .15 150);--radius: 14px;color-scheme:dark}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.5;-webkit-text-size-adjust:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}a{color:inherit}.container{max-width:1100px;margin:0 auto;padding:0 16px 96px}.topbar{position:sticky;top:0;z-index:40;background:var(--bg);border-bottom:1px solid var(--line)}.topbar-inner{max-width:1100px;margin:0 auto;padding:10px 16px;display:flex;align-items:center;gap:16px}.brand{font-weight:800;letter-spacing:.04em;text-decoration:none;white-space:nowrap}.brand em{color:var(--accent);font-style:normal}.topnav{display:flex;gap:4px;overflow-x:auto}.topnav a{padding:10px 12px;border-radius:10px;text-decoration:none;color:var(--muted);white-space:nowrap;min-height:44px;display:inline-flex;align-items:center}.topnav a.router-link-active{color:var(--text);background:var(--surface)}.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;background:var(--surface);border-top:1px solid var(--line)}.tabbar a{flex:1;padding:10px 4px 12px;text-align:center;text-decoration:none;color:var(--muted);font-size:13px;min-height:56px}.tabbar a.router-link-active{color:var(--accent)}@media(min-width:760px){.tabbar{display:none}.container{padding-bottom:48px}}.grid-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media(min-width:760px){.grid-cards{grid-template-columns:repeat(3,1fr);gap:16px}}@media(min-width:1024px){.grid-cards{grid-template-columns:repeat(4,1fr)}}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.grid-cards>.card{display:flex;flex-direction:column;height:100%}.grid-cards>.card>.card-body:last-child{display:flex;flex-direction:column;flex:1}.grid-cards .btn-primary{margin-top:auto}.card-link{text-decoration:none}.card-media{position:relative;aspect-ratio:3 / 4;background:var(--surface-2);display:grid;place-items:center}.card-initial{font-size:56px;font-weight:800;color:var(--muted)}.card-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.profile-top{display:grid;grid-template-columns:1fr;gap:16px;margin-top:12px}.gallery{position:relative;aspect-ratio:3 / 4;max-height:70vh;width:100%;max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;display:grid;place-items:center}.gallery .card-photo{border-radius:0}.profile-summary{display:flex;flex-direction:column;height:100%}@media(min-width:760px){.profile-top{grid-template-columns:360px 1fr;align-items:start}}.media-count{position:absolute;left:8px;bottom:8px;font-size:12px;background:#170c0bd9;padding:4px 8px;border-radius:999px}.online-dot{position:absolute;top:8px;left:8px;font-size:12px;color:var(--online);background:#170c0bd9;padding:4px 8px;border-radius:999px}.card-body{padding:12px}.card-title{font-weight:700;font-size:17px}.card-sub{color:var(--muted);font-size:14px;margin-top:2px}.price-row{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:8px;font-size:15px}.price-row b{color:var(--accent)}.pill{display:inline-block;margin-top:8px;font-size:13px;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:3px 10px}.tag-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.tag{font-size:12px;color:var(--muted);background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px 10px;text-decoration:none}.btn-primary{display:block;width:100%;margin-top:12px;min-height:44px;border:0;border-radius:10px;background:var(--accent);color:var(--accent-ink);font-size:16px;font-weight:700;cursor:pointer}.promo-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:16px 0}@media(min-width:760px){.promo-grid{grid-template-columns:repeat(4,1fr);gap:16px}}.promo-card{display:block;padding:16px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-decoration:none}.promo-card b{display:block;font-size:17px}.promo-card span{color:var(--muted);font-size:13px}.facet-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:28px 0 12px}.section-head h2{margin:0;font-size:20px}.section-head a{color:var(--accent);font-size:14px}.online-line{color:var(--muted);font-size:14px}.online-line i{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--online);margin-right:6px}.chips{display:flex;gap:8px;overflow-x:auto;padding:4px 0 12px}.chips a{flex-shrink:0;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:8px 14px;min-height:44px;display:inline-flex;align-items:center}.map-banner{display:block;margin-top:28px;padding:20px;border-radius:var(--radius);background:var(--surface);border:1px solid var(--line);text-decoration:none}.map-banner b{display:block;font-size:18px}.map-banner span{color:var(--muted);font-size:14px}.age-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:grid;place-items:center;overflow-y:auto;background:#050302eb;padding:16px}.age-card{max-width:380px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;text-align:center}.age-mark{font-size:30px;font-weight:800;color:var(--accent)}.age-card p{color:var(--muted)}.age-card .btn-primary{min-height:48px}.field{display:block;margin:12px 0}.form-grid-2,.form-grid-3{display:grid;grid-template-columns:1fr;gap:8px}@media(min-width:560px){.form-grid-2{grid-template-columns:1fr 1fr}.form-grid-3{grid-template-columns:1fr 1fr 1fr}}button.tag{cursor:pointer;font-family:inherit}.field span{display:block;margin-bottom:4px;font-size:14px;color:var(--muted)}.field input{width:100%;min-height:44px;background:var(--bg);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:8px 12px;font-size:16px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}a,button{transition:background-color .15s ease-out,color .15s ease-out}
