@font-face {
  font-family: "NbaTitle";
  src: url("../fonts/HelveticaNeueLTProBlkEx.otf") format("opentype");
}

@font-face {
  font-family: "NbaText";
  src: url("../fonts/HelveticaNeueLTProMdEx.otf") format("opentype");
}

* {
  box-sizing: border-box;
}

html,
body {
  width: 100%;
  height: 100%;
  margin: 0;
  overflow: hidden;
  background: #000;
  font-family: Helvetica, Arial, sans-serif;
}

[v-cloak] {
  display: none;
}

.kiosk-root {
  width: 100vw;
  height: 100vh;
  display: grid;
  place-items: center;
  overflow: hidden;
  background: #000;
}

.viewport {
  position: relative;
  overflow: hidden;
}

.canvas {
  position: absolute;
  left: 0;
  top: 0;
  width: 2160px;
  height: 3840px;
  overflow: hidden;
  transform-origin: left top;
  background: #000;
  color: #fff;
  user-select: none;
  -webkit-user-select: none;
}

.layer {
  position: absolute;
}

.bg {
  inset: 0;
  width: 2160px;
  height: 3840px;
}

.img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: fill;
  pointer-events: none;
}

.hit {
  position: absolute;
  border: 0;
  padding: 0;
  background: transparent;
  cursor: pointer;
  color: transparent;
  -webkit-tap-highlight-color: transparent;
}

.hit:focus-visible {
  outline: 8px solid rgba(255, 255, 255, 0.72);
  outline-offset: -8px;
}

.image-button {
  position: absolute;
  border: 0;
  padding: 0;
  background: linear-gradient(90deg, #0037ff 0%, #6177ff 100%);
  color: #fff;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 88px;
  line-height: 1;
  cursor: pointer;
  border-radius: 44px;
  border: 4px solid rgba(255, 255, 255, 0.75);
  box-shadow:
    inset -8px 0 14px rgba(0, 0, 0, 0.25),
    inset 8px 0 14px rgba(255, 255, 255, 0.25);
  -webkit-tap-highlight-color: transparent;
}

.image-button:has(img[src*="btn-black"]) {
  background: linear-gradient(90deg, #000 0%, #4a4a4a 100%);
}

.image-button img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: none;
  pointer-events: none;
}

.image-button span {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}

.footer-small {
  left: 736px;
  top: 3280px;
  width: 688px;
  height: 188px;
}

.footer-large {
  left: 564px;
  top: 3254px;
  width: 1032px;
  height: 282px;
}

.start-ball {
  left: 774px;
  top: 900px;
  width: 612px;
  height: 620px;
}

.hero-copy {
  left: 210px;
  top: 1710px;
  width: 1740px;
  text-align: center;
  font-family: "NbaTitle", Impact, Arial Black, sans-serif;
  font-size: 188px;
  line-height: 0.98;
  color: #37508c;
  text-transform: uppercase;
  text-shadow:
    -28px -28px 0 #fff,
    0 -28px 0 #fff,
    28px -28px 0 #fff,
    -28px 0 0 #fff,
    28px 0 0 #fff,
    -28px 28px 0 #fff,
    0 28px 0 #fff,
    28px 28px 0 #fff,
    0 0 80px rgba(255, 255, 255, 0.82);
}

.hero-copy .ai {
  color: #d52032;
}

.panel {
  position: absolute;
  background: #fff;
  color: #000;
  border-radius: 24px;
  box-shadow: 0 24px 72px #001cdd;
}

.policy-panel {
  left: 200px;
  top: 986px;
  width: 1760px;
  height: 1450px;
}

.statement-panel {
  left: 200px;
  top: 360px;
  width: 1760px;
  height: 2868px;
}

.policy-title {
  position: absolute;
  left: 300px;
  top: 1080px;
  width: 1560px;
  text-align: center;
  font-family: "NbaText", Helvetica, Arial, sans-serif;
  font-size: 104px;
  line-height: 1.08;
  font-weight: 900;
  letter-spacing: 0;
  color: #050505;
}

.statement-title {
  top: 488px;
  font-size: 104px;
}

.policy-copy {
  position: absolute;
  left: 338px;
  top: 1308px;
  width: 1484px;
  font-size: 60px;
  line-height: 80px;
  color: #000;
}

.policy-copy-img {
  position: absolute;
  left: 338px;
  top: 1144px;
  width: 1484px;
  height: 775px;
  object-fit: contain;
}

.statement-copy-img {
  position: absolute;
  left: 338px;
  top: 525px;
  width: 1484px;
  height: 2061px;
  object-fit: contain;
}

.statement-copy {
  top: 842px;
  height: 1600px;
  overflow: hidden;
}

.policy-copy strong,
.policy-copy a {
  color: #1647ff;
  font-weight: 800;
}

.select-title {
  left: 234px;
  top: 354px;
  width: 1692px;
  height: 292px;
  display: grid;
  place-items: center;
  text-align: center;
  font-size: 104px;
  line-height: 168px;
  font-weight: 400;
}

.select-title-img {
  left: 621px;
  top: 461px;
  width: 919px;
  height: 79px;
}

.avatar-card {
  position: absolute;
  width: 704px;
  height: 704px;
  border: 0;
  padding: 0;
  border-radius: 60px;
  background: #4d4d4d;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}

.avatar-card.selected {
  border: 8px solid #fff;
  box-shadow: 0 24px 72px #001cdd;
}

.avatar-left {
  left: 288px;
  top: 988px;
}

.avatar-right {
  left: 1168px;
  top: 988px;
}

.check {
  position: absolute;
  width: 152px;
  height: 152px;
  top: 1620px;
}

.check.left {
  left: 562px;
}

.check.right {
  left: 1442px;
}

.photo-title {
  left: 250px;
  top: 354px;
  width: 1660px;
  height: 336px;
  text-align: center;
  font-size: 104px;
  line-height: 168px;
  font-weight: 400;
}

.photo-title-img {
  left: 285px;
  top: 399px;
  width: 1590px;
  height: 246px;
}

.camera-view {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform: scaleX(-1);
  background: #181818;
}

.camera-error {
  position: absolute;
  left: 352px;
  top: 816px;
  width: 1456px;
  height: 1456px;
  border-radius: 60px;
  border: 8px solid #fff;
  background: rgba(24, 24, 24, 0.95);
  display: grid;
  place-items: center;
  padding: 80px;
  text-align: center;
  font-size: 56px;
  line-height: 1.35;
  color: rgba(255, 255, 255, 0.86);
}

.photo-box {
  left: 352px;
  top: 816px;
  width: 1456px;
  height: 1456px;
  border-radius: 60px;
  overflow: hidden;
}

.count {
  left: 960px;
  top: 2390px;
  width: 240px;
  text-align: center;
  font-size: 136px;
  line-height: 163px;
  font-weight: 300;
}

.result-card {
  left: 412px;
  top: 256px;
  width: 1358px;
  height: 2092px;
}

.loading-logo {
  left: 564px;
  top: 362px;
  width: 1032px;
  height: 282px;
}

.video-box {
  left: 170px;
  top: 978px;
  width: 1820px;
  height: 1024px;
  border: 4px solid #fff;
  border-radius: 20px;
  background: #181818;
  display: grid;
  place-items: center;
  color: rgba(255, 255, 255, 0.35);
  font-size: 60px;
}

.progress-track {
  left: 138px;
  top: 2324px;
  width: 1882px;
  height: 20px;
  border-radius: 20px;
  background: #fff;
  overflow: hidden;
}

.progress-fill {
  width: 100%;
  height: 100%;
  border-radius: 20px;
  background: linear-gradient(90deg, #2d4dfb, #df2434);
  transform-origin: left center;
  animation: loading-progress 60s linear forwards;
}

.loading-main {
  left: 138px;
  top: 2508px;
  width: 1882px;
  text-align: center;
  font-size: 84px;
  line-height: 90px;
}

.loading-copy-img {
  left: 138px;
  top: 2508px;
  width: 1882px;
  height: 258px;
}

.loading-sub {
  left: 200px;
  top: 2656px;
  width: 1758px;
  text-align: center;
  font-size: 60px;
  line-height: 80px;
}

.spinner {
  left: 990px;
  top: 2515px;
  width: 180px;
  height: 180px;
  animation: spin 1s linear infinite;
}

.printing-copy {
  left: 140px;
  top: 2860px;
  width: 1880px;
  text-align: center;
  font-size: 72px;
  line-height: 88px;
}

.printing-copy-img {
  left: 213px;
  top: 2860px;
  width: 1734px;
  height: 80px;
}

.dim {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.62);
}

.dialog {
  position: absolute;
  left: 200px;
  top: 946px;
  width: 1760px;
  height: 1000px;
  background: #fff;
  border-radius: 24px;
  color: #000;
  box-shadow: 0 24px 72px #001cdd;
}

.dialog-title {
  left: 260px;
  top: 1110px;
  width: 1640px;
  text-align: center;
  font-size: 104px;
  line-height: 130px;
  font-weight: 800;
}

.dialog-title-img {
  top: 1110px;
}

.dialog-title-img.generation-title {
  left: 646px;
  width: 868px;
  height: 79px;
}

.dialog-title-img.print-title {
  left: 804px;
  width: 552px;
  height: 78px;
}

.dialog-copy {
  left: 260px;
  top: 1360px;
  width: 1640px;
  text-align: center;
  font-size: 60px;
  line-height: 80px;
  color: #000;
}

.dialog-copy-img {
  top: 1360px;
}

.dialog-copy-img.try-again {
  left: 869px;
  width: 422px;
  height: 57px;
}

.dialog-copy-img.retake-picture {
  left: 777px;
  width: 606px;
  height: 56px;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes loading-progress {
  from {
    transform: scaleX(0);
  }

  to {
    transform: scaleX(1);
  }
}
