:root{
  --deep:        #00002a;
  --deep-2:      #10104a;
  --cyan:        #22d9f2;
  --cyan-soft:   #7ee9fb;
  --blue:        #1e7bf5;
  --violet:      #3b2bea;
  --paper:       #f5f4f8;
  --ink:         #1a1a1a;

  --font: "Archivo", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto,
          "Helvetica Neue", Arial, sans-serif;

  --wrap:  30rem;
  --pad:   1.75rem;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  -webkit-text-size-adjust:100%;
  scroll-behavior:smooth;
}

body{
  margin:0;
  font-family:var(--font);
  background:var(--deep);
  color:#fff;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img,svg{ max-width:100%; }
button{ font-family:inherit; cursor:pointer; }

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

a:focus-visible,button:focus-visible,input:focus-visible{
  outline:2px solid var(--cyan);
  outline-offset:3px;
  border-radius:4px;
}

.scene{
  position:relative;
  display:flex;
  align-items:center;
  min-height:100vh;
  min-height:100svh;

  padding:clamp(2rem,6vh,3.25rem) var(--pad);
  overflow:hidden;
}

.js-fit .scene{
  height:100vh;
  height:100svh;
}

.js-fit .scene--livre{
  height:auto;
  min-height:100vh;
  min-height:100svh;
}
.js-fit .wrap{
  transform-origin:center center;
}

.scene--deep{
  background:linear-gradient(168deg,var(--deep-2) 0%,var(--deep) 46%,#000018 100%);
}
.scene--light{
  background:var(--paper);
  color:var(--ink);
}

.wrap{
  position:relative;
  z-index:2;
  width:100%;
  max-width:var(--wrap);
  margin:0 auto;
  text-align:center;
}

.fx{
  position:absolute;
  inset:0;
  z-index:0;
  overflow:hidden;
  pointer-events:none;
      background: #00002a;
}

.fx__blob{
  position:absolute;
  display:block;
  border-radius:50%;
  will-change:transform;
}
.fx__blob--1{
  width:105vmax; height:105vmax;
  top:-42vmax; left:-38vmax;
  background:radial-gradient(circle at 50% 50%,
             rgba(34,217,242,.34) 0%,rgba(34,217,242,.13) 38%,rgba(34,217,242,0) 66%);
  animation:drift-1 27s ease-in-out infinite alternate;
}
.fx__blob--2{
  width:92vmax; height:92vmax;
  bottom:-40vmax; right:-34vmax;
  background:radial-gradient(circle at 50% 50%,
             rgba(124,92,255,.40) 0%,rgba(124,92,255,.15) 40%,rgba(124,92,255,0) 68%);
  animation:drift-2 34s ease-in-out infinite alternate;
}
.fx__blob--3{
  width:70vmax; height:70vmax;
  top:22%; right:-26vmax;
  background:radial-gradient(circle at 50% 50%,
             rgba(63,107,255,.34) 0%,rgba(63,107,255,.12) 42%,rgba(63,107,255,0) 70%);
  animation:drift-3 21s ease-in-out infinite alternate;
}

@keyframes drift-1{
  from{ transform:translate3d(0,0,0)          scale(1);    }
  to  { transform:translate3d(14vmax,9vmax,0) scale(1.16); }
}
@keyframes drift-2{
  from{ transform:translate3d(0,0,0)            scale(1.1); }
  to  { transform:translate3d(-13vmax,-8vmax,0) scale(.92); }
}
@keyframes drift-3{
  from{ transform:translate3d(0,0,0)           scale(.95); }
  to  { transform:translate3d(-9vmax,12vmax,0) scale(1.2); }
}

.fx__grid{
  position:absolute;
  top:-20%; left:-20%;
  width:140%; height:140%;
  background-image:
    linear-gradient(rgba(255,255,255,.13) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.13) 1px,transparent 1px);
  background-size:58px 58px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 42%,#000 12%,transparent 68%);
          mask-image:radial-gradient(ellipse at 50% 42%,#000 12%,transparent 68%);
  will-change:transform;
  animation:grid-drift 34s linear infinite;
}
@keyframes grid-drift{
  from{ transform:translate3d(0,0,0);       }
  to  { transform:translate3d(58px,58px,0); }
}

.fx__sweep{
  position:absolute;
  top:-15%; bottom:-15%;
  left:0;
  width:38%;
  background:linear-gradient(102deg,
             rgba(255,255,255,0) 0%,
             rgba(190,240,255,.075) 46%,
             rgba(255,255,255,0) 100%);
  will-change:transform;
  animation:sweep 17s ease-in-out infinite;
}
@keyframes sweep{
  0%       { transform:translate3d(-140%,0,0); }
  62%,100% { transform:translate3d(330%,0,0);  }
}

.fx::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.05;
  mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

.rule{
  border:0;
  height:1px;
  background:rgba(255,255,255,.22);
  margin:clamp(1.1rem,3.2vh,2.5rem) 0;
}

.grid-bg{
  position:absolute; inset:0;
  background-image:
    linear-gradient(rgba(255,255,255,.16) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.16) 1px,transparent 1px);
  background-size:26px 26px;
  -webkit-mask-image:radial-gradient(ellipse at center,#000 42%,transparent 76%);
          mask-image:radial-gradient(ellipse at center,#000 42%,transparent 76%);
  pointer-events:none;
}
.grid-bg--light{
  background-image:
    linear-gradient(rgba(30,123,245,.30) 1px,transparent 1px),
    linear-gradient(90deg,rgba(30,123,245,.30) 1px,transparent 1px);
  background-size:30px 30px;
}

.hero__title{
  font-size:clamp(2rem,10.4vw,3.9rem);
  font-weight:900;
  letter-spacing:-.02em;
  line-height:.98;
  margin:0;
  white-space:nowrap;
}
.hero__kicker{
  margin:.85rem 0 0;
  font-size:clamp(1rem,4.4vw,1.35rem);
  font-weight:700;
  letter-spacing:.06em;
  color:var(--cyan);
}

.hero__mark{
  position:relative;
  margin:clamp(1rem,3.5vh,2.75rem) auto 0;
  padding:clamp(.5rem,1.5vh,1.25rem) 0;

  max-width:min(24rem,31vh);
}

.hero__mark::after{
  content:"";
  position:absolute;
  left:50%; top:50%;
  width:82%; height:82%;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:radial-gradient(circle,
             rgba(126,233,251,.30) 0%,rgba(126,233,251,.10) 42%,rgba(126,233,251,0) 68%);
  pointer-events:none;
  will-change:transform,opacity;
  animation:breathe 7s ease-in-out infinite;
}
@keyframes breathe{
  0%,100%{ opacity:.5; transform:translate(-50%,-50%) scale(1);    }
  50%    { opacity:1;  transform:translate(-50%,-50%) scale(1.14); }
}

.hero__logo{
  position:relative;
  z-index:1;
  display:block;
  width:100%; height:auto;
}

.hero__lead{
  margin:clamp(1.1rem,3.2vh,2.5rem) 0 0;
  font-size:clamp(1.35rem,5.6vw,1.75rem);
  font-weight:400;
  color:rgba(255,255,255,.96);
}

.hero__date{
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:left;
}
.hero__day{
  font-size:clamp(3.4rem,min(20vw,10vh),6.5rem);
  font-weight:800;
  line-height:.86;
  letter-spacing:-.04em;
  color:var(--cyan-soft);
  margin-right:1rem;
}
.hero__month{
  font-size:clamp(1.05rem,min(5vw,2.6vh),1.55rem);
  font-weight:400;
  line-height:1.24;
  color:var(--cyan);
}

.hero__mail{
  margin:clamp(1.4rem,3.4vh,2rem) 0 0;
  line-height:1.3;
}

.hero__mail-eyebrow{
  display:block;
  margin-bottom:.45rem;
  font-size:.6875rem;
  font-weight:700;
  letter-spacing:.24em;
  color:var(--cyan);
  opacity:.85;
}
.hero__mail a{
  display:inline-block;
  padding-bottom:2px;
  border-bottom:1px solid rgba(126,233,251,.4);
  color:#fff;
  font-size:clamp(.9375rem,3.8vw,1.0625rem);
  font-weight:500;
  text-decoration:none;
  transition:color .2s ease,border-color .2s ease;
}
.hero__mail a:hover{
  color:var(--cyan-soft);
  border-bottom-color:var(--cyan);
}

.hero__note{
  margin:clamp(1.4rem,4.5vh,3rem) 0 0;
  font-size:.6875rem;
  font-weight:600;
  line-height:1.7;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:rgba(255,255,255,.42);
}

.cta-frame{
  --tick:1px;
  --tick-len:clamp(15px,4.5vw,24px);
  --tick-color:rgba(126,233,251,.65);
  position:relative;
  padding:clamp(1.15rem,3.2vh,1.6rem) clamp(1rem,4vw,1.5rem);
  margin-top:.5rem;
  background:
    linear-gradient(var(--tick-color),var(--tick-color)) 0    0    /var(--tick-len) var(--tick)     no-repeat,
    linear-gradient(var(--tick-color),var(--tick-color)) 0    0    /var(--tick)     var(--tick-len) no-repeat,
    linear-gradient(var(--tick-color),var(--tick-color)) 100% 0    /var(--tick-len) var(--tick)     no-repeat,
    linear-gradient(var(--tick-color),var(--tick-color)) 100% 0    /var(--tick)     var(--tick-len) no-repeat,
    linear-gradient(var(--tick-color),var(--tick-color)) 0    100% /var(--tick-len) var(--tick)     no-repeat,
    linear-gradient(var(--tick-color),var(--tick-color)) 0    100% /var(--tick)     var(--tick-len) no-repeat,
    linear-gradient(var(--tick-color),var(--tick-color)) 100% 100% /var(--tick-len) var(--tick)     no-repeat,
    linear-gradient(var(--tick-color),var(--tick-color)) 100% 100% /var(--tick)     var(--tick-len) no-repeat;
}

.cta-frame__label{
  margin:0;
  font-size:clamp(.8125rem,3.3vw,.9375rem);
  font-weight:600;
  letter-spacing:.11em;
  line-height:1.6;
  color:rgba(255,255,255,.72);
}

.btn-pass{
  position:relative;
  overflow:hidden;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:min(20rem,100%);
  margin-top:clamp(.9rem,2.4vh,1.25rem);
  padding:1.05rem 1.75rem;
  border:1px solid rgba(140,240,255,.9);
  border-radius:999px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.22) 0%,rgba(255,255,255,0) 46%),
    linear-gradient(180deg,#4472ff 0%,#2a45e0 55%,#1c2fc4 100%);
  color:#fff;
  font-size:clamp(1rem,4vw,1.2rem);
  font-weight:800;
  letter-spacing:.075em;
  box-shadow:
    0 0 0 1px rgba(34,217,242,.28),
    0 8px 26px -8px rgba(34,217,242,.85),
    inset 0 1px 0 rgba(255,255,255,.5);
  transition:transform .2s ease,box-shadow .2s ease;
}
.btn-pass > *{ position:relative; z-index:1; }

.btn-pass::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(105deg,
             transparent 32%,rgba(255,255,255,.30) 50%,transparent 68%);
  transform:translateX(-130%);
  transition:transform .75s ease;
}
.btn-pass:hover{
  transform:translateY(-2px);
  box-shadow:
    0 0 0 1px rgba(34,217,242,.45),
    0 12px 34px -8px rgba(34,217,242,1),
    inset 0 1px 0 rgba(255,255,255,.6);
}
.btn-pass:hover::after{ transform:translateX(130%); }
.btn-pass:active{ transform:translateY(0); }
.btn-pass[hidden]{ display:none; }

.btn-pass__arrow{
  width:.4375rem; height:.5625rem;
  margin-left:.85rem;
  flex:0 0 auto;
  opacity:.9;
}

.sec-title{
  font-size:clamp(2.4rem,10.5vw,3.5rem);
  font-weight:900;
  letter-spacing:-.02em;
  line-height:1;
  margin:0;
}
.sec-title em{ font-style:normal; color:var(--cyan); }

.avatar{ margin:2.5rem auto 0; }
.avatar__btn{
  position:relative;
  display:block;
  width:min(19rem,72vw);
  height:min(19rem,72vw);
  margin:0 auto;
  padding:0;
  border:7px solid var(--cyan);
  border-radius:50%;
  background:#fff;
  overflow:hidden;
  box-shadow:0 0 42px rgba(34,217,242,.6);
  transition:box-shadow .2s ease;
}
.avatar__btn:hover{ box-shadow:0 0 58px rgba(34,217,242,.85); }

.avatar__name{
  margin:1rem 0 0;
  font-size:clamp(1.1rem,4.5vw,1.4rem);
  font-weight:700;
  color:#fff;
}
.avatar__img{
  width:100%; height:100%;
  object-fit:cover;
  display:block;
}
.avatar__empty{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  height:100%;
  color:#5b62d8;
}
.avatar__hint{
  margin-top:.6rem;
  font-size:.75rem;
  font-weight:700;
  letter-spacing:.09em;
  line-height:1.35;
}
.avatar__img[hidden],.avatar__empty[hidden],.avatar__change[hidden],.avatar__status[hidden]{ display:none; }

.avatar__status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  margin:1.1rem 0 0;
  font-size:.9375rem;
  font-weight:600;
  letter-spacing:.02em;
  color:var(--cyan-soft);
}
.avatar__status svg{ flex:0 0 auto; }

.avatar__change{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:.9rem auto 0;
  padding:.55rem 1.1rem;
  border:1px solid rgba(126,233,251,.45);
  border-radius:999px;
  background:none;
  color:var(--cyan-soft);
  font-size:.875rem;
  font-weight:600;
  letter-spacing:.04em;
  text-decoration:none;
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.avatar__change:hover{
  border-color:var(--cyan);
  background:rgba(34,217,242,.13);
  color:#fff;
}

.guest{ display:block; margin-top:1.6rem; }
.guest__input{
  width:100%;
  padding:.5rem .25rem;
  border:0;
  border-bottom:1px solid transparent;
  background:none;
  color:#fff;
  font-family:inherit;
  font-size:clamp(1.35rem,5.6vw,1.75rem);
  font-weight:400;
  text-align:center;
  transition:border-color .2s ease;
}
.guest__input::placeholder{ color:rgba(255,255,255,.72); }
.guest__input:hover{ border-bottom-color:rgba(126,233,251,.4); }
.guest__input:focus{
  outline:none;
  border-bottom-color:var(--cyan);
}

.weblink{
  display:flex;
  align-items:center;
  justify-content:center;
  margin:3.5rem 0 0;
}
.weblink__globe{
  flex:0 0 auto;
  margin-right:.55rem;
  color:var(--cyan);
}
.weblink__box{
  flex:1 1 auto;
  padding:.7rem .8rem;
  border:1px solid rgba(126,233,251,.6);
  font-size:clamp(.875rem,3.7vw,1.0625rem);
  color:var(--cyan-soft);
  word-break:break-all;
}

.qr-frame{
  position:relative;
  margin-top:2.75rem;
  padding:1.5rem 1rem 1.25rem;
  border:1px solid rgba(126,233,251,.55);
}
.qr-frame__label,.qr-frame__foot{
  margin:0;
  font-size:clamp(.9375rem,3.9vw,1.125rem);
  font-weight:500;
  letter-spacing:.05em;
  color:#fff;
}
.qr-frame__foot{ margin-top:1.1rem; }

.qr-code{
  margin:.5rem 0 1.25rem;
  font-size:clamp(1.5rem,7vw,2.1rem);
  font-weight:700;
  letter-spacing:.02em;
  color:var(--cyan);
  word-break:break-word;
}

.qr-stage{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:16rem;
}

.btn-generate{
  padding:.95rem 1.9rem;
  border:2px solid var(--cyan);
  border-radius:999px;
  background:rgba(255,255,255,.06);
  color:#fff;
  font-size:1.0625rem;
  font-weight:800;
  letter-spacing:.05em;
  box-shadow:0 0 18px rgba(34,217,242,.35);
  transition:background .18s ease,box-shadow .18s ease,transform .18s ease;
}
.btn-generate:hover{
  background:rgba(34,217,242,.18);
  box-shadow:0 0 30px rgba(34,217,242,.6);
  transform:translateY(-2px);
}
.btn-generate[disabled]{
  opacity:.5;
  cursor:not-allowed;
  transform:none;
  box-shadow:none;
}

.qr-box{
  padding:.9rem;
  background:#fff;
  border-radius:12px;
  box-shadow:0 0 30px rgba(34,217,242,.55);
  animation:pop .32s ease both;
}
.qr-box img,.qr-box canvas{
  display:block;
  width:min(13.5rem,52vw);
  height:auto;
  image-rendering:pixelated;
}
@keyframes pop{
  from{ opacity:0; transform:scale(.9); }
  to{   opacity:1; transform:scale(1);  }
}

.info__title{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
  text-align:left;
  margin:0 0 clamp(1.1rem,3.4vh,2.75rem);
  font-size:clamp(2.1rem,9.4vw,3rem);
  font-weight:900;
  line-height:1;
  letter-spacing:-.02em;
  color:var(--violet);
}
.info__lock{
  flex:0 0 auto;
  width:clamp(2.1rem,9vw,2.8rem);
  height:auto;
  margin-right:.6rem;
  color:var(--violet);
}
.info__title em{ font-style:normal; color:var(--blue); }

.info-list{
  list-style:none;
  margin:0;
  padding:0;
  text-align:left;
}

.info-item{
  display:flex;
  align-items:flex-start;
  padding:clamp(.42rem,1.7vh,1.4rem) 0;
  border-top:1px solid rgba(59,43,234,.16);
}
.info-item:first-child{ border-top:0; padding-top:0; }

.info-item__ic{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  width:clamp(2.5rem,6.5vh,3.25rem);
  height:clamp(2.5rem,6.5vh,3.25rem);
  margin-right:.9rem;
  border-radius:50%;
  background:var(--violet);
  color:#fff;
}
.info-item__ic svg{ width:56%; height:56%; }

.info-item__body{ flex:1 1 auto; min-width:0; padding-top:.15rem; }
.info-item__kicker{
  margin:0;
  font-size:1.0625rem;
  font-weight:500;
  letter-spacing:.02em;
  color:var(--blue);
}
.info-item__strong{
  margin:.2rem 0 0;
  font-size:1.125rem;
  font-weight:700;
  line-height:1.3;
  color:var(--violet);
}
.info-item__text{
  margin:.2rem 0 0;
  font-size:1.0625rem;
  font-weight:400;
  line-height:1.4;
  color:#2b2b2b;
}
.info-item__link{
  display:inline-block;
  margin-top:.5rem;
  font-size:.9375rem;
  font-weight:600;
  color:var(--blue);
  text-decoration:none;
}
.info-item__link:hover{ text-decoration:underline; }

.scene--agenda{ padding-left:0; }
.agenda__spine{
  position:absolute;
  left:0; top:0; bottom:0;
  width:clamp(1.75rem,7vw,3rem);
  background:linear-gradient(180deg,#4a37f2 0%,var(--violet) 55%,#2f21c4 100%);
}
.wrap--agenda{
  margin-left:0;
  padding-left:calc(clamp(1.75rem,7vw,3rem) + 1.25rem);
  text-align:left;
}

.agenda__title{
  margin:0;
  font-size:clamp(2.1rem,9.4vw,3rem);
  font-weight:900;
  line-height:1;
  letter-spacing:-.02em;
  color:var(--violet);
}
.agenda__title em{ font-style:normal; color:var(--blue); }

.agenda__chip{
  display:inline-block;
  margin:clamp(.8rem,2.4vh,1.25rem) 0 0;
  padding:.6rem 1rem;
  border:1px solid var(--violet);
  font-size:clamp(.875rem,3.7vw,1.0625rem);
  font-weight:500;
  letter-spacing:.03em;
  color:var(--violet);
}

.timeline{
  list-style:none;
  margin:clamp(1.25rem,3.6vh,2.75rem) 0 0;
  padding:0;
}
.tl{
  position:relative;
  padding-left:3rem;
  padding-bottom:clamp(1.1rem,3.4vh,2.75rem);
}
.tl:last-child{ padding-bottom:0; }

.tl__dot{
  position:absolute;
  left:0; top:.35rem;
  width:1.35rem; height:1.35rem;
  border:3px solid var(--violet);
  border-radius:50%;
  background:var(--paper);
}
.tl__dot::before{
  content:"";
  position:absolute;
  top:50%;
  right:100%;
  width:2.5rem;
  height:3px;
  margin-top:-1.5px;
  background:var(--violet);
}
.tl__time{
  margin:0;
  font-size:clamp(1.35rem,5.6vw,1.7rem);
  font-weight:400;
  line-height:1.15;
  color:var(--blue);
}
.tl__what{
  margin:.1rem 0 0;
  font-size:clamp(1.35rem,5.6vw,1.7rem);
  font-weight:700;
  line-height:1.15;
  color:var(--violet);
}

.scene--count{ padding-bottom:4rem; }

.count__title{
  margin:0;
  font-size:clamp(2.4rem,10.5vw,3.4rem);
  font-weight:900;
  letter-spacing:-.01em;
  color:var(--violet);
}

.count__dial{
  position:relative;
  width:min(21rem,78vw,34vh);
  height:min(21rem,78vw,34vh);
  margin:clamp(1.1rem,3.4vh,2.75rem) auto 0;
}
.count__ringsvg{
  position:absolute;
  inset:0;
  width:100%; height:100%;
}
.count__ring{
  position:absolute;
  inset:8%;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
}
.count__num{
  font-size:clamp(3.75rem,19vw,5.75rem);
  font-weight:800;
  line-height:.9;
  letter-spacing:-.03em;
  color:var(--violet);
}
.count__unit{
  margin-top:.35rem;
  font-size:clamp(1.35rem,5.8vw,1.8rem);
  font-weight:800;
  letter-spacing:.04em;
  color:var(--blue);
}

.count__arc{
  transform:rotate(-90deg);
  transform-origin:50% 50%;
  transition:stroke-dashoffset .9s linear;
}

.count__clock{
  display:flex;
  align-items:stretch;
  justify-content:center;
  margin:clamp(1rem,2.6vh,1.6rem) 0 0;
}
.tick{
  display:flex;
  flex-direction:column;
  align-items:center;
  min-width:4.25rem;
  padding:0 clamp(.5rem,2.5vw,.9rem);
}
.tick + .tick{ border-left:1px solid rgba(59,43,234,.16); }

.tick__n{
  font-size:clamp(1.3rem,5.6vw,1.6rem);
  font-weight:800;
  line-height:1;
  letter-spacing:.01em;
  font-variant-numeric:tabular-nums;
  color:var(--violet);
}
.tick__u{
  margin-top:.35rem;
  font-size:.625rem;
  font-style:normal;
  font-weight:700;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#7a80d9;
}

.count__lead{
  margin:clamp(1rem,3vh,2rem) 0 0;
  font-size:clamp(1.35rem,5.6vw,1.7rem);
  font-weight:700;
  line-height:1.32;
  color:var(--violet);
}

.wave{
  position:relative;
  overflow:hidden;
  width:100%;
  margin:clamp(1.1rem,3.6vh,3rem) auto 0;

  -webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);
}
.wave__track{
  display:flex;
  width:200%;
  will-change:transform;
  animation:wave-run 22s linear infinite;
}
.wave__img{
  width:50%;
  height:auto;
  flex:0 0 50%;
}
@keyframes wave-run{
  from{ transform:translate3d(0,0,0);    }
  to  { transform:translate3d(-50%,0,0); }
}

.rsvp__lead{
  margin:clamp(.9rem,2.6vh,1.6rem) 0 0;
  font-size:clamp(1.2rem,5vw,1.5rem);
  font-weight:400;
  line-height:1.4;
  color:rgba(255,255,255,.94);
}

.cta-frame--rsvp{ margin-top:clamp(1.4rem,4vh,3rem); }

.btn-pass--wide{
  width:min(22rem,100%);
  padding-left:1.15rem;
  padding-right:1.15rem;
  font-size:clamp(.9375rem,3.8vw,1.15rem);
  letter-spacing:.06em;
  white-space:nowrap;
}

.rsvp__note{
  margin:clamp(1.6rem,5vh,3.75rem) 0 0;
  font-size:1rem;
  line-height:1.5;
  color:rgba(255,255,255,.78);
}

.rsvp__note + .rsvp__note{ margin-top:.35rem; }
.rsvp__lead--note{ margin-top:clamp(1.8rem,6vh,3.5rem); }
.rsvp__note a{ color:var(--cyan-soft); text-decoration:underline; }
.rsvp__note a:hover{ color:var(--cyan); }

.rsvp__seal{
  display:flex;
  align-items:center;
  justify-content:center;
  width:6.5rem;
  height:6.5rem;
  margin:0 auto clamp(1rem,3vh,2rem);
  border:3px solid var(--cyan);
  border-radius:50%;
  color:var(--cyan);
  box-shadow:0 0 34px rgba(34,217,242,.5);
  animation:seal-in .45s cubic-bezier(.2,.9,.3,1.3) both;
}
.rsvp__seal svg{ width:3.25rem; height:3.25rem; }

.rsvp__tick{
  stroke-dasharray:72;
  stroke-dashoffset:72;
  animation:tick .5s ease-out .25s forwards;
}
@keyframes seal-in{
  from{ opacity:0; transform:scale(.5); }
  to  { opacity:1; transform:scale(1);  }
}
@keyframes tick{ to{ stroke-dashoffset:0; } }

.rsvp__next{
  margin-top:clamp(1.4rem,4vh,3rem);
  padding:1.5rem 1.25rem;
  border:1px solid rgba(126,233,251,.55);
}
.rsvp__next-label{
  margin:0;
  font-size:.9375rem;
  font-weight:700;
  letter-spacing:.09em;
  color:var(--cyan);
}
.rsvp__next-text{
  margin:.6rem 0 0;
  font-size:1.0625rem;
  line-height:1.5;
  color:rgba(255,255,255,.94);
}
.rsvp__next-text strong{ font-weight:700; color:#fff; }

.cal{ margin-top:clamp(1.5rem,4vh,2.25rem); }
.cal__label{
  margin:0 0 .85rem;
  font-size:.6875rem;
  font-weight:700;
  letter-spacing:.22em;
  color:rgba(255,255,255,.55);
}
.cal__links{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  margin:0;
}
.cal__btn{
  display:inline-flex;
  align-items:center;
  margin:.3rem;
  padding:.62rem 1.05rem;
  border:1px solid rgba(126,233,251,.45);
  border-radius:999px;
  color:var(--cyan-soft);
  font-size:.9375rem;
  font-weight:600;
  letter-spacing:.02em;
  text-decoration:none;
  white-space:nowrap;
  transition:border-color .2s ease,background .2s ease,color .2s ease;
}
.cal__btn svg{
  width:1.05rem;
  height:1.05rem;
  margin-right:.45rem;
  flex:0 0 auto;
  opacity:.85;
}
.cal__btn:hover{
  border-color:var(--cyan);
  background:rgba(34,217,242,.13);
  color:#fff;
}

.rsvp__error{
  margin:2.5rem 0 0;
  padding:.9rem 1rem;
  border:1px solid rgba(255,155,155,.6);
  background:rgba(255,80,80,.12);
  font-size:1rem;
  line-height:1.45;
  color:#ffd8d8;
}

.pass[hidden]{ display:none; }
.pass{ animation:fadeUp .5s ease both; }
@keyframes fadeUp{
  from{ opacity:0; transform:translateY(18px); }
  to{   opacity:1; transform:none; }
}

@media (min-width:48rem){
  .scene{
    padding-top:clamp(2.5rem,5vh,4rem);
    padding-bottom:clamp(2.5rem,5vh,4rem);
  }
  .scene--agenda{ padding-left:0; }

  .wrap--agenda{
    max-width:34rem;
    margin:0 auto;
    padding-left:5.25rem;
  }
  .agenda__spine{
    left:calc(50% - 17rem);
    width:4rem;
  }
  .tl__dot::before{ width:3.5rem; }
}

@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

@media print{
  body{ background:#fff; color:#000; }
  .scene{ padding:1.5rem; background:#fff !important; color:#000 !important; }
  .btn-pass,.btn-generate,.avatar__change,.info-item__link{ display:none !important; }
  .pass[hidden]{ display:block !important; }
  .sec-title,.qr-code,.guest__input{ color:#000 !important; }
}

@media (max-height:900px){
  .info-item__kicker{ font-size:.9375rem; }
  .info-item__strong{ font-size:1rem;     }
  .info-item__text  { font-size:.9375rem; line-height:1.35; }
  .info-item__link  { margin-top:.25rem;  }
  .hero__lead       { font-size:1.2rem;   }

  .hero__mark       { max-width:min(24rem,26vh); }
  .rule             { margin:clamp(.85rem,2.3vh,2rem) 0; }
}

@media (max-height:700px){
  .info-item__ic     { width:2.3rem; height:2.3rem; margin-right:.7rem; }
  .info-item__kicker { font-size:.875rem;  }
  .info-item__strong { font-size:.9375rem; }
  .info-item__text   { font-size:.875rem;  }
  .info__title       { font-size:1.85rem;  }
  .hero__kicker      { margin-top:.45rem;  }
}
