:root {
  --ink: #111125;
  --white: #fff;
  --violet: #5f4bff;
  --pink: #ff5fa7;
  --peach: #ffd2b9;
  --blue: #3488ff;
  --soft: #f6f2ff;
  --radius: 34px;
  --shadow: 0 28px 80px rgba(21, 19, 54, .18);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--white); overflow-x: hidden; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }
.site-header { position: fixed; inset: 0 0 auto 0; height: 86px; z-index: 50; display: flex; align-items: center; justify-content: space-between; padding: 18px clamp(18px, 5vw, 72px); pointer-events: none; }
.brand { display: flex; align-items: center; gap: 12px; font-weight: 800; letter-spacing: -.03em; pointer-events: auto; }
.brand img { width: 46px; height: 46px; }
.brand span { font-size: clamp(18px, 2.2vw, 28px); }
.desktop-nav { display: flex; align-items: center; gap: 20px; padding: 10px 18px; background: rgba(255,255,255,.72); border: 1px solid rgba(255,255,255,.65); border-radius: 999px; backdrop-filter: blur(16px); box-shadow: 0 10px 40px rgba(20,20,40,.08); pointer-events: auto; }
.desktop-nav a { font-size: 14px; font-weight: 700; }
.lang-link { min-width: 44px; text-align: center; color: var(--violet); }
.burger { width: 54px; height: 54px; border: 0; border-radius: 50%; background: var(--ink); display: none; place-items: center; gap: 4px; cursor: pointer; pointer-events: auto; box-shadow: var(--shadow); }
.burger span { width: 22px; height: 2px; background: white; display: block; transition: transform .25s ease, opacity .25s ease; }
.burger[aria-expanded="true"] span:nth-child(1){ transform: translateY(6px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity: 0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform: translateY(-6px) rotate(-45deg); }
.mobile-menu { position: fixed; inset: 0; z-index: 40; background: rgba(18, 18, 39, .92); color: white; display: grid; place-items: center; opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility .25s ease; backdrop-filter: blur(18px); }
.mobile-menu.is-open { opacity: 1; visibility: visible; }
.mobile-menu nav { display: grid; gap: 22px; text-align: center; font-size: clamp(34px, 9vw, 72px); font-weight: 900; letter-spacing: -.06em; }
.hero { min-height: 100svh; display: grid; grid-template-columns: 1.08fr .92fr; align-items: stretch; overflow: hidden; background: radial-gradient(circle at 18% 20%, #fff1fb, transparent 38%), radial-gradient(circle at 80% 16%, #e7e0ff, transparent 34%), #fff; }
.hero-copy { padding: 160px clamp(24px, 6vw, 94px) 80px; display: flex; flex-direction: column; justify-content: center; }
.eyebrow { font-size: clamp(24px, 4vw, 54px); font-weight: 900; letter-spacing: -.07em; margin: 0 0 28px; color: var(--violet); }
h1, h2 { margin: 0; line-height: .96; letter-spacing: -.075em; }
h1 { font-size: clamp(54px, 8.4vw, 124px); max-width: 780px; }
h2 { font-size: clamp(46px, 7vw, 98px); max-width: 950px; }
p { font-size: clamp(18px, 2.2vw, 28px); line-height: 1.18; margin: 24px 0 0; letter-spacing: -.035em; }
.cta { align-self: flex-start; margin-top: 36px; padding: 16px 25px; border-radius: 999px; background: var(--ink); color: #fff; font-weight: 800; box-shadow: var(--shadow); }
.visual { position: relative; min-height: 500px; overflow: hidden; border-bottom-left-radius: 72px; }
.visual img { width: 100%; height: 100%; object-fit: cover; }
.visual::after { content: ""; position: absolute; inset: 0; opacity: .74; mix-blend-mode: multiply; }
.overlay-violet::after { background: linear-gradient(135deg, rgba(95,75,255,.92), rgba(255,95,167,.35)); }
.overlay-pink::after { background: linear-gradient(135deg, rgba(255,95,167,.88), rgba(255,210,185,.48)); }
.overlay-blue::after { background: linear-gradient(135deg, rgba(52,136,255,.88), rgba(95,75,255,.35)); }
.section { min-height: 100svh; display: grid; grid-template-columns: .95fr 1.05fr; align-items: center; gap: clamp(26px, 5vw, 72px); padding: clamp(72px, 10vw, 128px) clamp(24px, 6vw, 94px); }
.section:nth-of-type(even) { background: var(--soft); }
.section:nth-of-type(even) .visual { order: 2; border-radius: 72px 0 0 72px; }
.section .visual { height: min(66vh, 680px); border-radius: 0 72px 72px 0; box-shadow: var(--shadow); }
.copy { position: relative; z-index: 1; }
.testimonials { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; margin-top: 34px; }
.card { padding: 20px; border-radius: 26px; background: rgba(255,255,255,.82); box-shadow: 0 18px 60px rgba(20,20,40,.08); backdrop-filter: blur(8px); }
.card-head { display: flex; gap: 12px; align-items: center; font-weight: 900; }
.card-head img { width: 48px; height: 48px; border-radius: 50%; }
.card p { font-size: 15px; line-height: 1.34; letter-spacing: -.01em; margin-top: 12px; }
.meety { display: grid; grid-template-columns: .82fr 1.18fr; gap: clamp(28px, 6vw, 78px); align-items: center; padding: clamp(80px, 10vw, 136px) clamp(24px, 6vw, 94px); background: linear-gradient(135deg, var(--violet), var(--pink)); color: white; }
.meety-visual { position: relative; display: grid; place-items: center; }
.meety-visual::before { content:""; position: absolute; width: 72%; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.22); filter: blur(4px); }
.meety-visual img { position: relative; max-height: 620px; object-fit: contain; }
.meety ul { list-style: none; padding: 0; margin: 32px 0 0; display: grid; gap: 16px; }
.meety li { font-size: clamp(22px, 3vw, 40px); line-height: 1.05; font-weight: 800; letter-spacing: -.055em; }
.memory { min-height: 82svh; display: grid; place-items: end start; padding: clamp(82px, 12vw, 160px) clamp(24px, 6vw, 94px); background-image: linear-gradient(90deg, rgba(17,17,37,.76), rgba(17,17,37,.16)), url('paris.webp'); background-size: cover; background-position: center; color: white; }
.memory div { max-width: 900px; }
.events, .newsletter { padding: clamp(62px, 8vw, 104px) clamp(24px, 6vw, 94px); display: flex; justify-content: space-between; align-items: center; gap: 26px; }
.events { background: var(--peach); }
.events h2, .newsletter h2 { font-size: clamp(38px, 5.6vw, 76px); }
.newsletter { background: var(--ink); color: white; }
.newsletter form { display: flex; gap: 12px; min-width: min(100%, 440px); }
.newsletter input { flex: 1; border: 0; border-radius: 999px; padding: 17px 20px; font-size: 16px; }
.newsletter button { border: 0; border-radius: 999px; padding: 17px 20px; font-weight: 900; background: var(--pink); color: white; cursor: pointer; }
.footer { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 34px clamp(24px, 6vw, 94px); font-weight: 800; }
.footer-links { display: flex; gap: 24px; }
@media (max-width: 920px) {
  .desktop-nav { display: none; }
  .burger { display: grid; }
  .site-header { height: 74px; padding: 14px 18px; }
  .brand span { display: none; }
  .hero, .section, .meety { grid-template-columns: 1fr; }
  .hero-copy { padding: 108px 24px 52px; min-height: 56svh; }
  .hero .visual { min-height: 42svh; border-radius: 42px 42px 0 0; }
  .section { padding: 66px 24px; }
  .section:nth-of-type(even) .visual, .section .visual { order: 0; height: 44svh; border-radius: 38px; }
  .testimonials { grid-template-columns: 1fr; }
  .meety { padding: 70px 24px; }
  .events, .newsletter { flex-direction: column; align-items: flex-start; }
  .newsletter form { flex-direction: column; width: 100%; }
  .newsletter button { width: 100%; }
  .footer { flex-direction: column; align-items: flex-start; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }
.form { display: grid; gap: 14px; min-width: min(100%, 520px); }
.inline-fields { display: flex; gap: 12px; width: 100%; }
.form input, .form textarea { width: 100%; border: 0; border-radius: 22px; padding: 17px 20px; font: inherit; font-size: 16px; background: #fff; color: var(--ink); }
.form textarea { resize: vertical; min-height: 160px; border-radius: 26px; }
.form button { border: 0; border-radius: 999px; padding: 17px 22px; font-weight: 900; background: var(--pink); color: white; cursor: pointer; }
.consent { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; line-height: 1.35; letter-spacing: 0; opacity: .88; }
.consent input { width: auto; margin-top: 2px; flex: 0 0 auto; }
.form-status { margin: 0; font-size: 14px; line-height: 1.35; letter-spacing: 0; }
.hidden-frame { display: none; }
.contact-page { min-height: 100svh; display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(26px, 5vw, 72px); align-items: center; padding: 140px clamp(24px, 6vw, 94px) 80px; background: radial-gradient(circle at 12% 20%, #fff1fb, transparent 34%), radial-gradient(circle at 86% 20%, #e7e0ff, transparent 36%), #fff; }
.contact-intro h1 { font-size: clamp(54px, 8.4vw, 116px); }
.contact-panel { border-radius: var(--radius); padding: clamp(22px, 4vw, 42px); background: rgba(255,255,255,.78); box-shadow: var(--shadow); backdrop-filter: blur(16px); }
.contact-form label:not(.consent) { display: grid; gap: 8px; font-size: 15px; font-weight: 900; }
.contact-form input, .contact-form textarea { border: 1px solid rgba(17,17,37,.1); background: rgba(255,255,255,.92); }
.form-submit { justify-self: start; }
.legal-page { display: block; min-height: 70svh; padding-top: 150px; }
@media (max-width: 920px) {
  .inline-fields { flex-direction: column; }
  .contact-page { grid-template-columns: 1fr; padding: 108px 24px 60px; }
  .contact-panel { padding: 22px; }
}
