/* SONICRAFT V214 — Palazzo-inspired hero audio entrance */
.sonicraft-audio-control{
  position:fixed;
  right:18px;
  bottom:18px;
  left:auto;
  z-index:9500;
  width:42px;
  min-width:42px;
  height:42px;
  min-height:42px;
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  gap:9px;
  padding:0 12px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.14);
  border-radius:999px;
  color:#f5f1e9;
  background:rgba(7,10,14,.66);
  -webkit-backdrop-filter:blur(15px) saturate(130%);
  backdrop-filter:blur(15px) saturate(130%);
  box-shadow:0 12px 30px rgba(0,0,0,.18),inset 0 0 0 1px rgba(255,255,255,.02);
  font:600 9px/1.1 inherit;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  opacity:.67;
  transform:translate3d(0,0,0) scale(.96);
  transition:width .35s cubic-bezier(.22,.61,.36,1),opacity .28s ease,border-color .28s ease,background .28s ease,transform .28s ease,box-shadow .28s ease;
}
.sonicraft-audio-control.is-dormant{
  opacity:0;
  pointer-events:none;
  transform:translate3d(0,8px,0) scale(.72);
}
.sonicraft-audio-control:hover,
.sonicraft-audio-control:focus-visible{
  width:110px;
  opacity:1;
  transform:translateY(-2px) scale(1);
  border-color:rgba(124,227,216,.4);
  background:rgba(7,10,14,.84);
  box-shadow:0 16px 36px rgba(0,0,0,.24),0 0 0 1px rgba(124,227,216,.04) inset;
  outline:none;
}
.sonicraft-audio-control.is-blocked{
  opacity:1;
  border-color:rgba(200,174,121,.42);
  animation:sonicraftAudioNudge 2.8s ease-in-out infinite;
}
.sonicraft-audio-control .audio-bars{
  width:17px;
  min-width:17px;
  height:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:2px;
}
.sonicraft-audio-control .audio-bars i{
  display:block;
  width:2px;
  height:5px;
  border-radius:99px;
  background:linear-gradient(180deg,#7ce3d8,#c8ae79);
  transform-origin:center;
  opacity:.62;
}
.sonicraft-audio-control.is-playing:not(.is-muted) .audio-bars i{
  animation:sonicraftAudioBars .9s ease-in-out infinite alternate;
  opacity:1;
}
.sonicraft-audio-control.is-playing:not(.is-muted) .audio-bars i:nth-child(2){animation-delay:-.28s}
.sonicraft-audio-control.is-playing:not(.is-muted) .audio-bars i:nth-child(3){animation-delay:-.52s}
.sonicraft-audio-control.is-playing:not(.is-muted) .audio-bars i:nth-child(4){animation-delay:-.16s}
.sonicraft-audio-control.is-muted .audio-bars i,
.sonicraft-audio-control:not(.is-playing) .audio-bars i{animation:none;height:3px;opacity:.42}
.sonicraft-audio-control .audio-status{
  white-space:nowrap;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity .22s ease,transform .22s ease;
}
.sonicraft-audio-control:hover .audio-status,
.sonicraft-audio-control:focus-visible .audio-status{opacity:1;transform:none}
.sonicraft-audio-control .audio-hint{
  position:absolute;
  right:7px;
  top:7px;
  width:4px;
  height:4px;
  border-radius:50%;
  background:#7ce3d8;
  box-shadow:0 0 0 3px rgba(124,227,216,.08);
  opacity:.72;
}
.sonicraft-audio-control.is-muted .audio-hint,
.sonicraft-audio-control:not(.is-playing) .audio-hint{background:#c8ae79;box-shadow:0 0 0 3px rgba(200,174,121,.07)}

/* Hero audio trigger */
.hero-audio-trigger{
  position:absolute;
  z-index:7;
  left:50%;
  bottom:50px;
  transform:translateX(-50%);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:7px;
  min-width:112px;
  padding:0;
  border:0;
  color:rgba(255,255,255,.78);
  background:transparent;
  cursor:pointer;
  text-align:center;
  transition:opacity .45s ease,transform .45s cubic-bezier(.22,.61,.36,1),color .24s ease;
}
.hero-audio-trigger:hover,
.hero-audio-trigger:focus-visible{color:#fff;transform:translateX(-50%) translateY(-3px);outline:none}
.hero-audio-trigger.is-hidden{opacity:0;pointer-events:none;transform:translateX(-50%) translateY(12px)}
.hero-audio-trigger-icon{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.62);
  border-radius:50%;
  background:rgba(7,10,14,.14);
  -webkit-backdrop-filter:blur(8px);
  backdrop-filter:blur(8px);
  transition:background .25s ease,border-color .25s ease,transform .25s ease;
}
.hero-audio-trigger:hover .hero-audio-trigger-icon{background:rgba(255,255,255,.1);border-color:#fff;transform:scale(1.04)}
.hero-audio-trigger-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.hero-audio-trigger-label{font-size:10px;letter-spacing:.18em;line-height:1}
.hero-audio-trigger-note{font-size:7px;letter-spacing:.16em;color:rgba(124,227,216,.72);line-height:1}

/* Custom speaker cursor on the opening frame */
.sonicraft-audio-cursor{
  position:fixed;
  z-index:9998;
  left:50vw;
  top:50vh;
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  pointer-events:none;
  border:1px solid rgba(255,255,255,.58);
  border-radius:50%;
  color:#fff;
  background:rgba(7,10,14,.22);
  -webkit-backdrop-filter:blur(10px) saturate(120%);
  backdrop-filter:blur(10px) saturate(120%);
  box-shadow:0 10px 28px rgba(0,0,0,.15),0 0 0 1px rgba(255,255,255,.035) inset;
  transform:translate(-50%,-50%);
  opacity:0;
  will-change:left,top,transform,opacity;
  transition:opacity .3s ease,transform .2s ease,border-color .25s ease,background .25s ease;
}
.sonicraft-audio-cursor svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.45;stroke-linecap:round;stroke-linejoin:round}
.sonicraft-audio-cursor.is-visible{opacity:.92}
.sonicraft-audio-cursor.is-docking{
  width:38px;
  height:38px;
  opacity:.82;
  background:rgba(7,10,14,.68);
  border-color:rgba(124,227,216,.34);
  transition:left .72s cubic-bezier(.2,.8,.2,1),top .72s cubic-bezier(.2,.8,.2,1),width .72s cubic-bezier(.2,.8,.2,1),height .72s cubic-bezier(.2,.8,.2,1),opacity .72s ease,transform .72s cubic-bezier(.2,.8,.2,1);
}
.sonicraft-audio-cursor.is-docked{opacity:0;transform:translate(-50%,-50%) scale(.78)}
body.audio-intro-mode,
body.audio-intro-mode .hero,
body.audio-intro-mode .nav,
body.audio-intro-mode .hero a,
body.audio-intro-mode .hero button{cursor:none!important}

@keyframes sonicraftAudioBars{0%{height:4px}100%{height:15px}}
@keyframes sonicraftAudioNudge{0%,100%{box-shadow:0 12px 30px rgba(0,0,0,.18),0 0 0 0 rgba(200,174,121,0)}50%{box-shadow:0 12px 30px rgba(0,0,0,.18),0 0 0 6px rgba(200,174,121,.07)}}

@media(max-width:768px), (pointer:coarse){
  .sonicraft-audio-cursor{display:none!important}
  body.audio-intro-mode,
  body.audio-intro-mode .hero,
  body.audio-intro-mode .nav,
  body.audio-intro-mode .hero a,
  body.audio-intro-mode .hero button{cursor:auto!important}
  .hero-audio-trigger{bottom:28px;gap:6px}
  .hero-audio-trigger-icon{width:40px;height:40px}
  .sonicraft-audio-control{right:12px;bottom:12px;width:39px;min-width:39px;height:39px;min-height:39px;padding:0 11px}
  .sonicraft-audio-control:hover,.sonicraft-audio-control:focus-visible{width:100px}
  body.has-mobile-cta .sonicraft-audio-control{bottom:74px}
}
@media(max-width:390px){
  .sonicraft-audio-control{right:9px;bottom:9px}
  body.has-mobile-cta .sonicraft-audio-control{bottom:70px}
  .hero-audio-trigger{bottom:20px}
}
@media(prefers-reduced-motion:reduce){
  .sonicraft-audio-control,
  .sonicraft-audio-control .audio-bars i,
  .hero-audio-trigger,
  .hero-audio-trigger-icon,
  .sonicraft-audio-cursor{animation:none!important;transition:none!important}
}

/* V218 — strict click-to-enter audio gate */
html.sonicraft-entry-lock,
html.sonicraft-entry-lock body{
  overflow:hidden!important;
  overscroll-behavior:none!important;
}
body.audio-entry-locked{
  touch-action:none;
}
body.audio-intro-mode .hero,
body.audio-intro-mode .hero *,
body.audio-intro-mode .nav,
body.audio-intro-mode .nav *{
  cursor:none!important;
}
.hero-audio-trigger{
  animation:sonicraftEntryFloat 3.4s ease-in-out infinite;
}
.hero-audio-trigger::before{
  content:"";
  position:absolute;
  left:50%;
  top:12px;
  width:62px;
  height:62px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:50%;
  transform:translate(-50%,-50%) scale(.72);
  opacity:0;
  pointer-events:none;
}
.hero-audio-trigger.needs-action::before{
  animation:sonicraftEntryAttention .86s ease-out;
}
.hero-audio-trigger.is-activating{
  color:#fff;
}
.hero-audio-trigger.is-activating .hero-audio-trigger-icon{
  background:rgba(124,227,216,.15);
  border-color:rgba(124,227,216,.9);
  transform:scale(1.08);
}
.sonicraft-audio-cursor::after{
  content:"";
  position:absolute;
  inset:-7px;
  border:1px solid rgba(124,227,216,.16);
  border-radius:50%;
  opacity:.55;
  transform:scale(.88);
  transition:opacity .25s ease,transform .25s ease,border-color .25s ease;
}
.sonicraft-audio-cursor.is-action{
  border-color:rgba(124,227,216,.7);
  background:rgba(7,10,14,.42);
  box-shadow:0 12px 34px rgba(0,0,0,.2),0 0 26px rgba(124,227,216,.12);
  transform:translate(-50%,-50%) scale(1.08);
}
.sonicraft-audio-cursor.is-action::after{
  opacity:.95;
  transform:scale(1.08);
  border-color:rgba(124,227,216,.34);
}
.sonicraft-audio-cursor.is-pressed{
  transform:translate(-50%,-50%) scale(.94);
}
@keyframes sonicraftEntryFloat{
  0%,100%{margin-bottom:0}
  50%{margin-bottom:6px}
}
@keyframes sonicraftEntryAttention{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}
  35%{opacity:.8}
  100%{opacity:0;transform:translate(-50%,-50%) scale(1.45)}
}
@media(max-width:768px), (pointer:coarse){
  body.audio-intro-mode .hero,
  body.audio-intro-mode .hero *,
  body.audio-intro-mode .nav,
  body.audio-intro-mode .nav *{
    cursor:auto!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .hero-audio-trigger{animation:none!important}
}


/* V219 — fully reveal SOUND ON / SOUND OFF when the compact control expands. */
.sonicraft-audio-control:hover,
.sonicraft-audio-control:focus-visible{
  width:136px;
}
.sonicraft-audio-control .audio-status{
  flex:0 0 auto;
  padding-right:8px;
}
@media(max-width:768px), (pointer:coarse){
  .sonicraft-audio-control:hover,
  .sonicraft-audio-control:focus-visible{width:128px}
}

/* V223 — give SOUND ON / SOUND OFF enough room when the compact control expands. */
.sonicraft-audio-control:hover,
.sonicraft-audio-control:focus-visible{
  width:158px;
  max-width:calc(100vw - 36px);
  padding-right:18px;
}
.sonicraft-audio-control .audio-status{
  flex:0 0 auto;
  min-width:max-content;
  padding-right:10px;
}
@media(max-width:768px), (pointer:coarse){
  .sonicraft-audio-control:hover,
  .sonicraft-audio-control:focus-visible{
    width:150px;
    max-width:calc(100vw - 24px);
    padding-right:16px;
  }
}

/* V225 — interaction and center-cursor stability fix.
   The former strict entrance gate is retired: the page remains usable before audio starts. */
html.sonicraft-entry-lock,
html.sonicraft-entry-lock body{
  overflow:auto!important;
  overscroll-behavior:auto!important;
}
body.audio-entry-locked{
  touch-action:auto!important;
}
body.audio-intro-mode,
body.audio-intro-mode .hero,
body.audio-intro-mode .nav,
body.audio-intro-mode .hero a,
body.audio-intro-mode .hero button,
body.audio-intro-mode .hero *,
body.audio-intro-mode .nav *{
  cursor:auto!important;
}
.sonicraft-audio-cursor{display:none!important}

/* V226 — no visual/layout changes. Navigation is never locked; audio departure
   behavior is handled entirely by site-background-audio.js. */
