/* [project]/src/components/card/ScanOverlay.module.css [app-client] (css) */
.ScanOverlay-module__NPgQMq__overlay {
  z-index: 1000;
  background: radial-gradient(120% 80% at 50% 38%, #1c1016, var(--void) 62%);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  place-items: center;
  animation: .18s ease-out ScanOverlay-module__NPgQMq__cbFade;
  display: grid;
  position: fixed;
  inset: 0;
  overflow: hidden;
}

@keyframes ScanOverlay-module__NPgQMq__cbFade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.ScanOverlay-module__NPgQMq__panel {
  justify-items: center;
  gap: 30px;
  padding: 0 24px;
  display: grid;
  position: relative;
}

.ScanOverlay-module__NPgQMq__ring {
  width: 120px;
  height: 120px;
  position: relative;
}

.ScanOverlay-module__NPgQMq__ring:before, .ScanOverlay-module__NPgQMq__ring:after {
  content: "";
  border: 2px solid var(--amber);
  border-radius: 50%;
  position: absolute;
  inset: 0;
}

.ScanOverlay-module__NPgQMq__ring:before {
  opacity: .28;
}

.ScanOverlay-module__NPgQMq__ring:after {
  animation: 1.5s cubic-bezier(.45, 0, .55, 1) infinite ScanOverlay-module__NPgQMq__cbPulse;
  box-shadow: 0 0 32px 3px #e0a85e73;
}

@keyframes ScanOverlay-module__NPgQMq__cbPulse {
  0% {
    opacity: .9;
    transform: scale(.72);
  }

  70% {
    opacity: 0;
    transform: scale(1.18);
  }

  100% {
    opacity: 0;
    transform: scale(1.18);
  }
}

.ScanOverlay-module__NPgQMq__status {
  font-family: var(--mono);
  letter-spacing: .18em;
  color: var(--amber);
  text-align: center;
  font-size: 18px;
}

.ScanOverlay-module__NPgQMq__status.ScanOverlay-module__NPgQMq__err {
  color: var(--rosed);
}

.ScanOverlay-module__NPgQMq__dots {
  text-align: left;
  letter-spacing: normal;
  width: 3ch;
  display: inline-block;
}

.ScanOverlay-module__NPgQMq__dots:after {
  content: "";
  animation: 1.4s steps(4, end) infinite ScanOverlay-module__NPgQMq__cbDots;
}

@keyframes ScanOverlay-module__NPgQMq__cbDots {
  0% {
    content: "";
  }

  25% {
    content: ".";
  }

  50% {
    content: "..";
  }

  75% {
    content: "...";
  }
}

@media (prefers-reduced-motion: reduce) {
  .ScanOverlay-module__NPgQMq__ring:after, .ScanOverlay-module__NPgQMq__dots:after {
    animation: none;
  }
}

/* [project]/src/components/card/CameraCapture.module.css [app-client] (css) */
.CameraCapture-module__0w0Zza__cam {
  z-index: 1000;
  background: var(--void, #0b0910);
  border: 0;
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
  margin: 0;
  padding: 0;
  animation: .18s ease-out CameraCapture-module__0w0Zza__ccFade;
  position: fixed;
  inset: 0;
  overflow: hidden;
}

.CameraCapture-module__0w0Zza__cam:focus {
  outline: none;
}

.CameraCapture-module__0w0Zza__cam::backdrop {
  background: var(--void, #0b0910);
}

@keyframes CameraCapture-module__0w0Zza__ccFade {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.CameraCapture-module__0w0Zza__video {
  object-fit: cover;
  opacity: 0;
  width: 100%;
  height: 100%;
  transition: opacity .35s;
  position: absolute;
  inset: 0;
}

.CameraCapture-module__0w0Zza__video.CameraCapture-module__0w0Zza__on {
  opacity: 1;
}

.CameraCapture-module__0w0Zza__finder {
  aspect-ratio: 1;
  pointer-events: none;
  width: min(62vw, 300px);
  position: absolute;
  top: 44%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.CameraCapture-module__0w0Zza__corner {
  opacity: .9;
  border: 3px solid #000;
  width: 26px;
  height: 26px;
  position: absolute;
}

.CameraCapture-module__0w0Zza__tl {
  border-bottom: 0;
  border-right: 0;
  border-top-left-radius: 10px;
  top: 0;
  left: 0;
}

.CameraCapture-module__0w0Zza__tr {
  border-bottom: 0;
  border-left: 0;
  border-top-right-radius: 10px;
  top: 0;
  right: 0;
}

.CameraCapture-module__0w0Zza__bl {
  border-top: 0;
  border-right: 0;
  border-bottom-left-radius: 10px;
  bottom: 0;
  left: 0;
}

.CameraCapture-module__0w0Zza__br {
  border-top: 0;
  border-left: 0;
  border-bottom-right-radius: 10px;
  bottom: 0;
  right: 0;
}

.CameraCapture-module__0w0Zza__cross {
  opacity: .55;
  border: 2px solid #000;
  border-radius: 50%;
  width: 34px;
  height: 34px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.CameraCapture-module__0w0Zza__hint {
  font-family: var(--mono);
  letter-spacing: .22em;
  text-align: center;
  color: #000;
  opacity: .9;
  font-size: 15px;
  position: absolute;
  top: calc(44% + min(31vw, 150px) + 22px);
  left: 0;
  right: 0;
}

.CameraCapture-module__0w0Zza__close {
  top: calc(14px + env(safe-area-inset-top));
  color: #fff;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  cursor: pointer;
  background: #0b091073;
  border: 1px solid #ffffff38;
  border-radius: 50%;
  place-items: center;
  width: 40px;
  height: 40px;
  display: grid;
  position: absolute;
  right: 14px;
}

.CameraCapture-module__0w0Zza__close svg {
  width: 18px;
  height: 18px;
}

.CameraCapture-module__0w0Zza__controls {
  left: 0;
  right: 0;
  bottom: calc(26px + env(safe-area-inset-bottom));
  justify-content: center;
  align-items: center;
  gap: 44px;
  display: flex;
  position: absolute;
}

.CameraCapture-module__0w0Zza__side {
  place-items: center;
  width: 65px;
  height: 65px;
  display: grid;
}

.CameraCapture-module__0w0Zza__round {
  color: #fff;
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  cursor: pointer;
  background: #0b091073;
  border: 1px solid #ffffff40;
  border-radius: 50%;
  place-items: center;
  width: 65px;
  height: 65px;
  display: grid;
}

.CameraCapture-module__0w0Zza__round svg {
  width: 27px;
  height: 27px;
}

.CameraCapture-module__0w0Zza__round.CameraCapture-module__0w0Zza__torchOn {
  background: var(--amber);
  border-color: var(--amber);
  color: #1c1016;
  box-shadow: 0 0 22px #e0a85e8c;
}

.CameraCapture-module__0w0Zza__shutter {
  border: 3px solid var(--amber);
  cursor: pointer;
  background: none;
  border-radius: 50%;
  width: 91px;
  height: 91px;
  padding: 5px;
  transition: transform .12s;
}

.CameraCapture-module__0w0Zza__shutter:after {
  content: "";
  background: #fff;
  border-radius: 50%;
  width: 100%;
  height: 100%;
  display: block;
  box-shadow: 0 0 26px #e0a85e59;
}

.CameraCapture-module__0w0Zza__shutter:active {
  transform: scale(.92);
}

.CameraCapture-module__0w0Zza__shutter:disabled {
  opacity: .4;
  cursor: default;
}

@media (prefers-reduced-motion: reduce) {
  .CameraCapture-module__0w0Zza__cam, .CameraCapture-module__0w0Zza__video {
    transition: none;
    animation: none;
  }
}

/* [project]/src/components/nav/TabBar.module.css [app-client] (css) */
.TabBar-module__zcBG9G__nav {
  left: 50%;
  bottom: calc(12px + env(safe-area-inset-bottom, 0px));
  z-index: 40;
  background: linear-gradient(165deg, #1a1419, #0f0b0d);
  border: 1px solid #f3ece11a;
  border-radius: 999px;
  align-items: stretch;
  width: min(376px, 100% - 24px);
  height: 60px;
  display: flex;
  position: fixed;
  transform: translateX(-50%);
  box-shadow: inset 0 1px #f3ece114;
}

.TabBar-module__zcBG9G__item {
  cursor: pointer;
  color: var(--cream);
  font-family: var(--mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  background: none;
  border: 0;
  border-radius: 999px;
  flex-direction: column;
  flex: 1;
  justify-content: center;
  align-items: center;
  gap: 4px;
  padding: 0;
  font-size: 9px;
  font-weight: 700;
  text-decoration: none;
  transition: color .15s, transform .12s;
  display: flex;
}

.TabBar-module__zcBG9G__item svg {
  width: 21px;
  height: 21px;
}

.TabBar-module__zcBG9G__label {
  line-height: 1;
}

.TabBar-module__zcBG9G__item.TabBar-module__zcBG9G__active {
  color: #241402;
  background: linear-gradient(140deg, #f6cd82, var(--amber) 55%, #c9853b);
  margin: 6px;
  box-shadow: 0 4px 12px #e0a85e59, inset 0 1px #ffffff59;
}

.TabBar-module__zcBG9G__scan {
  color: var(--amber);
}

.TabBar-module__zcBG9G__item:disabled {
  opacity: .55;
  cursor: default;
}

.TabBar-module__zcBG9G__item:active {
  transform: scale(.95);
}

@media (prefers-reduced-motion: reduce) {
  .TabBar-module__zcBG9G__item {
    transition: none;
  }

  .TabBar-module__zcBG9G__item:active {
    transform: none;
  }
}

/* [project]/src/components/card/AromaResults.module.css [app-client] (css) */
.AromaResults-module__6PQBnq__drop {
  z-index: 50;
  background: var(--paper);
  border: 1px solid var(--line);
  text-align: left;
  border-radius: 16px;
  max-height: 60vh;
  padding: 6px;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  overflow: hidden auto;
  box-shadow: 0 18px 44px #211a1229;
}

.AromaResults-module__6PQBnq__note {
  text-align: center;
  color: var(--ink3);
  padding: 14px 12px;
  font-size: 12px;
}

.AromaResults-module__6PQBnq__row {
  color: var(--ink);
  cursor: pointer;
  text-align: left;
  width: 100%;
  font: inherit;
  border-radius: 11px;
  align-items: center;
  gap: 12px;
  padding: 7px 10px;
  text-decoration: none;
  transition: background .15s;
  display: flex;
}

.AromaResults-module__6PQBnq__row + .AromaResults-module__6PQBnq__row, .AromaResults-module__6PQBnq__skRow + .AromaResults-module__6PQBnq__skRow {
  border-top: 1px solid #0000;
  border-image: linear-gradient(90deg, #0000, #211a1217 18% 82%, #0000) 1;
}

.AromaResults-module__6PQBnq__row.AromaResults-module__6PQBnq__active, .AromaResults-module__6PQBnq__row:hover {
  background: #e0a85e24;
}

.AromaResults-module__6PQBnq__dim {
  opacity: .55;
}

.AromaResults-module__6PQBnq__dead {
  cursor: default;
}

.AromaResults-module__6PQBnq__thumb {
  object-fit: contain;
  flex-shrink: 0;
  width: 40px;
  height: 52px;
}

.AromaResults-module__6PQBnq__thumbBlank {
  width: 40px;
  height: 52px;
  color: var(--ink3);
  flex-shrink: 0;
  place-items: center;
  font-size: 17px;
  display: grid;
}

.AromaResults-module__6PQBnq__txt {
  flex-direction: column;
  flex: 1;
  gap: 2px;
  min-width: 0;
  display: flex;
}

.AromaResults-module__6PQBnq__rbrand {
  font-family: var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--ink3);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 9px;
  font-weight: 600;
  overflow: hidden;
}

.AromaResults-module__6PQBnq__year {
  letter-spacing: .04em;
  opacity: .85;
  font-weight: 500;
}

.AromaResults-module__6PQBnq__rname {
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 1.25;
  overflow: hidden;
}

.AromaResults-module__6PQBnq__soon {
  font-family: var(--mono);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--cognac);
  border: 1px solid #a96f334d;
  border-radius: 999px;
  flex-shrink: 0;
  padding: 3px 8px;
  font-size: 9px;
  font-weight: 600;
}

.AromaResults-module__6PQBnq__skRow {
  align-items: center;
  gap: 12px;
  padding: 7px 10px;
  display: flex;
}

.AromaResults-module__6PQBnq__skThumb {
  border-radius: 10px;
  flex-shrink: 0;
  width: 40px;
  height: 52px;
}

.AromaResults-module__6PQBnq__skTxt {
  flex-direction: column;
  flex: 1;
  gap: 7px;
  min-width: 0;
  display: flex;
}

.AromaResults-module__6PQBnq__skLine {
  border-radius: 6px;
  width: 72%;
  height: 10px;
}

.AromaResults-module__6PQBnq__skShort {
  width: 38%;
  height: 8px;
}

.AromaResults-module__6PQBnq__skThumb, .AromaResults-module__6PQBnq__skLine {
  background: linear-gradient(90deg, #211a120d 30%, #e0a85e2e 50%, #211a120d 70%) 0 0 / 200% 100%;
  animation: 1.3s linear infinite AromaResults-module__6PQBnq__shimmer;
}

@keyframes AromaResults-module__6PQBnq__shimmer {
  from {
    background-position: 200% 0;
  }

  to {
    background-position: -200% 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  .AromaResults-module__6PQBnq__skThumb, .AromaResults-module__6PQBnq__skLine {
    animation: none;
  }
}

/* [project]/src/components/card/MicButton.module.css [app-client] (css) */
.MicButton-module__ns9cSq__mic {
  width: var(--mic-size, 36px);
  height: var(--mic-size, 36px);
  cursor: pointer;
  color: #fff;
  background: linear-gradient(140deg, #f6cd82 0%, var(--amber) 48%, var(--cognac) 100%);
  border: 0;
  border-radius: 50%;
  flex-shrink: 0;
  place-items: center;
  padding: 0;
  transition: transform .15s, box-shadow .3s, filter .15s;
  display: grid;
  position: relative;
  box-shadow: 0 0 0 3px #e0a85e2e, 0 4px 14px #e0a85e80, inset 0 1px #ffffff73;
}

.MicButton-module__ns9cSq__mic:before {
  content: "";
  opacity: 0;
  pointer-events: none;
  background: linear-gradient(140deg, #e8694f 0%, #c0392b 100%);
  border-radius: 50%;
  transition: opacity .3s;
  position: absolute;
  inset: 0;
}

.MicButton-module__ns9cSq__icon {
  place-items: center;
  animation: .28s cubic-bezier(.34, 1.56, .64, 1) MicButton-module__ns9cSq__iconin;
  display: grid;
  position: relative;
}

.MicButton-module__ns9cSq__icon svg {
  display: block;
}

@keyframes MicButton-module__ns9cSq__iconin {
  from {
    opacity: 0;
    transform: scale(.3)rotate(-70deg);
  }

  to {
    opacity: 1;
    transform: scale(1)rotate(0);
  }
}

.MicButton-module__ns9cSq__mic:hover {
  filter: brightness(1.05);
  transform: translateY(-1px)scale(1.05);
  box-shadow: 0 0 0 4px #e0a85e3d, 0 6px 18px #e0a85e99, inset 0 1px #ffffff80;
}

.MicButton-module__ns9cSq__mic:active {
  transform: translateY(0)scale(.97);
}

.MicButton-module__ns9cSq__mic:disabled {
  cursor: default;
}

.MicButton-module__ns9cSq__recording {
  color: #fff;
  box-shadow: 0 4px 16px #c0392b73, inset 0 1px #ffffff40;
}

.MicButton-module__ns9cSq__recording:before {
  opacity: 1;
}

.MicButton-module__ns9cSq__recording:hover {
  filter: none;
  transform: none;
}

.MicButton-module__ns9cSq__recording:after {
  content: "";
  opacity: .5;
  pointer-events: none;
  border: 2.5px solid #c0392b;
  border-radius: 50%;
  animation: 1.1s ease-out infinite MicButton-module__ns9cSq__micpulse;
  position: absolute;
  inset: -5px;
}

@keyframes MicButton-module__ns9cSq__micpulse {
  from {
    opacity: .5;
    transform: scale(.82);
  }

  to {
    opacity: 0;
    transform: scale(1.55);
  }
}

.MicButton-module__ns9cSq__denied, .MicButton-module__ns9cSq__error {
  color: #c0392b;
  background: var(--porcelain);
  box-shadow: 0 2px 8px #211a121f;
}

.MicButton-module__ns9cSq__denied:hover, .MicButton-module__ns9cSq__error:hover {
  filter: none;
  transform: none;
}

.MicButton-module__ns9cSq__spinner {
  border: 2px solid #ffffff59;
  border-top-color: #fff;
  border-radius: 50%;
  width: 15px;
  height: 15px;
  animation: .7s linear infinite MicButton-module__ns9cSq__micspin;
}

@keyframes MicButton-module__ns9cSq__micspin {
  to {
    transform: rotate(360deg);
  }
}

/* [project]/src/components/card/CameraButton.module.css [app-client] (css) */
.CameraButton-module__h7EmhW__cam {
  width: var(--mic-size, 36px);
  height: var(--mic-size, 36px);
  cursor: pointer;
  color: var(--cream);
  background: linear-gradient(140deg, var(--amber) 0%, var(--cognac) 100%);
  border: 0;
  border-radius: 50%;
  flex-shrink: 0;
  place-items: center;
  padding: 0;
  transition: transform .15s, box-shadow .15s, filter .15s;
  display: grid;
  position: relative;
  box-shadow: 0 3px 10px #a96f3352, inset 0 1px #ffffff47;
}

.CameraButton-module__h7EmhW__cam:hover {
  filter: brightness(1.06);
  transform: translateY(-1px)scale(1.04);
  box-shadow: 0 5px 15px #a96f336b, inset 0 1px #ffffff52;
}

.CameraButton-module__h7EmhW__cam:active {
  transform: translateY(0)scale(.97);
}

.CameraButton-module__h7EmhW__cam:disabled {
  cursor: default;
}

/*# sourceMappingURL=src_components_1n_z9oe._.css.map*/