/*
  Josh's Custom CSS Reset
  https://www.joshwcomeau.com/css/custom-css-reset/
*/
*,
*::before,
*::after {
  box-sizing: border-box;
}

* {
  margin: 0;
}

body {
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
}

input,
button,
textarea,
select {
  font: inherit;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word;
}

p {
  text-wrap: pretty;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  text-wrap: balance;
}

#root,
#__next {
  isolation: isolate;
}

.m-1 {
  margin: 2px;
}

.p-1 {
  padding: 2px;
}

.mt-1 {
  margin-top: 2px;
}

.pt-1 {
  padding-top: 2px;
}

.mr-1 {
  margin-right: 2px;
}

.pr-1 {
  padding-right: 2px;
}

.mb-1 {
  margin-bottom: 2px;
}

.pb-1 {
  padding-bottom: 2px;
}

.ml-1 {
  margin-left: 2px;
}

.pl-1 {
  padding-left: 2px;
}

.mx-1 {
  margin-inline: 2px;
}

.px-1 {
  padding-inline: 2px;
}

.my-1 {
  margin-block: 2px;
}

.py-1 {
  padding-block: 2px;
}

.m-2 {
  margin: 4px;
}

.p-2 {
  padding: 4px;
}

.mt-2 {
  margin-top: 4px;
}

.pt-2 {
  padding-top: 4px;
}

.mr-2 {
  margin-right: 4px;
}

.pr-2 {
  padding-right: 4px;
}

.mb-2 {
  margin-bottom: 4px;
}

.pb-2 {
  padding-bottom: 4px;
}

.ml-2 {
  margin-left: 4px;
}

.pl-2 {
  padding-left: 4px;
}

.mx-2 {
  margin-inline: 4px;
}

.px-2 {
  padding-inline: 4px;
}

.my-2 {
  margin-block: 4px;
}

.py-2 {
  padding-block: 4px;
}

.m-3 {
  margin: 6px;
}

.p-3 {
  padding: 6px;
}

.mt-3 {
  margin-top: 6px;
}

.pt-3 {
  padding-top: 6px;
}

.mr-3 {
  margin-right: 6px;
}

.pr-3 {
  padding-right: 6px;
}

.mb-3 {
  margin-bottom: 6px;
}

.pb-3 {
  padding-bottom: 6px;
}

.ml-3 {
  margin-left: 6px;
}

.pl-3 {
  padding-left: 6px;
}

.mx-3 {
  margin-inline: 6px;
}

.px-3 {
  padding-inline: 6px;
}

.my-3 {
  margin-block: 6px;
}

.py-3 {
  padding-block: 6px;
}

.m-4 {
  margin: 8px;
}

.p-4 {
  padding: 8px;
}

.mt-4 {
  margin-top: 8px;
}

.pt-4 {
  padding-top: 8px;
}

.mr-4 {
  margin-right: 8px;
}

.pr-4 {
  padding-right: 8px;
}

.mb-4 {
  margin-bottom: 8px;
}

.pb-4 {
  padding-bottom: 8px;
}

.ml-4 {
  margin-left: 8px;
}

.pl-4 {
  padding-left: 8px;
}

.mx-4 {
  margin-inline: 8px;
}

.px-4 {
  padding-inline: 8px;
}

.my-4 {
  margin-block: 8px;
}

.py-4 {
  padding-block: 8px;
}

.m-5 {
  margin: 12px;
}

.p-5 {
  padding: 12px;
}

.mt-5 {
  margin-top: 12px;
}

.pt-5 {
  padding-top: 12px;
}

.mr-5 {
  margin-right: 12px;
}

.pr-5 {
  padding-right: 12px;
}

.mb-5 {
  margin-bottom: 12px;
}

.pb-5 {
  padding-bottom: 12px;
}

.ml-5 {
  margin-left: 12px;
}

.pl-5 {
  padding-left: 12px;
}

.mx-5 {
  margin-inline: 12px;
}

.px-5 {
  padding-inline: 12px;
}

.my-5 {
  margin-block: 12px;
}

.py-5 {
  padding-block: 12px;
}

.m-6 {
  margin: 16px;
}

.p-6 {
  padding: 16px;
}

.mt-6 {
  margin-top: 16px;
}

.pt-6 {
  padding-top: 16px;
}

.mr-6 {
  margin-right: 16px;
}

.pr-6 {
  padding-right: 16px;
}

.mb-6 {
  margin-bottom: 16px;
}

.pb-6 {
  padding-bottom: 16px;
}

.ml-6 {
  margin-left: 16px;
}

.pl-6 {
  padding-left: 16px;
}

.mx-6 {
  margin-inline: 16px;
}

.px-6 {
  padding-inline: 16px;
}

.my-6 {
  margin-block: 16px;
}

.py-6 {
  padding-block: 16px;
}

.m-7 {
  margin: 20px;
}

.p-7 {
  padding: 20px;
}

.mt-7 {
  margin-top: 20px;
}

.pt-7 {
  padding-top: 20px;
}

.mr-7 {
  margin-right: 20px;
}

.pr-7 {
  padding-right: 20px;
}

.mb-7 {
  margin-bottom: 20px;
}

.pb-7 {
  padding-bottom: 20px;
}

.ml-7 {
  margin-left: 20px;
}

.pl-7 {
  padding-left: 20px;
}

.mx-7 {
  margin-inline: 20px;
}

.px-7 {
  padding-inline: 20px;
}

.my-7 {
  margin-block: 20px;
}

.py-7 {
  padding-block: 20px;
}

.m-8 {
  margin: 24px;
}

.p-8 {
  padding: 24px;
}

.mt-8 {
  margin-top: 24px;
}

.pt-8 {
  padding-top: 24px;
}

.mr-8 {
  margin-right: 24px;
}

.pr-8 {
  padding-right: 24px;
}

.mb-8 {
  margin-bottom: 24px;
}

.pb-8 {
  padding-bottom: 24px;
}

.ml-8 {
  margin-left: 24px;
}

.pl-8 {
  padding-left: 24px;
}

.mx-8 {
  margin-inline: 24px;
}

.px-8 {
  padding-inline: 24px;
}

.my-8 {
  margin-block: 24px;
}

.py-8 {
  padding-block: 24px;
}

.m-9 {
  margin: 32px;
}

.p-9 {
  padding: 32px;
}

.mt-9 {
  margin-top: 32px;
}

.pt-9 {
  padding-top: 32px;
}

.mr-9 {
  margin-right: 32px;
}

.pr-9 {
  padding-right: 32px;
}

.mb-9 {
  margin-bottom: 32px;
}

.pb-9 {
  padding-bottom: 32px;
}

.ml-9 {
  margin-left: 32px;
}

.pl-9 {
  padding-left: 32px;
}

.mx-9 {
  margin-inline: 32px;
}

.px-9 {
  padding-inline: 32px;
}

.my-9 {
  margin-block: 32px;
}

.py-9 {
  padding-block: 32px;
}

.m-10 {
  margin: 40px;
}

.p-10 {
  padding: 40px;
}

.mt-10 {
  margin-top: 40px;
}

.pt-10 {
  padding-top: 40px;
}

.mr-10 {
  margin-right: 40px;
}

.pr-10 {
  padding-right: 40px;
}

.mb-10 {
  margin-bottom: 40px;
}

.pb-10 {
  padding-bottom: 40px;
}

.ml-10 {
  margin-left: 40px;
}

.pl-10 {
  padding-left: 40px;
}

.mx-10 {
  margin-inline: 40px;
}

.px-10 {
  padding-inline: 40px;
}

.my-10 {
  margin-block: 40px;
}

.py-10 {
  padding-block: 40px;
}

.m-11 {
  margin: 48px;
}

.p-11 {
  padding: 48px;
}

.mt-11 {
  margin-top: 48px;
}

.pt-11 {
  padding-top: 48px;
}

.mr-11 {
  margin-right: 48px;
}

.pr-11 {
  padding-right: 48px;
}

.mb-11 {
  margin-bottom: 48px;
}

.pb-11 {
  padding-bottom: 48px;
}

.ml-11 {
  margin-left: 48px;
}

.pl-11 {
  padding-left: 48px;
}

.mx-11 {
  margin-inline: 48px;
}

.px-11 {
  padding-inline: 48px;
}

.my-11 {
  margin-block: 48px;
}

.py-11 {
  padding-block: 48px;
}

.m-12 {
  margin: 64px;
}

.p-12 {
  padding: 64px;
}

.mt-12 {
  margin-top: 64px;
}

.pt-12 {
  padding-top: 64px;
}

.mr-12 {
  margin-right: 64px;
}

.pr-12 {
  padding-right: 64px;
}

.mb-12 {
  margin-bottom: 64px;
}

.pb-12 {
  padding-bottom: 64px;
}

.ml-12 {
  margin-left: 64px;
}

.pl-12 {
  padding-left: 64px;
}

.mx-12 {
  margin-inline: 64px;
}

.px-12 {
  padding-inline: 64px;
}

.my-12 {
  margin-block: 64px;
}

.py-12 {
  padding-block: 64px;
}

.m-13 {
  margin: 80px;
}

.p-13 {
  padding: 80px;
}

.mt-13 {
  margin-top: 80px;
}

.pt-13 {
  padding-top: 80px;
}

.mr-13 {
  margin-right: 80px;
}

.pr-13 {
  padding-right: 80px;
}

.mb-13 {
  margin-bottom: 80px;
}

.pb-13 {
  padding-bottom: 80px;
}

.ml-13 {
  margin-left: 80px;
}

.pl-13 {
  padding-left: 80px;
}

.mx-13 {
  margin-inline: 80px;
}

.px-13 {
  padding-inline: 80px;
}

.my-13 {
  margin-block: 80px;
}

.py-13 {
  padding-block: 80px;
}

@font-face {
  font-family: "Inconsolata";
  src: url(/assets/fonts/Inconsolata-VariableFont_wdth,wght.ttf);
}
body,
.txt-7 {
  font-family: "Inconsolata", serif;
  line-height: 120%;
  letter-spacing: -0.2px;
  color: hsl(0, 0%, 100%);
  font-size: 0.75rem;
}

.txt-1 {
  font-size: 1.875rem;
  font-weight: 800;
  line-height: 110%;
  letter-spacing: -1px;
}
@media screen and (min-width: 600px) {
  .txt-1 {
    font-size: 3.75rem;
  }
}

.txt-2 {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 110%;
  letter-spacing: -1px;
}
@media screen and (min-width: 600px) {
  .txt-2 {
    font-size: 2.5rem;
  }
}

.txt-3 {
  font-size: 1.375rem;
  font-weight: 700;
  line-height: 110%;
  letter-spacing: -1px;
}
@media screen and (min-width: 600px) {
  .txt-3 {
    font-size: 1.875rem;
  }
}

.txt-4 {
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 120%;
}
@media screen and (min-width: 600px) {
  .txt-4 {
    font-size: 1.5rem;
  }
}

.txt-5, label {
  font-size: 1.25rem;
  font-weight: 500;
  letter-spacing: -0.5px;
}

.txt-5x {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -0.3px;
}

.txt-6 {
  font-size: 0.875rem;
  font-weight: 500;
  letter-spacing: 0px;
}
@media screen and (min-width: 600px) {
  .txt-6 {
    font-size: 1.125rem;
  }
}

.txt-center {
  text-align: center;
}

.txt-grad-1 {
  background: linear-gradient(45deg, hsl(7, 86%, 67%), hsl(0, 0%, 100%));
  background-clip: text;
  color: transparent;
}

.txt-orange-500 {
  color: hsl(7, 88%, 67%);
}

.txt-neutral-500 {
  color: hsl(245, 15%, 58%);
}

span.icon-info {
  display: inline-block;
  background-image: url("/assets/images/icon-info.svg");
  background-size: contain;
  background-repeat: no-repeat;
  width: 1rem;
  height: 1rem;
}

span.icon-info-danger {
  display: inline-block;
  background-image: url("/assets/images/icon-info.svg");
  background-size: contain;
  background-repeat: no-repeat;
  width: 1rem;
  height: 1rem;
  background: hsl(7, 88%, 67%);
  mask-image: url("/assets/images/icon-info.svg");
}

span.icon-github {
  display: inline-block;
  background-image: url("/assets/images/icon-github.svg");
  background-size: contain;
  background-repeat: no-repeat;
  width: 1rem;
  height: 1rem;
}

span.icon-upload {
  display: inline-block;
  background-image: url("/assets/images/icon-upload.svg");
  background-size: contain;
  background-repeat: no-repeat;
  width: 1rem;
  height: 1rem;
}

.btn-prim {
  background-color: hsl(7, 71%, 60%);
  padding: 16px;
  border: 0;
  border-radius: 16px;
}
.btn-prim:hover {
  position: relative;
  bottom: 4px;
  cursor: pointer;
  filter: drop-shadow(0 4px hsl(7, 88%, 67%));
}

.btn-sec {
  padding-block: 4px;
  padding-inline: 8px;
  border: none;
  border-radius: 4px;
  background-color: rgba(255, 255, 255, 0.1);
  color: hsl(0, 0%, 100%);
}
.btn-sec:hover {
  text-decoration: underline;
  color: hsl(252, 6%, 83%);
}

/** BACKGROUND **/
body {
  min-height: 100vh;
  background-image: url("/assets/images/pattern-squiggly-line-bottom.svg"), url("/assets/images/pattern-squiggly-line-top.svg"), url("/assets/images/pattern-lines.svg"), url("/assets/images/background-mobile.png");
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat;
  background-position: bottom left, 100% 24px, center top, bottom right;
  background-size: auto 13rem, auto 3.25rem, auto, 100% 100%;
}

.container {
  margin-inline: 16px;
}
@media screen and (min-width: 600px) {
  .container {
    margin-inline: 32px;
  }
}
@media screen and (min-width: 1280px) {
  .container {
    max-width: 891px;
    margin-inline: auto;
  }
}

.logo {
  width: 164px;
  margin-block: 32px;
  margin-inline: auto;
}

form {
  display: flex;
  flex-direction: column;
  gap: 24px;
  margin-inline: 16px;
}
@media screen and (min-width: 600px) {
  form {
    max-width: 522px;
    margin-inline: auto;
  }
}
@media screen and (min-width: 1280px) {
  form {
    max-width: 460px;
    margin-inline: auto;
  }
}

label {
  display: block;
  padding-bottom: 12px;
}

.hint {
  display: grid;
  grid-template: "a b"/auto 1fr;
  gap: 8px;
}
.hint .hint-icon {
  grid-area: a;
}
.hint .hint-message {
  grid-area: b;
}

input[type=text],
input[type=email] {
  width: 100%;
  padding: 16px;
  background: hsla(0, 0%, 100%, 0.08);
  border: 1px solid hsl(245, 15%, 58%);
  border-radius: 12px;
  color: inherit;
}
input[type=text]:hover,
input[type=email]:hover {
  cursor: pointer;
  background-color: rgba(255, 255, 255, 0.2);
}
input[type=text]:focus,
input[type=email]:focus {
  box-shadow: 0 0 0 6px hsl(245, 15%, 58%);
  outline: 2px solid hsl(248, 70%, 10%);
  outline-offset: 1px;
}
input[type=text] + .hint,
input[type=email] + .hint {
  display: none;
}
input[type=text].changed:invalid:not(:focus),
input[type=email].changed:invalid:not(:focus) {
  border-color: hsl(7, 88%, 67%);
}
input[type=text].changed:invalid:not(:focus) + .hint,
input[type=email].changed:invalid:not(:focus) + .hint {
  display: grid;
}
input[type=text]::placeholder,
input[type=email]::placeholder {
  color: hsl(252, 6%, 83%);
}

.upload-field {
  padding: 20px;
  background: hsla(0, 0%, 100%, 0.08);
  border: 1px dashed hsl(245, 15%, 58%);
  border-radius: 12px;
  text-align: center;
  margin-bottom: 16px;
  cursor: pointer;
}
.upload-field img.preview {
  width: 50px;
  height: 50px;
  margin-inline: auto;
  margin-bottom: 16px;
  border: 2px solid hsl(245, 15%, 58%);
  border-radius: 12px;
  object-fit: cover;
}

.upload-field-icon {
  padding: 12px;
  background: hsla(0, 0%, 100%, 0.1);
  border: 1px solid hsl(245, 19%, 35%);
  border-radius: 12px;
  text-align: center;
  margin-inline: auto;
  width: max-content;
  margin-bottom: 16px;
}

.ticket {
  background: url("/assets/images/pattern-ticket.svg#svgView(preserveAspectRatio(none))") center center no-repeat;
  background-size: 100% 100%;
  max-width: 600px;
  margin-inline: 16px;
  padding: 16px;
  display: grid;
  grid-template: "e n" "a n"/1fr auto;
}
.ticket .event-info {
  grid-area: e;
  display: grid;
  grid-template: "l n" "l d"/auto 1fr;
  padding-bottom: 32px;
}
.ticket .event-info .logo-wrapper {
  grid-area: l;
  padding-right: 12px;
}
.ticket .event-info .conf-name {
  grid-area: n;
  padding-bottom: 8px;
}
.ticket .event-info .date {
  grid-area: d;
}
.ticket .attendee-info {
  grid-area: a;
  display: grid;
  grid-template: "a n" "a g"/auto 1fr;
}
.ticket .attendee-info .avatar {
  grid-area: a;
  padding-right: 12px;
}
.ticket .attendee-info .avatar img {
  width: 45px;
  height: 45px;
  object-fit: cover;
}
.ticket .attendee-info .name {
  grid-area: n;
}
.ticket .attendee-info .github {
  display: flex;
  flex-direction: row;
  align-items: center;
  grid-area: g;
}
.ticket .ticket-number {
  grid-area: n;
  text-align: center;
  writing-mode: vertical-rl;
}
@media screen and (min-width: 600px) {
  .ticket {
    margin-inline: auto;
  }
}

.hidden {
  display: none;
}

/*# sourceMappingURL=style.css.map */
