@layer theme,legacy,utilities;
@layer legacy{
/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties;
@layer theme {
  :root, :host {
    --spacing: 0.25rem;
  }
}
.visible {
  visibility: visible;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border-width: 0;
}
.fixed {
  position: fixed;
}
.block {
  display: block;
}
.grid {
  display: grid;
}
.hidden {
  display: none;
}
.inline {
  display: inline;
}
.table {
  display: table;
}
.w-full {
  width: 100%;
}
.transform {
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
}
.resize {
  resize: both;
}
.grid-cols-1 {
  grid-template-columns: repeat(1, minmax(0, 1fr));
}
.outline {
  outline-style: var(--tw-outline-style);
  outline-width: 1px;
}
.filter {
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
}
@media (width >= 48rem) {
  .md\:grid-cols-\[minmax\(0\,1fr\)_255px\] {
    grid-template-columns: minmax(0,1fr) 255px;
  }
}
html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-bottom: 110px;
}
body {
  min-height: 100vh;
  min-height: 100svh;
}
main, #content, .shell > *, .g-layout > * {
  min-width: 0px;
}
button, a, input, select {
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
button {
  min-height: calc(var(--spacing) * 11);
  min-width: calc(var(--spacing) * 11);
}
input, select, textarea {
  font-size: 0.94118rem;
}
.settings input, .settings select, dialog input, dialog select, .auth-wrap input {
  font-size: 0.94118rem;
  min-height: 48px;
}
.g-avatar-choices button {
  height: calc(var(--spacing) * 11);
  width: calc(var(--spacing) * 11);
  flex-shrink: 0;
}
.done-btn {
  height: calc(var(--spacing) * 11);
  width: calc(var(--spacing) * 11);
  flex-shrink: 0;
}
.g-bottom-nav {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.g-bottom-nav button {
  display: flex;
  min-width: 0px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  font-family: inherit;
  cursor: pointer;
}
.g-bottom-nav button:focus-visible {
  outline: 3px solid var(--action);
  outline-offset: 2px;
}
.g-bottom-nav button span {
  line-height: 1.4;
}
.g-bottom-nav button .g-nav-icon {
  font-size: 1.29412rem;
  margin: 0;
}
.g-tools, .profile {
  flex-shrink: 0;
}
.g-player-info h2 {
  text-wrap: balance;
}
.g-avatar-choices {
  flex-wrap: wrap;
}
.g-mission-info small {
  line-height: 1.8;
}
.g-mission-info, .g-player-info, .g-section-title > div {
  overflow-wrap: anywhere;
}
.g-settings span {
  font-size: 0.8rem;
}
.child-mode .text-btn {
  color: var(--ink);
}
.child-mode .pending-tag {
  color: var(--warning);
}
.timeline, .notice, .redemption, .auth-wrap {
  overflow-wrap: anywhere;
}
dialog {
  max-height: calc(100vh - 32px);
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.auth-wrap {
  margin-top: clamp(24px, 6vh, 70px);
  padding-bottom: max(24px, env(safe-area-inset-bottom));
}
#toast {
  bottom: max(25px, env(safe-area-inset-bottom));
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
#toast.show {
  opacity: 1;
  visibility: visible;
}
@media (max-width: 760px), (max-width: 960px) and (max-height: 500px) {
  body {
    padding-left: env(safe-area-inset-left);
    padding-right: env(safe-area-inset-right);
  }
  .demo {
    padding-top: max(9px, env(safe-area-inset-top));
  }
  .child-mode main {
    padding: 18px 14px calc(100px + env(safe-area-inset-bottom));
  }
  .child-mode header {
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
  }
  .child-mode header h1 {
    font-size: clamp(1.23529rem, 5.5vw, 1.52941rem);
    line-height: 1.35;
  }
  .child-mode .game-view {
    padding: 18px 14px;
    border-radius: 24px;
  }
  .g-player {
    padding: 20px 14px;
    gap: 14px;
  }
  .game-view .g-player-info h2 {
    font-size: clamp(1.05882rem, 4.8vw, 1.29412rem);
    line-height: 1.35;
    margin: 7px 0 14px;
  }
  .g-player-info > p {
    font-size: 0.8rem;
  }
  .g-player-info > small, .g-xp-label {
    font-size: 0.8rem;
  }
  .g-top {
    gap: 8px;
  }
  .g-logo {
    font-size: 1.47059rem;
  }
  .g-tools {
    gap: 6px;
  }
  .g-wallet {
    padding: 9px;
    gap: 5px;
  }
  .g-wallet b {
    font-size: 1.17647rem;
  }
  .game-view .g-settings {
    padding: 9px;
  }
  .g-mission {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    gap: 12px;
    padding: 16px 12px;
  }
  .g-mission-info {
    min-width: 0;
  }
  .game-view .g-mission-info h4 {
    font-size: 0.88235rem;
  }
  .g-mission-info > small, .game-view .g-pending {
    font-size: 0.8rem;
  }
  .g-go, .g-undo {
    grid-column: 1 / -1;
    margin: 0;
    width: 100%;
    min-height: 48px;
    font-size: 0.88235rem;
  }
  .g-go > span {
    display: inline;
    margin-inline-start: 12px;
    font-size: 0.8rem;
  }
  .g-completed-mark {
    grid-column: 2;
    justify-self: end;
  }
  .g-section-title {
    align-items: flex-end;
    gap: 8px;
  }
  .game-view .g-section-title h3 {
    font-size: 1.23529rem;
  }
  .g-section-title > span {
    font-size: 0.8rem;
    padding: 8px;
  }
  .g-fair-note, .game-view .g-map > p {
    font-size: 0.8rem;
  }
  .g-loot-values, .game-view .g-loot p {
    font-size: 0.8rem;
  }
  .g-loot-button {
    min-height: 48px;
    font-size: 0.88235rem;
  }
  .g-stop > span {
    width: 44px;
    height: 44px;
  }
  .g-map {
    padding: 16px 12px;
  }
  .g-badges > div {
    gap: 5px;
  }
  .g-badge > span {
    width: 56px;
    height: 56px;
  }
  .g-bottom-nav {
    position: fixed;
    z-index: 30;
    inset: auto 0 0;
    margin: 0;
    gap: 4px;
    border-radius: 22px 22px 0 0;
    padding: 8px max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left));
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: 0 -8px 30px var(--line);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
  }
  .g-bottom-nav button {
    padding: 8px 3px;
    min-height: 58px;
  }
  .g-bottom-nav button span {
    font-size: 0.8rem;
    margin-top: 5px;
  }
  .child-mode #toast {
    bottom: calc(100px + env(safe-area-inset-bottom));
    z-index: 40;
  }
  .child-mode .game-return {
    min-height: 44px;
    margin-bottom: 20px;
  }
  .task-info h3 {
    line-height: 1.5;
  }
  .task-info p, .pending-tag {
    font-size: 0.8rem;
  }
  .filters {
    gap: 4px;
    flex-wrap: wrap;
  }
  .filters button {
    padding: 10px 14px;
  }
  .settings .fields, dialog .fields {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .settings input, dialog input, dialog select {
    margin-top: 8px;
  }
  dialog {
    padding: 22px;
    width: calc(100vw - 28px);
    border-radius: 22px;
  }
  .auth-wrap .panel {
    padding: 24px 20px;
  }
  .auth-wrap h1 {
    font-size: 1.52941rem;
  }
  .auth-wrap p, .panel p {
    font-size: 0.82353rem;
  }
  .invite-link {
    font-size: 0.94118rem;
  }
  .profile {
    gap: 8px;
  }
  aside nav button {
    flex-shrink: 0;
    font-size: 0.8rem;
    padding-inline: 12px;
  }
  dialog label {
    margin-block: 12px;
  }
  dialog input, dialog select {
    min-width: 0;
  }
}
@media (min-width: 360px) and (max-width: 760px) {
  dialog .fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  dialog .fields label {
    min-width: 0;
    margin-block: 8px;
  }
}
@media (max-width: 359px) {
  .child-mode main {
    padding-inline: 10px;
  }
  .child-mode .game-view {
    padding-inline: 12px;
  }
  .g-wallet small, .g-settings span {
    display: none;
  }
  .g-avatar {
    width: 62px;
    height: 72px;
    font-size: 2.23529rem;
  }
  .g-player {
    gap: 12px;
    padding-inline: 12px;
  }
  .g-avatar-choices {
    gap: 7px;
  }
  .g-badge b, .g-badge small {
    font-size: 0.8rem;
  }
  .hero {
    flex-direction: column-reverse;
    align-items: flex-start;
  }
  .hero-text {
    max-width: 100%;
  }
  .hero-art {
    align-self: flex-end;
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
  }
}
@media (max-width: 430px) and (max-height: 740px) {
  .child-mode main {
    padding-top: 12px;
  }
  .child-mode header {
    margin-bottom: 12px;
  }
  .child-mode header h1 {
    font-size: 1.17647rem;
    margin-block: 6px;
  }
  .g-top {
    margin-bottom: 16px;
  }
  .g-player {
    padding: 16px 12px;
  }
  .g-avatar {
    width: 62px;
    height: 72px;
    font-size: 2.23529rem;
  }
  .game-view .g-player-info h2 {
    font-size: 1.05882rem;
    margin-bottom: 10px;
  }
  .g-avatar-choices {
    margin-block: 16px 20px;
  }
  .g-section-title {
    margin-bottom: 12px;
  }
}
@media (min-width: 741px) and (max-width: 960px) and (max-height: 500px) {
  .shell {
    display: block;
  }
  aside {
    padding: 16px;
  }
  aside .family-label, .sidebar-bottom {
    display: none;
  }
  aside nav {
    display: flex;
    overflow-x: auto;
    margin-top: 12px;
  }
  aside nav button {
    flex-shrink: 0;
  }
  main {
    padding: 20px;
  }
}
.startup {
  min-height: 70vh;
  min-height: 70svh;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 24px;
  text-align: center;
  color: var(--ink);
}
.startup-mark {
  display: grid;
  place-items: center;
  width: 78px;
  height: 78px;
  background: var(--surface);
  border-radius: 24px;
  color: var(--ink);
  font-size: 2.94118rem;
  box-shadow: 0 12px 35px var(--line);
}
.startup h1 {
  font-size: 2.23529rem;
  margin: 20px 0 4px;
}
.startup p {
  font-size: 0.94118rem;
  color: var(--ink);
}
.startup-spinner {
  width: 24px;
  height: 24px;
  margin-top: 16px;
  border: 3px solid var(--line);
  border-top-color: var(--line);
  border-radius: 50%;
  animation: startup-spin .9s linear infinite;
}
@keyframes startup-spin {
  to {
    transform: rotate(360deg);
  }
}
@media (prefers-reduced-motion: reduce) {
  .startup-spinner {
    animation: none;
  }
}
.auth-wrap {
  width: min(100%, 510px);
  padding: max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(28px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));
  margin: 0 auto;
}
.auth-wrap .panel {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 26px;
  padding: 30px;
}
.auth-wrap .panel::before {
  content: '';
  position: absolute;
  inset: 0 0 auto;
  height: 5px;
  background: linear-gradient(90deg,var(--surface),var(--surface),var(--surface));
}
.auth-wrap h1 {
  line-height: 1.3;
  margin-top: 12px;
}
.auth-wrap p {
  line-height: 1.75;
  overflow-wrap: anywhere;
}
.auth-wrap input {
  width: 100%;
  min-height: 52px;
  font-size: 0.94118rem;
  margin: 9px 0 18px;
}
.auth-wrap form > .primary, .auth-wrap .google {
  width: 100%;
  min-height: 50px;
}
.auth-wrap label {
  display: block;
  color: var(--ink);
  font-weight: 700;
}
.auth-emblem {
  display: inline-grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 15px;
  background: var(--surface);
  color: var(--ink);
  font-size: 1.76471rem;
  margin-inline-end: 10px;
  margin-bottom: 18px;
  vertical-align: middle;
}
.auth-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--ink);
  font-size: 0.8rem;
  margin: 23px 0;
}
.auth-divider::before, .auth-divider::after {
  content: '';
  height: 1px;
  background: var(--surface);
  flex: 1;
}
.auth-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: 14px;
}
.auth-actions button {
  min-height: 44px;
}
.auth-wrap .auth-help {
  color: var(--ink);
  font-size: 0.8rem;
}
.auth-invite {
  background: var(--surface);
  padding: 12px;
  border-radius: 12px;
  color: var(--ink);
  font-size: 0.82353rem;
}
.auth-error {
  margin-bottom: 18px;
  color: var(--danger);
  background: var(--surface);
}
#auth-feedback:empty {
  display: none;
}
#login-code {
  text-align: center;
  letter-spacing: .25em;
  font-size: 1.47059rem;
  font-weight: 700;
}
.auth-demo {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  color: var(--ink);
  font-size: 0.82353rem;
}
@media (max-width: 430px) {
  .auth-wrap .panel {
    padding: 26px 20px;
  }
  .auth-wrap h1 {
    font-size: 1.58824rem;
  }
  .auth-wrap .brand {
    margin-bottom: 24px;
  }
}
.access-member {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  align-items: center;
}
.access-member p {
  overflow-wrap: anywhere;
  margin: 8px 0;
}
.access-member small {
  color: var(--ink);
}
.access-member .pending-tag {
  margin-inline-start: 8px;
}
.access-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.access-member>div {
  min-width: 0;
}
#managed-invite {
  width: 100%;
  margin: 10px 0;
}
@media (max-width:600px) {
  .access-member {
    align-items: stretch;
    flex-direction: column;
  }
  .access-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .access-actions button {
    min-height: 44px;
    padding: 10px;
    font-size: 0.82353rem;
  }
}
#member-management .section-head {
  flex-wrap: wrap;
  align-items: flex-start;
}
#member-management .section-head>.primary {
  flex-shrink: 0;
  white-space: nowrap;
}
#member-management .section-head>div {
  flex: 1 1 220px;
  min-width: 0;
}
@property --tw-rotate-x {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-y {
  syntax: "*";
  inherits: false;
}
@property --tw-rotate-z {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-x {
  syntax: "*";
  inherits: false;
}
@property --tw-skew-y {
  syntax: "*";
  inherits: false;
}
@property --tw-outline-style {
  syntax: "*";
  inherits: false;
  initial-value: solid;
}
@property --tw-blur {
  syntax: "*";
  inherits: false;
}
@property --tw-brightness {
  syntax: "*";
  inherits: false;
}
@property --tw-contrast {
  syntax: "*";
  inherits: false;
}
@property --tw-grayscale {
  syntax: "*";
  inherits: false;
}
@property --tw-hue-rotate {
  syntax: "*";
  inherits: false;
}
@property --tw-invert {
  syntax: "*";
  inherits: false;
}
@property --tw-opacity {
  syntax: "*";
  inherits: false;
}
@property --tw-saturate {
  syntax: "*";
  inherits: false;
}
@property --tw-sepia {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-color {
  syntax: "*";
  inherits: false;
}
@property --tw-drop-shadow-alpha {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 100%;
}
@property --tw-drop-shadow-size {
  syntax: "*";
  inherits: false;
}
@layer properties {
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
    *, ::before, ::after, ::backdrop {
      --tw-rotate-x: initial;
      --tw-rotate-y: initial;
      --tw-rotate-z: initial;
      --tw-skew-x: initial;
      --tw-skew-y: initial;
      --tw-outline-style: solid;
      --tw-blur: initial;
      --tw-brightness: initial;
      --tw-contrast: initial;
      --tw-grayscale: initial;
      --tw-hue-rotate: initial;
      --tw-invert: initial;
      --tw-opacity: initial;
      --tw-saturate: initial;
      --tw-sepia: initial;
      --tw-drop-shadow: initial;
      --tw-drop-shadow-color: initial;
      --tw-drop-shadow-alpha: 100%;
      --tw-drop-shadow-size: initial;
    }
  }
}

}