<!DOCTYPE html>
<html>
<head>
    <style>
        .container {
            margin: 50px;
            height: 300px;
            width: 300px;
            border: 1px solid black;
            perspective: 500px;
        }
        
        .intermediate {
            width: 100%;
            height: 100%;
            transform: translateX(0);
            transform-style: flat;
        }
        
        .intermediate.changed {
            transform-style: preserve-3d;
        }
        
        .transformed {
            width: 100%;
            height: 100%;
            background-color: blue;
            transform: rotateY(45deg);
        }
    </style>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();

        window.addEventListener('load', () => {
            setTimeout(() => {
                document.querySelector('.intermediate').classList.add('changed');
                if (window.testRunner)
                    testRunner.notifyDone();
            }, 0);
            
        }, false);
    </script>
</head>
<body>
    <div class="container">
        <div class="intermediate">
            <div class="transformed"></div>
        </div>
    </div>
</body>
</html>
