html { font-family: "Roboto",-apple-system,BlinkMacSystemFont,"Avenir Next",Avenir,"Nimbus Sans L","Noto Sans","Segoe UI",Arial,Helvetica,"Helvetica Neue",sans-serif; scroll-behavior: smooth; }
body { margin: 0; font-size: 15px; color: #212121; }
a, a:visited { color: #0d47a1; text-decoration:none; }
a:hover { text-decoration:none; color: #1266e2; }
h1, h2 { font-size: 1.1rem; }
details{padding:.7rem 1rem;font-size:.9rem;background-color: #f5f7ff;
    border: 1px solid #898ea4;
    margin-bottom: 1rem;
    padding-bottom: 15px;
    border-radius: 8px;}summary{cursor:pointer;margin:-.7rem -1rem;padding:.5rem 1rem .2rem;font-size:1rem;font-weight:500}details[open]>summary+*{margin-top:0}details[open]>summary{margin-bottom:0}details[open]>:last-child{margin-bottom:0}
.jp-text {
    font-family: "Kosugi Maru", sans-serif;
    font-weight: 400;
    font-style: normal;
}
.vertical-text {
    writing-mode: vertical-rl;
    text-orientation: upright; 
    white-space: nowrap;
}
.layout { position: relative; }
.layout-center {
    position: relative;
    z-index: 1;
    max-width: 768px;
    margin: 0 auto;
    background: #fff;
    box-shadow: 0 8px 24px rgba(0,0,0,0.25), 0 16px 48px rgba(0,0,0,0.2);
}
.absolute { position: absolute; }
@keyframes drift-cloud {
    0% { transform: translate(0) }
    50% { transform: translate(-13%) }
    to { transform: translate(0) }
}
.object-cover { -o-object-fit: cover; object-fit: cover; }
.h-px { height: 1px; }
.animate-shooting-star {
    animation: 6s ease-out 0s infinite normal none running shooting-star;
    background-image: linear-gradient(to right, transparent , hsl(0 0% 100%) , transparent);
}
@keyframes shooting-star {
    0% { transform: translate(0px) rotate(-35deg); opacity:0; width:0px; }
    5% { opacity: 1; }
    15% { width:80px; }
    30% { opacity:0; width:0px; transform: translate(200px, 120px) rotate(-35deg); }
    100% { opacity:0; }
}
@keyframes warm-pulse {
    0%, 100% { box-shadow: 0 0 20px #ffbf6626; }
    50% { box-shadow: 0 0 40px #ffbf664d, 0 0 80px #ee7c2b1a; }
}
@keyframes gentle-float {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
}
#pvamenu a { text-decoration: none; padding: 4px 7px 5px 3px; display: flex; align-items: center; border: 1px solid; border-radius: 0 12px 12px 0; box-shadow: 2px 2px 0px hsl(45 90% 55% /.5); }
#pvamenu a:hover { box-shadow: 1px 1px 0px hsl(45 90% 55% / .5); }
#pvamenu span { transition: all 0.3s ease; padding-left: 5px; }
#pvamenu span.hide { opacity: 0; transform: translateY(-10px); width: 0; padding-left: 0; display: none;  }

.timeago{font-weight:400}
    .fav { width: 14px; height: 14px; vertical-align: middle; }
    .contact::before {content:"\FF20";}
    .contact::after {content:"jp";}
    .kamehameha {
        animation: kamehameha 30s infinite linear;
        position: absolute;
        bottom: 0;
        left: 0;
        right: 0;
        height: 30px;
        z-index: 99999;
        pointer-events: none;
        border-image: url(kamehameha.gif) 0 0 0 240 fill / 0 0 0 60px;
    }
    @keyframes kamehameha{40%,43%{color:rgba(0,0,0,.3)}0%,39.9%,43.1%,100%{color:transparent}}
    .tab-wrap {
        transition: 0.3s box-shadow ease;
        border-radius: 5px;
        max-width: 100%;
        display: flex;
        flex-wrap: wrap;
        position: relative;
        list-style: none;
        background-color: #fff;
        box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
    }
    .tab-wrap:hover { box-shadow: 0 12px 23px rgba(0, 0, 0, 0.23), 0 10px 10px rgba(0, 0, 0, 0.19); }
    .tab { display: none; }
    .tab:checked:nth-of-type(1) ~ .tab__content:nth-of-type(1),
    .tab:checked:nth-of-type(2) ~ .tab__content:nth-of-type(2),
    .tab:checked:nth-of-type(3) ~ .tab__content:nth-of-type(3),
    .tab:checked:nth-of-type(4) ~ .tab__content:nth-of-type(4),
    .tab:checked:nth-of-type(5) ~ .tab__content:nth-of-type(5) {
        opacity: 1;
        transition: 0.5s opacity ease-in, 0.8s transform ease;
        position: relative;
        top: 0;
        z-index: 100;
        transform: translateY(0px);
        text-shadow: 0 0 0;
    }
    .tab:first-of-type:not(:last-of-type) + label {
        border-top-right-radius: 0;
        border-bottom-right-radius: 0;
    }
    .tab:not(:first-of-type):not(:last-of-type) + label { border-radius: 0; }
    .tab:last-of-type:not(:first-of-type) + label {
        border-top-left-radius: 0;
        border-bottom-left-radius: 0;
    }
    .tab:checked + label {
        background-color: #fff;
        box-shadow: 0 -1px 0 #fff inset;
        cursor: default;
    }
    .tab:checked + label:hover {
        box-shadow: 0 -1px 0 #fff inset;
        background-color: #fff;
    }
    .tab + label {
        box-shadow: 0 -1px 0 #eee inset;
        border-radius: 6px 6px 0 0;
        cursor: pointer;
        display: block;
        text-decoration: none;
        color: #333;
        flex-grow: 3;
        text-align: center;
        background-color: #f2f2f2;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
        text-align: center;
        transition: 0.3s background-color ease, 0.3s box-shadow ease;
        height: 50px;
        box-sizing: border-box;
        padding: 15px;
    }
    .tab + label:hover {
        background-color: #f9f9f9;
        box-shadow: 0 1px 0 #f4f4f4 inset;
    }
    .tab__content {
        padding: 1rem 0 0;
        background-color: transparent;
        position: absolute;
        width: 100%;
        z-index: -1;
        opacity: 0;
        left: 0;
        transform: translateY(-3px);
        border-radius: 6px;
    }
    .slider { width: 100%; text-align: center; overflow: hidden; }
    .slides {
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scroll-behavior: smooth;
        -webkit-overflow-scrolling: touch;
        /*
        scroll-snap-points-x: repeat(300px);
        scroll-snap-type: mandatory;
        */
        margin-top: .2rem;
    }
    .slides::-webkit-scrollbar { width: 10%; height: 5px; }
    .slides::-webkit-scrollbar-thumb { background: #ffc107; border-radius: 0; }
    .slides::-webkit-scrollbar-track { background: transparent; }
    .slides > div {
        scroll-snap-align: start;
        flex-shrink: 0;
        width: 100%;
        height: 300px;
        background: #eee;
        transform-origin: center center;
        transform: scale(1);
        transition: transform 0.5s;
        position: relative;
        display: flex;
        justify-content: center;
        align-items: center;
    }
    .slides > div:target { /*   transform: scale(0.8); */}
    .slides img {
        object-fit: contain;
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 85%;
    }
    .slides > div > div {
        z-index: 1;
        position: absolute;
        font-size: 1rem;
        bottom: 0;
        background: #CD201F;
        width: 100%;
        color: #fff;
        padding: .5rem;
    }
    .slides > div > div a { color: #fff !important; }
    .slider > a {
        display: inline-flex;
        width: 1.5rem;
        height: 1.5rem;
        background: #fff;
        text-decoration: none;
        align-items: center;
        justify-content: center;
        border-radius: 50%;
        margin: 0 .3rem .5rem;
        position: relative;
        color: #CD201F;
        border: 1px #CD201F solid;
        font-size: .85rem;
    }
    .slider > a:focus { background: #CD201F; color: #fff; }


@media (min-width: 1000px) {
    .bg-side {
        position: fixed;
        top: 0;
        bottom: 0;
        width: calc((100% - 768px) / 2);
        display: flex;
        flex-direction: column;
        z-index: 0;
    }
    .bg-side.left { left: 0; }
    .row { flex: 1; }
    .row.middle {
        display: grid;
        grid-template-columns: 1fr 1fr; /* 2 cột bằng nhau */
    }
    .bg-side.right {
        right: 0;
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-template-rows: repeat(6, 1fr); /* 6 hàng nhỏ */
      }
    .bg-side > div {
        flex: 1;
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        background-blend-mode: overlay;
        background-color: rgba(0,0,0,0.1);
    }
}