/* =====================================================
   HOT BUTTER LABS — Studio Landing Page
   Brand: #FFCC00  #FF5500  #1A1A1A  #FFFFFF
   ===================================================== */

:root {
  --yellow:  #FFCC00;
  --orange:  #FF5500;
  --black:   #111111;
  --card:    #1A1A1A;
  --border:  rgba(255,255,255,0.08);
  --border-h:rgba(255,204,0,0.28);
  --text:    #FFFFFF;
  --text-2:  #999999;
  --text-3:  #555555;

  --font-h: 'Arial Black', 'Helvetica Neue', Arial, sans-serif;
  --font-b: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

  --r-lg: 20px;
}

/* ── Reset ───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--font-b);
  background: var(--black);
  color: var(--text);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
}
a   { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }

/* ── Gradient text ───────────────────────────────── */
.text-gradient {
  background: linear-gradient(135deg, var(--yellow) 0%, var(--orange) 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* ── Buttons ─────────────────────────────────────── */
.btn-nav {
  display: inline-flex; align-items: center;
  padding: 10px 22px;
  background: linear-gradient(135deg, var(--yellow) 0%, var(--orange) 100%);
  color: #111; font-family: var(--font-h); font-weight: 900; font-size: .8rem;
  border-radius: 50px; transition: all .2s; white-space: nowrap;
}
.btn-nav:hover { transform: translateY(-1px); box-shadow: 0 4px 16px rgba(255,85,0,.35); }

.btn-cta {
  display: inline-flex; align-items: center;
  padding: 14px 28px;
  background: linear-gradient(135deg, var(--yellow), var(--orange));
  color: #111; font-family: var(--font-h); font-weight: 900; font-size: .88rem;
  border-radius: 50px; border: none; cursor: pointer; white-space: nowrap;
  transition: all .2s; align-self: flex-start;
}
.btn-cta:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(255,85,0,.35); }

/* ── Nav ─────────────────────────────────────────── */
.nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 200;
  padding: 24px 0; transition: all .3s ease;
}
.nav-scrolled {
  background: rgba(17,17,17,.96);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
}
.nav-container {
  max-width: 1440px; margin: 0 auto; padding: 0 60px;
  display: flex; align-items: center; justify-content: space-between;
}
.nav-logo img { height: 30px; width: auto; }
.nav-links { display: flex; align-items: center; }

/* ── Studio Hero ─────────────────────────────────── */
.studio-hero {
  position: relative; isolation: isolate;
  min-height: 100vh; min-height: 100svh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: 120px 0 80px;
}
.studio-hero::before {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(60% 45% at 50% 28%, rgba(255,85,0,.10), transparent 70%);
}
.studio-hero::after {
  content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: radial-gradient(55% 55% at 50% 64%, rgba(255,204,0,.07), transparent 70%);
}
.hero-head {
  text-align: center;
  display: flex; flex-direction: column; align-items: center;
}
.hero-logo {
  width: 180px; height: 180px; object-fit: contain; flex-shrink: 0;
  filter: drop-shadow(0 8px 28px rgba(255,85,0,.25));
}
.studio-name {
  font-family: var(--font-h); font-weight: 900;
  font-size: clamp(2.2rem, 4vw, 3.6rem);
  line-height: 1.2; letter-spacing: -.02em;
  max-width: 780px;
}

/* ── Umbrella content wrapper ─────────────────────── */
.studio-content {
  width: 100%; max-width: 1100px; padding: 0 60px;
  margin-top: 28px;
}
.studio-connector { width: 100%; height: 80px; }
.studio-connector svg { display: block; width: 100%; height: 100%; }

/* ── Product grid: pyramid (Pat tallest, sides shorter) ── */
.studio-grid {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
  align-items: end; /* bottom-align all cards — side cards hang from Pat's bottom edge */
}
.product-card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--r-lg); padding: 20px 22px;
  display: flex; flex-direction: column; gap: 10px;
  transition: border-color .25s, transform .25s, box-shadow .25s;
  text-decoration: none; color: inherit;
  text-align: left; align-items: flex-start;
}
.product-card:hover { border-color: var(--border-h); transform: translateY(-3px); }

/* Card header: icon + label always centered */
.product-header {
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  width: 100%; padding-bottom: 4px;
}
.product-icon { font-size: 1.7rem; color: var(--yellow); line-height: 1; }
.product-label {
  font-size: .68rem; color: var(--yellow); font-weight: 700;
  text-transform: uppercase; letter-spacing: .09em; text-align: center;
}

/* Pat card: pyramid peak — larger padding, bigger text, persistent glow */
.product-card--main {
  border-color: rgba(255,204,0,.35); background: #1a1a08;
  box-shadow: 0 0 52px rgba(255,204,0,.07);
  padding: 52px 28px;
  position: relative; overflow: visible;
}

/* ── Private preview stamp ───────────────────────── */
.stamp {
  position: absolute; z-index: 10;
  width: 90px; height: 90px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 10px;
  font-family: var(--font-h); font-weight: 900;
  font-size: .52rem; letter-spacing: .12em; text-transform: uppercase; line-height: 1.5;
  color: var(--orange);
  border: 2.5px solid var(--orange);
  outline: 1.5px solid rgba(255,85,0,.35);
  outline-offset: 4px;
  transform: rotate(-18deg);
  opacity: 0.85;
  pointer-events: none; user-select: none;
}
.stamp--card {
  width: 78px; height: 78px; font-size: .47rem;
  top: 14px; right: 14px;
}
.stamp--section {
  top: 56px; right: clamp(40px, 6vw, 80px);
}
.product-card--main h3 { font-size: 1.5rem; }
.product-card--main:hover {
  border-color: rgba(255,204,0,.65);
  box-shadow: 0 10px 44px rgba(255,204,0,.14), 0 0 64px rgba(255,204,0,.07);
  transform: translateY(-5px);
}

.product-card h3 {
  font-family: var(--font-h); font-weight: 900;
  font-size: 1.1rem; color: var(--text); line-height: 1.1;
  text-align: center; width: 100%;
}
.product-card p { font-size: .85rem; color: var(--text-2); line-height: 1.7; flex: 1; }
.product-link {
  font-size: .78rem; font-weight: 700; color: var(--orange);
  font-family: var(--font-h); transition: color .2s; margin-top: 4px;
}
.product-card:hover .product-link { color: var(--yellow); }

/* ── Badge dot ───────────────────────────────────── */
.badge-dot {
  width: 6px; height: 6px; background: var(--orange); border-radius: 50%;
  animation: bdot 2s ease-in-out infinite;
}
@keyframes bdot { 0%,100% { opacity:1; } 50% { opacity:.3; } }

/* ── Form ────────────────────────────────────────── */
.waitlist-form {
  display: flex; gap: 10px; width: 100%; max-width: 480px;
}
.form-input {
  flex: 1; padding: 15px 22px;
  background: var(--card); border: 1px solid var(--border);
  border-radius: 50px; color: var(--text); font-size: .9rem;
  outline: none; transition: border-color .25s; font-family: var(--font-b);
}
.form-input:focus { border-color: rgba(255,204,0,.4); }
.form-input::placeholder { color: var(--text-3); }
.form-input.input-error {
  border-color: rgba(255,85,0,.6);
  animation: shake .3s ease;
}
@keyframes shake {
  0%,100% { transform: translateX(0); }
  25%      { transform: translateX(-6px); }
  75%      { transform: translateX(6px); }
}
.form-note { font-size: .76rem; color: var(--text-3); }
.form-success {
  padding: 16px 26px;
  background: rgba(74,222,128,.08); border: 1px solid rgba(74,222,128,.2);
  border-radius: 50px; color: #4ADE80;
  font-family: var(--font-h); font-weight: 700; font-size: .85rem;
}

/* ── Scroll hint ──────────────────────────────────── */
.scroll-hint {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  display: flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: rgba(255,204,0,.1); border: 1px solid rgba(255,204,0,.3);
  color: var(--yellow); font-size: 1.5rem; cursor: pointer; z-index: 20;
  animation: hintBob 1.8s ease-in-out infinite;
  transition: background .2s;
}
.scroll-hint:hover { background: rgba(255,204,0,.2); }
.scroll-hint i { transition: transform .3s; }
.scroll-hint.is-up i { transform: rotate(180deg); }
@keyframes hintBob {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%     { transform: translateX(-50%) translateY(6px); }
}
@media (prefers-reduced-motion: reduce) { .scroll-hint { animation: none; } }

/* ── Shared section ──────────────────────────────── */
.section-container {
  max-width: 1440px; margin: 0 auto; padding: 0 60px;
  width: 100%; /* needed when parent is flex */
}
.section-title {
  font-family: var(--font-h); font-weight: 900;
  font-size: clamp(1.8rem, 3.5vw, 2.8rem); line-height: 1.1; letter-spacing: -.02em;
}
.title-block  { display: block; }
.title-nowrap { white-space: nowrap; }

/* ── Shared product-section ──────────────────────── */
.ps {
  position: relative;
  min-height: 100vh; min-height: 100svh;
  display: flex; align-items: center;
  padding: max(60px, 8vh) 0;
  border-top: 1px solid var(--border);
}

/* ── Audit section — thread anchor: left ─────────── */
.ps--audit {
  background: radial-gradient(ellipse 65% 80% at 18% 50%, rgba(255,204,0,.06), transparent 70%);
}
.ps--audit::before {
  content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(to bottom,
    transparent 0%, rgba(255,204,0,.22) 25%, rgba(255,204,0,.22) 75%, transparent 100%);
  pointer-events: none;
}

.ps-layout {
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 52px; align-items: center;
}
.ps-intro {
  display: flex; flex-direction: column; gap: 20px;
}
.ps-sub  { font-size: .95rem; color: var(--text-2); line-height: 1.75; max-width: 44ch; }
.ps-note { font-size: .76rem; color: var(--text-3); }
.ps-list {
  list-style: none; padding: 0;
  display: flex; flex-direction: column; gap: 10px;
}
.ps-list li {
  font-size: .92rem; color: var(--text-2); line-height: 1.6;
  padding-left: 22px; position: relative;
}
.ps-list li::before {
  content: '→'; position: absolute; left: 0;
  color: var(--yellow); font-weight: 700;
}
.ps-audit-img {
  border-radius: 14px; overflow: hidden;
  border: 1px solid rgba(255,204,0,0.18);
  box-shadow: 0 12px 52px rgba(0,0,0,0.65), 0 2px 8px rgba(0,0,0,0.35);
}
.ps-audit-img img {
  display: block; width: 100%; height: auto;
}

/* ── Trusted Execution Platform — thread: center ─── */
.tep {
  position: relative;
  min-height: 100vh; min-height: 100svh;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding: max(60px, 8vh) 0;
  border-top: 1px solid var(--border);
  background: radial-gradient(ellipse 80% 60% at 50% 45%, rgba(255,85,0,.06), transparent 70%);
}
.tep-head {
  max-width: 640px; margin: 0 auto; padding: 0 32px; text-align: center;
  display: flex; flex-direction: column; align-items: center; gap: 18px;
}
.tep-sub { font-size: .98rem; color: var(--text-2); line-height: 1.7; max-width: 52ch; }
.tep-sub span { display: block; }

.loop {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 28px; max-width: 920px; margin: 56px auto 0; padding: 0 32px; width: 100%;
}
.loop-step {
  display: flex; flex-direction: column; align-items: center;
  text-align: center; gap: 14px; position: relative;
}
.loop-step .ico {
  width: 84px; height: 84px; border-radius: 20px; display: grid; place-items: center;
  font-size: 46px; color: var(--yellow);
  background: rgba(255,204,0,.08); border: 1px solid var(--border-h);
}
.loop-step b { font-size: 1.02rem; }
.loop-step p { color: var(--text-2); font-size: .9rem; max-width: 22ch; }
.loop-step:not(:last-child)::after {
  content: '➔'; position: absolute; top: 24px; right: -24px;
  color: var(--yellow); font-size: 1.9rem; line-height: 1;
}
/* ── Appetizers section — thread anchor: right, footer embedded ── */
.ps--appetizers {
  background: radial-gradient(ellipse 65% 80% at 18% 50%, rgba(255,204,0,.06), transparent 70%);
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  padding: 0; /* padding handled by section-container */
}
.ps--appetizers::after {
  content: ''; position: absolute; right: 0; top: 0; bottom: 0; width: 2px;
  background: linear-gradient(to bottom,
    transparent 0%, rgba(255,204,0,.12) 25%, rgba(255,204,0,.12) 75%, transparent 100%);
  pointer-events: none;
}
/* Content area grows to fill space above the footer */
.ps--appetizers > .section-container {
  flex: 1;
  display: flex; flex-direction: column; gap: 48px;
  justify-content: center;
  padding-top: max(60px, 8vh); padding-bottom: max(60px, 8vh);
}
/* Footer sits at the bottom of the appetizers section */
.ps--appetizers .footer { margin-top: 0; }

/* Chip image: card on the left of the appetizers layout row */
.app-layout {
  display: flex; align-items: center; gap: 52px;
}
.app-chip {
  flex: 0 0 42%;
}
.app-chip img {
  width: 100%; height: auto;
  border-radius: 20px;
  border: 1px solid rgba(255,204,0,0.12);
  box-shadow: 0 8px 40px rgba(0,0,0,0.45), 0 0 60px rgba(255,85,0,0.07);
}
.app-content {
  flex: 1; display: flex; flex-direction: column; align-items: flex-end;
}
.app-subscribe {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  padding-top: 36px; border-top: 1px solid var(--border);
}

.app-head {
  display: flex; flex-direction: column; gap: 16px; margin-bottom: 52px;
  max-width: 640px; text-align: right; align-items: flex-end;
}
.app-sub { font-size: .95rem; color: var(--text-2); line-height: 1.75; max-width: 52ch; text-align: right; }
.app-cards {
  display: grid; grid-template-columns: 1fr; gap: 22px; width: 100%;
}

.studio-app {
  display: block; padding: 22px 24px;
  background: var(--card); border: 1px solid var(--border);
  border-radius: var(--r-lg); transition: border-color .2s, transform .2s;
}
.studio-app:hover { border-color: var(--border-h); transform: translateY(-2px); }
.studio-app-name { display: block; font-family: var(--font-h); font-weight: 900; font-size: 1.1rem; color: var(--yellow); }
.studio-app-desc { display: block; margin-top: 6px; font-size: .88rem; color: var(--text-2); }
.studio-app-link { display: block; margin-top: 12px; font-size: .8rem; font-weight: 600; color: var(--text-3); transition: color .2s; }
.studio-app:hover .studio-app-link { color: var(--yellow); }
.studio-app--soon { opacity: .5; cursor: default; }
.studio-app--soon:hover { transform: none; border-color: var(--border); }
.kitchen-dots { display: flex; gap: 8px; align-items: center; margin-top: 14px; }
.kitchen-dots span { width: 8px; height: 8px; border-radius: 50%; background: rgba(255,204,0,.25); }

/* ── Footer ──────────────────────────────────────── */
.footer { padding: 28px 0; border-top: 1px solid var(--border); }
.footer-inner {
  max-width: 1440px; margin: 0 auto; padding: 0 60px;
  display: flex; align-items: center; justify-content: space-between;
}
.footer-wordmark { height: 22px; object-fit: contain; opacity: .6; }
.footer-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.footer-cred { font-size: .72rem; color: var(--text-3); }
.footer-copy { font-size: .72rem; color: var(--text-3); }

/* Pat: screenshot sits below the loop steps, centered */
.tep-preview {
  max-width: 920px; width: 100%; padding: 0 32px;
  margin: 44px auto 0;
  border-radius: 16px; overflow: hidden;
  border: 1px solid var(--border);
  box-shadow: 0 8px 48px rgba(0,0,0,0.55);
  height: 340px;
}
.tep-screenshot {
  display: block; width: 100%; height: auto;
  object-fit: cover; object-position: top left;
}

/* ── Ambient animations (GPU: transform + opacity only) ── */
@media (prefers-reduced-motion: no-preference) {
  /* Hero: two orbs drift independently for continuous motion */
  .studio-hero::before { animation: hero-orb-a 20s ease-in-out infinite alternate; }
  .studio-hero::after  { animation: hero-orb-b 28s ease-in-out infinite alternate; }
  /* Audit: amber orb drifts slowly left */
  .ps--audit::after {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: radial-gradient(circle 440px at 16% 46%, rgba(255,204,0,.11), transparent 65%);
    animation: orb-l 14s ease-in-out infinite alternate;
  }
  /* Pat: orange orb breathes at center — larger, more prominent as flagship */
  .tep::before {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: radial-gradient(circle 600px at 50% 50%, rgba(255,85,0,.10), transparent 65%);
    animation: orb-c 11s ease-in-out infinite alternate;
  }
  /* Appetizers: amber orb sits behind chip image on the left */
  .ps--appetizers::before {
    content: ''; position: absolute; inset: 0; z-index: -1; pointer-events: none;
    background: radial-gradient(circle 420px at 16% 54%, rgba(255,204,0,.12), transparent 65%);
    animation: orb-l 17s ease-in-out infinite alternate;
  }
}
@keyframes hero-orb-a {
  from { transform: translate(0, 0) scale(1); opacity: 0.8; }
  to   { transform: translate(5%, 8%) scale(1.15); opacity: 1; }
}
@keyframes hero-orb-b {
  from { transform: translate(0, 0) scale(1); opacity: 0.5; }
  to   { transform: translate(-6%, -5%) scale(1.2); opacity: 0.9; }
}
@keyframes orb-l {
  from { transform: translate(0, 0)   scale(1); }
  to   { transform: translate(-4%, 7%) scale(1.13); }
}
@keyframes orb-c {
  from { transform: scale(0.82); opacity: 0.55; }
  to   { transform: scale(1.15); opacity: 1; }
}
@keyframes orb-r {
  from { transform: translate(0, 0)  scale(1); }
  to   { transform: translate(4%, -7%) scale(1.11); }
}

/* ── Responsive ──────────────────────────────────── */
@media (max-width: 900px) {
  .nav-container     { padding: 0 32px; }
  .studio-content    { padding: 0 32px; }
  .section-container { padding: 0 32px; }
  .footer-inner      { padding: 0 32px; }
  .studio-connector  { display: none; }

  .studio-grid { grid-template-columns: 1fr; gap: 16px; margin-top: 32px; }
  .product-card--main { padding: 28px 22px; box-shadow: none; }

  .ps         { padding: max(48px, 6vh) 0; }
  .ps-layout  { grid-template-columns: 1fr; gap: 40px; }
  .tep-preview { height: 200px; }
  .ps--audit::before   { display: none; }
  .ps--appetizers::after { display: none; }

  .app-chip   { display: none; }
  .app-cards  { grid-template-columns: 1fr; }
  .app-content { align-items: flex-start; }
  .app-head   { margin-bottom: 32px; text-align: left; align-items: flex-start; }
  .app-sub    { text-align: left; }
  .app-subscribe { align-items: flex-start; }
  .ps--appetizers > .section-container { gap: 32px; padding: max(48px, 6vh) 32px; }
  .ps--appetizers { padding: 0; }

  .loop { grid-template-columns: 1fr; gap: 46px; max-width: 380px; }
  .loop-step:not(:last-child)::after {
    top: auto; bottom: -34px; right: auto; left: 50%;
    transform: translateX(-50%) rotate(90deg); font-size: 1.7rem;
  }
  .scroll-hint { left: auto; right: 24px; transform: none; }
  @keyframes hintBob {
    0%,100% { transform: translateY(0); }
    50%     { transform: translateY(6px); }
  }
}

@media (max-width: 480px) {
  .studio-name   { font-size: 2.6rem; }
  .waitlist-form { flex-direction: column; }
  .footer-inner  { flex-direction: column; gap: 8px; text-align: center; }
  .footer-right  { align-items: center; }
}
