/* v6 — showcase grid, lightbox, custom dropdown, cookie banner, legal/privacy, consent */

/* ─── Showcase grid (16:9 hero + 3× 9:16 row) ─── */
.sw-grid { display: grid; gap: 18px; max-width: 1400px; margin: 0 auto; }
.sw-row  { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.sw-tile {
  position: relative;
  display: block;
  border: 0; padding: 0; margin: 0; background: transparent;
  border-radius: 18px; overflow: hidden;
  cursor: pointer;
  text-align: left;
  isolation: isolate;
  background: #0a0814;
  transform: scale(1);
  transition: transform 360ms var(--ease-out-expo), border-color 360ms var(--ease-out-expo);
  box-shadow: 0 1px 0 rgba(255,255,255,.03) inset, 0 30px 60px -30px rgba(0,0,0,.6);
}
.sw-tile::before {
  /* Iridescent border glow on hover */
  content: ''; position: absolute; inset: -1px; border-radius: inherit;
  background: conic-gradient(from 220deg, var(--irid-1), var(--irid-2), var(--irid-3), var(--irid-4), var(--irid-1));
  opacity: 0; z-index: -1;
  transition: opacity 400ms var(--ease-out-expo);
  filter: blur(12px);
}
.sw-tile::after {
  /* Inner border outline */
  content: ''; position: absolute; inset: 0; border-radius: inherit;
  border: 1px solid var(--glass-border);
  pointer-events: none;
  transition: border-color 360ms var(--ease-out-expo);
}
.sw-tile:hover { transform: scale(1.015); }
.sw-tile:hover::before { opacity: .55; }
.sw-tile:hover::after { border-color: rgba(167,139,250,.5); }
.sw-tile:focus-visible { outline: 2px solid var(--irid-1); outline-offset: 4px; }

.sw-tile.r-16x9 { aspect-ratio: 16 / 9; }
.sw-tile.r-9x16 { aspect-ratio: 9 / 16; }
.sw-tile > svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.sw-meta {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 18px 20px;
  display: flex; align-items: end; justify-content: space-between; gap: 16px;
  background: linear-gradient(180deg, transparent, rgba(7,7,12,.78) 60%);
  z-index: 1;
}
.sw-meta .sw-title { font-family: var(--f-display); font-weight: 300; font-size: 20px; letter-spacing: -0.01em; line-height: 1.2; color: var(--ink); }
.sw-meta .sw-client { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--ink-mute); margin-top: 6px; }
.sw-meta .sw-idx { font-family: var(--f-mono); font-size: 10.5px; letter-spacing: 0.18em; color: var(--ink-faint); white-space: nowrap; }

@media (max-width: 760px) {
  .sw-row { grid-template-columns: 1fr 1fr; }
  .sw-row .sw-tile:nth-child(3) { grid-column: span 2; aspect-ratio: 16/9; }
  .sw-meta { padding: 14px 14px; }
  .sw-meta .sw-title { font-size: 16px; }
}

/* ─── Lightbox ─── */
.lb-backdrop {
  position: fixed; inset: 0; z-index: 200;
  background: rgba(7,7,12,.78);
  backdrop-filter: blur(24px) saturate(140%);
  -webkit-backdrop-filter: blur(24px) saturate(140%);
  display: flex; align-items: center; justify-content: center;
  padding: clamp(20px, 4vh, 48px);
  animation: lbFade 240ms var(--ease-out-expo);
}
@keyframes lbFade { from { opacity: 0; } to { opacity: 1; } }
.lb-card {
  position: relative; width: min(1200px, 100%);
  max-height: calc(100vh - 80px);
  display: grid; gap: 24px;
  background: rgba(15,12,28,.78);
  border: 1px solid var(--glass-border);
  border-radius: 22px; padding: 22px;
  backdrop-filter: blur(40px); -webkit-backdrop-filter: blur(40px);
  box-shadow: 0 40px 100px -30px rgba(0,0,0,.7);
  animation: lbPop 360ms var(--ease-out-expo);
}
/* 16:9 layout — wide media, info beside it */
.lb-card.lb-h { grid-template-columns: 1.4fr 1fr; }
/* 9:16 layout — media is naturally narrow (constrained by height); info fills the remainder */
.lb-card.lb-v { grid-template-columns: auto 1fr; align-items: stretch; }
@keyframes lbPop { from { opacity: 0; transform: scale(.96) translateY(20px); } to { opacity: 1; transform: none; } }

.lb-media { position: relative; border-radius: 14px; overflow: hidden; background: #0a0814; align-self: center; }
.lb-media.r-16x9 { aspect-ratio: 16/9; width: 100%; }
/* Vertical: the media height is the limiter; width follows from aspect-ratio */
.lb-media.r-9x16 {
  aspect-ratio: 9/16;
  height: min(78vh, calc(100vh - 200px));
  width: auto;
  align-self: center; justify-self: center;
}
.lb-media > svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.lb-info { display: flex; flex-direction: column; gap: 14px; padding: 18px 8px; align-self: center; min-width: 0; }
.lb-info .lb-idx { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.18em; color: var(--ink-faint); }
.lb-info .lb-title { font-family: var(--f-display); font-weight: 300; font-size: clamp(28px, 3.4vw, 44px); letter-spacing: -0.02em; line-height: 1.1; color: var(--ink); margin: 0; }
.lb-info .lb-client { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-mute); }
.lb-info .lb-desc { font-size: 15px; line-height: 1.55; color: var(--ink-dim); margin: 0; }

.lb-close, .lb-nav {
  position: absolute; top: 16px; width: 38px; height: 38px;
  border-radius: 999px; background: rgba(255,255,255,.06); color: var(--ink);
  border: 1px solid var(--glass-border);
  cursor: pointer; font-size: 16px;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background 200ms var(--ease-ui), border-color 200ms var(--ease-ui);
  z-index: 2;
}
.lb-close { right: 16px; }
.lb-close:hover, .lb-nav:hover { background: rgba(255,255,255,.12); border-color: rgba(255,255,255,.25); }
.lb-nav { top: 50%; transform: translateY(-50%); }
.lb-prev { left: -56px; }
.lb-next { right: -56px; }

@media (max-width: 880px) {
  /* Stack everything: media on top, info below; whole card scrolls if needed */
  .lb-card,
  .lb-card.lb-h,
  .lb-card.lb-v { grid-template-columns: 1fr; padding: 16px; max-height: calc(100vh - 40px); overflow: auto; }
  .lb-prev { left: 12px; }
  .lb-next { right: 12px; }
  .lb-media.r-9x16 { height: auto; aspect-ratio: 9/16; max-height: 60vh; max-width: 100%; }
  .lb-info { padding: 4px 4px 8px; }
}

/* ─── Custom dropdown ─── */
.dd { position: relative; }
.dd-trigger {
  width: 100%; height: 48px;
  display: inline-flex; align-items: center; justify-content: space-between;
  padding: 0 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  color: var(--ink); font-family: var(--f-sans); font-size: 14.5px;
  cursor: pointer;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: border-color 200ms var(--ease-ui), background 200ms var(--ease-ui);
}
.dd-trigger:hover { border-color: rgba(255,255,255,.22); background: rgba(255,255,255,.06); }
.dd-trigger:focus-visible { outline: 2px solid var(--irid-1); outline-offset: 2px; }
.dd-trigger[aria-expanded="true"] { border-color: rgba(167,139,250,.45); background: rgba(255,255,255,.06); }
.dd-chev { color: var(--ink-mute); transition: transform 250ms cubic-bezier(0.16, 1, 0.3, 1); }
.dd-chev.open { transform: rotate(180deg); color: var(--ink); }

.dd-panel {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0;
  z-index: 50;
  background: rgba(15,12,28,.86);
  border: 1px solid var(--glass-border);
  border-radius: 12px;
  padding: 6px;
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 18px 40px -10px rgba(0,0,0,.55);
  opacity: 0; transform: translateY(-6px); pointer-events: none;
  transition: opacity 250ms cubic-bezier(0.16, 1, 0.3, 1), transform 250ms cubic-bezier(0.16, 1, 0.3, 1);
  max-height: 320px; overflow: auto;
}
.dd-panel.open { opacity: 1; transform: translateY(0); pointer-events: auto; }
.dd-opt {
  position: relative;
  width: 100%; min-height: 40px;
  display: flex; align-items: center; justify-content: space-between;
  padding: 0 12px;
  background: transparent; border: 0;
  color: var(--ink-dim); font-family: var(--f-sans); font-size: 14px;
  cursor: pointer; border-radius: 8px;
  text-align: left;
  transition: color 160ms var(--ease-ui), background 160ms var(--ease-ui);
}
.dd-opt::before {
  content: ''; position: absolute; left: 4px; top: 8px; bottom: 8px; width: 2px;
  background: linear-gradient(180deg, var(--irid-1), var(--irid-3));
  border-radius: 2px;
  opacity: 0;
  transition: opacity 200ms var(--ease-ui);
}
.dd-opt.hi, .dd-opt:hover { color: var(--ink); background: rgba(255,255,255,.04); }
.dd-opt.hi::before, .dd-opt:hover::before { opacity: 1; }
.dd-opt.sel { color: var(--ink); }
.dd-dot { width: 6px; height: 6px; border-radius: 999px; background: var(--ink); box-shadow: 0 0 8px rgba(167,139,250,.6); }

/* ─── Consent checkbox ─── */
.consent {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 12px 14px; border-radius: 10px;
  background: rgba(255,255,255,.03);
  border: 1px solid var(--line-soft);
  font-size: 13px; color: var(--ink-dim); line-height: 1.45;
  cursor: pointer;
  transition: border-color 200ms var(--ease-ui), background 200ms var(--ease-ui);
}
.consent.err { border-color: rgba(255,107,138,.45); background: rgba(255,107,138,.05); }
.consent input[type="checkbox"] {
  appearance: none; -webkit-appearance: none;
  width: 16px; height: 16px; flex: 0 0 16px;
  border-radius: 4px; border: 1px solid rgba(255,255,255,.32);
  background: rgba(255,255,255,.04); cursor: pointer; margin-top: 2px;
  position: relative;
  transition: background 180ms var(--ease-ui), border-color 180ms var(--ease-ui);
}
.consent input[type="checkbox"]:checked {
  background: var(--ink); border-color: var(--ink);
}
.consent input[type="checkbox"]:checked::after {
  content: ''; position: absolute; left: 4px; top: 1px; width: 5px; height: 9px;
  border: solid #0b0713; border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.consent a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.consent a:hover { color: var(--irid-1); }

/* ─── Cookie banner ─── */
.cookie-banner {
  position: fixed; left: 50%; bottom: 18px;
  transform: translateX(-50%);
  z-index: 90;
  display: flex; align-items: center; gap: 14px;
  padding: 12px 14px 12px 18px;
  border-radius: 14px;
  background: rgba(15,12,28,.78);
  border: 1px solid var(--glass-border);
  backdrop-filter: blur(28px) saturate(160%);
  -webkit-backdrop-filter: blur(28px) saturate(160%);
  box-shadow: 0 1px 0 rgba(255,255,255,.06) inset, 0 18px 40px -10px rgba(0,0,0,.55);
  font-size: 13px; color: var(--ink-dim);
  max-width: calc(100vw - 28px);
  animation: cookieIn 360ms cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes cookieIn { from { opacity: 0; transform: translate(-50%, 12px); } to { opacity: 1; transform: translate(-50%, 0); } }
.cookie-banner .msg { max-width: 540px; line-height: 1.45; }
.cookie-banner .btn { padding: 7px 14px; min-height: 36px; font-size: 12px; }

@media (max-width: 600px) {
  .cookie-banner { left: 12px; right: 12px; transform: none; flex-direction: column; align-items: stretch; }
  .cookie-banner .btn { align-self: flex-end; }
  @keyframes cookieIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
}

/* ─── Legal page table ─── */
.legal-table {
  display: grid; max-width: 880px;
  border-radius: 16px; padding: 8px 8px;
}
.legal-row {
  display: grid; grid-template-columns: 220px 1fr; gap: 24px;
  padding: 18px 16px;
  border-top: 1px solid var(--line-soft);
}
.legal-row:first-child { border-top: 0; }
.legal-l { font-family: var(--f-mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-mute); }
.legal-v { font-size: 15px; color: var(--ink); line-height: 1.5; word-break: break-word; }

@media (max-width: 700px) {
  .legal-row { grid-template-columns: 1fr; gap: 6px; }
}

/* ─── Privacy page ─── */
.privacy-grid {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px;
  max-width: 1100px;
}
.privacy-card { padding: 24px; border-radius: 16px; }
.privacy-card h3 { font-family: var(--f-display); font-weight: 300; font-size: 22px; letter-spacing: -0.015em; line-height: 1.2; margin: 0 0 12px; color: var(--ink); }
.privacy-card p  { font-size: 14.5px; line-height: 1.6; color: var(--ink-dim); margin: 0; }

@media (max-width: 760px) {
  .privacy-grid { grid-template-columns: 1fr; }
}


/* ─── Teaser cards (landing) ─── */
.teasers {
  margin-left: auto;
  margin-right: auto;
  /* Slight bottom rhythm before the refs teaser */
  margin-bottom: clamp(40px, 6vh, 72px);
}
.teaser-card {
  /* Tighter, more deliberate spacing inside the card */
  padding: 24px;
  min-height: 380px;
  gap: 14px;
  transition: transform 360ms var(--ease-out-expo), border-color 360ms var(--ease-out-expo);
}
.teaser-card:hover { transform: translateY(-4px); }
.teaser-card .preview { aspect-ratio: 4/3; }
.teaser-card .meta {
  display: flex; flex-direction: column; gap: 10px;
  margin-top: 4px;
}
.teaser-card h3 { font-size: 26px; }
.teaser-card p  { line-height: 1.55; }
.teaser-card .explore {
  margin-top: auto; padding-top: 14px;
  border-top: 1px solid var(--line-soft);
  letter-spacing: 0.02em;
}

/* ─── About cards ─── */
.about-stack {
  display: grid; gap: 18px;
  max-width: 980px;
  margin: 0 auto;
}
.about-card {
  border-radius: 22px;
  overflow: hidden;
  transition: border-color 280ms var(--ease-ui), background 280ms var(--ease-ui);
}
.about-head {
  width: 100%;
  display: grid; gap: 14px;
  padding: 28px 30px 26px;
  background: transparent; border: 0;
  text-align: left; color: var(--ink);
  cursor: pointer;
  font: inherit;
}
.about-head:focus-visible {
  outline: 2px solid var(--irid-1);
  outline-offset: -4px;
  border-radius: 22px;
}
.about-eyebrow { color: var(--ink-mute); }
.about-headline {
  font-family: var(--f-display); font-weight: 300;
  font-size: clamp(22px, 2.4vw, 30px);
  letter-spacing: -0.015em; line-height: 1.18;
  color: var(--ink);
  margin: 0;
  max-width: 36ch;
  text-wrap: balance;
}
.about-cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--f-mono); font-size: 11px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ink-mute);
  margin-top: 6px;
  transition: color 200ms var(--ease-ui);
}
.about-card:hover .about-cta { color: var(--ink); }
.about-cta .ico {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px;
  border-radius: 999px; border: 1px solid var(--glass-border);
  transition: transform 360ms var(--ease-out-expo);
}
.about-card:hover .about-cta .ico { transform: translateX(3px); }
.about-cta.open .ico { transform: rotate(90deg); }
.about-card:hover .about-cta.open .ico { transform: rotate(90deg) translateX(3px); }

.about-body-wrap {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 460ms cubic-bezier(0.16, 1, 0.3, 1);
}
.about-card.open .about-body-wrap { grid-template-rows: 1fr; }
.about-body-inner {
  overflow: hidden;
  min-height: 0;
}
.about-body {
  margin: 0;
  padding: 0 30px 32px;
  font-size: 15.5px; line-height: 1.65;
  color: var(--ink-dim);
  max-width: 64ch;
  opacity: 0; transform: translateY(6px);
  transition: opacity 320ms var(--ease-ui) 80ms, transform 320ms var(--ease-out-expo) 80ms;
}
.about-card.open .about-body { opacity: 1; transform: none; }

/* ─── 360px mobile QA ─── */
@media (max-width: 380px) {
  :root { --gutter: 18px; }
  .hero-name { font-size: clamp(28px, 8vw, 40px); }
  .pillar-line { font-size: clamp(34px, 12vw, 56px); }
  .nav-bar { padding: 0 16px; }

  .teaser-card { padding: 20px; min-height: 340px; }
  .teaser-card h3 { font-size: 22px; }

  .about-head { padding: 22px 22px 20px; }
  .about-body { padding: 0 22px 26px; font-size: 14.5px; }
  .about-headline { font-size: 20px; }

  .legal-row { padding: 14px 4px; }
  .privacy-card { padding: 20px; }

  .lb-card { padding: 12px; }
  .lb-info .lb-title { font-size: 22px; }
}

/* Prevent any accidental horizontal overflow on tiny screens */
html, body { overflow-x: hidden; }

/* Ensure all interactive controls clear the 44px min target on touch */
@media (hover: none) {
  .btn, .dd-trigger, .lb-close, .lb-nav, .lang-toggle button, .burger {
    min-height: 44px; min-width: 44px;
  }
}

/* ─── Iteration v8 — profile card, channel avatars, polish ─── */

/* CircularPlaceholder + img */
.circ-img {
  border-radius: 999px;
  object-fit: cover;
  display: block;
}
.circ-wrap {
  display: inline-block;
  border-radius: 999px;
  overflow: hidden;
  position: relative;
  flex: 0 0 auto;
}

/* About — profile card */
.about-head-block { text-align: center; justify-items: center; max-width: 720px; margin-left: auto; margin-right: auto; }
.about-head-block .sec-title { max-width: 18ch; margin: 0 auto; }

.profile-card {
  max-width: 720px;
  margin: 12px auto clamp(40px, 6vh, 64px);
  padding: 48px clamp(28px, 5vw, 56px) 44px;
  border-radius: 26px;
  text-align: center;
  display: grid; gap: 14px; justify-items: center;
}
.profile-photo-frame {
  position: relative;
  width: 180px; height: 180px;
  margin-bottom: 8px;
  /* Entrance: scale + fade */
  opacity: 0; transform: scale(.92);
  animation: profilePop 800ms cubic-bezier(0.16, 1, 0.3, 1) 100ms both;
}
.profile-photo-ring {
  position: absolute; inset: -4px;
  border-radius: 999px;
  background: conic-gradient(from 220deg, var(--irid-1), var(--irid-2), var(--irid-3), var(--irid-4), var(--irid-1));
  filter: blur(6px);
  opacity: .35;
  transition: opacity 500ms var(--ease-out-expo), filter 500ms var(--ease-out-expo);
  z-index: 0;
}
.profile-card:hover .profile-photo-ring { opacity: .65; filter: blur(10px); }
.profile-photo-inner {
  position: relative; z-index: 1;
  width: 180px; height: 180px;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.18);
  box-shadow: 0 18px 40px -10px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.1) inset;
}
.profile-name {
  font-family: var(--f-display); font-weight: 300;
  font-size: clamp(34px, 4vw, 48px); letter-spacing: -0.02em;
  line-height: 1.05; color: var(--ink);
  opacity: 0; transform: translateY(16px);
  animation: profileFadeUp 600ms cubic-bezier(0.16, 1, 0.3, 1) 320ms both;
}
.profile-title {
  font-family: var(--f-mono); font-size: 11px;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ink-mute);
  opacity: 0; transform: translateY(16px);
  animation: profileFadeUp 600ms cubic-bezier(0.16, 1, 0.3, 1) 460ms both;
}
.profile-intro {
  margin: 12px auto 0;
  max-width: 52ch;
  font-size: 15px; line-height: 1.6;
  color: var(--ink-dim);
  opacity: 0; transform: translateY(16px);
  animation: profileFadeUp 600ms cubic-bezier(0.16, 1, 0.3, 1) 600ms both;
}
@keyframes profilePop { from { opacity: 0; transform: scale(.92); } to { opacity: 1; transform: scale(1); } }
@keyframes profileFadeUp { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  .profile-photo-frame, .profile-name, .profile-title, .profile-intro {
    animation: none !important; opacity: 1 !important; transform: none !important;
  }
}
@media (max-width: 760px) {
  .profile-card { padding: 28px 22px 26px; }
  .profile-photo-frame, .profile-photo-inner { width: 140px; height: 140px; }
  .profile-name { font-size: clamp(28px, 7vw, 38px); }
}

/* References — channel avatars */
.refs-card { display: grid; gap: 0; }
.refs-avatar {
  margin-bottom: 16px;
  /* Subtle entrance scale handled by parent Reveal */
}
.refs-avatar > .circ-wrap,
.refs-avatar > img.circ-img {
  border: 1px solid rgba(255,255,255,.15);
  box-shadow: 0 10px 24px -8px rgba(0,0,0,.55), 0 1px 0 rgba(255,255,255,.08) inset;
}

/* Polish A — page transition fade */
.page-root { position: relative; z-index: 2; }
.page { transition: opacity 350ms cubic-bezier(0.16, 1, 0.3, 1), transform 350ms cubic-bezier(0.16, 1, 0.3, 1); }
.page.entered  { opacity: 1; transform: none; }
.page.leaving  { opacity: 0; transform: translateY(-8px); transition-duration: 200ms; }
.page.entering { opacity: 0; transform: translateY(8px); transition-delay: 100ms; }
@media (prefers-reduced-motion: reduce) {
  .page, .page.entered, .page.leaving, .page.entering { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* Polish B — form focus glow (overrides hi-styles.css base) */
.field input, .field textarea {
  transition: border-color 200ms cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1),
              background 200ms var(--ease-ui);
}
.field input:focus, .field textarea:focus {
  border-color: rgba(167,139,250,.5);
  background: rgba(255,255,255,.07);
  box-shadow: 0 0 12px 0 rgba(167,139,250,.3);
}
/* Custom dropdown trigger gets the same glow */
.dd-trigger {
  transition: border-color 200ms cubic-bezier(0.16, 1, 0.3, 1),
              box-shadow 200ms cubic-bezier(0.16, 1, 0.3, 1),
              background 200ms var(--ease-ui);
}
.dd-trigger:focus-visible,
.dd-trigger[aria-expanded="true"] {
  border-color: rgba(167,139,250,.5);
  box-shadow: 0 0 12px 0 rgba(167,139,250,.3);
  outline: none;
}

/* Polish C — logo star micro-interaction */
.logo .star-wrap {
  display: inline-block;
  transform-origin: center;
  transition: transform 600ms cubic-bezier(0.16, 1, 0.3, 1);
  font-size: 14px;
  line-height: 1;
  position: relative; top: -2px;
}
.logo:hover .star-wrap {
  animation: logoStarSpin 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.logo .star {
  display: inline-block;
  /* Iridescent sweep — already on .irid-text; brighter on hover */
  background-size: 300% 100%;
  background-position: 0% 50%;
  transition: background-position 600ms cubic-bezier(0.16, 1, 0.3, 1);
}
.logo:hover .star { background-position: 100% 50%; }
@keyframes logoStarSpin {
  0%   { transform: rotate(0deg) scale(1); }
  50%  { transform: rotate(90deg) scale(1.15); }
  100% { transform: rotate(180deg) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
  .logo:hover .star-wrap { animation: none; }
}

/* Polish E — refined :focus-visible ring (global) */
*:focus { outline: none; }
:focus-visible {
  outline: 2px solid rgba(167,139,250,.7);
  outline-offset: 3px;
  border-radius: inherit;
  transition: outline-color 150ms ease-out, outline-offset 150ms ease-out;
}
/* Buttons / chips already have a tighter visible state — keep theirs */
.btn:focus-visible,
.chip:focus-visible {
  outline: 2px solid rgba(167,139,250,.7);
  outline-offset: 3px;
}

/* Contact chips wrap nicely — 5 items at narrow widths */
@media (max-width: 480px) {
  .chip-group { gap: 6px; }
  .chip { padding: 8px 12px; font-size: 11px; }
}

/* References metric — keep tabular figures so count-up doesn't jitter */
.refs-card .metric { font-variant-numeric: tabular-nums; }
