.companion-cube-container { width: 100%; aspect-ratio: 1/1; display: flex; align-items: center; justify-content: center; margin: 2rem auto; position: relative; // Ground shadow beneath the cube &::after { content: ""; position: absolute; bottom: -30%; left: 50%; transform: translateX(-50%); width: 250%; height: 50%; background: radial-gradient(ellipse, rgba(0, 0, 0, 0.7) 0%, rgba(0, 0, 0, 0.5) 40%, transparent 70%); border-radius: 50%; filter: blur(8px); z-index: -1; @include media-down(md) { bottom: -4%; filter: blur(6px); } @include media-down(sm) { bottom: -3%; filter: blur(4px); } } } .companion-cube-face { width: 100%; height: 100%; position: relative; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, #e8e0d5 0%, #d0c8bd 50%, #beb6ab 100%); border-radius: 8px; box-shadow: inset 0 2px 4px rgba(255, 255, 255, 0.3); clip-path: polygon( /* Top left corner */ 0% 0%, 0% 35%, /* Left indent */ 6% 37.5%, 6% 62.5%, 0% 65%, /* Bottom left corner */ 0% 100%, 35% 100%, /* Bottom indent */ 37.5% 94%, 62.5% 94%, 65% 100%, /* Bottom right corner */ 100% 100%, 100% 65%, /* Right indent */ 94% 62.5%, 94% 37.5%, 100% 35%, /* Top right corner */ 100% 0%, 65% 0%, /* Top indent */ 62.5% 6%, 37.5% 6%, 35% 0% ); @include media-down(md) { border-radius: 6px; } } .cube-center-circle { position: absolute; width: 70%; height: 70%; background: linear-gradient(135deg, #6a6a6a 0%, #4a4a4a 50%, #3a3a3a 100%); border-radius: 50%; display: flex; align-items: center; justify-content: center; z-index: 2; } .center-inner-ring { position: absolute; width: 60%; height: 60%; border: 2px solid #5a5a5a; border-radius: 50%; background: linear-gradient(135deg, #e8e0d5 0%, #d0c8bd 50%, #beb6ab 100%); border-radius: 50%; @include media-down(md) { border-width: 1.5px; } } .grey-bar { position: absolute; background-color: #5a5a5a; &.horizontal-top, &.horizontal-bottom { height: 2.5%; } &.vertical-left, &.vertical-right { width: 2.5%; } &.horizontal-top { left: 0; right: 0; top: 37.5%; } &.horizontal-bottom { left: 0; right: 0; bottom: 37.5%; } &.vertical-left { left: 37.5%; top: 0; bottom: 0; } &.vertical-right { right: 37.5%; top: 0; bottom: 0; } } // Pink connector bars extending from center .pink-bar { position: absolute; background: #ff80bf; &.vertical { top: 0; bottom: 0; left: 50%; transform: translateX(-50%); width: 5%; } &.horizontal { top: 50%; right: 0; left: 0; transform: translateY(-50%); height: 5%; } } .heart-icon { font-size: 5rem; z-index: 3; color: #ffc0e5; pointer-events: none; -webkit-text-stroke: 2px #8b5a6f; animation: heartPulse 3s ease-in-out infinite; @include media-down(lg) { font-size: 4rem; } @include media-down(md) { font-size: 3rem; -webkit-text-stroke: 1.5px #8b5a6f; } @include media-down(sm) { font-size: 2rem; -webkit-text-stroke: 1px #8b5a6f; } } // Pulsing heart animation @keyframes heartPulse { 0%, 100% { transform: scale(1); opacity: 1; } 50% { transform: scale(1.3); opacity: 0.85; } }