/* ============================================================
   NUTSHELL — APP SHOWCASE + ANIMATION POLISH
   ============================================================ */

/* ---- Image reveal-settle: photos ease from a soft zoom ---- */
.hero__photo img, .ledby__media-img img, .philo__media-img img,
.managed__media-img img, .cover__map img, .app-shot img {
  transition: transform 1.4s var(--ease), filter 1.2s var(--ease);
}
.reveal .ledby__media-img img, .reveal .philo__media-img img,
.reveal .managed__media-img img, .reveal .cover__map img {
  transform: scale(1.14); filter: saturate(.85);
}
.reveal.in .ledby__media-img img, .reveal.in .philo__media-img img,
.reveal.in .managed__media-img img, .reveal.in .cover__map img {
  transform: scale(1); filter: saturate(1);
}

/* ---- Reveal directional modifiers ---- */
.reveal--left  { transform: translateX(-44px); }
.reveal--right { transform: translateX(44px); }
.reveal--zoom  { transform: scale(.9); }
.reveal--left.in, .reveal--right.in, .reveal--zoom.in { transform: none; }

/* ---- Hero title line-rise ---- */
.hero__title .ln { display: inline-block; overflow: hidden; }
.hero__title .ln > span {
  display: inline-block; transform: translateY(110%);
  transition: transform 1s var(--ease);
}
.reveal.in .hero__title .ln > span,
.hero__title.in .ln > span { transform: none; }
.hero__title .ln:nth-child(2) > span { transition-delay: .12s; }

/* ============================================================
   APP SECTION
   ============================================================ */
.app {
  position: relative; overflow: clip;
  background: linear-gradient(160deg, var(--moss-pale) 0%, var(--cream) 55%, var(--moss-wash) 100%);
}
@media (max-width: 920px) { .app { overflow-x: clip; overflow-y: visible; } }
html[data-theme="dark"] .app {
  background: linear-gradient(160deg, #13232680 0%, #0E191B 55%, #122124 100%);
}
.app__blob { position: absolute; border-radius: 50%; pointer-events: none; z-index: 0; }
.app__blob--1 { width: 560px; height: 560px; top: -200px; left: -160px; background: radial-gradient(circle, rgba(180,197,177,.4), transparent 68%); }
.app__blob--2 { width: 480px; height: 480px; bottom: -200px; right: -140px; background: radial-gradient(circle, rgba(201,123,99,.22), transparent 68%); }
.app__grid { position: relative; z-index: 2; display: grid; grid-template-columns: .92fr 1.08fr; gap: 0 clamp(36px,5vw,72px); align-items: center; }
.app__intro { grid-column: 1; }
.app__content { grid-column: 1; }
.app__stage { grid-column: 2; grid-row: 1 / 3; }

.app__badge-soon {
  display: inline-flex; align-items: center; gap: 9px; padding: 7px 16px; border-radius: var(--r-pill);
  background: var(--charcoal); color: #fff; font-size: .76rem; font-weight: 600; letter-spacing: .04em;
  margin-bottom: 22px;
}
.app__badge-soon .pip { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 0 rgba(203,161,90,.6); animation: pulse-ring 2.2s infinite; }
.app__title { font-family: var(--serif); font-weight: 500; font-size: clamp(2.1rem,4vw,3.3rem); line-height: 1.08; letter-spacing: -.015em; color: var(--charcoal); }
html[data-theme="dark"] .app__title { color: var(--d-text); }
.app__title em { font-style: italic; color: var(--copper-deep); }
.app__sub { margin-top: 18px; font-size: 1.06rem; line-height: 1.7; color: var(--ink-55); max-width: 480px; text-wrap: pretty; }
.app__features { display: grid; gap: 14px; margin: 28px 0 32px; }
.app__feat { display: flex; align-items: center; gap: 13px; font-size: .98rem; font-weight: 500; color: var(--charcoal); }
html[data-theme="dark"] .app__feat { color: var(--d-text); }
.app__feat-ico { width: 36px; height: 36px; border-radius: 10px; background: var(--moss-pale); display: grid; place-items: center; flex-shrink: 0; }
.app__feat-ico svg { width: 19px; height: 19px; color: var(--moss-deeper); }
html[data-theme="dark"] .app__feat-ico svg { color: var(--moss); }

/* app icon + store badges */
.app__cta-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.app__icon {
  width: 76px; height: 76px; border-radius: 18px; flex-shrink: 0;
  background: linear-gradient(150deg, #B4C5B1 0%, #5E7A5A 60%, #172528 130%);
  display: grid; place-items: center; box-shadow: var(--sh-md), inset 0 1px 0 rgba(255,255,255,.4);
  position: relative; padding: 12px;
}
.app__icon img { width: 100%; height: auto; filter: brightness(0) invert(1); }
.app__icon::after { content:''; position:absolute; inset:0; border-radius:18px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.18); }
.store-badges { display: flex; gap: 12px; flex-wrap: wrap; }
.store-badge {
  display: inline-flex; align-items: center; gap: 11px; padding: 10px 18px; border-radius: 12px;
  background: var(--charcoal); color: #fff; position: relative; transition: transform .35s var(--ease), box-shadow .35s var(--ease);
  border: 1px solid rgba(255,255,255,.08);
}
html[data-theme="dark"] .store-badge { background: #05201F00; background: #0A1413; border-color: rgba(180,197,177,.18); }
.store-badge:hover { transform: translateY(-3px); box-shadow: var(--sh-md); }
.store-badge svg.logo { width: 26px; height: 26px; flex-shrink: 0; }
.store-badge__txt { display: flex; flex-direction: column; line-height: 1.1; }
.store-badge__txt .sm { font-size: .62rem; letter-spacing: .03em; opacity: .8; }
.store-badge__txt .lg { font-size: 1.05rem; font-weight: 600; font-family: var(--sans); }
.store-badge__soon { position: absolute; top: -9px; right: -9px; background: var(--copper); color: #fff; font-size: .58rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 3px 8px; border-radius: var(--r-pill); box-shadow: var(--sh-sm); }

/* ============================================================
   DEVICE STAGE
   ============================================================ */
.app__stage { position: relative; height: clamp(430px, 48vw, 600px); }
.app__stage > * { position: absolute; }

/* floating drift */
@keyframes drift1 { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(-14px) } }
@keyframes drift2 { 0%,100%{ transform: translateY(0) rotate(-4deg) } 50%{ transform: translateY(-10px) rotate(-4deg) } }
@keyframes drift3 { 0%,100%{ transform: translateY(0) } 50%{ transform: translateY(12px) } }

/* ---- LAPTOP (back) ---- */
.dev-laptop { left: 13%; top: 3%; width: min(64%, 440px); z-index: 1; animation: drift3 9s ease-in-out infinite; }
.dev-laptop__screen {
  background: linear-gradient(150deg,#2a2f31,#15191b); border-radius: 14px 14px 4px 4px;
  padding: 9px 9px 9px; box-shadow: var(--sh-lg);
}
.dev-laptop__bezel { background: #0c0f10; border-radius: 8px; padding: 5px; position: relative; }
.dev-laptop__cam { position:absolute; top:5px; left:50%; transform:translateX(-50%); width:5px; height:5px; border-radius:50%; background:#33393b; }
.dev-laptop__view { border-radius: 5px; overflow: hidden; aspect-ratio: 16/10; background: var(--cream); }
.dev-laptop__base { height: 13px; margin: 0 -7%; background: linear-gradient(180deg,#c4c9cb,#9aa0a2 60%,#7b8183); border-radius: 0 0 12px 12px; position: relative; box-shadow: 0 10px 18px rgba(0,0,0,.18); }
.dev-laptop__notch { position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 18%; height: 5px; background: #6c7274; border-radius: 0 0 7px 7px; }

/* ---- iPad (mid, left) ---- */
.dev-ipad { left: 0; bottom: 0; width: min(31%, 206px); z-index: 2; transform: rotate(-5deg); animation: drift2 8s ease-in-out infinite; }
.dev-ipad__frame { background: linear-gradient(150deg,#3a3f41,#1c2123); border-radius: 26px; padding: 11px; box-shadow: var(--sh-lg); }
.dev-ipad__view { border-radius: 16px; overflow: hidden; aspect-ratio: 3/4; background: var(--cream); position: relative; }
.dev-ipad__cam { position: absolute; top: 5px; left: 50%; transform: translateX(-50%); width: 5px; height: 5px; border-radius: 50%; background: rgba(255,255,255,.25); z-index: 5; }

/* ---- iPhone 17 Pro Max (front, animated) ---- */
.dev-phone { right: 2%; bottom: -1%; width: min(37%, 236px); z-index: 3; animation: drift1 7s ease-in-out infinite; }
.dev-phone__frame {
  background: linear-gradient(150deg,#4a4f51,#23282a 55%,#15191b);
  border-radius: 44px; padding: 7px; box-shadow: var(--sh-lg), 0 0 0 1px rgba(255,255,255,.04);
}
.dev-phone__screen { position: relative; border-radius: 38px; overflow: hidden; aspect-ratio: 9/19.5; background: var(--cream); }
.dev-phone__island { position: absolute; top: 11px; left: 50%; transform: translateX(-50%); width: 34%; height: 22px; background: #000; border-radius: 14px; z-index: 20; }
.dev-phone__island::after { content:''; position:absolute; right:13px; top:50%; transform:translateY(-50%); width:7px; height:7px; border-radius:50%; background:#0c1a1c; box-shadow: inset 0 0 2px rgba(120,140,160,.6); }

/* ============================================================
   IN-APP SCREENS (shared)
   ============================================================ */
.appscreen { position: absolute; inset: 0; display: flex; flex-direction: column; background: var(--cream); color: var(--charcoal); font-size: 10px; }
.app-statusbar { display: flex; align-items: center; justify-content: space-between; padding: 13px 20px 4px; font-size: 9px; font-weight: 700; color: var(--charcoal); }
.app-statusbar .icons { display: flex; gap: 3px; align-items: center; }
.app-statusbar svg { width: 11px; height: 11px; }

/* phone screen carousel */
.app-phone__screens { position: absolute; inset: 0; }
.app-phone__screens .appscreen { opacity: 0; transform: translateX(14px) scale(.985); transition: opacity .7s var(--ease), transform .7s var(--ease); pointer-events: none; }
.app-phone__screens .appscreen.active { opacity: 1; transform: none; }

.app-hd { padding: 6px 16px 10px; display: flex; align-items: center; justify-content: space-between; }
.app-hd__hi { font-size: 8px; color: var(--ink-muted); font-weight: 600; }
.app-hd__name { font-family: var(--serif); font-size: 16px; font-weight: 600; color: var(--charcoal); line-height: 1; margin-top: 2px; }
.app-hd__av { width: 30px; height: 30px; border-radius: 50%; background: linear-gradient(150deg,#B4C5B1,#5E7A5A); display: grid; place-items: center; color: #fff; font-weight: 700; font-size: 11px; }

.app-body { flex: 1; overflow: hidden; padding: 0 16px; display: flex; flex-direction: column; gap: 9px; }
.app-card { background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 14px; padding: 11px 12px; box-shadow: 0 4px 14px rgba(23,37,40,.05); }
.app-card--accent { background: linear-gradient(140deg, var(--moss-deeper), #3f543c); color: #fff; border: none; }
.app-card__label { font-size: 7.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; opacity: .7; }
.app-card--accent .app-card__label { color: rgba(255,255,255,.75); opacity: 1; }
.app-card__t { font-size: 12px; font-weight: 700; margin-top: 3px; }
.app-visit { display: flex; align-items: center; gap: 9px; margin-top: 8px; }
.app-visit__av { width: 30px; height: 30px; border-radius: 50%; background: rgba(255,255,255,.18); display: grid; place-items: center; font-weight: 700; font-size: 11px; flex-shrink: 0; border: 1.5px solid rgba(255,255,255,.4); }
.app-visit__meta b { font-size: 11px; display: block; }
.app-visit__meta span { font-size: 8.5px; opacity: .8; }
.app-visit__live { margin-left: auto; display: inline-flex; align-items: center; gap: 4px; font-size: 8px; font-weight: 700; background: rgba(255,255,255,.2); padding: 3px 7px; border-radius: 999px; }
.app-visit__live .dot { width: 5px; height: 5px; border-radius: 50%; background: #7CFFA0; animation: blink 1.4s infinite; }
@keyframes blink { 0%,100%{ opacity:1 } 50%{ opacity:.3 } }

.app-sec-label { font-size: 8px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-muted); margin: 3px 2px -2px; }
.app-row { display: flex; align-items: center; gap: 9px; background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 12px; padding: 8px 10px; }
.app-row__time { font-size: 8px; font-weight: 700; color: var(--copper-deep); width: 30px; flex-shrink: 0; }
.app-row__ico { width: 24px; height: 24px; border-radius: 8px; background: var(--moss-pale); display: grid; place-items: center; flex-shrink: 0; }
.app-row__ico svg { width: 13px; height: 13px; color: var(--moss-deeper); }
.app-row__t b { font-size: 10px; display: block; }
.app-row__t span { font-size: 8px; color: var(--ink-muted); }
.app-row__chk { margin-left: auto; width: 18px; height: 18px; border-radius: 50%; background: var(--moss-deeper); display: grid; place-items: center; flex-shrink: 0; }
.app-row__chk svg { width: 11px; height: 11px; color: #fff; }

/* checklist with draw animation */
.app-task { display: flex; align-items: center; gap: 8px; padding: 6px 0; border-bottom: 1px solid rgba(23,37,40,.06); }
.app-task:last-child { border-bottom: none; }
.app-task__box { width: 16px; height: 16px; border-radius: 5px; border: 1.5px solid var(--moss-deeper); display: grid; place-items: center; flex-shrink: 0; background: var(--moss-deeper); }
.app-task__box svg { width: 10px; height: 10px; color: #fff; }
.app-task__box--open { background: transparent; border-color: rgba(23,37,40,.2); }
.app-task span { font-size: 10px; }
.app-task--done span { color: var(--ink-muted); text-decoration: line-through; }

/* message bubbles */
.app-msg { display: flex; gap: 7px; margin-bottom: 8px; }
.app-msg__av { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(150deg,#B4C5B1,#5E7A5A); flex-shrink: 0; display:grid; place-items:center; color:#fff; font-size:9px; font-weight:700; }
.app-bubble { background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 4px 12px 12px 12px; padding: 7px 9px; font-size: 9.5px; line-height: 1.4; max-width: 78%; }
.app-bubble b { display: block; font-size: 8px; color: var(--copper-deep); margin-bottom: 2px; }
.app-bubble--photo { padding: 0; overflow: hidden; }
.app-bubble--photo .ph { height: 56px; background: linear-gradient(135deg, var(--moss), var(--copper-soft)); display:grid; place-items:center; }
.app-bubble--photo .ph svg { width: 18px; height: 18px; color: rgba(255,255,255,.85); }
.app-bubble--photo .cap { padding: 6px 8px; font-size: 9px; }

/* profile screen */
.app-profile { text-align: center; padding-top: 6px; }
.app-profile__av { width: 64px; height: 64px; border-radius: 50%; margin: 0 auto 8px; background: linear-gradient(150deg,#B4C5B1,#5E7A5A); display: grid; place-items: center; color: #fff; font-size: 22px; font-weight: 700; font-family: var(--serif); box-shadow: var(--sh-sm); }
.app-profile__name { font-family: var(--serif); font-size: 16px; font-weight: 600; }
.app-profile__role { font-size: 9px; color: var(--copper-deep); font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.app-profile__stars { display: flex; gap: 2px; justify-content: center; margin: 7px 0; }
.app-profile__stars svg { width: 12px; height: 12px; color: var(--gold); fill: var(--gold); }
.app-profile__chips { display: flex; gap: 6px; justify-content: center; flex-wrap: wrap; margin-top: 8px; }
.app-chip { font-size: 8px; font-weight: 600; padding: 4px 9px; border-radius: 999px; background: var(--moss-pale); color: var(--moss-deeper); }

/* tab bar */
.app-tabs { display: flex; justify-content: space-around; padding: 8px 12px 16px; border-top: 1px solid rgba(23,37,40,.07); background: var(--white); }
.app-tab { display: flex; flex-direction: column; align-items: center; gap: 3px; color: var(--ink-40); }
.app-tab svg { width: 16px; height: 16px; }
.app-tab span { font-size: 6.5px; font-weight: 600; }
.app-tab.active { color: var(--copper-deep); }

/* dark mode for in-app screens (the app itself stays light for realism, but
   tune frames) — keep app screens light always for product realism */

/* ---- iPad dashboard ---- */
.ipad-dash { padding: 14px 13px; display: flex; flex-direction: column; gap: 8px; height: 100%; }
.ipad-dash__hd { display: flex; align-items: center; justify-content: space-between; }
.ipad-dash__hd .t { font-family: var(--serif); font-size: 13px; font-weight: 700; }
.ipad-dash__hd .av { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(150deg,#B4C5B1,#5E7A5A); }
.ipad-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.ipad-stat { background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 9px; padding: 7px 8px; }
.ipad-stat .n { font-family: var(--serif); font-size: 15px; font-weight: 700; color: var(--moss-deeper); line-height: 1; }
.ipad-stat .l { font-size: 6.5px; color: var(--ink-muted); margin-top: 2px; }
.ipad-bars { background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 9px; padding: 8px; }
.ipad-bars .lab { font-size: 7px; font-weight: 700; color: var(--ink-muted); text-transform: uppercase; letter-spacing: .06em; }
.ipad-bars__chart { display: flex; align-items: flex-end; gap: 4px; height: 40px; margin-top: 6px; }
.ipad-bars__chart i { flex: 1; background: linear-gradient(180deg, var(--moss), var(--moss-deeper)); border-radius: 3px 3px 0 0; transform-origin: bottom; animation: barGrow 1s var(--ease) backwards; }
@keyframes barGrow { from { transform: scaleY(0); } }
.ipad-mini { background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 9px; padding: 8px; display: flex; flex-direction: column; gap: 5px; }
.ipad-mini .row { display: flex; align-items: center; gap: 6px; }
.ipad-mini .row .dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; }
.ipad-mini .row span { font-size: 8px; }
.ipad-mini .row b { margin-left: auto; font-size: 7.5px; color: var(--ink-muted); }

/* ---- Laptop portal ---- */
.portal { display: flex; height: 100%; background: var(--moss-wash); font-size: 9px; }
.portal__side { width: 26%; background: var(--charcoal); padding: 10px 8px; display: flex; flex-direction: column; gap: 7px; }
.portal__logo { font-family: var(--serif); color: #fff; font-size: 11px; font-weight: 700; margin-bottom: 4px; }
.portal__nav { font-size: 7.5px; color: rgba(255,255,255,.55); padding: 4px 6px; border-radius: 5px; display: flex; align-items: center; gap: 5px; }
.portal__nav.active { background: rgba(180,197,177,.18); color: #fff; }
.portal__nav .d { width: 9px; height: 9px; border-radius: 3px; background: currentColor; opacity: .6; }
.portal__main { flex: 1; padding: 11px 12px; display: flex; flex-direction: column; gap: 8px; }
.portal__h { font-family: var(--serif); font-size: 13px; font-weight: 700; }
.portal__cards { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 6px; }
.portal__card { background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 8px; padding: 7px; }
.portal__card .l { font-size: 6.5px; color: var(--ink-muted); text-transform: uppercase; letter-spacing: .05em; font-weight: 700; }
.portal__card .v { font-family: var(--serif); font-size: 13px; font-weight: 700; color: var(--charcoal); margin-top: 2px; }
.portal__card .v small { color: var(--copper-deep); font-size: 8px; }
.portal__wide { background: var(--white); border: 1px solid rgba(23,37,40,.07); border-radius: 8px; padding: 9px; flex: 1; }
.portal__wide .lab { font-size: 7px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-muted); }
.portal__line { display: flex; align-items: flex-end; gap: 3px; height: 46px; margin-top: 7px; }
.portal__line i { flex: 1; background: var(--moss-light); border-radius: 2px 2px 0 0; }
.portal__line i.hi { background: var(--copper); }

@media (max-width: 920px){
  .app { overflow: visible; }
  .app__grid { grid-template-columns: 1fr; gap: 0; }
  .app__intro { grid-column: 1; grid-row: auto; text-align: center; order: 1; }
  .app__content { grid-column: 1; grid-row: auto; text-align: center; order: 3; }
  .app__stage { grid-column: 1; grid-row: auto; order: 2; width: 100%; max-width: 560px; height: min(72vw, 480px); margin: 24px auto 16px; opacity: 1 !important; transform: none !important; visibility: visible !important; position: relative; }
  .app__features { max-width: 440px; margin-inline: auto; text-align: left; }
  .app__cta-row { justify-content: center; }
  .app__sub { margin-inline: auto; }
  .dev-laptop { left: 12%; top: 2%; width: 60%; }
  .dev-ipad { left: 0; bottom: 0; width: 30%; }
  .dev-phone { right: 2%; bottom: 0; width: 36%; }
}
/* mobile phone-only override moved to nutshell-responsive.css */

/* ============================================================
   WAITLIST
   ============================================================ */
.waitlist { margin-top: 30px; max-width: 480px; background: var(--white); border: 1px solid rgba(23,37,40,.08); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--sh-sm); }
html[data-theme="dark"] .waitlist { background: var(--d-surf); border-color: var(--d-border); }
@media (max-width: 920px){ .waitlist { margin-inline: auto; text-align: left; } }
.waitlist__head { display: flex; gap: 13px; align-items: flex-start; margin-bottom: 18px; }
.waitlist__ico { width: 44px; height: 44px; border-radius: 12px; background: var(--moss-pale); display: grid; place-items: center; flex-shrink: 0; }
.waitlist__ico svg { width: 22px; height: 22px; color: var(--moss-deeper); }
html[data-theme="dark"] .waitlist__ico { background: rgba(180,197,177,.12); }
html[data-theme="dark"] .waitlist__ico svg { color: var(--moss); }
.waitlist__t { font-family: var(--serif); font-size: 1.25rem; font-weight: 600; color: var(--charcoal); line-height: 1.1; }
html[data-theme="dark"] .waitlist__t { color: var(--d-text); }
.waitlist__s { font-size: .9rem; color: var(--ink-55); line-height: 1.5; margin-top: 3px; }
.waitlist__row { display: flex; gap: 10px; }
.waitlist__input { flex: 1; min-width: 0; padding: 14px 16px; border: 1.5px solid var(--moss-light); border-radius: var(--r-sm); background: var(--moss-wash); color: var(--charcoal); font-size: .95rem; transition: border-color .3s, background .3s; }
.waitlist__input:focus { outline: none; border-color: var(--copper); background: var(--white); }
.waitlist__input::placeholder { color: var(--ink-muted); }
html[data-theme="dark"] .waitlist__input { background: var(--d-bg2); border-color: var(--d-border); color: var(--d-text); }
html[data-theme="dark"] .waitlist__input:focus { background: var(--d-surf2); border-color: var(--copper); }
.waitlist__input.invalid { border-color: #D9654B; background: rgba(217,101,75,.06); }
.waitlist__btn { flex-shrink: 0; padding-inline: 22px; }
.waitlist__error { color: #C0492F; font-size: .82rem; margin-top: 9px; display: none; }
html[data-theme="dark"] .waitlist__error { color: #F0A48F; }
.waitlist__error.show { display: block; }
.waitlist__check { display: flex; gap: 9px; align-items: flex-start; margin-top: 13px; font-size: .76rem; color: var(--ink-muted); line-height: 1.45; cursor: pointer; }
.waitlist__check input { margin-top: 1px; accent-color: var(--copper); flex-shrink: 0; width: 15px; height: 15px; }
.waitlist__form.hide, .waitlist__head.hide { display: none; }
.waitlist__success { display: none; align-items: center; gap: 14px; }
.waitlist__success.show { display: flex; }
.waitlist__success-ico { width: 50px; height: 50px; border-radius: 50%; background: var(--moss-pale); display: grid; place-items: center; flex-shrink: 0; }
.waitlist__success-ico svg { width: 26px; height: 26px; color: var(--moss-deeper); }
html[data-theme="dark"] .waitlist__success-ico { background: rgba(180,197,177,.14); }
html[data-theme="dark"] .waitlist__success-ico svg { color: var(--moss); }
.waitlist__success b { display: block; font-family: var(--serif); font-size: 1.2rem; color: var(--charcoal); }
html[data-theme="dark"] .waitlist__success b { color: var(--d-text); }
.waitlist__success span { font-size: .86rem; color: var(--ink-55); line-height: 1.45; }
.waitlist__meta { margin-top: 14px; font-size: .8rem; color: var(--ink-muted); display: inline-flex; align-items: center; gap: 8px; }
.waitlist__meta .dot { width: 7px; height: 7px; border-radius: 50%; background: var(--moss-deeper); box-shadow: 0 0 0 0 rgba(94,122,90,.5); animation: pulse-ring 2.2s infinite; }
.waitlist__meta.hide { display: none; }
@media (max-width: 460px){ .waitlist__row { flex-direction: column; } .waitlist__btn { width: 100%; } }
