    body {
        font-family: Arial, Helvetica, sans-serif;
    }
        /*   .  : px, %, vw, vh, calc(), clamp() 
               ,     ,
               ,     @media.
               :  ,     
           .      . */
.makisu {
    --makisu-width:       clamp(270px, 16vh, 360px);
    --makisu-height:      calc(4vw + 4vh);
    --makisu-title-size:  calc(2vw + 2vh);
    --makisu-item-size:   clamp(30px, 6vh, 48px);
    --makisu-perspective: 1200px;
    --makisu-yaw:         40deg;

    font-family: Arial, Helvetica, sans-serif;
    width: var(--makisu-width);
    transform: perspective(var(--makisu-perspective)) rotateY(var(--makisu-yaw));
    transform-origin: left top;
    transform-style: preserve-3d;
    position: relative;
}

.makisu-plate { /*        */
    position: absolute; left: 0; top: 0;
    width: var(--makisu-width);
    height: var(--makisu-height);
    line-height: var(--makisu-height);
    box-sizing: border-box;
    background: #E32551;
    text-transform: uppercase;
    user-select: none;
    transform-origin: 50% 0;
    transform-style: preserve-3d;
    will-change: transform;
}

.makisu-plate.makisu-title { /*   */
    font-size: var(--makisu-title-size);
    font-weight: bold;
    border-bottom: 2px solid rgba(0, 0, 0, 0.15);
    cursor: alias;
}

.makisu-plate.makisu-item { /*   */
    font-size: var(--makisu-item-size);
    border-top: 1px dashed rgba(255, 255, 255, 0.3);
    cursor: pointer;
}

.makisu-plate .makisu-label { /*     */
    display: block;
    padding-left: 10px;
    color: #fff;
    text-decoration: none;
    backface-visibility: hidden;
    transition: padding-left 250ms ease;
}
.makisu-plate .makisu-label:hover { padding-left: 25px; }

/*  :    ,     */
.makisu-source,
.makisu-source dl { margin: 0; padding: 0; color: #fff; }
.makisu-source a  { color: #fff; }
.makisu-source dt:empty,
.makisu-source dd:has(a:empty) { display: none; }