@import url("https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600&display=swap"); body { font-family: "Playfair Display", serif; background: #fff; height: 100vh; --cellcount: 10; overflow: hidden; cursor: pointer; transform: scale(0.75); } body * { cursor: pointer; } @media (max-width: 1000px) { body { transform: scale(0.5); } } body:before, body:after { content: ""; position: absolute; width: 900px; height: 900px; left: calc(50% - 450px); top: calc(50% - 450px); box-shadow: inset 0 0 0 25px #f0e6d2, inset 0 0 0 26px #fff, 0 40px 60px -40px rgba(0, 0, 0, 0.25); background: radial-gradient(circle at center, #f6f1e5, #f0e6d2 90%); } body:after { background: transparent; z-index: 999; box-shadow: 0 40px 60px -40px rgba(0, 0, 0, 0.25), 0 0 0 125vw #fff; } body h1 { position: absolute; z-index: 1; color: #222; font-weight: 900; font-size: 40px; display: inline-block; left: calc(50% - 250px); top: calc(50% - 350px); transform: translate(-50%, -50%); transition: 1s ease-in-out; transition-delay: 0.5s; } body h1 span { font-size: 20px; color: #666; display: block; margin-top: 0.15rem; } body > span { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); color: #222; font-size: 12px; transition: opacity 0.5s ease-in-out; opacity: 0; } body > span:before { content: "(complicated shirts take time)"; position: absolute; left: 50%; top: 125%; transform: translateX(-50%); width: 300px; text-align: center; opacity: 0.5; } body > span:after { content: "....."; -webkit-animation: loading 2s linear infinite; animation: loading 2s linear infinite; position: absolute; left: 100%; -webkit-clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%); clip-path: polygon(0 0, 0 0, 0 100%, 0% 100%); } @-webkit-keyframes loading { 100% { -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); } } @keyframes loading { 100% { -webkit-clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); } } body > strong { position: absolute; z-index: 10; top: calc(50% + 400px); left: 50%; transform: translate(-50%, -50%); opacity: 1; transition: 0.5s ease-in-out; transition-delay: 2s; } body.loading > strong { opacity: 0; transition-delay: 0s; } body.loading > span { opacity: 1; } body.loading canvas { transform: translateY(clamp(800px, 100vh, 90000px)); } body canvas { z-index: 2; position: relative; transition: transform 1s cubic-bezier(0.175, 0.885, 0.32, 1.075); filter: contrast(calc(1 + (var(--contrast)/7))); } body #pattern { overflow: hidden; position: absolute; width: 1200px; height: 1200px; left: -2400px; top: 0; z-index: 999; display: grid; grid-template-columns: repeat(8, 1fr); grid-template-rows: repeat(8, 1fr); grid-column-gap: 0px; grid-row-gap: 0px; z-index: -1; } body #pattern:before { content: ""; position: absolute; width: 100%; height: 100%; left: 0; top: 0; z-index: 10; background: linear-gradient(to left, var(--color1), transparent, var(--color1)), linear-gradient(to bottom, var(--color2), transparent, var(--color2)); } body #pattern .cell { background: transparent; position: relative; z-index: -1; background: radial-gradient(circle at center, var(--color1) 15px, transparent 5px), linear-gradient(var(--rotate2), transparent 50%, var(--color0) 50%, var(--color4) 100%), linear-gradient(var(--rotate2), var(--color2), transparent); background-position: calc(var(--rotate) * 0.5px) calc(var(--rotate) * 0.5px), calc(var(--rotate) * 2px) calc(var(--rotate) * 2px); } body #pattern .cell:before, body #pattern .cell:after { content: ""; position: absolute; width: 100%; height: 100%; border-radius: 100%; background: linear-gradient(45deg, var(--color6), var(--color7)); transform: scale(calc(1 - (var(--scale) / 4))); } body #pattern .cell:after { background: radial-gradient(circle at bottom, transparent 25%, var(--color8) 25%, var(--color8) 35%, transparent 35%); border-radius: 0px; transform: scale(calc(var(--scale) / 10)) rotate(var(--rotate2)); } body #pattern .cell svg { position: absolute; width: 100%; height: 100%; left: 0; top: 0; z-index: 2; background: radial-gradient(circle at center, var(--color1) 2px, transparent 2px, transparent) 50% 50%/calc(var(--distance2) * 1px) calc(var(--distance2) * 1px), repeating-linear-gradient(var(--rotate2), var(--color5) 1px, transparent 1px, transparent calc(var(--distance) * 1px), var(--color5) calc(var(--distance) * 1px), var(--color5) calc((var(--distance) * 1px) + 1px)), repeating-linear-gradient(calc(var(--rotate2) * 90), var(--color5) 1px, transparent 1px, transparent 5px, var(--color5) 5px, var(--color5) 6px); } body #pattern .cell svg path { stroke-width: var(--stroke); stroke: var(--color3); }