/* MASTER-J portrait-click love transformation — separate additive layer */
.hero-portrait[role="button"] { pointer-events: auto !important; cursor: pointer !important; }
.hero-portrait[role="button"]:focus-visible { outline: 2px solid #ff79bd !important; outline-offset: 5px; filter: drop-shadow(0 0 13px rgba(255,80,170,.62)) !important; }
.portrait-love-overlay { position:absolute; z-index:7; inset:-4% -5% -5%; pointer-events:none; opacity:0; visibility:hidden; overflow:visible; mix-blend-mode:screen; }
.portrait-love-overlay svg { width:100%; height:100%; overflow:visible; }
.portrait-love-heart,.portrait-love-heart-inner { fill:none; stroke:#ff63b5; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; stroke-dasharray:1000; stroke-dashoffset:1000; filter:drop-shadow(0 0 5px #ff2e9c) drop-shadow(0 0 14px rgba(255,58,165,.86)); }
.portrait-love-heart-inner { stroke:#a8ffe1; stroke-width:1.25; opacity:.88; stroke-dasharray:880; stroke-dashoffset:880; filter:drop-shadow(0 0 5px #00ffa3); }
.portrait-love-word { position:absolute; left:50%; top:7%; transform:translate(-50%,8px) scale(.7); opacity:0; color:#ffe7f4; font:900 clamp(11px,1.25vw,17px)/1 sans-serif; letter-spacing:.2em; text-shadow:0 0 8px #ff2c9b,0 0 18px #ff2c9b; white-space:nowrap; }
.portrait-love-spark { position:absolute; color:#ff9ccc; font-style:normal; opacity:0; font-size:clamp(16px,2vw,25px); text-shadow:0 0 10px #ff3ca4,0 0 20px #ff3ca4; }
.portrait-love-spark.spark-a { left:13%; top:31%; }.portrait-love-spark.spark-b { right:13%; top:23%; color:#c8ffed; }.portrait-love-spark.spark-c { right:22%; bottom:18%; }
.portrait-panel.is-love-reacting .portrait-love-overlay,.portrait-panel.is-love-active .portrait-love-overlay { visibility:visible; opacity:1; }
.portrait-panel.is-love-active .portrait-love-overlay { opacity:.4; }
.portrait-panel.is-love-reacting .portrait-love-overlay { animation:portrait-love-glow 1.8s ease-out both; }
.portrait-panel.is-love-reacting .portrait-love-heart { animation:portrait-heart-draw 1.05s cubic-bezier(.2,.75,.25,1) both; }
.portrait-panel.is-love-reacting .portrait-love-heart-inner { animation:portrait-heart-draw .82s .12s ease-out both; }
.portrait-panel.is-love-reacting .portrait-love-word { animation:portrait-love-word 1.7s ease-out both; }
.portrait-panel.is-love-reacting .portrait-love-spark { animation:portrait-love-spark 1.5s ease-out both; }
.portrait-panel.is-love-reacting .portrait-love-spark.spark-b { animation-delay:.13s; }.portrait-panel.is-love-reacting .portrait-love-spark.spark-c { animation-delay:.27s; }
.cursor-android.is-in-love { filter:drop-shadow(0 9px 13px rgba(0,0,0,.52)) drop-shadow(0 0 14px rgba(255,68,166,.55)) drop-shadow(0 0 20px rgba(0,255,157,.3)) !important; }
.cursor-android.is-in-love::before { opacity:1; transform:scale(1.26); background:radial-gradient(ellipse,rgba(255,64,160,.31),rgba(0,255,163,.18) 48%,transparent 76%); animation:mj-love-aura 1.8s ease-in-out infinite alternate; }
.cursor-android.is-in-love .mj-robot-body { animation:mj-love-float 2.4s ease-in-out infinite !important; }
.cursor-android.is-in-love .mj-robot-body > :not(.mj-female-form) { opacity:0 !important; visibility:hidden; transition:opacity .48s ease,visibility .48s; }
.mj-female-form { display:block; opacity:0; visibility:hidden; transform:scale(.52) rotate(-16deg); transform-box:fill-box; transform-origin:50% 48%; transition:opacity .28s ease,visibility .28s ease,transform .28s ease; }
.cursor-android.is-in-love .mj-female-form { opacity:1; visibility:visible; animation:mj-female-transform 1.12s cubic-bezier(.18,.85,.24,1) both; }
.mj-female-hair { transform-origin:50% 50%; animation:mj-female-hair-float 3.4s ease-in-out infinite; }
.mj-female-antenna { transform-origin:50% 50%; animation:mj-female-heart-pulse 1.15s ease-in-out infinite; }
.mj-female-blink-eye { transform-box:fill-box; transform-origin:center; animation:mj-female-blink 4.2s ease-in-out infinite; }
.mj-female-blink-eye.right { animation-delay:.08s; }
.mj-female-chest-heart { transform-box:fill-box; transform-origin:center; animation:mj-female-heart-pulse 1.35s ease-in-out infinite; }
.mj-female-arm-left { transform-box:fill-box; transform-origin:90% 10%; animation:mj-female-arm-wave 3.2s ease-in-out infinite; }
.mj-female-arm-right { transform-box:fill-box; transform-origin:10% 10%; animation:mj-female-arm-wave 3.2s .25s ease-in-out infinite reverse; }
.android-love-hearts { position:absolute; z-index:9; inset:-20px -28px 4px; pointer-events:none; opacity:0; }
.cursor-android.is-in-love .android-love-hearts { opacity:1; }
.android-love-hearts::before,.android-love-hearts::after { content:"♡"; position:absolute; color:#ff75bd; font:900 22px/1 sans-serif; text-shadow:0 0 7px #ff2b9c,0 0 15px #ff2b9c; animation:mj-heart-drift 2.5s ease-in-out infinite; }
.android-love-hearts::before { left:2px; top:32px; }.android-love-hearts::after { right:0; top:8px; color:#c5ffec; animation-delay:.8s; font-size:17px; }
.android-love-hearts i { position:absolute; display:block; color:#ff65b4; font:900 17px/1 sans-serif; font-style:normal; opacity:0; text-shadow:0 0 7px #ff2b9c,0 0 16px #ff2b9c; }
.android-love-hearts.is-bursting i { animation:mj-heart-pop 1.45s cubic-bezier(.12,.68,.26,1) both; }
.android-love-hearts i:nth-child(1) { left:7%; top:33%; --heart-x:-24px; --heart-y:-51px; }
.android-love-hearts i:nth-child(2) { left:73%; top:25%; --heart-x:26px; --heart-y:-62px; color:#c7ffea; animation-delay:.08s; }
.android-love-hearts i:nth-child(3) { left:14%; top:67%; --heart-x:-36px; --heart-y:-24px; animation-delay:.16s; }
.android-love-hearts i:nth-child(4) { left:82%; top:60%; --heart-x:35px; --heart-y:-36px; color:#ffc4e1; animation-delay:.24s; }
.android-love-hearts i:nth-child(5) { left:48%; top:7%; --heart-x:3px; --heart-y:-72px; animation-delay:.32s; }
.android-love-caption { position:absolute; z-index:10; left:50%; top:-17px; transform:translate(-50%,8px) scale(.7); opacity:0; color:#ffe4f2; font:900 8px/1 sans-serif; letter-spacing:1.5px; white-space:nowrap; text-shadow:0 0 8px #ff2b9c,0 0 15px #ff2b9c; pointer-events:none; }
.cursor-android.is-in-love .android-love-caption { animation:mj-love-caption 1.8s ease-out both; }
.cursor-android.is-love-burst .android-love-caption { animation:mj-love-caption 1.8s ease-out both; }
@keyframes portrait-heart-draw { 0%{stroke-dashoffset:1000;opacity:.1;transform:scale(.86)} 68%{stroke-dashoffset:0;opacity:1;transform:scale(1.04)} 100%{stroke-dashoffset:0;opacity:.94;transform:scale(1)} }
@keyframes portrait-love-glow { 0%{opacity:0;filter:brightness(.7)} 25%{opacity:1;filter:brightness(1.8)} 100%{opacity:.55;filter:brightness(1)} }
@keyframes portrait-love-word { 0%,100%{opacity:0;transform:translate(-50%,8px) scale(.7)} 22%,72%{opacity:1;transform:translate(-50%,0) scale(1)} }
@keyframes portrait-love-spark { 0%,100%{opacity:0;transform:scale(.3) rotate(-25deg)} 25%,62%{opacity:1;transform:scale(1.2) rotate(10deg)} }
@keyframes mj-female-transform { 0%{opacity:0;transform:scale(.52) rotate(-16deg)} 58%{opacity:1;transform:scale(1.08) rotate(4deg)} 78%{transform:scale(.97) rotate(-1deg)} 100%{opacity:1;transform:scale(1) rotate(0)} }
@keyframes mj-female-blink { 0%,42%,46%,78%,82%,100%{transform:scaleY(1)} 44%,80%{transform:scaleY(.08)} }
@keyframes mj-female-heart-pulse { 0%,100%{transform:scale(1)} 50%{transform:scale(1.16)} }
@keyframes mj-female-hair-float { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-1.6px) rotate(1deg)} }
@keyframes mj-female-arm-wave { 0%,100%{transform:rotate(0)} 48%{transform:rotate(-13deg)} 72%{transform:rotate(4deg)} }
@keyframes mj-love-float { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-5px) rotate(1deg)} }
@keyframes mj-love-aura { from{opacity:.66;transform:scale(1.06)} to{opacity:1;transform:scale(1.3)} }
@keyframes mj-heart-drift { 0%,100%{opacity:.42;transform:translateY(3px) scale(.82) rotate(-8deg)} 50%{opacity:1;transform:translateY(-8px) scale(1.14) rotate(8deg)} }
@keyframes mj-heart-pop { 0%{opacity:0;transform:translate(0,0) scale(.2) rotate(-15deg)} 18%{opacity:1;transform:translate(0,0) scale(1.15) rotate(8deg)} 100%{opacity:0;transform:translate(var(--heart-x),var(--heart-y)) scale(.65) rotate(25deg)} }
@keyframes mj-love-caption { 0%,100%{opacity:0;transform:translate(-50%,8px) scale(.7)} 20%,70%{opacity:1;transform:translate(-50%,0) scale(1)} }
@media(prefers-reduced-motion:reduce) {
  .portrait-panel.is-love-reacting .portrait-love-overlay,.portrait-panel.is-love-reacting .portrait-love-heart,.portrait-panel.is-love-reacting .portrait-love-heart-inner,.portrait-panel.is-love-reacting .portrait-love-word,.portrait-panel.is-love-reacting .portrait-love-spark,
  .cursor-android.is-in-love::before,.cursor-android.is-in-love .mj-robot-body,.cursor-android.is-in-love .mj-female-form,.mj-female-hair,.mj-female-antenna,.mj-female-blink-eye,.mj-female-chest-heart,.mj-female-arm-left,.mj-female-arm-right,.cursor-android.is-in-love .android-love-caption,.android-love-hearts::before,.android-love-hearts::after,.android-love-hearts.is-bursting i { animation:none !important; }
  .cursor-android.is-in-love .mj-female-form { opacity:1; visibility:visible; transform:none; }
}
