/* Plus One landing page styles */

/* Reset - only box-sizing (margin/padding handled by Tailwind utilities) */
.po-page *, .po-page *::before, .po-page *::after { box-sizing: border-box; }

/* Hero */
.hero-bg { position: absolute; inset: 0; z-index: 0; background: #FAFAF7; }


/* Chat scroll container - prevent horizontal overflow without breaking sticky */
#po-chat-scroll-container {
  overflow-x: clip;
}

/* Chat window scale-up animation */
.po-chat-zoom-wrapper {
  transform: scale(1);
  transition: transform 0.8s cubic-bezier(0.16, 1, 0.3, 1);
  will-change: transform;
}
/* No scale or zoom on mobile/tablet */
.po-chat-zoom-wrapper.is-scaled-up {
  transform: scale(1);
}
/* Desktop: moderate scale */
@media (min-width: 1024px) {
  .po-chat-window { zoom: 1.1; }
  .po-chat-zoom-wrapper.is-scaled-up {
    transform: scale(1.2);
  }
}
/* Large desktop: full scale */
@media (min-width: 1440px) {
  .po-chat-window { zoom: 1.2; }
  .po-chat-zoom-wrapper.is-scaled-up {
    transform: scale(1.5);
  }
}

/* Chat message reveal animation */
.po-chat-msg {
  opacity: 0;
  transform: translateY(12px);
  transition: opacity 0.4s ease, transform 0.4s ease;
}
.po-chat-msg.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Marquee */
@keyframes po-marquee { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }
@keyframes po-marquee-reverse { 0% { transform: translateX(-50%); } 100% { transform: translateX(0%); } }
.marquee-track { animation: po-marquee 60s linear infinite; display: flex; width: max-content; gap: 24px; }
.marquee-track-reverse { animation: po-marquee-reverse 55s linear infinite; display: flex; width: max-content; gap: 24px; }
.marquee-mask {
  -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
  mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
}

/* Gradient animation for +1 */
@keyframes po-gradient-shift {
  0% { background-position: 0% 50%; }
  100% { background-position: 400% 50%; }
}
.gradient-animate {
  background: linear-gradient(to right, #b8d4a3, #e8d490, #d4a9c4, #a8c4d4, #b8d4a3, #e8d490, #d4a9c4, #a8c4d4, #b8d4a3) !important;
  background-size: 400% 100% !important;
  -webkit-background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  background-clip: text !important;
  animation: po-gradient-shift 6s linear infinite !important;
}

/* Section max width */
.section-max { max-width: 1200px; margin: 0 auto; padding: 0 24px; }

/* Profile pics */
.pfp { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }

/* Slack cards */
.slack-card { background: #fff; border: 1px solid #EEE; border-radius: 12px; padding: 16px 20px; min-width: 450px; max-width: 520px; flex-shrink: 0; }
.slack-msg { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; }
.slack-msg:last-child { margin-bottom: 0; }
.slack-name { font-weight: 600; font-size: 13px; color: #1A1A1A; }
.slack-text { font-size: 13px; color: #666; line-height: 1.5; }
.slack-agent .slack-text { color: #666; }
.slack-text a { color: #2253CE; text-decoration: none; }
.cat-label { display: flex; align-items: center; justify-content: space-between; font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.08em; color: #999; margin-bottom: 12px; }
.cat-icons { display: flex; gap: 6px; align-items: center; }
.cat-icons img { width: 16px; height: 16px; border-radius: 4px; object-fit: cover; }

/* CTA button */
.cta-btn { display: inline-flex; align-items: center; height: 48px; padding: 0 24px; border-radius: 999px; font-size: 15px; font-weight: 500; transition: all 0.2s ease; text-decoration: none; }

/* Overlapping icon stack */
.icon-stack > * { position: relative; box-shadow: 0 0 0 2px #fff; }
.icon-stack > *:nth-child(1) { z-index: 4; }
.icon-stack > *:nth-child(2) { z-index: 3; }
.icon-stack > *:nth-child(3) { z-index: 2; }
.icon-stack > *:nth-child(4) { z-index: 1; }

/* Text secondary */
.text-secondary { color: rgba(26,26,26,0.5) !important; }

/* Feature pills */
.feature-pill { flex: 0 0 calc(20% - 10px) !important; min-width: 0 !important; max-width: none !important; box-sizing: border-box; }
@media(max-width:1100px) { .feature-pill { flex: 0 0 calc(33.33% - 8px) !important; } }
@media(max-width:768px) { .feature-pill { flex: 0 0 calc(50% - 6px) !important; } }
@media(max-width:480px) { .feature-pill { flex: 0 0 100% !important; } }

/* FAQ */
.po-page details summary { cursor: pointer; list-style: none; font-size: 16px; font-weight: 600; }
.po-page details summary::-webkit-details-marker { display: none; }
.po-page details summary::after { content: '+'; float: right; font-size: 20px; font-weight: 400; color: #999; transition: transform 0.2s; }
.po-page details[open] summary::after { content: '\2212'; }
.po-page details .faq-answer { overflow: hidden; animation: po-slideDown 0.3s ease; color: #666; font-size: 15px; line-height: 1.7; }
@keyframes po-slideDown { from { opacity: 0; max-height: 0; } to { opacity: 1; max-height: 500px; } }

/* Container scroll section */
.po-scroll-container { position: relative; }
.po-scroll-card {
  max-width: 960px;
  margin: 0 auto;
  border: 4px solid #6C6C6C;
  padding: 24px;
  background: #222222;
  border-radius: 30px;
  box-shadow: 0 0 #0000004d, 0 9px 20px #0000004a, 0 37px 37px #00000042, 0 84px 50px #00000026, 0 149px 60px #0000000a, 0 233px 65px #00000003;
  transition: transform 0.1s ease-out;
}
.po-scroll-card-inner {
  overflow: hidden;
  border-radius: 16px;
  background: #f3f4f6;
  padding: 16px;
}

/* Roles section */
.po-role-pill {
  position: absolute;
  background: #1A1A1A;
  border-radius: 999px;
  transition: left 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), top 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), width 0.5s cubic-bezier(0.34, 1.56, 0.64, 1), height 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
  z-index: 0;
  pointer-events: none;
}
.po-role-tab {
  position: relative;
  display: inline-block;
  padding: 8px 18px;
  border-radius: 999px;
  font-size: 14px;
  font-family: 'Switzer', system-ui, sans-serif;
  cursor: pointer;
  border: none;
  background: transparent;
  color: #666;
  transition: color 0.2s;
  white-space: nowrap;
  z-index: 1;
}
.po-role-tab.active { color: #fff; }
.po-roles-card {
  background: #fff;
  border-radius: 20px;
  border: 1px solid rgba(26,26,26,0.06);
  padding: 40px;
  overflow: hidden;
}
.po-role-content {
  opacity: 1;
  filter: blur(0px);
  transform: translateY(0);
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out, filter 0.3s ease-in-out;
}
.po-role-content.fading {
  opacity: 0;
  filter: blur(4px);
  transform: translateY(-10px);
}
.po-role-content.entering {
  opacity: 0;
  filter: blur(4px);
  transform: translateY(10px);
}

/* Book testimonial - page-flip */
.po-flipbook-container { position: relative; }
.po-flipbook-container .stf__parent { box-shadow: 0 8px 32px rgba(0,0,0,0.12), 0 2px 8px rgba(0,0,0,0.08); border-radius: 8px; }
.po-book-page { background: #fff; }
.po-book-nav {
  margin-top: 28px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
}
.po-book-nav button {
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  color: #999;
  font-size: 24px;
  line-height: 1;
  transition: color 0.2s;
}
.po-book-nav button:hover { color: #333; }

/* Bucket animation */
@keyframes po-chip-enter {
  0% { transform: translate(-50%, 0) translateY(-60px) scale(0.8); opacity: 0; }
  50% { opacity: 1; }
  100% { transform: translate(-50%, 0) translateY(0) scale(1.25); opacity: 1; }
}
@keyframes po-chip-exit {
  0% { transform: translate(-50%, 0) translateY(0) scale(1.25); }
  100% { transform: translate(-50%, 0) translateY(180px) scale(0.8); }
}
.po-bucket-chip {
  position: absolute;
  top: -8%;
  left: 50%;
  transform: translate(-50%, 0) translateY(-80px) scale(0.8);
  transform-origin: bottom center;
  background: #fff;
  border: 1px solid #E5E5E0;
  border-radius: 9999px;
  padding: 8px;
  width: 280px;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
  display: none;
  align-items: center;
  gap: 8px;
  opacity: 0;
  pointer-events: auto;
  z-index: 10;
}
.po-bucket-chip.entering {
  display: flex;
  animation: po-chip-enter 0.5s cubic-bezier(0.455, 0.03, 0.515, 0.955) forwards;
}
.po-bucket-chip.visible {
  display: flex;
  transform: translate(-50%, 0) translateY(0) scale(1.25);
  opacity: 1;
}
.po-bucket-chip.exiting {
  display: flex;
  opacity: 1;
  animation: po-chip-exit 0.8s ease forwards;
}

/* Typewriter cursor */
@keyframes po-blink { 0%,100% { opacity: 0.4; } 50% { opacity: 0; } }
.po-cursor { animation: po-blink 1s infinite; }

/* Mobile */
@media (max-width: 767px) {
  /* Nav */
  .po-page nav { padding-left: 16px !important; padding-right: 16px !important; }

  /* Section spacing */
  .section-max { padding: 0 16px; }

  /* Hero */
  .po-page section.relative.min-h-screen { min-height: auto !important; padding-top: 48px !important; padding-bottom: 48px !important; }

  /* Scroll container overlap */
  .po-page > div.-mt-\[450px\] { margin-top: -200px !important; }
  .po-scroll-container { min-height: 30rem !important; }
  .po-scroll-card { border-width: 3px; padding: 12px; border-radius: 20px; }
  .po-scroll-card-inner { padding: 10px; border-radius: 10px; }

  /* Marquee cards */
  .slack-card { min-width: 280px !important; max-width: 320px !important; padding: 12px 14px !important; }

  /* Opportunity section */
  .po-page section.pt-\[60px\].pb-\[320px\] { padding-bottom: 80px !important; }

  /* How it works */
  .how-section { padding: 60px 16px !important; }
  .how-section h2 { font-size: 28px !important; line-height: 1.2 !important; }
  .how-cards { flex-direction: column !important; }
  .how-cards .text-6xl { font-size: 36px !important; line-height: 1.2 !important; }
  .how-cards .text-\[22px\] { font-size: 18px !important; }

  /* Features */
  .features-section { padding: 60px 16px !important; }
  .features-section .text-\[45px\] { font-size: 28px !important; line-height: 1.2 !important; }

  /* Book testimonial */
  .po-book-wrapper { flex-direction: column !important; gap: 32px !important; padding: 32px 16px !important; text-align: center; }
  .po-book-wrapper h2 { text-align: center !important; font-size: 28px !important; }

  /* Bucket / Plus ones are smart */
  .po-page section.py-\[140px\] { padding: 60px 16px !important; }
  .po-page section.py-\[140px\] h2 { font-size: 28px !important; line-height: 1.2 !important; }

  /* Roles section */
  .po-roles-section { padding: 60px 16px !important; }
  .po-roles-wrapper { flex-direction: column !important; }
  .po-roles-left, .po-roles-right { width: 100% !important; }
  .po-roles-left { padding-right: 0 !important; }
  .po-roles-left h2 { font-size: 28px !important; }
  .po-role-tab { padding: 6px 12px !important; font-size: 12px !important; }
  .po-roles-card { padding: 24px !important; }
  .po-role-image { width: 100% !important; height: 200px !important; }
  .po-role-content-inner { flex-direction: column !important; }

  /* Role tabs scrollable on mobile */
  #po-role-tabs { flex-wrap: nowrap !important; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; padding-bottom: 4px; }
  #po-role-tabs::-webkit-scrollbar { display: none; }

  /* Bucket chips */
  .po-bucket-chip { width: 220px !important; padding: 6px !important; }
  .po-bucket-chip .w-10 { width: 32px !important; height: 32px !important; }
  .po-bucket-chip .text-xs { font-size: 11px !important; }
  .po-bucket-chip .text-xxs { font-size: 10px !important; }

  /* Security & CTA sections */
  .po-page section.py-24 { padding-top: 60px !important; padding-bottom: 60px !important; }

  /* Footer CTA */
  .po-page section.py-24.bg-\[\#1A1A1A\] h2 { font-size: 28px !important; }

}

/* Waitlist form */
.po-waitlist-form { display: flex; flex-direction: column; }
.waitlist-email {
  height: auto;
  padding: 0;
  border: none;
  border-radius: 0;
  font-size: 16px;
  font-family: inherit;
  outline: none;
  background: transparent;
  color: #1A1A1A;
  min-width: 0;
  flex: 1;
}
.waitlist-email:focus { border-color: transparent; outline: none; box-shadow: none; }
.waitlist-email::placeholder { color: #bcbcbc; }
.waitlist-email-dark {
  background: rgba(255,255,255,0.1);
  border-color: rgba(255,255,255,0.2);
  color: #fff;
}
.waitlist-email-dark:focus { border-color: rgba(255,255,255,0.5); }
.waitlist-email-dark::placeholder { color: rgba(255,255,255,0.4); }
