.swan-am{--panel:#17212b;--panel2:#1f2d39;--text:#fff;--muted:#cbd5df;--accent:#d7b56d;max-width:820px;margin:0 auto;padding:20px;font-family:Arial,Helvetica,sans-serif;color:#fff!important;position:relative}.swan-am *{box-sizing:border-box}.swan-am h1,.swan-am p,.swan-am span,.swan-am div{color:#fff}.swan-am__card{background:linear-gradient(180deg,var(--panel),var(--panel2));border-radius:28px;padding:26px;text-align:center;position:relative;overflow:hidden}.swan-am__eyebrow{font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--accent)!important;font-weight:700;margin-bottom:10px}.swan-am h1{font-size:clamp(32px,7vw,54px)!important;margin:0 0 12px!important;line-height:1.05!important;color:#fff!important}.swan-am__lead{color:var(--muted)!important;max-width:620px;margin:0 auto 20px;line-height:1.6}.swan-am__stats{display:flex;justify-content:center;gap:20px;flex-wrap:wrap;margin:16px 0 20px;color:var(--muted)!important;font-weight:700}.swan-am__stage{position:relative;max-width:570px;margin:0 auto}.swan-am__board{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;touch-action:manipulation}.swan-am__tile{aspect-ratio:1/1;border:2px solid transparent;border-radius:16px;padding:0;background:rgba(255,255,255,.08);cursor:pointer;overflow:hidden;min-width:0;position:relative;transition:transform .14s ease,border-color .14s ease,filter .14s ease,opacity .14s ease}.swan-am__tile:hover:not(:disabled){transform:scale(1.03)}.swan-am__tile.is-selected{border-color:var(--accent);box-shadow:0 0 0 2px rgba(215,181,109,.25)}.swan-am__tile img{width:100%;height:100%;object-fit:contain;display:block;background:#fff}.swan-am__tile.is-matched{z-index:3;border-color:var(--accent);animation:amGlow .25s ease forwards;box-shadow:0 0 0 3px rgba(215,181,109,.35),0 0 26px rgba(215,181,109,.9)}.swan-am__tile.is-burst{z-index:4;animation:amBurst .3s cubic-bezier(.2,.9,.3,1) forwards;box-shadow:0 0 34px rgba(255,238,174,.95)}.swan-am__tile.is-burst img{animation:amImgBurst .3s ease forwards}.swan-am__message{min-height:28px;margin:18px 0 12px;font-weight:700}.swan-am__action{min-height:48px;border:0;border-radius:14px;padding:13px 20px;font-weight:700;font-size:16px;cursor:pointer;background:var(--accent);color:#1a1a1a!important}.swan-am__combo{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) scale(.4);z-index:12;font-weight:900;font-size:clamp(25px,8vw,52px);letter-spacing:1px;text-shadow:0 3px 0 rgba(0,0,0,.35),0 0 24px rgba(215,181,109,.95);pointer-events:none;opacity:0}.swan-am__combo.is-show{animation:amCombo .75s cubic-bezier(.15,.9,.2,1)}.swan-am__fx{position:absolute;inset:0;z-index:10;pointer-events:none;overflow:visible}.swan-am__spark{position:absolute;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px rgba(255,238,174,.95);animation:amSpark var(--d) ease-out forwards}.swan-am__confetti{position:absolute;top:25%;width:8px;height:14px;border-radius:3px;background:var(--accent);animation:amConfetti 1.15s cubic-bezier(.2,.7,.25,1) var(--delay) forwards}.swan-am.is-impact .swan-am__board{animation:amImpact .18s ease}.swan-am__win{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:22px;background:rgba(12,20,28,.88);backdrop-filter:blur(5px);opacity:0;transition:opacity .25s ease}.swan-am__win.is-show{opacity:1}.swan-am__winbox{width:min(460px,100%);padding:30px 22px;border:1px solid rgba(215,181,109,.55);border-radius:24px;background:linear-gradient(180deg,#263847,#17212b);box-shadow:0 0 50px rgba(215,181,109,.25);transform:scale(.72);opacity:0}.swan-am__win.is-show .swan-am__winbox{animation:amWin .65s cubic-bezier(.15,.95,.25,1.2) forwards}.swan-am__trophy{font-size:64px;line-height:1;margin-bottom:12px;animation:amTrophy 1.2s ease-in-out infinite alternate}.swan-am__win h2{font-size:clamp(30px,8vw,48px);margin:0 0 10px;color:var(--accent)!important}.swan-am__win p{color:var(--muted)!important;font-size:17px;line-height:1.5;margin:0 0 20px}.swan-am [hidden]{display:none!important}
@keyframes amGlow{0%{transform:scale(1)}70%{transform:scale(1.12);filter:brightness(1.35)}100%{transform:scale(1.07);filter:brightness(1.18)}}@keyframes amBurst{0%{transform:scale(1.07);opacity:1}45%{transform:scale(1.28) rotate(3deg);filter:brightness(1.6)}100%{transform:scale(.15) rotate(-12deg);opacity:0}}@keyframes amImgBurst{to{filter:brightness(1.7) saturate(1.25)}}@keyframes amSpark{0%{transform:translate(-50%,-50%) scale(1.2);opacity:1}100%{transform:translate(calc(-50% + var(--x)),calc(-50% + var(--y))) scale(0);opacity:0}}@keyframes amCombo{0%{opacity:0;transform:translate(-50%,-50%) scale(.35) rotate(-5deg)}22%{opacity:1;transform:translate(-50%,-50%) scale(1.18) rotate(2deg)}55%{opacity:1;transform:translate(-50%,-50%) scale(1)}100%{opacity:0;transform:translate(-50%,-65%) scale(1.1)}}@keyframes amImpact{0%,100%{transform:translateX(0)}30%{transform:translateX(-3px)}65%{transform:translateX(3px)}}@keyframes amConfetti{0%{opacity:1;transform:translate(0,0) rotate(0)}100%{opacity:0;transform:translate(var(--x),310px) rotate(var(--r))}}@keyframes amWin{to{transform:scale(1);opacity:1}}@keyframes amTrophy{from{transform:scale(1) rotate(-3deg)}to{transform:scale(1.08) rotate(3deg)}}
@media(max-width:560px){.swan-am{padding:12px}.swan-am__card{padding:18px}.swan-am__board{gap:5px}.swan-am__tile{border-radius:11px}.swan-am__spark{width:6px;height:6px}}@media(prefers-reduced-motion:reduce){.swan-am *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v1.6 guidance + progressive challenge */
.swan-am__stats{align-items:center}
.swan-am__level{color:var(--accent)!important}
.swan-am__tile.is-hint{
  z-index:6;
  border-color:#fff;
  box-shadow:0 0 0 3px rgba(215,181,109,.75),0 0 30px rgba(255,238,174,.95);
  animation:amHint 1s ease-in-out infinite;
}
.swan-am__tile.is-hint::after{
  content:"";
  position:absolute;
  inset:5px;
  border:2px solid rgba(255,255,255,.95);
  border-radius:11px;
  pointer-events:none;
}
.swan-am__combo.is-level{
  color:var(--accent)!important;
  text-shadow:0 3px 0 rgba(0,0,0,.4),0 0 32px rgba(215,181,109,1);
}
@keyframes amHint{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.09);filter:brightness(1.25)}
}
@media(prefers-reduced-motion:reduce){
  .swan-am__tile.is-hint{animation:none}
}


/* v2.0 refined challenge UI */
.swan-am__objective{
  margin:10px auto 4px;
  max-width:620px;
  min-height:22px;
  text-align:center;
  font-size:14px;
  line-height:1.45;
  color:rgba(255,255,255,.76);
}
.swan-am__target{
  color:var(--accent)!important;
  font-weight:800!important;
}
.swan-am__progress{
  width:min(420px,78%);
  height:5px;
  margin:10px auto 2px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(255,255,255,.10);
}
.swan-am__progress > span{
  display:block;
  width:0;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,rgba(215,181,109,.72),rgba(255,235,174,.96));
  box-shadow:0 0 14px rgba(215,181,109,.35);
  transition:width .35s ease;
}

.swan-am__tile.has-ice,.swan-am__tile.has-gold{position:relative;overflow:hidden}
.swan-am__ice,.swan-am__gold{
  position:absolute;
  inset:0;
  border-radius:12px;
  pointer-events:none;
  z-index:3;
}

/* Frosted-glass ice: no heavy outline */
.swan-am__ice{
  background:
    radial-gradient(circle at 25% 18%,rgba(255,255,255,.72) 0 5%,transparent 18%),
    linear-gradient(145deg,rgba(229,248,255,.54),rgba(166,220,244,.18) 48%,rgba(240,252,255,.48));
  box-shadow:
    inset 0 0 18px rgba(224,248,255,.72),
    inset 0 -10px 20px rgba(119,193,226,.13);
  backdrop-filter:blur(.6px);
}
.swan-am__ice::before,.swan-am__ice::after{
  content:"";
  position:absolute;
  width:72%;
  height:1px;
  left:14%;
  top:48%;
  background:rgba(255,255,255,.72);
  transform:rotate(32deg);
  box-shadow:0 0 4px rgba(255,255,255,.38);
}
.swan-am__ice::after{transform:rotate(-41deg);opacity:.55}

/* Gold is an elegant inset seal instead of a thick frame */
.swan-am__gold{
  inset:5px;
  border-radius:10px;
  background:
    linear-gradient(135deg,rgba(255,231,157,.22),rgba(111,72,14,.16)),
    radial-gradient(circle at 30% 20%,rgba(255,244,196,.20),transparent 35%);
  box-shadow:
    inset 0 0 0 1px rgba(238,202,117,.58),
    inset 0 -12px 22px rgba(93,56,8,.16),
    0 2px 9px rgba(0,0,0,.10);
}
.swan-am__gold::before{
  content:"";
  position:absolute;
  inset:5px;
  border-radius:7px;
  box-shadow:inset 0 0 0 1px rgba(255,242,194,.16);
}
.swan-am__gold b{
  position:absolute;
  right:5px;
  top:5px;
  display:grid;
  place-items:center;
  width:21px;height:21px;
  border-radius:50%;
  background:rgba(27,18,5,.86);
  box-shadow:0 2px 7px rgba(0,0,0,.22);
  color:#ffe9a6;
  font-size:11px;
  line-height:1;
}
.swan-am__tile.gold-2 .swan-am__gold::after,
.swan-am__tile.gold-1 .swan-am__gold::after{
  content:"";
  position:absolute;
  width:80%;
  height:1px;
  left:10%;
  top:52%;
  background:rgba(255,239,182,.62);
  transform:rotate(35deg);
}
.swan-am__tile.gold-1 .swan-am__gold::after{
  box-shadow:0 -13px 0 rgba(255,239,182,.40),0 13px 0 rgba(255,239,182,.28);
}
.swan-am__tile.is-block-hit .swan-am__ice,
.swan-am__tile.is-block-hit .swan-am__gold{
  animation:swanAmBlockHit .34s ease-out;
}
@keyframes swanAmBlockHit{
  0%{transform:scale(1);filter:brightness(1)}
  42%{transform:scale(1.07);filter:brightness(1.65)}
  100%{transform:scale(.98);opacity:.42}
}

/* Clear objective card shown at each level transition */
.swan-am__level-intro{
  position:absolute;
  inset:0;
  z-index:40;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(7,7,10,.66);
  backdrop-filter:blur(7px);
  opacity:0;
  transition:opacity .22s ease;
}
.swan-am__level-intro[hidden]{display:none}
.swan-am__level-intro.is-show{opacity:1}
.swan-am__level-intro-card{
  width:min(420px,92%);
  padding:28px 24px 24px;
  border-radius:22px;
  text-align:center;
  background:linear-gradient(155deg,rgba(34,34,39,.97),rgba(17,17,21,.98));
  box-shadow:0 22px 70px rgba(0,0,0,.42),inset 0 0 0 1px rgba(255,255,255,.07);
  transform:translateY(8px) scale(.98);
  transition:transform .22s ease;
}
.swan-am__level-intro.is-show .swan-am__level-intro-card{transform:none}
.swan-am__level-intro-kicker{
  margin:0 0 7px;
  color:var(--accent);
  font-size:11px;
  font-weight:800;
  letter-spacing:2.2px;
  text-transform:uppercase;
}
.swan-am__level-intro-card h3{
  margin:0 0 10px;
  font-size:27px;
  line-height:1.1;
  color:#fff;
}
.swan-am__level-intro-card p{
  margin:0 auto 20px;
  max-width:340px;
  color:rgba(255,255,255,.76);
  font-size:14px;
  line-height:1.55;
}
.swan-am__level-intro-card button{
  min-width:130px;
  padding:11px 18px;
  border:0;
  border-radius:999px;
  cursor:pointer;
  font-weight:800;
  background:var(--accent);
  color:#17130b;
}
.swan-am__win-best{
  margin:6px 0 18px;
  font-size:15px;
  font-weight:800;
  color:var(--accent);
}
@media(prefers-reduced-motion:reduce){
 .swan-am__tile.is-block-hit .swan-am__ice,
 .swan-am__tile.is-block-hit .swan-am__gold{animation:none}
}


/* v2.2 premium challenge visuals + match reliability */

/* No padlock/badge: immobility is communicated by the challenge treatment itself. */
.swan-am__tile[aria-disabled="true"]{
  cursor:default;
}
.swan-am__tile[aria-disabled="true"]::before,
.swan-am__tile[aria-disabled="true"]::after{
  content:none!important;
}

/* ICE — crystalline frost integrated into the card, not a border. */
.swan-am__tile.has-ice{
  box-shadow:
    0 8px 22px rgba(0,0,0,.22),
    0 0 22px rgba(174,231,255,.16);
}
.swan-am__ice{
  inset:0!important;
  border:0!important;
  border-radius:12px!important;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 14%,rgba(255,255,255,.72),transparent 18%),
    radial-gradient(circle at 78% 76%,rgba(194,238,255,.30),transparent 34%),
    linear-gradient(145deg,rgba(229,249,255,.47),rgba(137,205,235,.10) 48%,rgba(235,250,255,.40))!important;
  box-shadow:
    inset 0 0 24px rgba(231,250,255,.66),
    inset 0 -18px 28px rgba(108,188,224,.12)!important;
  backdrop-filter:blur(.7px);
}
.swan-am__ice::before{
  content:""!important;
  position:absolute;
  inset:-10%;
  width:auto!important;height:auto!important;
  left:auto!important;top:auto!important;
  background:
    linear-gradient(31deg,transparent 47%,rgba(255,255,255,.62) 48%,rgba(255,255,255,.62) 49%,transparent 50%),
    linear-gradient(116deg,transparent 44%,rgba(226,248,255,.48) 45%,rgba(226,248,255,.48) 46%,transparent 47%),
    linear-gradient(73deg,transparent 61%,rgba(255,255,255,.38) 62%,rgba(255,255,255,.38) 63%,transparent 64%)!important;
  transform:none!important;
  box-shadow:none!important;
  opacity:.92;
}
.swan-am__ice::after{
  content:"❄"!important;
  position:absolute;
  right:7px!important;bottom:5px!important;left:auto!important;top:auto!important;
  width:auto!important;height:auto!important;
  background:none!important;
  box-shadow:none!important;
  transform:none!important;
  color:rgba(245,253,255,.88);
  font-size:14px;
  text-shadow:0 1px 5px rgba(71,148,184,.35);
}

/* GOLD — a luminous seal embedded over the card, no thick frame. */
.swan-am__tile.has-gold{
  box-shadow:
    0 8px 22px rgba(0,0,0,.22),
    0 0 18px rgba(224,184,91,.13);
}
.swan-am__gold{
  inset:0!important;
  border:0!important;
  border-radius:12px!important;
  background:
    radial-gradient(circle at 50% 50%,rgba(255,225,143,.11),transparent 58%),
    linear-gradient(145deg,rgba(255,236,178,.13),rgba(102,65,9,.11))!important;
  box-shadow:
    inset 0 0 24px rgba(225,183,87,.16),
    inset 0 0 0 1px rgba(255,227,156,.18)!important;
}
.swan-am__gold::before{
  content:""!important;
  position:absolute;
  width:42px;height:42px;
  left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(45deg);
  border-radius:10px;
  background:linear-gradient(145deg,rgba(246,211,126,.30),rgba(130,83,14,.18));
  box-shadow:
    inset 0 0 0 1px rgba(255,235,181,.38),
    0 4px 16px rgba(62,38,4,.18);
}
.swan-am__gold::after{
  content:""!important;
  position:absolute;
  width:18px;height:18px;
  left:50%;top:50%;
  transform:translate(-50%,-50%) rotate(45deg);
  border-radius:5px;
  background:rgba(255,225,145,.32);
  box-shadow:inset 0 0 0 1px rgba(255,243,204,.34);
}
.swan-am__gold b{
  z-index:4;
  right:6px!important;top:6px!important;
  width:20px!important;height:20px!important;
  border:0!important;
  background:rgba(17,13,7,.74)!important;
  color:#ffe6a0!important;
  font-size:10px!important;
  box-shadow:0 2px 8px rgba(0,0,0,.22)!important;
}

/* Damage states: the seal visibly fractures instead of becoming a rough border. */
.swan-am__tile.gold-2 .swan-am__gold::before{
  background:
    linear-gradient(35deg,transparent 47%,rgba(255,245,206,.72) 48% 49%,transparent 50%),
    linear-gradient(145deg,rgba(246,211,126,.25),rgba(130,83,14,.20));
}
.swan-am__tile.gold-1 .swan-am__gold::before{
  background:
    linear-gradient(35deg,transparent 47%,rgba(255,245,206,.82) 48% 49%,transparent 50%),
    linear-gradient(112deg,transparent 43%,rgba(255,237,181,.62) 44% 45%,transparent 46%),
    linear-gradient(145deg,rgba(246,211,126,.18),rgba(130,83,14,.25));
}

/* Cleaner impact feedback */
.swan-am__tile.is-ice-hit .swan-am__ice{
  animation:swanIceShatter .38s cubic-bezier(.2,.8,.2,1);
}
.swan-am__tile.is-gold-hit .swan-am__gold{
  animation:swanGoldPulse .40s cubic-bezier(.2,.8,.2,1);
}
@keyframes swanIceShatter{
  0%{filter:brightness(1);transform:scale(1)}
  48%{filter:brightness(1.75);transform:scale(1.045)}
  100%{filter:brightness(1);transform:scale(1)}
}
@keyframes swanGoldPulse{
  0%{filter:brightness(1);transform:scale(1)}
  45%{filter:brightness(1.55);transform:scale(1.035)}
  100%{filter:brightness(1);transform:scale(1)}
}

/* v2.3 — controlled frozen-card treatment
   Intentionally simpler than the crystalline effect: no fake cracks,
   no heavy borders, and no complex geometry. */
.swan-am__tile.has-ice{
  box-shadow:
    0 8px 22px rgba(0,0,0,.22),
    0 0 18px rgba(181,226,245,.12)!important;
}
.swan-am__tile.has-ice img{
  filter:saturate(.72) brightness(.94) contrast(.96);
}
.swan-am__ice{
  inset:0!important;
  border:0!important;
  border-radius:12px!important;
  overflow:hidden!important;
  background:
    linear-gradient(145deg,rgba(226,246,255,.36),rgba(128,190,218,.18))!important;
  box-shadow:
    inset 0 0 18px rgba(232,249,255,.38)!important;
  backdrop-filter:none!important;
}
.swan-am__ice::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  width:auto!important;
  height:auto!important;
  left:0!important;
  top:0!important;
  transform:none!important;
  opacity:1!important;
  background:
    linear-gradient(115deg,
      transparent 0 34%,
      rgba(255,255,255,.22) 42%,
      rgba(255,255,255,.06) 49%,
      transparent 57% 100%)!important;
  box-shadow:none!important;
}
.swan-am__ice::after{
  content:"❄"!important;
  position:absolute!important;
  left:50%!important;
  top:50%!important;
  right:auto!important;
  bottom:auto!important;
  width:auto!important;
  height:auto!important;
  transform:translate(-50%,-50%)!important;
  background:none!important;
  box-shadow:none!important;
  color:rgba(255,255,255,.88)!important;
  font-size:25px!important;
  line-height:1!important;
  text-shadow:0 2px 8px rgba(47,117,151,.30)!important;
  opacity:.9!important;
}

/* When the frozen card is hit, use one clean flash/shrink instead of a
   simulated shattering effect. */
.swan-am__tile.is-ice-hit .swan-am__ice{
  animation:swanFrozenHit .34s ease-out!important;
}
@keyframes swanFrozenHit{
  0%{opacity:1;transform:scale(1)}
  45%{opacity:.42;transform:scale(1.035);filter:brightness(1.35)}
  100%{opacity:1;transform:scale(1);filter:brightness(1)}
}
