/* Escorts by iFantasy — consumer web front door. House palette. */
:root{
  --ink:#17141c; --panel:#211d29; --panel2:#2b2634; --bone:#efeae2;
  --rose:#e4566e; --red:#e02b2b; --muted:#a29caa; --line:#372f42; --ok:#4fb477;
}
*{box-sizing:border-box}
body{margin:0;background:#0f0d13;color:var(--bone);
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--rose);text-decoration:none}
img{max-width:100%}

/* Header */
.nav{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:16px;
  padding:12px 20px;background:rgba(23,20,28,.92);border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.brand{display:flex;align-items:center;gap:10px;font-weight:700}
.brand .dot{width:28px;height:28px;border-radius:8px;background:linear-gradient(135deg,var(--rose),var(--red))}
.brand small{display:block;color:var(--muted);font-weight:400;font-size:11px}
.nav .spacer{flex:1}
.nav a.link{color:var(--muted);font-size:14px;padding:6px 10px;border-radius:8px}
.nav a.link:hover{color:var(--bone)}
.devbanner{background:rgba(228,86,110,.14);color:var(--rose);text-align:center;font-size:12px;padding:5px;border-bottom:1px solid var(--line)}

main{max-width:1100px;margin:0 auto;padding:24px 16px 64px}

/* Buttons + fields */
.btn{display:inline-block;border:none;cursor:pointer;padding:12px 18px;border-radius:10px;font-size:15px;
  font-weight:600;color:#fff;background:linear-gradient(135deg,var(--rose),var(--red));text-align:center}
.btn.block{display:block;width:100%}
.btn.secondary{background:transparent;border:1px solid var(--line);color:var(--bone)}
.btn.danger{background:var(--red)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.field{margin-bottom:14px}
.field label{display:block;font-size:12px;color:var(--muted);margin-bottom:6px}
.field input,.field select{width:100%;padding:12px 14px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel);color:var(--bone);font-size:14px}

/* Gate */
.gate{max-width:520px;margin:8vh auto;text-align:center;background:var(--panel);border:1px solid var(--line);
  border-radius:16px;padding:34px 28px}
.gate h1{font-size:26px;margin:14px 0 8px}
.gate p{color:var(--muted);line-height:1.55}

/* Filters */
.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:20px}
.filters input,.filters select{padding:10px 12px;border-radius:10px;border:1px solid var(--line);
  background:var(--panel);color:var(--bone);font-size:14px}

/* Grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;overflow:hidden;cursor:pointer}
.card .photo{height:150px;background:linear-gradient(135deg,var(--panel2),var(--ink));position:relative}
.card .photo .v{position:absolute;top:8px;right:8px;font-size:11px;padding:4px 8px;border-radius:999px;
  background:rgba(79,180,119,.16);border:1px solid rgba(79,180,119,.4);color:var(--ok)}
.card .info{padding:10px 12px}
.card .info b{font-size:15px}
.card .info .loc{color:var(--muted);font-size:12px}
.stars{color:var(--rose);letter-spacing:2px;font-size:13px}
.stars .off{color:var(--line)}

/* Profile */
.hero{height:260px;border-radius:16px;background:linear-gradient(135deg,var(--panel2),var(--ink));
  display:flex;align-items:flex-end;padding:16px;margin-bottom:16px}
.tile{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
.tile h4{margin:0 0 6px;font-size:14px}
.tile p{margin:0;color:var(--muted);font-size:14px;line-height:1.5}
.chip{display:inline-block;padding:5px 10px;border-radius:999px;background:var(--panel);border:1px solid var(--line);
  font-size:12px;margin:2px 4px 2px 0}
.notice{border-left:3px solid var(--rose);background:rgba(228,86,110,.08);padding:10px 12px;border-radius:8px;
  font-size:13px;margin:12px 0}
.muted{color:var(--muted)}
.formwrap{max-width:460px;margin:0 auto}
h2.page{font-size:22px;margin:0 0 14px}
.footer{color:var(--muted);font-size:12px;text-align:center;padding:24px;border-top:1px solid var(--line)}
