/* === Self-hosted fonts (latin subset), public/fonts/neonscript/ ===
   Sacramento          the signature: the wordmark in tube light, nothing else
   Plus Jakarta Sans   every other letter on the site, 400 to 800, variable
   No third-party stylesheet is loaded on any page of this network, so the two
   faces below are the whole type system. The build rewrites this run from
   sites/eroticmassageinamsterdam.json theme.fonts.faces; keep the two in step. */
@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/neonscript/plus-jakarta-sans-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;
}
@font-face {
  font-family: 'Sacramento';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('/fonts/neonscript/sacramento-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;
}

/* ============================================================================
   EROTIC MASSAGE IN AMSTERDAM, theme "neonscript"
   A deep indigo wall, one magenta tube bent into the name, and its spill.
   Everything under the light is plain: flat panels, hairlines, photographs and
   one grotesque set very tight.

   NOTHING ON ANY PAGE MOVES. No keyframe rule, no timed property, no easing,
   no script of this theme's own, nothing that fades or travels on scroll. A
   hover changes a colour or a border and does it in one frame, so there is no
   reduced-motion block here: it would have nothing to say. Keep it that way
   when this file grows.

   NOTHING IS DRAWN EITHER. Every mark on every page is a photograph, a letter,
   a flat rectangle, a rule or a glow. There is no scene, no object, no
   building, no vehicle, no character. The only exceptions are the two
   messenger glyphs in the mobile dock and a hairline chevron.

   Two jobs in one file:
     1. this theme's own pages (home, profile, technique, hub, guide, indexes)
     2. a compatibility layer for the SHARED templates it inherits: about, faq,
        contact, booking, terms, privacy, dmca, the age statement, the glossary,
        the cancellation policy and 404, which render .container / .reading /
        .hero / .btn / .label-top / .form-row.
   ============================================================================ */

:root{
  --ground:#120D33;
  --ground-2:#171047;
  --ground-3:#0C0824;
  --ground-4:#1C1550;
  --ink:#EBEDFF;
  --dim:#ADB2E0;
  --neon:#FF3D9E;
  --neon-deep:#D1006B;
  --neon-soft:#FF8FC6;
  --glass:#FFF2F9;
  --rule:rgba(173,178,224,.22);
  --rule-2:rgba(173,178,224,.14);
  --onneon:#1A0010;
  --wa:#25D366;
  /* tokens the SHARED templates reference from inline styles: keep them declared
     so an inherited page never falls back to an invalid value */
  --muted:#ADB2E0;
  --faint:#8E93C6;
  --hair:rgba(173,178,224,.22);
  --cloud:#120D33;
  --sky-3:#171047;
  --white:#FFFFFF;
  --sans:'Plus Jakarta Sans', system-ui, 'Segoe UI', Helvetica, Arial, sans-serif;
  --serif:'Plus Jakarta Sans', Georgia, 'Times New Roman', serif;
  --script:'Sacramento', 'Segoe Script', cursive;
  --max:1180px;
  --reading:680px;
  --gutter:20px;
  --pad:clamp(54px,8vw,104px);
}

/* ---------- ground -------------------------------------------------------- */
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
html,body{margin:0;padding:0;max-width:100%;overflow-x:hidden;}
body{
  background:var(--ground);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}
main{display:block;}
img{max-width:100%;height:auto;}
a{color:inherit;}
h1,h2,h3,h4,h5{font-family:var(--sans);font-weight:800;letter-spacing:-.02em;line-height:1.14;margin:0;}
p{margin:0 0 16px;}
p:last-child{margin-bottom:0;}
:focus-visible{outline:2px solid var(--neon);outline-offset:2px;}
.nwrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);width:100%;}
.wrap-any{overflow-wrap:anywhere;}
.no-save,.no-save img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}

/* ---------- 21 bar (shared app.js raises it) ------------------------------ */
.age-bar{
  display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;
  padding:9px var(--gutter);background:var(--ground-3);
  border-bottom:1px solid var(--rule-2);font-size:13px;color:var(--dim);
}
.age-bar b{color:var(--neon);letter-spacing:.16em;font-weight:700;margin-right:6px;}
.age-bar__ok{
  background:none;border:1px solid var(--rule);color:var(--ink);font-family:var(--sans);
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:7px 13px;border-radius:999px;cursor:pointer;
}
.age-bar__ok:hover{border-color:var(--neon);color:var(--neon);}
body.age-confirmed .age-bar{display:none;}

/* ---------- the bar across the top ---------------------------------------- */
.site-header{border-bottom:1px solid var(--rule-2);position:relative;z-index:6;background:var(--ground);}
.nbar{
  display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;
  max-width:var(--max);margin:0 auto;padding:11px var(--gutter);
}
.nbar__mark{
  font-family:var(--script);font-size:29px;line-height:1;text-decoration:none;
  color:var(--glass);padding-right:4px;
  text-shadow:0 0 3px rgba(255,255,255,.6),0 0 10px rgba(255,120,190,.85),0 0 22px rgba(255,61,158,.6);
}
.nbar__mark:hover{color:#FFFFFF;}
.nbar__age{
  font-size:11px;letter-spacing:.20em;text-transform:uppercase;color:var(--dim);
  border:1px solid var(--rule);border-radius:999px;padding:4px 11px;white-space:nowrap;margin-left:auto;
}
.site-header nav{
  display:flex;flex-wrap:wrap;gap:4px clamp(12px,2.2vw,26px);width:100%;order:4;
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);
  padding-top:9px;border-top:1px solid var(--rule-2);
}
.site-header nav a{text-decoration:none;padding:5px 0;}
.site-header nav a:hover{color:var(--neon);}
.nav-toggle{
  display:none;background:none;border:1px solid var(--rule);color:var(--ink);font-family:var(--sans);
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  padding:6px 11px;border-radius:999px;cursor:pointer;
}
.nav-toggle:hover{border-color:var(--neon);color:var(--neon);}
@media (max-width:760px){
  .nbar{gap:8px 10px;}
  .nbar__mark{font-size:25px;}
  .nbar__age{order:3;margin-left:0;}
  .nav-toggle{display:inline-block;margin-left:auto;}
  .site-header nav{display:none;}
  .site-header nav.open{display:flex;flex-direction:column;gap:0;}
  .site-header nav.open a{border-bottom:1px solid var(--rule-2);padding:11px 0;}
}

/* ============================ THE SIGNATURE (home) ======================== */
.sighero{
  position:relative;
  min-height:max(520px,calc(100svh - 172px));
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
  padding:clamp(34px,6vh,80px) var(--gutter) clamp(52px,9vh,112px);
  background:
    radial-gradient(60% 42% at 50% 38%, rgba(255,61,158,.30) 0%, rgba(255,61,158,.10) 42%, rgba(18,13,51,0) 72%),
    radial-gradient(90% 70% at 50% 100%, rgba(12,8,36,.85) 0%, rgba(18,13,51,0) 70%),
    linear-gradient(180deg,#160F3E 0%, #120D33 55%, #0E0A2A 100%);
  overflow:hidden;
}
/* the rail the tube is fixed to, and its spill on the wall */
.sighero::after{
  content:"";position:absolute;left:50%;transform:translateX(-50%);
  bottom:clamp(24px,7vh,78px);
  width:min(760px,78vw);height:1px;
  background:linear-gradient(90deg,rgba(255,61,158,0),rgba(255,61,158,.85),rgba(255,61,158,0));
  box-shadow:0 0 14px rgba(255,61,158,.75),0 0 46px rgba(255,61,158,.38);
}
.sig{
  font-family:var(--script);font-weight:400;
  font-size:clamp(3.4rem,14vw,8.6rem);
  line-height:.95;margin:0;max-width:11ch;
  color:var(--glass);letter-spacing:.01em;padding:0 .08em;text-wrap:balance;
  text-shadow:
    0 0 4px rgba(255,255,255,.75),
    0 0 12px rgba(255,120,190,.95),
    0 0 26px rgba(255,61,158,.92),
    0 0 54px rgba(255,61,158,.70),
    0 0 104px rgba(209,0,107,.52),
    0 0 190px rgba(209,0,107,.34);
}
.sighero__h{
  font-size:clamp(1.18rem,2.4vw,1.86rem);
  font-weight:800;letter-spacing:-.015em;line-height:1.22;
  max-width:24ch;margin:clamp(18px,3vh,32px) auto 0;
}
.sighero .lede{
  max-width:52ch;margin:16px auto 0;
  font-size:clamp(1rem,1.5vw,1.14rem);color:var(--dim);
}
.sighero__fine{margin:16px auto 0;max-width:44ch;font-size:13.5px;color:var(--dim);}
.cta{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:clamp(20px,3.2vh,32px);}

/* ---------- buttons ------------------------------------------------------- */
.btn{
  display:inline-block;text-decoration:none;font-family:var(--sans);
  font-size:14px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;
  padding:14px 24px;border-radius:2px;cursor:pointer;
}
.btn--neon{background:var(--neon);color:var(--onneon);border:1px solid var(--neon);box-shadow:0 0 22px rgba(255,61,158,.45);}
.btn--neon:hover{background:var(--neon-soft);border-color:var(--neon-soft);}
.btn--line{background:transparent;color:var(--ink);border:1px solid rgba(235,237,255,.42);}
.btn--line:hover{border-color:var(--neon);color:var(--neon);}

/* ============================ PAGE HEAD (inner pages) ===================== */
.phead{
  position:relative;padding:clamp(34px,5vw,58px) 0 clamp(30px,4vw,48px);
  background:
    radial-gradient(70% 120% at 12% 0%, rgba(255,61,158,.16) 0%, rgba(18,13,51,0) 68%),
    linear-gradient(180deg,#15103C 0%, var(--ground) 100%);
  border-bottom:1px solid var(--rule-2);
}
.phead__rail{
  display:block;width:min(420px,60%);height:1px;margin:22px 0 0;
  background:linear-gradient(90deg,rgba(255,61,158,.9),rgba(255,61,158,0));
  box-shadow:0 0 12px rgba(255,61,158,.6),0 0 34px rgba(255,61,158,.3);
}
.phead h1{font-size:clamp(1.85rem,4.4vw,3.1rem);max-width:21ch;}
.phead .lede{margin:18px 0 0;max-width:58ch;color:var(--dim);font-size:clamp(1rem,1.5vw,1.12rem);}
.phead__meta{margin:20px 0 0;font-size:13px;color:var(--dim);}

/* ---------- eyebrow and headings ------------------------------------------ */
.eyebrow{
  font-size:11px;letter-spacing:.24em;text-transform:uppercase;
  color:var(--neon);margin:0 0 16px;font-weight:600;
}
.nsec{padding:var(--pad) 0;border-top:1px solid var(--rule-2);}
.nsec--tight{padding:clamp(38px,5vw,62px) 0;}
.nsec h2{font-size:clamp(1.5rem,3.1vw,2.4rem);margin:0 0 20px;}
.nsec h3{font-size:1.02rem;font-weight:600;margin:0;letter-spacing:0;}
.duo{display:grid;grid-template-columns:1fr;gap:clamp(26px,4vw,64px);}
.duo p{max-width:62ch;}
.sub{color:var(--dim);max-width:62ch;margin:0 0 24px;}
.more{margin:26px 0 0;font-size:14px;letter-spacing:.06em;text-transform:uppercase;}
.more a{color:var(--neon);text-decoration:none;border-bottom:1px solid rgba(255,61,158,.45);}
.more a:hover{color:var(--ink);border-bottom-color:var(--ink);}

/* ---------- prose --------------------------------------------------------- */
.prose{max-width:var(--reading);}
.prose--wide{max-width:72ch;}
.prose p{color:var(--dim);}
.prose h2{font-size:clamp(1.32rem,2.5vw,1.85rem);margin:38px 0 14px;color:var(--ink);}
.prose h3{font-size:1.1rem;font-weight:700;margin:26px 0 8px;color:var(--ink);letter-spacing:-.01em;}
.prose > :first-child{margin-top:0;}
.prose a{color:var(--ink);text-decoration:none;border-bottom:1px solid var(--neon);}
.prose a:hover{color:var(--neon);}
.prose ul,.prose ol{margin:0 0 18px;padding-left:0;list-style:none;}
.prose li{color:var(--dim);border-top:1px solid var(--rule-2);padding:10px 0;}
.prose strong{color:var(--ink);font-weight:700;}
.duo .prose{max-width:none;}
.duo .prose p,.duo .prose li{max-width:62ch;}
.cta--left{justify-content:flex-start;}
.ratebox{max-width:540px;}

/* ---------- facts list (key / value rows) --------------------------------- */
.facts{list-style:none;margin:0;padding:0;}
.facts li{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--rule);}
.facts li:first-child{border-top:1px solid var(--rule);}
.facts__k{color:var(--dim);font-size:14px;}
.facts__v{font-weight:600;text-align:right;}

/* ---------- technique grid ------------------------------------------------ */
.tech{display:grid;grid-template-columns:1fr;gap:0 clamp(18px,3vw,48px);margin:8px 0 0;padding:0;list-style:none;}
.tech li{border-top:1px solid var(--rule);}
.tech a{display:block;padding:15px 0;text-decoration:none;font-size:1.02rem;font-weight:600;}
.tech a:hover{color:var(--neon);}
.tech__d{display:block;font-size:13px;color:var(--dim);margin-top:2px;font-weight:400;}

/* ---------- roster -------------------------------------------------------- */
.roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(10px,1.2vw,16px);margin:10px 0 0;padding:0;list-style:none;}
.who{background:var(--ground-3);border-top:2px solid var(--neon);box-shadow:0 -6px 20px -6px rgba(255,61,158,.75);}
.who a{display:block;text-decoration:none;}
.who__ph{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:50% 22%;}
.who__cap{display:block;padding:11px 11px 14px;}
.who__nm{display:block;font-weight:600;font-size:.98rem;line-height:1.2;}
.who__mt{display:block;font-size:12.5px;color:var(--dim);letter-spacing:.03em;margin-top:3px;}
.who a:hover .who__nm{color:var(--neon);}

/* ---------- chips --------------------------------------------------------- */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;}
.chips li{border:1px solid var(--rule);border-radius:999px;padding:7px 15px;font-size:13.5px;color:var(--ink);}

/* ---------- link rails and index lists ------------------------------------ */
.rail{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:0 clamp(20px,3vw,48px);}
.rail li{border-top:1px solid var(--rule);}
.rail a{display:flex;justify-content:space-between;gap:14px;align-items:baseline;padding:14px 0;text-decoration:none;font-size:1rem;font-weight:600;}
.rail a::after{content:"\203A";color:var(--neon);font-weight:400;}
.rail a:hover{color:var(--neon);}
.idx{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:0;}
.idx li{border-top:1px solid var(--rule);}
.idx a{display:block;padding:20px 0;text-decoration:none;}
.idx__t{display:block;font-size:1.1rem;font-weight:700;letter-spacing:-.01em;line-height:1.3;}
.idx__d{display:block;font-size:14.5px;color:var(--dim);margin-top:6px;max-width:66ch;}
.idx__m{display:block;font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--neon);margin-top:9px;}
.idx a:hover .idx__t{color:var(--neon);}

/* ---------- profile / technique side panel -------------------------------- */
.cols{display:grid;grid-template-columns:1fr;gap:clamp(26px,3.4vw,46px);align-items:start;}
.panel{border:1px solid var(--rule);background:var(--ground-2);padding:20px;}
.spec{margin:0;padding:0;display:grid;gap:0;}
.spec > div{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule-2);}
.spec > div:last-child{border-bottom:0;}
.spec dt{color:var(--dim);font-size:13.5px;margin:0;}
.spec dd{margin:0;font-weight:600;text-align:right;font-size:14.5px;}
.spec dd a{color:inherit;text-decoration:none;border-bottom:1px solid var(--neon);}
.spec dd a:hover{color:var(--neon);}
.label{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--neon);margin:20px 0 10px;font-weight:600;}
.tags{display:flex;flex-wrap:wrap;gap:7px;margin:0;}
.tag{
  display:inline-block;border:1px solid var(--rule);border-radius:999px;padding:5px 12px;
  font-size:12.5px;color:var(--dim);text-decoration:none;
}
a.tag:hover{border-color:var(--neon);color:var(--neon);}
.independence{margin:22px 0 0;font-size:14.5px;color:var(--dim);max-width:66ch;}
.independence a{color:var(--dim);border-bottom:1px solid var(--neon);text-decoration:none;}
.independence a:hover{color:var(--neon);}

/* ---------- photographs on a profile -------------------------------------- */
.shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;}
.shots img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;border-top:2px solid var(--neon);}
.phero{display:grid;grid-template-columns:1fr;gap:26px;align-items:start;}
.phero__fig{margin:0;position:relative;}
.phero__fig img{display:block;width:100%;max-width:340px;aspect-ratio:3/4;object-fit:cover;border-top:2px solid var(--neon);box-shadow:0 -8px 30px -8px rgba(255,61,158,.8);}

/* ---------- tables -------------------------------------------------------- */
.ladder{width:100%;border-collapse:collapse;max-width:520px;}
.ladder th,.ladder td{text-align:left;padding:13px 0;border-bottom:1px solid var(--rule);font-size:15.5px;}
.ladder th{font-weight:400;color:var(--dim);}
.ladder td{text-align:right;font-weight:700;}
.rates-card{border:1px solid var(--rule);background:var(--ground-2);padding:20px;}
.rates-card__title{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--neon);margin:0 0 14px;font-weight:600;}
.rates-card__table{width:100%;border-collapse:collapse;margin:0 0 18px;}
.rates-card__table:last-of-type{margin-bottom:0;}
.rates-card__table caption{text-align:left;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding:0 0 8px;}
.rates-card__table th,.rates-card__table td{text-align:right;padding:9px 0;border-bottom:1px solid var(--rule-2);font-size:14.5px;}
.rates-card__table thead th{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);font-weight:600;}
.rates-card__table tbody th{text-align:left;font-weight:400;color:var(--dim);}
.rates-card__table tbody td{font-weight:700;}
.rates-card__sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}
.rates-card__extra td,.rates-card__extra th{color:var(--dim);}
.rates-card__terms{margin:14px 0 0;font-size:13px;}
.rates-card__terms a{color:var(--neon);text-decoration:none;border-bottom:1px solid rgba(255,61,158,.45);}
.rates-card__terms a:hover{color:var(--ink);border-bottom-color:var(--ink);}

/* ---------- questions ----------------------------------------------------- */
.faq{max-width:var(--reading);}
.faq details{border-top:1px solid var(--rule);}
.faq summary{
  list-style:none;cursor:pointer;padding:15px 0;font-weight:600;font-size:1rem;
  display:flex;justify-content:space-between;gap:16px;align-items:baseline;
}
.faq summary::-webkit-details-marker{display:none;}
.faq summary::after{content:"+";color:var(--neon);font-weight:400;font-size:1.2rem;}
.faq details[open] summary::after{content:"\2212";}
.faq summary:hover{color:var(--neon);}
.faq .a{padding:0 0 18px;}
.faq .a p{color:var(--dim);margin:0;max-width:64ch;}

/* ============================================================================
   SHARED-TEMPLATE COMPATIBILITY LAYER
   about, faq, contact, booking, terms, privacy, dmca, age statement, glossary,
   cancellation policy and 404 render markup this theme does not own. They get
   the same chrome; these rules give their markup the same language.
   ============================================================================ */
.container{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);width:100%;}
.reading{max-width:var(--reading);}
.reading.container{max-width:var(--max);padding:0 var(--gutter);}
section .reading > *{max-width:var(--reading);}
section{padding:clamp(38px,5vw,56px) 0;}
/* The inherited head is <section class="hero"> with the eyebrow, the h1 and the
   lede as DIRECT children, so the column has to live on the section itself, the
   way .nwrap carries it for .phead. Putting max-width on the children instead
   meant .label-top's own margin reset killed its auto margins (flush to the
   viewport edge) while the h1's 22ch measure kept them (a narrow box centred in
   the window): three different left edges on one page head. */
.hero{
  max-width:none;margin:0;
  padding:clamp(34px,5vw,58px) max(var(--gutter),calc((100% - var(--max)) / 2 + var(--gutter))) clamp(30px,4vw,44px);
  background:
    radial-gradient(70% 120% at 12% 0%, rgba(255,61,158,.16) 0%, rgba(18,13,51,0) 68%),
    linear-gradient(180deg,#15103C 0%, var(--ground) 100%);
  border-bottom:1px solid var(--rule-2);
}
.hero > *{max-width:none;margin-left:0;margin-right:0;padding-left:0;padding-right:0;}
.hero h1{font-size:clamp(1.85rem,4.4vw,3.1rem);max-width:22ch;}
.hero .lede{margin:18px 0 0;max-width:58ch;color:var(--dim);font-size:clamp(1rem,1.5vw,1.12rem);}
.label-top,.label{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--neon);margin:0 0 14px;font-weight:600;}
.form-row .label{margin:0 0 8px;}
section .container > h1{margin-bottom:18px;}
section p{color:var(--dim);}
section .reading h2{margin:40px 0 14px;font-size:clamp(1.32rem,2.5vw,1.85rem);color:var(--ink);}
section .reading h3{margin:28px 0 8px;font-size:1.1rem;font-weight:700;color:var(--ink);letter-spacing:-.01em;}
/* Body links inside an inherited page, but NOT the two shared buttons: the
   shared templates put .btn.btn-primary and .btn.btn-ghost inside .reading, and
   a plain "section .reading a" outranks .btn-primary. :not(.btn) hands the
   buttons back to their own rules. */
section .reading a:not(.btn){color:var(--ink);text-decoration:none;border-bottom:1px solid var(--neon);}
section .reading a:not(.btn):hover{color:var(--neon);}
section .reading ul,section .reading ol{padding-left:0;margin:0 0 20px;}
section .reading ul li{list-style:none;border-top:1px solid var(--rule-2);padding:10px 0;color:var(--dim);}
section .reading ol{padding-left:20px;}
section .reading ol li{color:var(--dim);padding:5px 0;}
section .reading table{width:100%;border-collapse:collapse;margin:0 0 22px;}
section .reading th,section .reading td{text-align:left;padding:11px 0;border-bottom:1px solid var(--rule-2);font-size:15px;color:var(--dim);}
section .reading th{color:var(--ink);font-weight:600;}
.btn-primary{background:var(--neon);color:var(--onneon);border:1px solid var(--neon);display:inline-block;text-decoration:none;font-weight:600;font-size:14px;letter-spacing:.09em;text-transform:uppercase;padding:14px 24px;border-radius:2px;box-shadow:0 0 22px rgba(255,61,158,.45);}
.btn-primary:hover{background:var(--neon-soft);border-color:var(--neon-soft);}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid rgba(235,237,255,.42);display:inline-block;text-decoration:none;font-weight:600;font-size:14px;letter-spacing:.09em;text-transform:uppercase;padding:14px 24px;border-radius:2px;}
.btn-ghost:hover{border-color:var(--neon);color:var(--neon);}
.form-row{margin-top:18px;}
.form-row select,.form-row input{
  width:100%;max-width:100%;padding:13px 12px;border:1px solid var(--rule);
  background:var(--ground-2);font-family:var(--sans);font-size:15px;color:var(--ink);border-radius:2px;
}
.form-row select:focus,.form-row input:focus{outline:2px solid var(--neon);outline-offset:1px;}

/* ---------- build-injected breadcrumbs and related pages ------------------ */
nav.crumbs{
  max-width:var(--max);margin:0 auto;padding:15px var(--gutter) 0;
  font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
}
nav.crumbs ol{opacity:1;gap:4px 10px;}
nav.crumbs li{color:var(--dim);gap:10px;}
nav.crumbs li+li::before{content:"\203A";opacity:1;color:var(--neon);}
nav.crumbs a{color:var(--dim);border-bottom:1px solid transparent;}
nav.crumbs a:hover{color:var(--neon);border-bottom-color:var(--neon);}
nav.crumbs [aria-current]{opacity:1;color:var(--ink);}
aside.seo-related{max-width:var(--max);margin:0 auto;padding:clamp(34px,4vw,54px) var(--gutter);}
aside.seo-related .seo-related__in{border-top:1px solid var(--rule);padding-top:20px;}
aside.seo-related .seo-related__h{
  margin:0 0 14px;font-size:11px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:var(--neon);opacity:1;
}
aside.seo-related ul{gap:0 clamp(20px,3vw,48px);}
aside.seo-related a{border-bottom:1px solid var(--rule-2);font-size:15px;color:var(--dim);padding:11px 0;}
aside.seo-related a:hover{opacity:1;color:var(--neon);}

/* ============================ FOOTER ====================================== */
.site-footer{
  border-top:1px solid var(--rule-2);background:var(--ground-3);
  padding:clamp(40px,6vw,68px) 0 clamp(34px,4vw,48px);color:var(--dim);font-size:14px;
}
.site-footer__in{max-width:var(--max);margin:0 auto;padding:0 var(--gutter);display:grid;gap:30px;}
.site-footer__mark{
  font-family:var(--script);font-size:34px;line-height:1;color:var(--glass);text-decoration:none;display:inline-block;
  text-shadow:0 0 3px rgba(255,255,255,.55),0 0 12px rgba(255,120,190,.8),0 0 26px rgba(255,61,158,.55);
}
.site-footer__note{max-width:42ch;margin:12px 0 0;line-height:1.6;}
.site-footer__h{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--ink);font-weight:600;margin:0 0 12px;}
.site-footer ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;}
.site-footer li{line-height:1.5;}
.site-footer a{color:var(--dim);text-decoration:none;}
.site-footer a:hover{color:var(--neon);}
.site-footer__legal{
  max-width:var(--max);margin:34px auto 0;padding:16px var(--gutter) 0;border-top:1px solid var(--rule-2);
  display:flex;flex-wrap:wrap;gap:8px 22px;align-items:center;font-size:12px;
}
.age21{color:var(--neon);font-weight:600;letter-spacing:.18em;text-transform:uppercase;}

/* ============================ MOBILE DOCK ================================= */
.m-dock{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  display:flex;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));
  background:rgba(12,8,36,.96);border-top:1px solid rgba(255,61,158,.55);
  box-shadow:0 -10px 30px rgba(0,0,0,.55);
}
.m-dock a{
  flex:1 1 0;text-align:center;padding:13px 8px;font-size:13px;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;text-decoration:none;border-radius:2px;
  display:flex;align-items:center;justify-content:center;gap:7px;
}
.m-dock__wa{background:var(--neon);color:var(--onneon);border:1px solid var(--neon);}
.m-dock__wa:hover{background:var(--neon-soft);border-color:var(--neon-soft);}
.m-dock__tg{background:transparent;color:var(--ink);border:1px solid rgba(235,237,255,.42);}
.m-dock__tg:hover{border-color:var(--neon);color:var(--neon);}
.m-dock__alt{background:transparent;color:var(--ink);border:1px solid rgba(235,237,255,.42);}
.m-dock__alt:hover{border-color:var(--neon);color:var(--neon);}
.m-dock svg{flex:none;}
@media (min-width:761px){.m-dock{display:none;}}
@media (max-width:760px){body{padding-bottom:calc(88px + env(safe-area-inset-bottom,0px));}}

/* ============================ WIDER SCREENS =============================== */
@media (min-width:560px){
  .roster{grid-template-columns:repeat(3,minmax(0,1fr));}
  .shots{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (min-width:700px){
  .tech{grid-template-columns:repeat(2,minmax(0,1fr));}
  .rail{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:840px){
  .duo{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .phero{grid-template-columns:minmax(0,1fr) minmax(0,320px);gap:40px;}
}
@media (min-width:900px){
  :root{--gutter:32px;}
  body{font-size:17.5px;}
  .tech{grid-template-columns:repeat(4,minmax(0,1fr));}
  .cols{grid-template-columns:minmax(0,1fr) 330px;}
  .site-footer__in{grid-template-columns:repeat(2,1fr);}
  .idx{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(24px,3vw,52px);}
}
@media (min-width:1100px){
  .roster{grid-template-columns:repeat(6,minmax(0,1fr));}
  .shots{grid-template-columns:repeat(4,minmax(0,1fr));}
  .site-footer__in{grid-template-columns:repeat(4,1fr);gap:34px;}
}
@media (max-width:420px){
  .facts li{flex-direction:column;gap:2px;}
  .facts__v{text-align:left;}
  .spec > div{flex-direction:column;gap:2px;}
  .spec dd{text-align:left;}
}
/* ============================ ROSTER BEFORE THE SCRIPT ==================== */
/* app.js shuffles each data-shuffle grid and keeps its first N cards; these
   hide the rest from the first paint so no card appears and then vanishes. */
[data-shuffle="12"] > :nth-child(n+13){display:none;}
[data-shuffle="6"] > :nth-child(n+7){display:none;}

/* ============================ PHONE (760px and below) ===================== */
/* Glued to the screen: a panel runs from edge to edge instead of floating in a
   frame of wall colour; its copy keeps the gutter as inner padding. Targets
   are 44px tall, reading copy 16px, and the heavier glows are trimmed. */
@media (max-width:760px){
  .panel,.rates-card{
    margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter));
    border-left:0;border-right:0;padding:20px var(--gutter);
  }
  .nav-toggle{min-height:44px;padding:0 16px;}
  .age-bar__ok{min-height:44px;}
  .site-header nav.open a{min-height:44px;display:flex;align-items:center;}
  .tag{display:inline-flex;align-items:center;min-height:44px;padding:0 14px;}
  .m-dock a{min-height:46px;}
  .sighero::after{box-shadow:0 0 12px rgba(255,61,158,.75),0 0 36px rgba(255,61,158,.38);}
  .sighero__fine,.idx__d,.independence,.site-footer,.site-footer__note,
  section .reading th,section .reading td,.form-row select,.form-row input,
  aside.seo-related a,.facts__k,.spec dt,.spec dd{font-size:16px;}
  /* the inherited pages set their closing notes inline at 14px */
  main p[style*="font-size:14px"],main p[style*="font-size:13px"]{font-size:16px !important;}
}

/* ---- 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}
