/* === Self-hosted fonts (latin subset) ===
   Yeseva One carries every headline, every name and every figure; Mulish,
   variable 400-800, carries everything read in sentences. Both are served from
   this domain, so no page asks a font host for anything. The build rewrites this
   run from theme.fonts.faces in sites/amsterdam-erotic-massage.json; what stands
   here is what it emits. */
@font-face {
  font-family: 'Yeseva One';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/mirrorbulbs/yeseva-one-normal-400.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Mulish';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/mirrorbulbs/mulish-normal-400-800.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================================
   SOLO BREAK AMSTERDAM, theme "mirrorbulbs"
   A dressing-room mirror in a dark warm room. Every block of the page is a
   pane of lit glass with a run of bulbs down its four edges, and the reading
   sits on the glass. Away from the panes the page is the room: near-black,
   brown rather than grey, with one amber bloom behind the first pane.

   Nothing on this site moves. No keyframe block, no timed property, no
   transition, no scripted timer, no scroll or intersection listener, no drawn
   scene and no drawn object: the bulbs are repeated radial gradients, the
   glass is a stack of flat gradients, and every picture is a photograph.
   Hover changes a colour at once.

   Two jobs in one file:
     1. the theme's own design (the mirror hero, section panes, technique grid,
        roster plates, rate columns, district chips, the closing pane)
     2. a compatibility layer for the SHARED templates this theme inherits:
        faq, about, contact, booking, terms, privacy, dmca, age statement,
        glossary and 404, which render .container / .reading / .hero / .btn /
        .t-card / .s-card and friends.
   ============================================================================ */

:root{
  /* the room -------------------------------------------------------------- */
  --ground:    #150f0c;
  --ground-2:  #120e0c;
  --ground-3:  #1b1310;

  /* the glass ------------------------------------------------------------- */
  --glass:     #33251c;
  --glass-2:   #261a14;
  --glass-3:   #42301f;

  /* the light ------------------------------------------------------------- */
  --amber:     #ffca7a;
  --amber-hot: #fff1d2;
  --amber-deep:#f0a344;
  --rose:      #f4919f;
  --rose-hot:  #ffb3bd;
  --rose-deep: #c4586a;
  --on-rose:   #2a0d13;

  /* ink ------------------------------------------------------------------- */
  --text:      #f9efe3;
  --warm:      #e6d4c0;
  --mut:       #cdb59c;
  --dim:       #b09a84;

  /* rules ----------------------------------------------------------------- */
  --line:      rgba(255,206,150,0.20);
  --line-soft: rgba(255,206,150,0.12);

  /* aliases: the inherited shared templates carry inline styles naming these
     tokens, and the artwork generator reads the same names */
  --ink:       #f9efe3;
  --muted:     #cdb59c;
  --faint:     #b09a84;
  --rule:      rgba(255,206,150,0.20);
  --hair:      rgba(255,206,150,0.12);
  --cloud:     #150f0c;
  --sky-1:     #42301f;
  --sky-2:     #261a14;
  --sky-3:     #150f0c;
  --gold:      #ffca7a;
  --white:     #f9efe3;
  --white-rgb: 249,239,227;
  --header-bg: rgba(18,14,12,0.94);
  --wa:        #25D366;
  --wa-dark:   #1ea857;

  /* type ------------------------------------------------------------------ */
  --sans:  'Mulish', system-ui, -apple-system, 'Segoe UI', Helvetica, Arial, sans-serif;
  --serif: 'Yeseva One', Georgia, 'Times New Roman', serif;

  /* measure --------------------------------------------------------------- */
  --max:     1160px;
  --reading: 720px;
  --g:       clamp(20px,4vw,40px);
  --pad:     clamp(3rem,6.4vw,5.6rem);
}

/* derived, out of reach of the per-site palette substitution */
:root{
  /* one bulb, drawn as light rather than as an object: the same gradient is
     tiled along each edge of a pane. --dot sets its size, --gap its spacing,
     --bs the thickness of the strip it is tiled into. */
  --bulb: radial-gradient(circle at 50% 50%,
    #fffaf0 0,
    #ffeec4 calc(var(--dot) * .9),
    #ffc063 calc(var(--dot) * 1.5),
    rgba(255,160,58,.55) calc(var(--dot) * 2.3),
    rgba(255,142,44,.24) calc(var(--dot) * 3.6),
    rgba(255,132,36,.09) calc(var(--dot) * 5.4),
    rgba(255,128,32,0) calc(var(--dot) * 8));
  --gap: 42px;
  --bs: 42px;
  --dot: 2.7px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--ground);overflow-x:hidden}
body{
  margin:0;background:var(--ground);color:var(--text);
  font:400 16.5px/1.62 var(--sans);
  overflow-x:hidden;-webkit-font-smoothing:antialiased;
}
@supports (overflow:clip){html,body{overflow-x:clip}}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
h1,h2,h3,h4,h5,p,ul,ol,figure,dl,dd,blockquote{margin:0}
ul,ol{list-style:none;padding:0}
table{border-collapse:collapse;width:100%}
svg{display:block;max-width:100%}
main{display:block}
:focus-visible{outline:3px solid var(--amber);outline-offset:3px}
::selection{background:var(--rose);color:var(--on-rose)}
[id]{scroll-margin-top:90px}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px}
.skip:focus{left:14px;top:14px;z-index:130;background:var(--rose);color:var(--on-rose);padding:10px 16px;font-weight:800;border-radius:2px}

section{position:relative}
h1,h2{font-family:var(--serif);font-weight:400;letter-spacing:.005em;line-height:1.02;color:var(--text)}
h1{font-size:clamp(36px,5.6vw,68px);line-height:1.02}
h2{font-size:clamp(25px,3.3vw,40px)}
h3{font-family:var(--serif);font-weight:400;font-size:clamp(18px,1.8vw,22px);line-height:1.2;color:var(--text)}
h4,h5{font-family:var(--serif);font-weight:400;font-size:17px;line-height:1.3;color:var(--text)}
h1 em,h2 em,h1 i,h2 i{font-style:normal;color:var(--rose)}
h3 em,h4 em{font-style:normal;color:var(--amber)}

/* ---------- primitives ----------------------------------------------------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--g)}
.wrap--read{max-width:calc(var(--reading) + 2 * var(--g));margin-inline:max(0px,(100% - var(--max))/2) auto}
.label,.kick,.label-top{display:block;font-size:11px;line-height:1.5;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:var(--amber-deep)}
.label b,.kick b{color:var(--amber);font-weight:800}
.eyebrow{margin:0 0 16px;font-size:11px;font-weight:800;letter-spacing:.26em;text-transform:uppercase;color:var(--amber-deep)}
.lede{max-width:56ch;color:var(--warm);font-size:clamp(16.5px,1.5vw,19px);line-height:1.62}
.lede b,.lede strong{color:var(--text);font-weight:700}
.note{max-width:58ch;color:var(--mut);margin:0}
.more{margin:24px 0 0;font-size:12.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.note a,.more a{color:var(--amber);border-bottom:1px solid var(--line)}
.note a:hover,.more a:hover{color:var(--amber-hot);border-bottom-color:var(--amber-hot)}
.wrap-any{overflow-wrap:anywhere}

/* ---------- the lit pane: glass, and a run of bulbs down its four edges ----- */
.pane{
  position:relative;
  background:
    radial-gradient(75% 60% at 50% 42%, rgba(255,204,150,.07) 0%, rgba(0,0,0,0) 70%),
    radial-gradient(120% 90% at 50% -12%, rgba(255,186,96,.30) 0%, rgba(255,166,74,.12) 30%, rgba(0,0,0,0) 62%),
    linear-gradient(196deg, rgba(255,214,166,.10) 0%, rgba(255,150,110,.03) 40%, rgba(0,0,0,0) 70%),
    linear-gradient(180deg, var(--glass-3) 0%, var(--glass) 46%, var(--glass-2) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(255,201,134,.30),
    inset 0 1px 0 0 rgba(255,236,200,.22),
    inset 0 -80px 130px -60px rgba(255,150,60,.16),
    0 0 90px 10px rgba(236,146,48,.18),
    0 0 220px 60px rgba(196,112,32,.14);
  z-index:1;
}
/* every lit thing owns the box its bulbs are hung on */
.lit{position:relative}
/* the two horizontal runs, centred on the top and bottom edges */
.lit::before{
  content:"";position:absolute;pointer-events:none;z-index:2;
  left:0;right:0;
  top:calc(var(--bs) / -2);bottom:calc(var(--bs) / -2);
  background-image:var(--bulb),var(--bulb);
  background-size:var(--gap) var(--bs),var(--gap) var(--bs);
  background-position:center top,center bottom;
  background-repeat:repeat-x,repeat-x;
}
/* the two vertical runs, held clear of the corners the horizontals already lit */
.lit::after{
  content:"";position:absolute;pointer-events:none;z-index:2;
  left:calc(var(--bs) / -2);right:calc(var(--bs) / -2);
  top:var(--gap);bottom:var(--gap);
  background-image:var(--bulb),var(--bulb);
  background-size:var(--bs) var(--gap),var(--bs) var(--gap);
  background-position:left center,right center;
  background-repeat:repeat-y,repeat-y;
}

/* ---------- top bar -------------------------------------------------------- */
.topbar{
  position:relative;z-index:8;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding-block:16px 0;
}
.topbar .mark{font-family:var(--serif);font-size:14px;letter-spacing:.06em;color:var(--warm);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}
.topbar .mark b{color:var(--rose);font-weight:400}
.bar21{
  flex:none;
  font-size:10.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;
  color:var(--dim);border:1px solid var(--line-soft);border-radius:2px;
  padding:5px 11px;white-space:nowrap;
}

/* ---------- header --------------------------------------------------------- */
.site-header{position:relative;z-index:7;background:var(--header-bg);border-bottom:1px solid var(--line-soft)}
.site-header .inner{max-width:var(--max);margin-inline:auto;padding:14px var(--g);display:flex;align-items:center;justify-content:space-between;gap:18px}
.site-header .inner > *{min-width:0}
.logo,.brand{display:inline-flex;align-items:baseline;gap:8px;min-width:0;flex:none;white-space:nowrap;font-family:var(--serif);font-weight:400;font-size:17px;letter-spacing:.03em;color:var(--text)}
.logo b,.brand b{color:var(--rose);font-weight:400}
.site-header nav{display:flex;flex-wrap:wrap;gap:clamp(11px,1.4vw,22px)}
.site-header nav a{font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);white-space:nowrap}
.site-header nav a:hover{color:var(--amber)}
.header-cta{display:flex;gap:10px;flex:none}
.site-header .cta{min-height:0;padding:10px 16px;font-size:12px;letter-spacing:.1em}
.site-header .cta svg{width:15px;height:15px}
.nav-toggle{display:none;align-items:center;justify-content:center;min-width:48px;height:42px;padding:0 12px;background:none;border:1px solid var(--line);border-radius:2px;cursor:pointer;flex:none;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--text)}

/* ---------- buttons -------------------------------------------------------- */
.btn,.cta{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  min-height:50px;padding:14px 24px;cursor:pointer;text-align:center;
  font-size:14px;line-height:1.1;font-weight:800;letter-spacing:.11em;text-transform:uppercase;
  border:1px solid var(--rose);border-radius:2px;
  background:var(--rose);color:var(--on-rose);
  box-shadow:0 0 30px rgba(226,110,130,.30);
}
.btn svg,.cta svg{width:16px;height:16px;fill:currentColor;flex:none}
.btn:hover,.cta:hover{background:var(--rose-hot);border-color:var(--rose-hot)}
.btn--b,.btn--gh,.btn-ghost,.cta--ghost{background:transparent;color:var(--amber);border-color:rgba(255,202,122,.45);box-shadow:none}
.btn--b:hover,.btn--gh:hover,.btn-ghost:hover,.cta--ghost:hover{background:transparent;color:var(--amber-hot);border-color:var(--amber-hot)}
.btn-primary{background:var(--rose);color:var(--on-rose)}
.ctas,.actions,.acts{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:26px 0 0}
.ctas .mail,.actions .mail{flex-basis:100%;font-size:13.5px;color:var(--dim);overflow-wrap:anywhere}

/* ---------- home: the mirror ----------------------------------------------- */
.hero{position:relative;padding:34px 0 60px;overflow:hidden}
.roomglow{
  position:absolute;left:50%;top:46%;
  width:min(1700px,205vw);height:min(1250px,165vh);
  transform:translate(-50%,-50%);
  background:radial-gradient(closest-side, rgba(244,164,68,.26) 0%, rgba(206,126,42,.15) 38%, rgba(132,76,22,.055) 66%, rgba(0,0,0,0) 100%);
  pointer-events:none;z-index:0;
}
.hero > .wrap{position:relative;z-index:1}
.mirror{
  --gap:54px;--bs:54px;--dot:4.1px;
  max-width:930px;margin:40px auto 0;
  padding:72px 62px 62px;text-align:center;
}
.mirror h1{margin:14px 0 0;font-size:clamp(38px,6.4vw,76px);text-shadow:0 0 44px rgba(255,190,120,.28)}
.mirror h1 em{display:block}
.mirror .lede{max-width:600px;margin:22px auto 0}
.fee{
  margin:30px auto 0;display:inline-flex;align-items:baseline;gap:11px;
  flex-wrap:wrap;justify-content:center;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  padding:13px 22px;
}
.fee b{font-family:var(--serif);font-weight:400;font-size:26px;color:var(--amber);letter-spacing:.01em}
.fee span{font-size:14px;color:var(--mut);letter-spacing:.02em}
.mirror .acts{justify-content:center;margin-top:28px}
.arrive{margin:24px auto 0;font-size:14.5px;color:var(--mut);max-width:520px}
.arrive b{color:var(--text);font-weight:700}

/* ---------- section scaffolding -------------------------------------------- */
.sec{position:relative;padding:var(--pad) 0 0}
.sec--pad{padding-bottom:var(--pad)}
.sec--narrow > .wrap{max-width:calc(900px + 2 * var(--g))}
.sec-pane{padding:48px 44px}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin:0 0 28px}
.sec-head > *{min-width:0}
.sec-head h2,.sec-head h1{font-size:clamp(25px,3.3vw,40px)}
.sec-head p{max-width:44ch;color:var(--mut);font-size:15px}
.sechead{margin:0 0 28px}

/* ---------- technique grid -------------------------------------------------- */
.tech{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;background:var(--line-soft);border:1px solid var(--line-soft);
}
.tech > *{min-width:0}
.tech li{background:linear-gradient(180deg, rgba(255,200,140,.045), rgba(0,0,0,.10));padding:17px 18px}
.tech .n,.tech h3{display:block;font-family:var(--serif);font-weight:400;font-size:19px;line-height:1.16;color:var(--text);margin:0 0 5px}
.tech .d,.tech p{display:block;font-size:13.5px;color:var(--mut);line-height:1.45}
.tech .len{display:block;margin-top:7px;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.tech li:nth-child(3n+2) .n,.tech li:nth-child(3n+2) h3{color:var(--amber)}
.tech li:nth-child(3n) .n,.tech li:nth-child(3n) h3{color:var(--rose)}
a.tech-row{display:block}
a.tech-row:hover h3{color:var(--amber-hot)}
.tech-note{margin:22px 0 0;font-size:14.5px;color:var(--warm);max-width:66ch}

/* ---------- roster ---------------------------------------------------------- */
.roster{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:44px 38px;margin:8px 0 0}
.roster > *{min-width:0}
.who{--gap:26px;--bs:26px;--dot:1.9px;display:block;min-width:0;padding:9px 9px 13px}
.who .shot{position:relative;display:block;min-width:0;aspect-ratio:3/4;overflow:hidden;background:var(--ground-2);box-shadow:inset 0 0 0 1px rgba(255,209,152,.18)}
.who .shot img{width:100%;height:100%;object-fit:cover;object-position:50% 24%;filter:saturate(.94) contrast(1.03) brightness(1.02)}
.who .shot::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg, rgba(255,186,110,.10) 0%, rgba(0,0,0,0) 38%, rgba(18,14,12,.62) 100%)}
.who .nm{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin:11px 2px 0}
.who .nm b{font-family:var(--serif);font-weight:400;font-size:19px;color:var(--text)}
.who .nm i{font-style:normal;font-size:13px;font-weight:800;color:var(--amber)}
.who .dt{display:block;margin:2px 2px 0;font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:var(--mut)}
a.who:hover .nm b{color:var(--rose)}

/* ---------- rates ----------------------------------------------------------- */
.rates{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}
.rates > *{min-width:0}
.rate{background:linear-gradient(180deg, rgba(255,200,140,.05), rgba(0,0,0,.10));padding:24px 22px}
.rate .k,.rate .dur{font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--amber-deep)}
.rate .v,.rate .fig{font-family:var(--serif);font-weight:400;font-size:clamp(26px,3.2vw,34px);line-height:1.12;margin:8px 0 6px;color:var(--amber)}
.rate p{font-size:14px;color:var(--mut);line-height:1.5}
.terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 38px;margin:30px 0 0}
.terms > *{min-width:0}
.terms div{border-top:1px solid var(--line-soft);padding:15px 0 0}
.terms h3{font-family:var(--sans);font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--rose);margin:0 0 7px}
.terms p{font-size:15px;color:var(--warm);line-height:1.58}

/* ---------- district chips --------------------------------------------------- */
.area{display:flex;flex-wrap:wrap;gap:9px;margin:4px 0 0}
.area li{min-width:0}
.area span,.area a{
  display:inline-block;font-size:13px;font-weight:700;letter-spacing:.05em;
  padding:8px 15px;color:var(--warm);
  border:1px solid var(--line-soft);
  background:linear-gradient(180deg, rgba(255,200,140,.05), rgba(0,0,0,.10));
}
.area a:hover{color:var(--amber-hot);border-color:var(--line)}
.area .key{color:var(--on-rose);background:var(--rose);border-color:var(--rose)}
.area-note{margin:22px 0 0;font-size:15px;color:var(--warm);max-width:70ch}

/* ---------- the closing pane -------------------------------------------------- */
.close-pane{text-align:center;padding:54px 42px}
.close-pane h2{font-size:clamp(25px,3.2vw,38px)}
.close-pane h2 em{color:var(--amber)}
.close-pane p{margin:16px auto 0;max-width:56ch;color:var(--warm)}
.close-pane .acts{justify-content:center}
.close-pane .fineline{margin:22px auto 0;font-size:14px;color:var(--dim);max-width:60ch}
.close-pane .fineline a{color:var(--amber);border-bottom:1px solid var(--line)}

/* ---------- page head (every inner page this theme owns) ---------------------- */
.phead{position:relative;padding:26px 0 0;overflow:hidden}
.phead .roomglow{top:36%}
.phead > .wrap{position:relative;z-index:1}
.phead-pane{--gap:46px;--bs:46px;--dot:3.1px;margin:34px 0 0;padding:52px 46px}
.phead h1{margin:0 0 18px;max-width:20ch;font-size:clamp(32px,4.4vw,56px)}
.phead .lede{margin:0}
.phead .actions{margin-top:26px}

/* ---------- questions ---------------------------------------------------------- */
.qs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px clamp(26px,3.2vw,48px)}
.qs > div{min-width:0}
.qs h3{margin:0 0 7px;font-size:1.14rem;color:var(--text)}
.qs p{margin:0;color:var(--mut);font-size:.97rem;line-height:1.62}
.qs a{color:var(--amber);border-bottom:1px solid var(--line-soft)}
.qs a:hover{color:var(--amber-hot)}

/* ---------- prose, columns, index rows ------------------------------------------ */
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,320px);gap:clamp(26px,3.6vw,50px);align-items:start}
.cols > *{min-width:0}
.prose{max-width:74ch}
.prose > * + *{margin-top:17px}
.prose p,.prose li{color:var(--warm);font-size:16.5px;line-height:1.74}
.prose .lede{color:var(--text);font-size:clamp(17px,1.4vw,19px);max-width:none}
.prose h2{margin-top:42px;font-size:clamp(23px,2.7vw,32px)}
.prose h3{margin-top:30px}
.prose > h2:first-child,.prose > h3:first-child{margin-top:0}
.prose a{color:var(--amber);border-bottom:1px solid var(--line-soft)}
.prose a:hover{color:var(--amber-hot);border-bottom-color:var(--amber-hot)}
.prose strong{color:var(--text);font-weight:700}
.prose ul,.prose ol{display:grid;gap:9px;padding-left:0}
.prose ul li{position:relative;padding-left:22px}
.prose ul li::before{content:"";position:absolute;left:0;top:.74em;width:11px;height:2px;background:var(--rose)}
.prose ol{counter-reset:pl}
.prose ol li{position:relative;padding-left:34px;counter-increment:pl}
.prose ol li::before{content:counter(pl,decimal-leading-zero);position:absolute;left:0;top:.06em;font-size:13px;font-weight:800;letter-spacing:.1em;color:var(--amber)}
.prose table{margin-top:20px;font-size:15px}
.prose th,.prose td{padding:11px 10px 11px 0;border-bottom:1px solid var(--line-soft);text-align:left;color:var(--mut);font-weight:400;vertical-align:top}
.prose th{color:var(--text);font-weight:700}
.prose blockquote{margin:24px 0;padding:2px 0 2px 18px;border-left:2px solid var(--rose);color:var(--text)}

.facts-side{display:grid;gap:22px}
.spec{border-top:1px solid var(--line-soft)}
.spec > div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:15px}
.spec dt,.spec .k{color:var(--dim);font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;flex:none}
.spec dd,.spec .v{color:var(--text);text-align:right;min-width:0;overflow-wrap:anywhere;margin:0}
.spec a{color:var(--amber)}
.tags,.service-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tag{display:inline-block;padding:8px 13px;border:1px solid var(--line-soft);font-size:11px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--mut)}
a.tag:hover{color:var(--amber-hot);border-color:var(--line)}

.index{display:grid;border-top:1px solid var(--line)}
.index li{border-bottom:1px solid var(--line-soft);min-width:0}
.index a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 28px;align-items:baseline;padding:21px 0}
.index a:hover .index__t{color:var(--amber)}
.index__t{font-family:var(--serif);font-weight:400;font-size:clamp(19px,2.1vw,26px);line-height:1.18;color:var(--text)}
.index__d{grid-column:1;max-width:76ch;color:var(--mut);font-size:15.5px;line-height:1.6}
.index__m{grid-row:1;grid-column:2;font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--dim);white-space:nowrap}

/* ---------- profile photographs (a still grid, nothing slides) ------------------- */
.shots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(8px,1vw,14px)}
.shots > *{min-width:0}
.shots img{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--ground-2);box-shadow:inset 0 0 0 1px rgba(255,209,152,.18)}

/* ============================================================================
   SHARED-TEMPLATE COMPATIBILITY LAYER
   The inherited pages (faq, about, contact, booking, terms, privacy, dmca, age
   statement, glossary and 404) render markup this theme does not own. These
   rules give it the same voice.
   ============================================================================ */
.container{max-width:var(--max);margin:0 auto;padding:0 var(--g);width:100%}
.reading{max-width:var(--reading)}
.reading.container{max-width:calc(var(--reading) + 2 * var(--g));margin-inline:max(0px,(100% - var(--max))/2) auto;padding-inline:var(--g)}
.hero{position:relative;overflow:hidden}
.hero > *{position:relative;z-index:3;max-width:var(--max);margin-inline:auto;padding-inline:var(--g)}
.hero h1{max-width:calc(20ch + 2 * var(--g));margin-inline:max(0px,(100% - var(--max))/2) auto;font-size:clamp(32px,4.4vw,56px)}
.hero .label-top{margin-bottom:14px}
.hero .lede{margin-top:18px;max-width:calc(58ch + 2 * var(--g));margin-inline:max(0px,(100% - var(--max))/2) auto}
section > .container{padding-top:var(--pad)}
section:last-of-type > .container{padding-bottom:var(--pad)}
.reading p{margin-top:16px;color:var(--warm);line-height:1.74}
.reading h2{margin-top:42px;font-size:clamp(23px,2.7vw,32px)}
.reading h3{margin-top:30px}
.reading a:not(.btn){color:var(--amber);border-bottom:1px solid var(--line-soft)}
.reading a:not(.btn):hover{color:var(--amber-hot);border-bottom-color:var(--amber-hot)}
.reading ul,.reading ol{margin-top:16px;display:grid;gap:9px}
.reading ul li{position:relative;padding-left:22px;color:var(--warm)}
.reading ul li::before{content:"";position:absolute;left:0;top:.74em;width:11px;height:2px;background:var(--rose)}
.reading ul[style*="list-style:none"] li{padding-left:0}
.reading ul[style*="list-style:none"] li::before{content:none}
.reading ol{list-style:decimal;padding-left:22px;color:var(--warm)}
.reading ol li{padding-left:6px}
.reading table{margin-top:20px;font-size:15px}
.reading th,.reading td{padding:11px 10px 11px 0;border-bottom:1px solid var(--line-soft);text-align:left;color:var(--mut);font-weight:400;vertical-align:top}
.reading th{color:var(--text);font-weight:700}
.reading dl{margin-top:16px}
.reading dt{margin-top:18px;color:var(--text);font-weight:700}
.reading dd{margin:6px 0 0;color:var(--warm)}

.t-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.9vw,26px)}
.t-grid > *{min-width:0}
.t-card{position:relative;display:block;min-width:0;background:var(--ground-3);box-shadow:inset 0 0 0 1px var(--line-soft)}
.t-card .photo{position:relative;aspect-ratio:3/4;overflow:hidden;background:var(--ground-2)}
.t-card .photo img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.t-card .name{display:block;padding:13px 14px 0;font-family:var(--serif);font-weight:400;font-size:1.16rem;color:var(--text)}
.t-card:hover .name{color:var(--rose)}
.t-card .meta{display:block;padding:3px 14px 15px;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}

.s-grid,.grid--cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line-soft);border:1px solid var(--line-soft)}
.s-grid > *,.grid--cards > *{min-width:0}
.s-card,.card{position:relative;display:block;background:linear-gradient(180deg, rgba(255,200,140,.045), rgba(0,0,0,.10));padding:17px 18px}
.s-card .num,.card__num{display:block;font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--amber-deep)}
.s-card .nm,.card__name{display:block;margin:7px 0 5px;font-family:var(--serif);font-weight:400;font-size:1.2rem;line-height:1.16;color:var(--text)}
a.s-card:hover .nm,a.card:hover .card__name{color:var(--amber-hot)}
.s-card .ds,.card__meta{display:block;font-size:.85rem;line-height:1.5;color:var(--mut)}

.grid--people,.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.9vw,26px)}
.grid--people > *,.strip > *{min-width:0}
.person{display:block;min-width:0;background:var(--ground-3);box-shadow:inset 0 0 0 1px var(--line-soft)}
.person__img{position:relative;display:block;aspect-ratio:3/4;overflow:hidden;background:var(--ground-2)}
.person__img img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.person__name{display:block;padding:13px 14px 0;font-family:var(--serif);font-weight:400;font-size:1.16rem;color:var(--text)}
.person:hover .person__name{color:var(--rose)}
.person__meta{display:block;padding:3px 14px 15px;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}

.linklist{display:grid;gap:0;border-top:1px solid var(--line-soft)}
.linklist li{border-bottom:1px solid var(--line-soft)}
.linklist a{display:block;padding:14px 0;color:var(--warm);font-size:16px}
.linklist a:hover{color:var(--amber)}
.linklist--inline{display:flex;flex-wrap:wrap;gap:9px;border:0}
.linklist--inline li{border:0}
.linklist--inline a{padding:8px 15px;border:1px solid var(--line-soft);font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:none}

.price-table,.stats-table,.rates-table{width:100%;font-size:15px}
.price-table td,.stats-table td,.rates-table td{padding:13px 0;border-bottom:1px solid var(--line-soft);vertical-align:baseline;color:var(--mut)}
.price-table td:last-child,.stats-table td:last-child,.rates-table td:last-child{text-align:right;color:var(--amber);font-variant-numeric:tabular-nums;font-family:var(--serif)}
.tab-nav{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.tab-btn{padding:10px 16px;border:1px solid var(--line);background:transparent;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--mut);cursor:pointer;border-radius:2px}
.tab-btn.active{background:var(--rose);color:var(--on-rose);border-color:var(--rose)}
.tab-panel{display:none}
.tab-panel.active{display:block}
.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.gallery-grid img{width:100%;aspect-ratio:3/4;object-fit:cover;background:var(--ground-2);box-shadow:inset 0 0 0 1px var(--line-soft)}
.like-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px}
.like-grid > *{min-width:0}
.like-card{display:block;min-width:0;background:var(--ground-3);box-shadow:inset 0 0 0 1px var(--line-soft)}
.like-photo{position:relative;aspect-ratio:3/4;background:var(--ground-2);overflow:hidden}
.like-photo img{width:100%;height:100%;object-fit:cover}
.like-name{padding:11px 12px 0;font-family:var(--serif);font-weight:400;color:var(--text)}
.like-meta{padding:2px 12px 12px;font-size:10.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--mut)}
.book-banner{background:var(--ground-2);padding:18px var(--g);border-bottom:1px solid var(--line-soft)}
.book-banner p{color:var(--warm);max-width:var(--max);margin-inline:auto}
.book-banner a{color:var(--amber);border-bottom:1px solid var(--line-soft)}
.journal-list{display:grid;border-top:1px solid var(--line)}
.journal-item{display:block;border-bottom:1px solid var(--line-soft);padding:20px 0}
.journal-item .date{font-size:11px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--dim)}
.journal-item h3{margin:8px 0 4px}
.journal-item:hover h3{color:var(--amber)}
.journal-item .lede{font-size:15.5px;max-width:76ch;margin-top:4px}
.form-row{margin-top:20px}
.form-row label{display:block;font-size:11px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}
.form-row select,.form-row input{width:100%;max-width:100%;margin-top:9px;padding:14px 16px;border:1px solid var(--line);border-radius:2px;background:var(--ground-2);font:400 16px/1.3 var(--sans);color:var(--text)}
.form-row select:focus,.form-row input:focus{outline:2px solid var(--amber);outline-offset:1px}
.faq details,details.qa{border-bottom:1px solid var(--line-soft)}
.faq summary,details.qa summary{padding:16px 0;cursor:pointer;color:var(--text);font-size:17px}
.faq summary:hover,details.qa summary:hover{color:var(--amber)}
.faq .a p,details.qa .ans p{padding:0 0 16px;color:var(--warm)}
.no-save,.no-save img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.no-save img{-webkit-user-drag:none}

/* ---------- build-injected breadcrumbs + related pages ----------------------- */
nav.crumbs{position:relative;z-index:6;max-width:var(--max);margin:0 auto;padding:16px var(--g) 0;font-size:10.5px;line-height:1.6;font-weight:800;letter-spacing:.2em;text-transform:uppercase}
nav.crumbs ol{opacity:1;gap:0 10px}
nav.crumbs li{color:var(--dim);gap:10px}
nav.crumbs li + li::before{content:"";width:9px;height:1px;background:var(--amber-deep);opacity:1}
nav.crumbs a{color:var(--mut);border-bottom:1px solid transparent}
nav.crumbs a:hover{color:var(--amber)}
nav.crumbs [aria-current]{opacity:1;color:var(--text)}
aside.seo-related{display:block;max-width:none;margin:0;padding:clamp(32px,4.6vw,52px) var(--g);background:var(--ground-2);border-top:1px solid var(--line-soft)}
aside.seo-related .seo-related__in{max-width:var(--max);margin:0 auto;border-top:1px solid var(--line);padding-top:22px}
aside.seo-related .seo-related__h{margin:0 0 16px;font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--amber-deep);opacity:1}
aside.seo-related ul{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
aside.seo-related li{min-width:0}
aside.seo-related a{display:block;color:var(--warm);border-bottom:1px solid var(--line-soft);font-size:15.5px;padding:10px 0}
aside.seo-related a:hover{opacity:1;color:var(--amber)}

/* ---------- footer ------------------------------------------------------------ */
.site-footer{margin-top:var(--pad);background:var(--ground-2);border-top:1px solid var(--line-soft)}
.site-footer__in{max-width:var(--max);margin-inline:auto;padding:clamp(34px,4.6vw,50px) var(--g) 0;display:grid;grid-template-columns:1.5fr repeat(3,minmax(0,1fr));gap:30px}
.site-footer__in > *{min-width:0}
.site-footer .fm{font-family:var(--serif);font-size:18px;letter-spacing:.04em;color:var(--warm)}
.site-footer .fm b{color:var(--rose);font-weight:400}
.site-footer__h{margin:0 0 14px;font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--amber-deep)}
.site-footer p{margin:0 0 10px;font-size:14px;color:var(--mut);max-width:48ch;line-height:1.6}
.site-footer ul{display:grid;gap:9px;font-size:14px;color:var(--mut)}
.site-footer a:hover{color:var(--amber)}
.site-footer__legal{max-width:var(--max);margin-inline:auto;padding:20px var(--g) 30px;margin-top:32px;border-top:1px solid var(--line-soft);display:flex;flex-wrap:wrap;align-items:center;gap:10px 20px;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.age21,.fchip{display:inline-block;padding:6px 13px;border:1px solid var(--line-soft);font-size:10.5px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--amber)}

/* ---------- mobile dock -------------------------------------------------------- */
.m-dock{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:10px;padding:11px 14px calc(11px + env(safe-area-inset-bottom));background:rgba(18,14,12,.97);border-top:1px solid var(--line);box-shadow:0 -18px 44px rgba(0,0,0,.55)}
.m-dock a{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;gap:9px;padding:14px 8px;border:1px solid var(--rose);border-radius:2px;font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;-webkit-tap-highlight-color:transparent}
.m-dock svg{width:17px;height:17px;fill:currentColor;flex:none}
.m-dock__wa{background:var(--rose);color:var(--on-rose)}
.m-dock__tg,.m-dock__alt,.m-dock__bk{background:transparent;color:var(--amber);border-color:rgba(255,202,122,.45)}

/* ---------- 21+ confirmation bar ------------------------------------------------ */
.age-bar{position:fixed;left:0;right:0;bottom:0;z-index:120;display:none;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px 18px;padding:14px var(--g) calc(14px + env(safe-area-inset-bottom));background:rgba(18,14,12,.97);border-top:1px solid var(--rose)}
body.age-bar-open .age-bar{display:flex}
body.age-bar-open .m-dock{display:none}
body.age-confirmed .age-bar{display:none}
.age-bar__txt,.ab-line{flex:0 1 auto;min-width:0;font-size:13px;line-height:1.5;color:var(--warm);text-align:center}
.age-bar__txt b,.ab-tag{color:var(--rose);font-weight:800;letter-spacing:.1em}
.age-bar__ok,.ab-ok,.age-bar button{flex:none;padding:13px 20px;border:1px solid var(--rose);border-radius:2px;cursor:pointer;background:var(--rose);color:var(--on-rose);font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.age-bar__ok:hover,.ab-ok:hover,.age-bar button:hover{background:var(--rose-hot);border-color:var(--rose-hot)}

/* ---------- profile rates table (partials/rates.mustache) ---------------------- */
.rates-card{width:100%;max-width:660px;padding:clamp(22px,3vw,30px);background:linear-gradient(180deg, rgba(255,200,140,.05), rgba(0,0,0,.10));border:1px solid var(--line-soft)}
.rates-card__title{margin:0;font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--amber-deep)}
.rates-card__table{width:100%;table-layout:fixed;margin-top:20px}
.rates-card__table caption{caption-side:top;text-align:left;padding:0 0 8px;font-size:11px;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.rates-card__table th,.rates-card__table td{padding:10px 0;border-bottom:1px solid var(--line-soft);font-weight:400;vertical-align:baseline}
.rates-card__table thead th{padding-top:0;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;text-align:right;color:var(--dim)}
.rates-card__table thead th:first-child{width:42%;text-align:left}
.rates-card__table tbody th{text-align:left;font-size:15px;line-height:1.3;padding-right:8px;color:var(--warm)}
.rates-card__table td{text-align:right;white-space:nowrap;font-size:19px;color:var(--amber);font-family:var(--serif)}
.rates-card__table tbody tr:last-child th,.rates-card__table tbody tr:last-child td{border-bottom:0}
.rates-card__extra td{color:var(--mut)}
.rates-card__terms{margin:18px 0 0;font-size:14px}
.rates-card__terms a{color:var(--amber);border-bottom:1px solid var(--line-soft)}
.rates-card__sr,.rates-card .sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- profile line (partials/independence.mustache) ---------------------- */
.prose .independence,.independence{font-size:15px;color:var(--dim)}
.prose .independence a,.independence a{color:inherit;text-decoration:underline;text-underline-offset:2px;border-bottom:0}

/* ============================================================================
   RESPONSIVE
   ============================================================================ */
@media (max-width:1040px){
  .tech,.s-grid,.grid--cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .roster,.t-grid,.grid--people,.strip{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mirror{padding:60px 42px 52px}
  .sec-pane,.phead-pane{padding:42px 32px}
  .cols{grid-template-columns:minmax(0,1fr)}
  .like-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .site-footer__in{grid-template-columns:1fr 1fr}
  aside.seo-related ul{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .qs{grid-template-columns:minmax(0,1fr)}
  .shots{grid-template-columns:repeat(3,minmax(0,1fr))}
  .site-header .inner{flex-wrap:wrap;row-gap:12px;gap:14px}
  .logo,.brand{flex:1 1 auto}
  .site-header nav{order:3;flex-basis:100%;display:none}
  .site-header nav.open{display:flex;flex-direction:column;gap:0}
  .site-header nav.open a{padding:12px 0;border-bottom:1px solid var(--line-soft);font-size:15px}
  .nav-toggle{display:inline-flex}
  .index a{grid-template-columns:minmax(0,1fr)}
  .index__m{grid-row:auto;grid-column:1}
}
@media (max-width:760px){
  body{padding-bottom:80px}
  .m-dock{display:flex}
  .header-cta{display:none}
  .hero{padding:22px 0 40px}
  .mirror{--gap:34px;--bs:34px;--dot:2.5px;margin:30px auto 0;padding:38px 22px 34px}
  .mirror .acts{display:none}
  .fee{width:100%;justify-content:center}
  .sec{padding-top:clamp(2.6rem,9vw,3.4rem)}
  .sec-pane{--gap:30px;--bs:30px;--dot:2.1px;padding:32px 20px}
  .phead-pane{--gap:30px;--bs:30px;--dot:2.1px;padding:32px 20px;margin-top:26px}
  .close-pane{padding:34px 20px}
  .who{--gap:22px;--bs:22px;--dot:1.7px}
  .tech,.rates,.s-grid,.grid--cards{grid-template-columns:minmax(0,1fr)}
  .terms{grid-template-columns:minmax(0,1fr);gap:20px}
  .roster{grid-template-columns:repeat(2,minmax(0,1fr));gap:34px 22px}
  .t-grid,.grid--people,.strip,.shots{grid-template-columns:repeat(2,minmax(0,1fr))}
  .like-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .site-footer__in{grid-template-columns:minmax(0,1fr)}
  aside.seo-related ul{grid-template-columns:minmax(0,1fr)}
  .site-footer__legal{padding-bottom:26px}
}
@media (max-width:520px){
  body{font-size:16px}
  .topbar .mark{font-size:12px}
  .bar21{font-size:9px;letter-spacing:.12em;padding:4px 8px}
  .logo,.brand{font-size:15px}
  .nav-toggle{min-width:44px;padding:0 10px}
  h1{font-size:clamp(29px,8.4vw,40px)}
  .mirror h1{font-size:clamp(30px,8.6vw,42px)}
  .ctas,.actions,.acts{gap:10px;flex-direction:column;align-items:stretch}
  .ctas .btn,.ctas .cta,.actions .btn,.actions .cta,.acts .btn{justify-content:center;width:100%}
  .who .nm{flex-direction:column;align-items:flex-start;gap:2px}
  .m-dock a{font-size:12px;letter-spacing:.04em;gap:7px}
}
@media (max-width:380px){
  .mirror{padding:32px 16px 28px}
  .sec-pane,.phead-pane,.close-pane{padding:28px 16px}
}

/* ---- injected by build: breadcrumbs + related pages ---- */
.crumbs{position:relative;z-index:3;max-width:var(--max,1200px);margin:0 auto;padding:14px clamp(18px,4vw,40px) 0;font-size:12.5px;line-height:1.5;letter-spacing:.02em}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 8px;opacity:.72}
.crumbs li{display:inline-flex;align-items:center;gap:8px;min-width:0}
.crumbs li+li::before{content:"/";opacity:.5}
.crumbs a{color:inherit;text-decoration:none;border-bottom:1px solid transparent}
.crumbs a:hover{border-bottom-color:currentColor}
.crumbs [aria-current]{opacity:.85;overflow-wrap:anywhere}
.seo-related{position:relative;z-index:3;max-width:var(--max,1200px);margin:0 auto;padding:clamp(28px,4vw,48px) clamp(18px,4vw,40px)}
.seo-related__in{border-top:1px solid rgba(128,128,128,.28);padding-top:22px}
.seo-related__h{margin:0 0 14px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;opacity:.7}
.seo-related ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px 28px}
.seo-related a{color:inherit;text-decoration:none;display:block;padding:6px 0;border-bottom:1px solid rgba(128,128,128,.16);font-size:15px;line-height:1.4}
.seo-related a:hover{opacity:.75}
