.gift-grid {
    display: grid;
    grid-template-columns: repeat(2, 190px);
    gap: 10px;
}

.gift {
    position: relative;
    height: 112px;
    cursor: pointer;
    transition: transform .2s ease;
}

.gift:hover {
    transform: translateY(-5px) rotate(-1deg);
}

/* Main gift body */
.gift-body {
    position: absolute;
    inset: 8px 0 0;
    border: 4px solid var(--border);
    border-radius: 8px;
    background: var(--box);
    overflow: hidden;
}

/* Inner decorative border */
.gift-body::before {
    content: "";
    position: absolute;
    inset: 5px;
    border: 1px solid var(--inner);
    border-radius: 3px;
    pointer-events: none;
}

/* Vertical center ribbon */
.gift-ribbon-v {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 43%;
    width: 14%;
    background: var(--ribbon);
    border-left: 2px solid var(--ribbon-border);
    border-right: 2px solid var(--ribbon-border);
}

/* Horizontal center ribbon */
.gift-ribbon-h {
    position: absolute;
    top: 41%;
    left: 0;
    right: 0;
    height: 18%;
    background: var(--ribbon);
    border-top: 2px solid var(--ribbon-border);
    border-bottom: 2px solid var(--ribbon-border);
}

/* Center bow */
.gift-bow {
    position: absolute;
    z-index: 3;
    top: 50%;
    left: 50%;
    width: 42px;
    height: 25px;
    transform: translate(-50%, -50%);
}

.gift-bow::before,
.gift-bow::after {
    content: "";
    position: absolute;
    top: 2px;
    width: 20px;
    height: 17px;
    border: 4px solid var(--ribbon-border);
    background: var(--ribbon);
    border-radius: 50% 50% 3px 50%;
}

.gift-bow::before {
    left: 0;
    transform: rotate(25deg);
}

.gift-bow::after {
    right: 0;
    transform: rotate(65deg) scaleX(-1);
}

/* Center knot */
.gift-knot {
    position: absolute;
    z-index: 4;
    top: 50%;
    left: 50%;
    width: 11px;
    height: 11px;
    background: var(--ribbon-border);
    border: 2px solid var(--ribbon);
    border-radius: 3px;
    transform: translate(-50%, -50%);
}

/* Red gift */
.gift-red {
    --box: #d93636;
    --border: #8f2020;
    --inner: #f77b70;
    --ribbon: #ffd15c;
    --ribbon-border: #a66b19;
}

/* Yellow gift */
.gift-yellow {
    --box: #f0bd38;
    --border: #a87516;
    --inner: #ffe28a;
    --ribbon: #a93434;
    --ribbon-border: #702020;
}

@media (max-width: 450px) {
    .gift-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    .gift {
        height: 100px;
    }
}