:root{
  --forest-ink:#132d26;
  --forest-canopy:#245a49;
  --forest-moss:#7f9e67;
  --forest-sun:#e7f58f;
  --forest-mist:#eff3ea;
  --forest-paper:#fbfaf5;
  --forest-line:#dce5dc;
  --forest-danger:#a94d45;
  --forest-shadow:0 18px 54px rgba(19,45,38,.10);
  --forest-radius-sm:12px;
  --forest-radius-md:18px;
  --forest-radius-lg:26px;
  --forest-serif:"Noto Serif SC","Songti SC",serif;
  --forest-sans:"DM Sans","PingFang SC","Microsoft YaHei",sans-serif;
  --forest-bottom-safe:env(safe-area-inset-bottom,0px);
}

html{color-scheme:light;text-size-adjust:100%;-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{min-width:320px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,[role="button"],input,select,textarea{min-height:44px}
button:disabled{cursor:wait;opacity:.72}
button,a,input,select,textarea{-webkit-tap-highlight-color:rgba(127,158,103,.18)}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{
  outline:3px solid rgba(127,158,103,.42);
  outline-offset:3px;
}
small,.eyebrow,time{font-size:max(11px,.6875rem)}
.community-nav a,.mobile-nav a,.bottom-nav a{min-width:44px;min-height:44px}
.community-nav{padding-bottom:var(--forest-bottom-safe)}

.ui-status{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
  border:1px solid var(--forest-line);
  border-radius:var(--forest-radius-sm);
  background:var(--forest-mist);
  color:var(--forest-canopy);
  font:500 13px/1.6 var(--forest-sans);
}
.ui-status[data-state="error"]{border-color:#ead0cb;background:#fbefec;color:var(--forest-danger)}
.ui-status[data-state="empty"]{background:var(--forest-paper);color:#68756f}
.ui-status[data-state="loading"]::before{
  content:"";
  width:14px;
  height:14px;
  flex:0 0 auto;
  margin-top:3px;
  border:2px solid rgba(36,90,73,.22);
  border-top-color:var(--forest-canopy);
  border-radius:50%;
  animation:forest-spin .8s linear infinite;
}
.book-rights-notice{
  max-width:1100px;
  margin:24px auto;
  padding:12px 16px;
  border:1px solid var(--forest-line);
  border-radius:var(--forest-radius-sm);
  background:rgba(255,255,255,.58);
  color:#6d7872;
  font:12px/1.75 var(--forest-sans);
  text-align:center;
}
.book-rights-notice a{color:var(--forest-canopy);text-decoration:underline;text-underline-offset:3px}
.membership-card form>button[aria-busy="true"]{display:flex;align-items:center;justify-content:center;gap:9px}
.membership-card form>button[aria-busy="true"]::before{
  content:"";
  width:14px;
  height:14px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  animation:forest-spin .8s linear infinite;
}
@keyframes forest-spin{to{transform:rotate(360deg)}}

html.member-gated:not([data-member-ready="true"]) body{overflow:hidden}
html.member-gated:not([data-member-ready="true"]) body>:not(.member-loading){visibility:hidden}
.member-loading{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:24px;background:linear-gradient(145deg,#f8f8f2,#edf2e8);visibility:visible!important}
.member-loading-card{width:min(360px,100%);display:grid;justify-items:center;text-align:center;color:var(--forest-ink)}
.member-loading-seed{position:relative;width:52px;height:58px;margin-bottom:22px}
.member-loading-seed::before{content:"";position:absolute;left:25px;bottom:4px;width:2px;height:39px;border-radius:2px;background:var(--forest-canopy);transform-origin:bottom;animation:member-seed-breathe 1.5s ease-in-out infinite}
.member-loading-seed::after{content:"";position:absolute;left:10px;top:8px;width:31px;height:25px;border-radius:25px 5px 25px 5px;background:linear-gradient(145deg,#9bc977,#4e8b68);transform:rotate(-10deg);box-shadow:10px 13px 0 -4px #c7df8f;animation:member-leaf-breathe 1.5s ease-in-out infinite}
.member-loading strong{font:600 19px/1.5 var(--forest-serif)}
.member-loading small{max-width:290px;margin-top:8px;color:#718079;font:12px/1.7 var(--forest-sans)}
.member-loading button{margin-top:20px;border:0;border-radius:11px;padding:0 18px;background:var(--forest-ink);color:#fff;font-weight:600;cursor:pointer}
html[data-member-ready="true"] .member-loading{display:none}
@keyframes member-seed-breathe{50%{transform:rotate(2deg) scaleY(1.04)}}
@keyframes member-leaf-breathe{50%{transform:rotate(-7deg) translateY(-2px)}}

@media(max-width:700px){
  input,select,textarea{font-size:16px}
  body{padding-bottom:var(--forest-bottom-safe)}
  .club-heading p,.next-meeting>p,.meeting-row p,.preparation-card li span,
  .featured-discovery p,.path-card p,.sprout p,.book-pick p,.book-pick blockquote,
  .profile-hero p,.profile-links span,.privacy-card p,.owner-heading p,.garden-rule{font-size:12px!important;line-height:1.65}
  .meeting-meta span,.meeting-actions a,.meeting-link,.calendar-legend,.meeting-tabs button,
  .week-labels span,.calendar-day,.section-heading>span,.section-heading>a,.feature-label,
  .feature-tags span,.path-card small,.sprout time,.book-pick span,.owner-tab small,
  .game-toolbar>button span,.toolbar-basket>span,.toolbar-log>span,.community-nav span,
  .club-mobile-nav span,.garden-mobile-nav span{font-size:11px!important}
  .chapter-card p{font-size:14px!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}
}
