* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
::-webkit-scrollbar { display: none; }
input, select, button { font-family: 'Suwannaphum', serif; }
input:focus, select:focus { outline: none; }

@keyframes fadeIn   { from { opacity: 0; } to { opacity: 1; } }
@keyframes sheetUp  { from { transform: translateY(101%); } to { transform: translateY(0); } }
@keyframes screenIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }

.stage {
  min-height: 100dvh;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: stretch;
  padding: 0;
  background: #1b1410;
  font-family: 'Suwannaphum', serif;
}

/* Frameless: pure mobile viewport — no device bezel, shadow or rounded corners.
   Full-bleed on phones; centered mobile-width column on wider screens. */
.phone {
  position: relative;
  width: 100%;
  max-width: 480px;
  height: 100dvh;
  overflow: hidden;
}

.statusbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 30px 7px;
  position: relative;
  z-index: 5;
}

.content {
  position: absolute;
  top: 44px;
  left: 0; right: 0; bottom: 0;
  overflow-y: auto;
  padding-bottom: 98px;
}

.wordmark { cursor: pointer; -webkit-user-select: none; user-select: none; -webkit-tap-highlight-color: transparent; }

/* Gradient card — from Uiverse.io by PriyanshuGupta28 (fixed 190x254 sizing dropped so each card keeps its own size). */
.card {
  border-radius: 1rem;
  background-color: #4158D0;
  background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);
  box-shadow: rgba(0, 0, 0, 0.17) 0px -23px 25px 0px inset, rgba(0, 0, 0, 0.15) 0px -36px 30px 0px inset, rgba(0, 0, 0, 0.1) 0px -79px 40px 0px inset, rgba(0, 0, 0, 0.06) 0px 2px 1px, rgba(0, 0, 0, 0.09) 0px 4px 2px, rgba(0, 0, 0, 0.09) 0px 8px 4px, rgba(0, 0, 0, 0.09) 0px 16px 8px, rgba(0, 0, 0, 0.09) 0px 32px 16px;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.28);
}
