:root{
    --navy:#111541;
    --navy2:#181d55;
    --pink:#e34f93;
    --purple:#6d5ee8;
    --blue:#3977e8;
    --bg:#f7f8fc;
    --white:#fff;
    --text:#17182d;
    --muted:#777b91;
    --line:#e9ebf3;
}

*{
    box-sizing:border-box;
}

html{
    scroll-behavior:smooth;
}

body{
    margin:0;
    background:#f7f8fc;
    color:var(--text);
    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        "Hiragino Sans",
        "Noto Sans JP",
        sans-serif;
}

a{
    color:inherit;
    text-decoration:none;
}

button,input{
    font:inherit;
}

.site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(255,255,255,.95);
    backdrop-filter:blur(18px);
    border-bottom:1px solid var(--line);
}

.header-main{
    max-width:1280px;
    height:72px;
    margin:auto;
    padding:0 24px;
    display:flex;
    align-items:center;
    gap:28px;
}

.logo-link{
    flex:none;
    display:flex;
    align-items:center;
}

.logo-image{
    display:block;
    width:166px;
    height:auto;
}

.search-box{
    flex:1;
    max-width:480px;
    height:42px;
    border-radius:999px;
    border:1px solid var(--line);
    background:#f5f6fa;
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 16px;
    color:#9699aa;
    font-size:13px;
}

.header-actions{
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:18px;
    color:#45485e;
    font-size:13px;
    font-weight:700;
}

.header-icon{
    font-size:18px;
}

.desktop-nav{
    border-top:1px solid #f4f4f7;
    background:#fff;
}

.nav-inner{
    max-width:1280px;
    height:50px;
    margin:auto;
    padding:0 24px;
    display:flex;
    align-items:center;
    gap:12px;
    overflow-x:auto;
    scrollbar-width:none;
}

.nav-inner::-webkit-scrollbar{
    display:none;
}

.nav-pill{
    min-width:max-content;
    padding:8px 18px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    color:#696d81;
    background:#f5f6f9;
}

.nav-pill.active{
    color:#fff;
    background:var(--navy);
}

.page{
    max-width:1280px;
    margin:auto;
    padding:28px 24px 100px;
}

.layout{
    display:grid;
    grid-template-columns:190px minmax(0,1fr) 280px;
    gap:24px;
    align-items:start;
}

.side-left,
.side-right{
    position:sticky;
    top:145px;
}

.panel{
    background:#fff;
    border:1px solid var(--line);
    border-radius:22px;
    padding:18px;
}

.panel + .panel{
    margin-top:16px;
}

.panel-title{
    margin:0 0 13px;
    color:var(--navy);
    font-size:14px;
    font-weight:900;
}

.category-button{
    width:100%;
    border:0;
    padding:11px 14px;
    border-radius:10px;
    margin-top:8px;
    cursor:pointer;
    font-size:12px;
    font-weight:800;
    text-align:left;
}

.category-fuzoku{
    background:#f3d3e2;
    color:#b23874;
}

.category-esthe{
    background:#dde6ff;
    color:#365ec3;
}

.area-list{
    display:grid;
    gap:11px;
    color:#50546a;
    font-size:12px;
    font-weight:700;
}

.area-link{
    cursor:pointer;
}

.hash-list{
    display:flex;
    flex-wrap:wrap;
    gap:7px;
}

.hash{
    padding:7px 9px;
    border-radius:999px;
    background:#f6f6fa;
    color:#818497;
    font-size:10px;
}

.center{
    min-width:0;
}

.section{
    margin-bottom:34px;
}

.section-header{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    margin-bottom:15px;
}

.section-title{
    margin:0;
    font-size:20px;
    letter-spacing:-.5px;
    font-weight:900;
    color:var(--navy);
}

.section-link{
    color:#7b7f95;
    font-size:11px;
    font-weight:700;
}

.cast-strip{
    display:grid;
    grid-auto-flow:column;
    grid-auto-columns:112px;
    gap:16px;
    overflow-x:auto;
    scrollbar-width:none;
    padding:2px 2px 10px;
}

.cast-strip::-webkit-scrollbar{
    display:none;
}

.cast-mini{
    text-align:center;
}

.cast-circle-wrap{
    position:relative;
    width:78px;
    height:78px;
    margin:auto;
    padding:3px;
    border-radius:50%;
    background:linear-gradient(135deg,#ea5b9c,#7060e8,#3977e8);
}

.cast-circle{
    width:100%;
    height:100%;
    border:3px solid #fff;
    border-radius:50%;
    overflow:hidden;
    background:
        radial-gradient(circle at 50% 32%,#fff 0 16%,transparent 17%),
        linear-gradient(145deg,#e5dfff,#ffdce9);
}

.cast-circle img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.cast-status-dot{
    position:absolute;
    right:2px;
    bottom:4px;
    width:17px;
    height:17px;
    border-radius:50%;
    border:3px solid #fff;
    background:#29c979;
}

.cast-mini-name{
    margin-top:7px;
    color:#303348;
    font-size:12px;
    font-weight:900;
}

.cast-mini-time{
    margin-top:2px;
    color:#9a9cab;
    font-size:9px;
}

.feed-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.feed-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:16px;
    background:#fff;
    box-shadow:0 5px 18px rgba(27,31,67,.045);
}

.feed-image{
    position:relative;
    width:100%;
    aspect-ratio:4 / 3.35;
    overflow:hidden;
    background:
        radial-gradient(circle at 40% 30%,rgba(255,255,255,.85),transparent 22%),
        linear-gradient(145deg,#ebe7ff,#fbdce9);
}

.feed-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.post-badge{
    position:absolute;
    left:10px;
    top:10px;
    border-radius:7px;
    padding:5px 9px;
    color:#fff;
    background:#e85696;
    font-size:9px;
    font-weight:900;
}

.post-badge.video{
    background:#303244;
}

.feed-content{
    padding:12px;
}

.feed-title{
    min-height:38px;
    font-size:12px;
    line-height:1.55;
    font-weight:800;
}

.feed-user{
    margin-top:9px;
    display:flex;
    align-items:center;
    gap:7px;
    color:#65697c;
    font-size:10px;
}

.feed-avatar{
    width:23px;
    height:23px;
    border-radius:50%;
    background:linear-gradient(145deg,#dad3ff,#ffd5e7);
}

.feed-meta{
    display:flex;
    gap:11px;
    margin-left:auto;
    color:#b07695;
}

.video-card{
    overflow:hidden;
    position:relative;
    min-height:470px;
    border-radius:20px;
    color:#fff;
    background:
        radial-gradient(circle at 50% 20%,rgba(255,255,255,.22),transparent 16%),
        linear-gradient(160deg,#cac1df,#27213f 75%);
}

.video-label{
    position:absolute;
    top:17px;
    left:17px;
    z-index:2;
    font-size:12px;
    font-weight:900;
}

.video-center{
    position:absolute;
    inset:0;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:55px;
    text-shadow:0 8px 30px rgba(0,0,0,.2);
}

.video-info{
    position:absolute;
    left:17px;
    right:17px;
    bottom:18px;
}

.video-name{
    font-size:13px;
    font-weight:900;
}

.video-text{
    margin-top:4px;
    color:rgba(255,255,255,.8);
    font-size:10px;
}

.shop-list{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
}

.shop-card{
    overflow:hidden;
    border:1px solid var(--line);
    border-radius:15px;
    background:#fff;
}

.shop-cover{
    height:95px;
    background:
        linear-gradient(rgba(15,19,52,.16),rgba(15,19,52,.3)),
        linear-gradient(135deg,#c9b7a0,#efe1d0);
}

.shop-info{
    padding:11px;
}

.shop-area{
    color:#9699aa;
    font-size:9px;
}

.shop-name{
    margin-top:3px;
    color:var(--navy);
    font-size:12px;
    font-weight:900;
}

.shop-rating{
    margin-top:5px;
    color:#d89a2a;
    font-size:10px;
}

.mobile-nav{
    display:none;
}

.empty{
    padding:30px;
    border-radius:15px;
    background:#fff;
    color:#989bad;
    text-align:center;
    font-size:12px;
}

@media(max-width:1050px){

    .layout{
        grid-template-columns:150px minmax(0,1fr);
    }

    .side-right{
        display:none;
    }

    .feed-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .shop-list{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:720px){

    body{
        background:#fff;
    }

    .site-header{
        border-bottom:1px solid #f0f1f5;
    }

    .header-main{
        height:61px;
        padding:0 14px;
    }

    .logo-image{
        width:130px;
    }

    .header-actions{
        gap:13px;
    }

    .header-actions span:not(.header-icon){
        display:none;
    }

    .search-box,
    .desktop-nav,
    .side-left{
        display:none;
    }

    .page{
        padding:17px 13px 90px;
    }

    .layout{
        display:block;
    }

    .section{
        margin-bottom:28px;
    }

    .section-title{
        font-size:18px;
    }

    .cast-strip{
        grid-auto-columns:92px;
        gap:11px;
    }

    .cast-circle-wrap{
        width:68px;
        height:68px;
    }

    .feed-grid{
        grid-template-columns:1fr;
        gap:15px;
    }

    .feed-card{
        border-radius:17px;
    }

    .feed-image{
        aspect-ratio:1 / .9;
    }

    .shop-list{
        grid-template-columns:1fr 1fr;
        gap:10px;
    }

    .side-right{
        display:none;
    }

    .mobile-nav{
        position:fixed;
        z-index:200;
        left:0;
        right:0;
        bottom:0;
        display:flex;
        height:68px;
        padding-bottom:env(safe-area-inset-bottom);
        justify-content:space-around;
        align-items:center;
        background:rgba(255,255,255,.97);
        backdrop-filter:blur(18px);
        border-top:1px solid var(--line);
    }

    .mobile-nav-item{
        min-width:54px;
        color:#686c7e;
        text-align:center;
        font-size:9px;
        font-weight:700;
    }

    .mobile-nav-icon{
        display:block;
        margin-bottom:3px;
        color:var(--navy);
        font-size:21px;
    }

    .mobile-post{
        display:flex;
        width:45px;
        height:45px;
        margin:-15px auto 2px;
        align-items:center;
        justify-content:center;
        border-radius:50%;
        color:#fff;
        background:linear-gradient(135deg,#e95b9b,#7661ea,#3977e8);
        box-shadow:0 5px 18px rgba(101,79,224,.28);
        font-size:26px;
    }
}
