/* ============================================================
   Components: pill buttons (circle-flood hover), underline
   slide links, chips, circle buttons, arrow rows.
   ============================================================ */

/* --- pill buttons ---------------------------------------------
   Structure:
     <button class="button button--outline">
       <div class="button__bg"></div><span>Label</span>
     </button>
   The bg layer carries the resting look; on hover a dark circle
   scales up inside it and floods the pill. */
.button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 35px;
  padding: 0 20px;
  border-radius: var(--r-pill);
  font-weight: 700;
  font-size: 13px;
  color: var(--text);
  white-space: nowrap;
}
.button span { position: relative; z-index: 1; transition: color var(--dur-base); }

.button__bg {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  overflow: hidden;
  transition: transform var(--dur-base) var(--ease-fill);
}
.button__bg::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 120%;
  aspect-ratio: 1;
  border-radius: 50%;
  background: #1F0812;
  transform: translate3d(-50%, -50%, 0) scale(0);
  transition: transform var(--dur-fill) var(--ease-fill);
}
.button:hover .button__bg::before { transform: translate3d(-50%, -50%, 0) scale(1); }

/* outline variant: transparent fill, 1px white border */
.button--outline .button__bg { border: 1px solid #FFEBD8; }

/* translucent variant (phone pill) */
.button--glass .button__bg { border: 1px solid #FFEBD8; background: rgb(255 235 216 / 0.18); }

/* solid light pill: white bg, black text; floods black, text flips white */
.button--solid { color: #1F0812; }
.button--solid .button__bg { background: #FFEBD8; }
.button--solid:hover span { color: #FFEBD8; }

/* light-context variants (on white sections) */
.button--dark { color: #FFEBD8; }
.button--dark .button__bg { background: #1F0812; }
.button--dark .button__bg::before { background: var(--hover-deep); }
.button--outline-dark { color: #1F0812; }
.button--outline-dark .button__bg { border: 1px solid #1F0812; }
.button--outline-dark:hover span { color: #FFEBD8; }

/* --- underline slide link --------------------------------------
   Resting underline IS the first flat third of a 300%-wide
   squiggle SVG; hover slides it -66.6% so the wavy middle sweeps
   under the text. */
.link {
  position: relative;
  display: inline-block;
  overflow: hidden;
  padding-bottom: 8px;
  font-size: 16px;
  font-weight: 500;
}
.link__graphic {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 300%;
  height: 10px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2px;
  pointer-events: none;
  transition: transform var(--dur-fill) var(--ease-fill);
}
.link:hover .link__graphic { transform: translate3d(-66.6%, 0, 0); }

/* --- arrow title row (portfolio list) --- */
.arrow-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-4);
  padding-block: var(--sp-3);
  border-bottom: 1px solid var(--border);
}
.arrow-row .arrow {
  flex: none;
  transition: transform var(--dur-base);
}
a:hover > .arrow-row .arrow,
.arrow-row:hover .arrow { transform: translateX(8px); }

/* --- circle icon button (scroll-down / circle arrow) --- */
.circle-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 64px;
  height: 64px;
  border: 1px solid currentColor;
  border-radius: 50%;
  transition: background var(--dur-fast), color var(--dur-fast);
}
.section-light .circle-btn:hover { background: #1F0812; color: #FFEBD8; }
.section-dark .circle-btn:hover { background: #FFEBD8; color: #1F0812; }

/* --- image shapes --- */
.circle-img { border-radius: 50%; overflow: hidden; }
.rounded-img { border-radius: var(--r-xl); overflow: hidden; }
.rounded-img img, .circle-img img { width: 100%; height: 100%; object-fit: cover; }
