:root{
  color-scheme:dark;
  --tap-size:48px;
  --focus-ring:#ffe09a;
  --surface-glass:rgba(42,17,21,.88);
  --surface-raised:rgba(255,255,255,.055);
  --border-soft:rgba(223,186,103,.28);
  --shadow-raised:0 16px 42px rgba(8,2,3,.28);
}

html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{min-height:100dvh;overscroll-behavior-y:none;-webkit-tap-highlight-color:rgba(223,186,103,.18)}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{touch-action:manipulation}
button:not([disabled]),[role="button"],summary,label[for]{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.58}

:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{
  outline:3px solid var(--focus-ring)!important;
  outline-offset:3px;
  box-shadow:0 0 0 5px rgba(42,17,21,.82)!important;
}

.skip-link{
  position:fixed;z-index:99999;left:12px;top:12px;transform:translateY(-160%);
  border-radius:12px;background:#fff1c4;color:#301216;padding:11px 16px;font-weight:800;
  transition:transform .18s ease;
}
.skip-link:focus{transform:translateY(0)}

.connection-banner{
  position:fixed;z-index:9998;left:50%;bottom:calc(env(safe-area-inset-bottom) + 14px);
  width:max-content;max-width:calc(100vw - 28px);transform:translateX(-50%);
  border:1px solid var(--border-soft);border-radius:999px;padding:10px 16px;
  background:rgba(33,13,17,.96);color:#fff1c4;box-shadow:var(--shadow-raised);
  font-size:.9rem;font-weight:700;text-align:center;
}
.connection-banner.is-online{background:rgba(24,76,53,.96);border-color:rgba(151,229,184,.55)}

.card,.member-dialog,.member-auth-card{
  border-color:var(--border-soft)!important;
  box-shadow:var(--shadow-raised);
}
.card{content-visibility:auto;contain-intrinsic-size:1px 520px}
.topbar{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
.is-pressed{transform:translateY(1px)}

@media (max-width:760px){
  :root{--tap-size:50px}
  main{padding-bottom:calc(env(safe-area-inset-bottom) + 22px)}
  button,.nav-btn,input,select{min-height:var(--tap-size)}
  input,select,textarea{font-size:16px!important}
  .actions{gap:10px}
  .actions>button{flex:1 1 150px}
  dialog{max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 18px)}
  .member-dialog{width:calc(100vw - 18px)!important;margin:auto!important}
  .topbar nav{padding-bottom:calc(env(safe-area-inset-bottom) + 18px)!important}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

@media (prefers-contrast:more){
  :root{--border-soft:rgba(255,224,154,.72)}
  .hint,small{opacity:1!important}
}

.membership-open-plans{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;width:100%;
  margin:0;border:1px solid rgba(224,181,84,.48);border-radius:16px;padding:14px 16px;
  background:linear-gradient(135deg,rgba(104,55,22,.9),rgba(55,20,25,.96));color:#fff1c4;text-align:left;
  box-shadow:0 10px 28px rgba(8,2,3,.22);
}
.membership-open-plans>span:first-child{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,224,154,.13);font-size:1.2rem}
.membership-open-plans span:nth-child(2){display:grid;gap:2px}.membership-open-plans small{opacity:.78}.membership-open-plans>b{font-size:1.6rem}
.membership-plans-dialog{width:min(760px,calc(100vw - 24px))!important}
.membership-plans-body{padding:4px 18px 20px}
.membership-plan-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0 18px}
.membership-plan-card{
  position:relative;display:grid;gap:4px;align-content:center;min-height:138px;padding:20px 14px;
  border:1px solid rgba(223,186,103,.32);border-radius:18px;background:linear-gradient(155deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
  color:inherit;text-align:center;box-shadow:0 12px 28px rgba(8,2,3,.18);
}
.membership-plan-card:hover{border-color:rgba(255,224,154,.75);transform:translateY(-2px)}
.membership-plan-card h3{margin:0;font-size:1rem}.membership-plan-card strong{color:#ffe09a;font-family:Trirong,serif;font-size:1.45rem}.membership-plan-card small{opacity:.72}
.membership-plan-card.featured{border:2px solid #dfba67;background:linear-gradient(155deg,rgba(163,96,27,.26),rgba(255,255,255,.035))}
.membership-plan-card.popular{border-color:rgba(223,186,103,.65)}
.plan-badge{position:absolute;top:8px;right:8px;border-radius:999px;padding:3px 8px;background:#dfba67;color:#301216;font-size:.7rem;font-weight:800}
.membership-payment-note{margin:0 0 12px;line-height:1.6;opacity:.78;text-align:center}
.membership-restore{display:block;margin:8px auto 0;border:0;background:transparent;color:#ffe09a;text-decoration:underline;text-underline-offset:3px}
@media(max-width:560px){.membership-plan-list{grid-template-columns:1fr}.membership-plan-card{min-height:112px}.membership-plans-body{padding-inline:12px}}
