:root{--zip-green:#00b884;--zip-blue:#007bff}.path-cell{position:absolute;pointer-events:none;display:flex;align-items:center;justify-content:center;z-index:10}.path-cell-center{width:90%;height:90%;transition:all .15s ease-out;border-radius:2px}.path-segment-horizontal{width:50.5%;height:90%}.path-segment-horizontal,.path-segment-vertical{position:absolute;transition:background-color .2s ease-out}.path-segment-vertical{width:90%;height:50.5%}.dot-container{position:absolute;pointer-events:none;display:flex;align-items:center;justify-content:center;transition:opacity .3s ease-in-out;z-index:20}.dot-bg{position:absolute;width:65%;height:65%;border-radius:50%;background-color:black;transition:transform .3s ease}.dot-number{position:relative;color:white;font-weight:700;font-size:.8rem;line-height:1}.dot-passed{opacity:1}.dot-passed .dot-bg{transform:scale(.8);background-color:transparent}.dot-passed .dot-number{color:black;font-weight:900}.hint-cell{position:absolute;pointer-events:none;display:flex;align-items:center;justify-content:center}.hint-cell-center{width:90%;height:90%;background-color:rgba(255,255,255,.3);border:2px dashed rgba(255,255,255,.5);border-radius:2px;animation:pulse 2s infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:.6}}.zip-button{background-color:#f0f2f5;color:#333;font-weight:600;border-radius:9999px;padding:.5rem 1.5rem;flex-grow:1;max-width:150px}.zip-button:hover{background-color:#e4e6e9}.zip-button:disabled{background-color:#f0f2f5;opacity:.5;cursor:not-allowed}.heart-animation{position:absolute;top:50%;left:50%;width:100px;height:100px}.heart{left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg);opacity:0;animation:float-up 2.5s infinite}.heart,.heart:after,.heart:before{position:absolute;width:20px;height:20px;background-color:#ff4757}.heart:after,.heart:before{content:"";border-radius:50%}.heart:before{top:-10px;left:0}.heart:after{top:0;left:-10px}.heart:first-child{animation-delay:0s}.heart:nth-child(2){animation-delay:.5s;left:20%}.heart:nth-child(3){animation-delay:1s;left:80%}.heart:nth-child(4){animation-delay:1.5s;left:60%}.heart:nth-child(5){animation-delay:2s;left:40%}@keyframes float-up{0%{transform:translate(-50%,50px) rotate(45deg);opacity:1}to{transform:translate(-50%,-150px) rotate(45deg);opacity:0}}