/* The home page for visitors (layouts/landing, home.blade.php): always dark, its own palette.
   Its only stylesheet: what it needs of nudeweb.css and inter.css (Inter, its stand-in, the
   staging badge) is here, and the cookie banner brings its own (public/js/analytics.js). */

/* Inter (Latin, variable 100-900, public/assets/vendor/inter-5.3.0), used only if it has
   arrived by the first paint (it's preloaded, and cached after): otherwise this page view keeps
   the stand-in below rather than drawing the text a second time when Inter turns up. Other
   scripts' letters use the system's font. */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-display: optional;
    font-weight: 100 900;
    src: url(/assets/vendor/inter-5.3.0/inter-latin-wght-normal.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;
}

/* While Inter loads (it swaps in when it arrives), text is drawn in a stand-in sized to Inter's
   measurements (Arial, or what the system calls it), so lines don't rewrap and the page isn't
   drawn twice when Inter replaces it. The same as nudeweb.css's. */
@font-face {
    font-family: 'Inter fallback';
    src: local('Arial'), local('ArialMT'), local('Helvetica'), local('Liberation Sans');
    font-weight: 100 550;
    size-adjust: 107.12%;
    ascent-override: 90.44%;
    descent-override: 22.52%;
    line-gap-override: 0%;
    /* only what Inter covers (Latin): other scripts keep the system's own font, at its own size */
    unicode-range: U+0000-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20C0, U+2113, U+2122, U+2191, U+2193, U+2212, U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
}
/* bold from a real bold, so bold lines measure as Inter's do too */
@font-face {
    font-family: 'Inter fallback';
    src: local('Arial Bold'), local('Arial-BoldMT'), local('Helvetica Bold'), local('Liberation Sans Bold');
    font-weight: 551 900;
    size-adjust: 107.12%;
    ascent-override: 90.44%;
    descent-override: 22.52%;
    line-gap-override: 0%;
    unicode-range: U+0000-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1EFF, U+2000-206F, U+20A0-20C0, U+2113, U+2122, U+2191, U+2193, U+2212, U+2215, U+2C60-2C7F, U+A720-A7FF, U+FEFF, U+FFFD;
}

.nw-land { margin: 0; background: #0f172a; color: #e2e8f0; font-family: Inter, 'Inter fallback', system-ui, sans-serif; font-size: 16px; line-height: 1.5; }
.nw-land a { color: #f87171; text-decoration: none; }
.nw-land a:hover { text-decoration: underline; }
.nw-land h1, .nw-land h2, .nw-land h3 { color: #fff; margin: 0; }
.nw-land img { max-width: 100%; }
.nw-land-wrap { max-width: 1200px; margin: 0 auto; padding-left: 24px; padding-right: 24px; box-sizing: border-box; }
.nw-land-muted { color: #94a3b8; margin: 0; }
.nw-land-button { display: inline-flex; align-items: center; justify-content: center; padding: 10px 18px; border-radius: 10px; border: 0; background: #dc2626; color: #fff !important; font: inherit; font-weight: 600; cursor: pointer; text-decoration: none !important; }
.nw-land-button:hover { background: #b91c1c; }
.nw-land-button-big { padding: 15px 30px; border-radius: 13px; font-size: 17px; font-weight: 700; }
.nw-land-button-grey { background: #334155; color: #e2e8f0 !important; }

.nw-land-header { background: #111c33; border-bottom: 1px solid rgba(148,163,184,.14); }
.nw-land-header-row { display: flex; align-items: center; gap: 28px; flex-wrap: wrap; padding-top: 14px; padding-bottom: 14px; }
.nw-land-logo img { display: block; width: 168px; height: auto; }
.nw-land-nav { display: flex; gap: 22px; flex-wrap: wrap; font-size: 15px; font-weight: 500; }
.nw-land-nav a { color: #cbd5e1; }
.nw-land-header-end { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.nw-land-signin { color: #e2e8f0 !important; font-weight: 600; }

.nw-land-hero { display: flex; flex-wrap: wrap; gap: 56px; align-items: center; padding-top: 72px; padding-bottom: 56px; }
.nw-land-pitch { flex: 1 1 520px; min-width: 0; }
.nw-land-pitch h1 { font-size: 60px; line-height: 1.03; font-weight: 800; letter-spacing: -1.8px; }
.nw-land-lead { margin: 22px 0 0; font-size: 20px; color: #cbd5e1; max-width: 580px; }
.nw-land-ticks { list-style: none; margin: 28px 0 0; padding: 0; display: flex; flex-direction: column; gap: 12px; font-size: 17px; }
.nw-land-ticks li { display: flex; align-items: center; gap: 12px; }
.nw-land-tick { flex-shrink: 0; font-size: 24px; color: #22c55e; }

.nw-land-form { flex: 1 1 380px; max-width: 440px; box-sizing: border-box; background: #1e293b; border: 1px solid rgba(148,163,184,.16); border-radius: 20px; padding: 28px; display: flex; flex-direction: column; gap: 18px; box-shadow: 0 24px 60px rgba(0,0,0,.35); }
.nw-land-form h2 { font-size: 24px; font-weight: 700; }
.nw-land-form fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.nw-land-form legend, .nw-land-field label { padding: 0; margin-bottom: 10px; font-size: 14px; font-weight: 600; color: #cbd5e1; }
.nw-land-chips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.nw-land-chips-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nw-land-chip { position: relative; display: block; }
.nw-land-chip input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.nw-land-chip span { display: flex; align-items: center; justify-content: center; height: 44px; border-radius: 10px; border: 1px solid #334155; background: #0f172a; color: #cbd5e1; font-size: 15px; font-weight: 600; cursor: pointer; }
.nw-land-chip input:checked + span { border-color: #ef4444; background: rgba(239,68,68,.16); color: #fecaca; }
.nw-land-chip input:focus-visible + span { outline: 2px solid #f87171; outline-offset: 2px; }
.nw-land-field { display: flex; flex-direction: column; }
.nw-land-field label { margin-bottom: 8px; }
.nw-land-field input { height: 48px; box-sizing: border-box; border-radius: 12px; border: 1px solid #334155; background: #0f172a; color: #fff; padding: 0 14px; font: inherit; }
.nw-land-field input::placeholder { color: #94a3b8; }
.nw-land-person img, .nw-land-group-picture img, .nw-land-video-picture img { display: block; width: 100%; height: 100%; object-fit: cover; }

.nw-land-band { background: #111c33; border-top: 1px solid rgba(148,163,184,.12); border-bottom: 1px solid rgba(148,163,184,.12); }
.nw-land-numbers { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; padding-top: 28px; padding-bottom: 28px; }
.nw-land-numbers p { margin: 0; color: #94a3b8; font-size: 15px; }
.nw-land-numbers p:first-child { font-size: 32px; font-weight: 800; color: #fff; letter-spacing: -0.5px; }

.nw-land-section { padding-top: 80px; }
.nw-land-section h2 { font-size: 32px; font-weight: 800; letter-spacing: -0.5px; }
/* the heading across the width, a sentence a line; the text under it kept to a readable length */
.nw-land-intro h2 { margin-top: 8px; font-size: 48px; line-height: 1.08; letter-spacing: -1.4px; }
.nw-land-intro h2 span { display: block; }
.nw-land-intro p:last-child { margin: 16px 0 0; max-width: 720px; color: #cbd5e1; font-size: 19px; }
.nw-land-eyebrow { margin: 0; color: #f87171; font-weight: 700; font-size: 14px; letter-spacing: .6px; text-transform: uppercase; }
.nw-land-split { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.nw-land-intro + .nw-land-split { margin-top: 36px; }
.nw-land-inside { flex: 1 1 440px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.nw-land-post { background: #1e293b; border-radius: 18px; overflow: hidden; }
.nw-land-post > p { margin: 0; padding: 0 18px 14px; color: #f1f5f9; }
.nw-land-post-head { display: flex; align-items: center; gap: 12px; padding: 16px 18px; }
.nw-land-post-head b, .nw-land-comments b, .nw-land-request b { color: #fff; }
.nw-land-post-head small { font-size: 13px; color: #94a3b8; }
.nw-land-post-photo { height: 280px; filter: blur(14px); transform: scale(1.1); }
.nw-land-post-bar { display: flex; align-items: center; gap: 18px; padding: 12px 18px; font-size: 14px; color: #cbd5e1; border-bottom: 1px solid rgba(148,163,184,.12); position: relative; background: #1e293b; }
.nw-land-post-bar span { display: inline-flex; align-items: center; gap: 6px; }
.nw-land-comments { padding: 12px 18px 16px; display: flex; flex-direction: column; gap: 10px; }
.nw-land-comments div { display: flex; gap: 10px; }
.nw-land-comments p { margin: 0; background: #273449; border-radius: 14px; padding: 8px 12px; font-size: 14px; }
.nw-land-blob { width: 44px; height: 44px; border-radius: 999px; flex-shrink: 0; filter: blur(4px); }
.nw-land-comments .nw-land-blob { width: 30px; height: 30px; filter: blur(3px); }
.nw-land-tone-1 { background: linear-gradient(135deg,#b45309,#7c2d12); }
.nw-land-tone-2 { background: linear-gradient(135deg,#be123c,#881337); }
.nw-land-tone-3 { background: linear-gradient(135deg,#a16207,#713f12); }
.nw-land-tone-6 { background: linear-gradient(135deg,#475569,#1e293b); }
.nw-land-tone-7 { background: linear-gradient(135deg,#0e7490,#a16207 60%,#9a3412); }
.nw-land-request { background: #1e293b; border-radius: 16px; padding: 14px 16px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.nw-land-request > span:nth-child(2) { flex: 1 1 160px; }
.nw-land-request-buttons { display: flex; gap: 8px; }
.nw-land-request-buttons .nw-land-button { padding: 8px 14px; font-size: 14px; cursor: default; }
.nw-land-features { flex: 1 1 440px; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; }
.nw-land-features li { background: #1e293b; border-radius: 16px; padding: 20px; display: flex; flex-direction: column; gap: 8px; }
.nw-land-features h3 { font-size: 18px; font-weight: 700; }
.nw-land-features p { margin: 0; color: #cbd5e1; font-size: 15px; }
.nw-land-icon { width: 42px; height: 42px; border-radius: 12px; background: rgba(239,68,68,.14); display: flex; align-items: center; justify-content: center; color: #f87171; font-size: 24px; }
.nw-land-heart { color: #ef4444; font-size: 18px; }

/* fetishes: the pitch beside the kinks, each a search of the groups */
.nw-land-kinks { background: linear-gradient(135deg, rgba(127,29,29,.55), #1e293b 65%); border: 1px solid rgba(248,113,113,.18); border-radius: 20px; padding: 36px; display: flex; flex-wrap: wrap; gap: 32px; align-items: center; }
.nw-land-kinks > div { flex: 1 1 420px; min-width: 0; }
.nw-land-kinks h2 { margin-top: 8px; }
.nw-land-kinks > div > p:last-child { margin: 12px 0 0; color: #e2e8f0; font-size: 17px; }
.nw-land-kinks ul { flex: 1 1 360px; list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.nw-land-kinks li a { display: inline-flex; align-items: center; min-height: 44px; box-sizing: border-box; padding: 0 18px; border-radius: 999px; background: rgba(15,23,42,.7); border: 1px solid rgba(248,113,113,.35); color: #fecaca !important; font-weight: 600; text-decoration: none !important; }
.nw-land-kinks li a:hover { background: rgba(239,68,68,.2); }
/* what members are here for: 3 across, 2 on tablets and phones */
.nw-land-reasons { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.nw-land-reasons li { background: #1e293b; border-radius: 16px; padding: 22px; display: flex; flex-direction: column; gap: 8px; }
.nw-land-reasons h3 { font-size: 19px; font-weight: 700; }
/* a card's icon and title on one line (the social network and "here for" cards) */
.nw-land-card-head { display: flex; align-items: center; gap: 14px; margin-bottom: 2px; }
.nw-land-card-head .nw-land-icon { flex-shrink: 0; }
.nw-land-reasons p { margin: 0; color: #cbd5e1; font-size: 15px; }
@media (max-width: 1023px) { .nw-land-reasons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nw-land-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 20px; }
.nw-land-heading p { margin: 6px 0 0; color: #94a3b8; }
.nw-land-heading > a { font-weight: 600; }
.nw-land-people-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1023px) { .nw-land-people-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.nw-land-person { position: relative; display: block; aspect-ratio: 1 / 1.3; border-radius: 14px; overflow: hidden; background: #1e293b; color: #cbd5e1 !important; text-decoration: none !important; }
.nw-land-person img { position: absolute; inset: 0; }
.nw-land-person p { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 10px 12px; font-size: 13px; color: #cbd5e1; background: linear-gradient(transparent, rgba(2,6,23,.85)); }
.nw-land-person b { color: #fff; font-size: 14px; }
.nw-land-people-join { margin: 22px 0 0; text-align: center; }

.nw-land-private { background: #111c33; border: 1px solid rgba(148,163,184,.14); border-radius: 20px; padding: 36px; display: flex; flex-wrap: wrap; gap: 36px; }
.nw-land-private > div { flex: 1 1 300px; }
.nw-land-private h2 { font-size: 28px; }
.nw-land-private > div p { margin: 10px 0 0; color: #cbd5e1; }
.nw-land-private ul { flex: 2 1 520px; list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px 28px; }
.nw-land-private li { display: flex; gap: 12px; color: #94a3b8; font-size: 15px; }
.nw-land-shield { flex-shrink: 0; margin-top: 1px; font-size: 22px; color: #22c55e; }
.nw-land-private li b { color: #fff; font-size: 16px; }

/* 8 groups: two rows of 4, four of 2 on tablets and phones (HomeController::PREVIEW_GROUPS) */
.nw-land-groups { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 1023px) { .nw-land-groups { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nw-land-group, .nw-land-story { display: flex; align-items: center; gap: 14px; background: #1e293b; border-radius: 14px; padding: 12px; color: #94a3b8 !important; font-size: 14px; text-decoration: none !important; }
.nw-land-group:hover, .nw-land-story:hover { background-color: #273449; }
.nw-land-group b, .nw-land-story b { color: #fff; font-size: 16px; }
.nw-land-group-picture { width: 56px; height: 56px; flex-shrink: 0; border-radius: 12px; overflow: hidden; }
.nw-land-half { flex: 1 1 460px; min-width: 0; }
.nw-land-stories { display: flex; flex-direction: column; gap: 10px; }
.nw-land-story { flex-direction: column; align-items: flex-start; gap: 2px; padding: 14px 16px; }
.nw-land-videos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.nw-land-video { display: block; color: #fff !important; text-decoration: none !important; }
.nw-land-video b { display: block; margin-top: 6px; font-size: 15px; font-weight: 600; }
.nw-land-video-picture { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #1e293b; }
.nw-land-video-picture small { position: absolute; right: 6px; bottom: 6px; padding: 1px 6px; border-radius: 6px; background: rgba(0,0,0,.7); color: #fff; font-size: 12px; }

.nw-land-questions { max-width: 860px; display: flex; flex-direction: column; gap: 10px; }
.nw-land-questions h2 { text-align: center; margin-bottom: 8px; }
.nw-land-questions details { background: #1e293b; border-radius: 14px; }
.nw-land-questions summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 18px 20px; color: #fff; font-size: 17px; font-weight: 600; cursor: pointer; list-style: none; }
.nw-land-questions summary::-webkit-details-marker { display: none; }
.nw-land-questions summary ion-icon { flex-shrink: 0; font-size: 20px; color: #94a3b8; transition: transform .15s; }
.nw-land-questions details[open] summary ion-icon { transform: rotate(180deg); }
.nw-land-questions details p { margin: 0; padding: 0 20px 18px; color: #cbd5e1; }

.nw-land-last { padding-top: 80px; padding-bottom: 80px; text-align: center; }
.nw-land-last h2 { font-size: 40px; font-weight: 800; letter-spacing: -1px; }
.nw-land-last p { margin: 12px auto 28px; color: #cbd5e1; font-size: 18px; }
.nw-land-footer { border-top: 1px solid rgba(148,163,184,.12); padding: 24px; text-align: center; color: #94a3b8; font-size: 14px; }
.nw-land-footer button { margin-left: 8px; background: none; border: 0; color: #94a3b8; font: inherit; text-decoration: underline; cursor: pointer; }
.nw-land-stick { display: none; }

@media (max-width: 767px) {
  .nw-land-wrap { padding-left: 16px; padding-right: 16px; }
  .nw-land-nav, .nw-land-header-end .nw-land-button { display: none; }
  .nw-land-logo img { width: 140px; }
  .nw-land-hero { padding-top: 28px; padding-bottom: 32px; gap: 22px; }
  .nw-land-pitch h1 { font-size: 38px; letter-spacing: -1px; }
  .nw-land-lead { font-size: 17px; }
  .nw-land-ticks { font-size: 15px; margin-top: 18px; }
  .nw-land-form { padding: 18px; gap: 14px; max-width: none; }
  .nw-land-chips { gap: 6px; }
  .nw-land-chip span { font-size: 14px; }
  .nw-land-numbers { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
  .nw-land-numbers p { font-size: 13px; }
  .nw-land-numbers p:first-child { font-size: 21px; }
  .nw-land-section { padding-top: 48px; }
  .nw-land-section h2 { font-size: 24px; }
  .nw-land-intro h2 { font-size: 26px; letter-spacing: -0.6px; }
  .nw-land-intro h2 span { display: inline; }
  .nw-land-post-photo { height: 200px; }
  .nw-land-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .nw-land-features li { padding: 14px; gap: 6px; }
  .nw-land-features h3 { font-size: 15px; }
  .nw-land-features p { font-size: 13px; }
  .nw-land-people-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
  .nw-land-reasons { gap: 8px; }
  .nw-land-reasons li { padding: 14px; gap: 6px; }
  .nw-land-reasons h3 { font-size: 16px; }
  .nw-land-card-head { gap: 10px; }
  .nw-land-card-head .nw-land-icon { width: 36px; height: 36px; font-size: 20px; }
  .nw-land-reasons p { font-size: 13px; }
  .nw-land-kinks { padding: 20px; gap: 18px; }
  .nw-land-kinks > div > p:last-child { font-size: 15px; }
  .nw-land-kinks ul { gap: 8px; }
  .nw-land-kinks li a { padding: 0 14px; font-size: 14px; }
  /* two groups across: the picture over the name */
  .nw-land-groups { gap: 8px; }
  .nw-land-group { flex-direction: column; align-items: stretch; gap: 8px; padding: 8px 8px 10px; font-size: 13px; }
  .nw-land-group b { font-size: 15px; }
  .nw-land-group-picture { width: 100%; height: 96px; border-radius: 10px; }
  .nw-land-person p { font-size: 12px; padding: 6px 8px; }
  .nw-land-person b { font-size: 12px; }
  .nw-land-private { padding: 20px; }
  .nw-land-last { padding-top: 48px; padding-bottom: 48px; }
  .nw-land-last h2 { font-size: 28px; }
  /* joining stays at the bottom of the screen */
  .nw-land-stick { display: flex; position: sticky; bottom: 0; align-items: center; gap: 12px; padding: 12px 16px; background: rgba(17,28,51,.96); border-top: 1px solid rgba(148,163,184,.18); font-size: 13px; color: #cbd5e1; z-index: 20; }
  .nw-land-stick span { flex: 1; }
  .nw-land-stick b { color: #fff; }
}

/* the test site's marker (partials/staging-badge, APP_ENV=staging), as nudeweb.css's, in a corner */
.nw-staging { display: inline-block; padding: .125rem .5rem; border-radius: 9999px; background-color: rgb(245 158 11); color: #111827; font-size: .75rem; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; }
.nw-land-staging { position: fixed; top: 6px; left: 6px; z-index: 50; }
