* {
    margin: 0;
    padding: 0;
    font-family: "Microsoft YaHei" sans-serif;
}

ol, ul {
    list-style: none;
}

a {
    text-decoration: none;
    cursor: pointer;
}

button {
    cursor: pointer;
}

.clearfix {
    zoom: 1;
}

.clearfix::after {
    content: "";
    display: block;
    clear: both;
}

.show {
    display: block;
}

.hide {
    display: none;
}

body {
    overflow-x: hidden;
    /* reserve space for fixed nav */
    padding-top: 70px;
}

body, .synopsis::before {
    background-image: url('../images/ChMkJ1g2YQeIbYQRABTlVmUrO4AAAYB0gGpqwMAFOVu246.jpg');
    background-repeat: no-repeat;
    background-size: cover;
    background-attachment: fixed;
}

.nav-box {
    width: 100%;
    height: 50px;
    background-color: rgba(242,234,211,0.6);
    backdrop-filter: blur(6px) saturate(120%);
    -webkit-backdrop-filter: blur(6px) saturate(120%);
    position: fixed;
    top: 0;
    z-index: 99;
}
.nav-box .nav {
    width: 480px;
    height: inherit;
    margin: auto;
    text-align: center;
    line-height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.nav-box .nav li {
    display: block;
    width: 120px;
    height: 50px;
    float: left;
    color: #2b2e4a;
    font-weight: bold;
    -webkit-transition: all 0.2s ease-out;
    transition: all 0.2s ease-out;
    cursor: pointer;
}

@media (max-width:720px){
    .nav-box { height: auto; padding: 8px 0; }
    .nav-box .nav { width: 100%; flex-direction: column; align-items: stretch; }
    .nav-box .nav li { width: 100%; float: none; margin: 6px 0; text-align: center; }
    .nav-box .nav li a{ display:block; padding:12px 16px }
}

/* Index / reserve section responsiveness */
.reserve-section{max-width:1100px;margin:24px auto;padding:48px;background-color:rgba(248,248,248,0.95);box-shadow:0 6px 20px rgba(0,0,0,0.06);border-radius:10px}
.reserve-section .reserve-desc{max-width:900px;margin:0 auto 18px auto}
.reserve-section .btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.reserve-btn{display:inline-block;padding:14px 36px;border-radius:36px;font-size:18px}

@media (max-width:900px){
    .reserve-section{padding:36px}
    .reserve-btn{padding:12px 28px;font-size:16px}
}
@media (max-width:520px){
    .reserve-section{padding:20px}
    .reserve-section .reserve-desc h2{font-size:20px}
    .reserve-section .reserve-desc p{font-size:14px}
    .reserve-btn{width:100%;text-align:center}
}

/* synopsis responsive tweaks */
.synopsis{padding:28px 16px}
.synopsis h3{font-size:24px}
.synopsis p{line-height:1.8;font-size:15px}
@media (max-width:600px){
    .synopsis h3{font-size:20px}
    .synopsis p{font-size:14px;line-height:1.7}
}

/* footer responsive */
.footer{padding:16px 8px;height:auto}
.footer p{font-size:14px}


.nav-box .nav li:hover {
    background: #f38181;
    color: white;
}

.short-film {
    width: 890px;
    margin: 80px auto 0 auto;
    overflow: hidden;
    background-color: #fff;
}

.player-box {
    position: relative;
    width: 890px;
    height: 500px;
    z-index: 9;
}

.danmaku-box {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}
.danmaku-message {
    position: absolute;
}

#play-control {
    width: 50px;
    height: 50px;
    border-radius: 10px;
    background: #CCCCCC url('../images/icon-ios7-play-outline-48.png') 5px 0 no-repeat;
    opacity: 0.8;
    position: absolute;
    right: 30px;
    bottom: 30px;
    cursor: pointer;
}

#progress-box {
    width: 100%;
    height: 5px;
    background-color: #A8A8A8;
    -webkit-transition: all 0.6s ease-out;
    transition: all 0.6s ease-out;
    position: absolute;
    bottom: 0;
}
#progress-box.active {
    height: 15px;
}
#progress {
    width: 0;
    height: 100%;
    background-color: #0033FF;
}
.control {
    width: 100%;
    overflow: hidden;
    position: relative;
}

.control div {
    width: 50px;
    height: 40px;
    margin: 0 17.5px;
    text-align: center;
    float: left;
}

.control div:hover {
    background-color: #A0A0A0;
}

.control .danmaku-send {
    width: 80px;
    font-size: 14px;
    text-align: center;
    background: #2D6CDF;
    color: white;
    position: absolute;
    top: 5px;
    left: 700px;
    transition: all 0.5s ease;
    cursor: pointer;
}
.control .danmaku-send:hover {
    background: #55B3F3;
.control .danmaku-send:hover {
    background: #55B3F3;
}
.control div img {
    position: relative;
    top: 8px;
}
.input-text {
    width: 590px;
    height: 36px;
    float: left;
    padding: 2px 110px 2px 20px;
}
.synopsis {
    overflow: hidden;
    font-family: monospace;
    color: #4E2F2F;
    color: white;
    padding: 50px 0;
    position: relative;
}
.synopsis:before {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    -moz-filter: blur(20px);
    -ms-filter: blur(20px);
    -webkit-filter: blur(20px);
            filter: blur(20px);
    margin: -30px;
    z-index: -1;
}
.synopsis h3 {
    font-size: 30px;
    text-align: center;
    line-height: 70px;
    font-weight: bold;
}
.synopsis p {
    text-align: center;
    line-height: 70px;
    font-size: 16px;
    letter-spacing: 2px;
}
.role-box {
    background: white;
    color: #094C9E;
}
.role-box a:hover {
    text-decoration: underline;
}
.role-box, .staff {
    font-family: monospace;
    font-size: 14px;
}
.role-box h3, .staff h3 {
    font-size: 30px;
    text-align: center;
    line-height: 70px;
    font-weight: bold;

    padding: 50px 0 20px 0;
}
.protagonist {
    width: 1200px;
    margin: auto;
}
.protagonist div {
    height: 536px;
    width: 600px;
    float: left;
}
.long {
    background: url('../images/chara_taki_vsl.png') right no-repeat;
}
.sanye {
    background: url('../images/chara_mitsuha_vsl.png') left no-repeat;
}
.protagonist div h4 {
    width: 340px;
    height: 100px;
    font-size: 50px;
}
.protagonist div p {
    width: 300px;
    height: 316px;
    letter-spacing: 4px;
    line-height: 30px;
    text-indent: 2em;
}
.long h4, .long p {
    position: relative;
    right: -140px;
}
.sanye h4, .sanye p {
    position: relative;
    left: 200px;
}
.protagonist .cast {
    height: 100px;
    padding-bottom: 20px;
}
.protagonist .cast img {
    vertical-align: middle;
    border-radius: 50%;
}
.costar {
    width: 840px;
    margin: auto;
    padding: 100px 0 0 0;
}
.costar>div {
    float: left;
    padding: 10px;
    width: 400px;
    height: 250px;
}
/* --- Gallery styles: responsive + frosted glass cards --- */
:root{
    --glass-bg: rgba(255,255,255,0.55);
    --glass-border: rgba(255,255,255,0.6);
    --accent: #2d8cf0;
}
.gallery-wrap{max-width:1100px;margin:120px auto;padding:20px}
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px}
.gallery-card{background:var(--glass-bg);backdrop-filter:blur(8px) saturate(120%);-webkit-backdrop-filter:blur(8px);border:1px solid var(--glass-border);border-radius:12px;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,0.12);display:flex;flex-direction:column;align-items:center}
.gallery-card img{width:100%;height:180px;object-fit:cover;border-radius:8px;border:4px solid rgba(255,255,255,0.35);box-shadow:inset 0 1px 0 rgba(255,255,255,0.15)}
.card-meta{width:100%;padding-top:10px;display:flex;justify-content:space-between;align-items:center}
.card-title{font-size:15px;color:#16324a;font-weight:600}
.view-btn{background:var(--accent);color:#fff;padding:8px 10px;border-radius:8px;border:none;cursor:pointer;font-weight:600}
.view-btn:hover{opacity:0.95}
.modal{position:fixed;left:0;top:0;right:0;bottom:0;background:rgba(12,18,26,0.75);display:none;align-items:center;justify-content:center;padding:24px;z-index:9999}
.modal-inner{position:relative;max-width:90%;max-height:90%;display:flex;flex-direction:column;align-items:center}
.modal-inner img{max-width:100%;max-height:80vh;border-radius:8px;box-shadow:0 18px 60px rgba(0,0,0,0.6)}
.modal-caption{color:#fff;margin-top:12px;font-size:16px}
.modal-controls{position:absolute;left:8px;right:8px;top:50%;display:flex;justify-content:space-between;transform:translateY(-50%)}
.modal-controls button{background:rgba(0,0,0,0.35);border:0;color:#fff;padding:10px 14px;border-radius:8px;cursor:pointer}

@media (max-width:600px){
    .gallery-card img{height:140px}
    .gallery-wrap{margin:140px 10px}
}

/* Album / Masonry-like layout */
.album { max-width:1200px; margin:120px auto; padding:16px; }
.album-columns { column-count: 4; column-gap: 16px; }
.album-item { break-inside: avoid; margin-bottom: 16px; position: relative; overflow: hidden; border-radius:12px; }
.album-item img{width:100%;height:auto;display:block;border-radius:8px;transition:transform .28s ease, box-shadow .28s ease}
.album-item:hover img{transform:scale(1.03);box-shadow:0 12px 30px rgba(0,0,0,0.25)}
.album-overlay{position:absolute;left:8px;right:8px;bottom:8px;padding:8px 10px;background:linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.45) 100%);color:#fff;border-radius:8px}
.album-title{font-size:14px;font-weight:700}
.album-desc{font-size:12px;opacity:0.9}

@media (max-width:1000px){ .album-columns{column-count:3} }
@media (max-width:700px){ .album-columns{column-count:2} }
@media (max-width:420px){ .album-columns{column-count:1} }
.costar div h4 {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background-size: cover;
    text-align: center;
    letter-spacing: 1px;
}
.costar div:nth-child(2n+1) h4, .costar div:nth-child(2n+1) div {
    float: right;
}
.costar div:nth-child(2n) h4, .costar div:nth-child(2n) div {
    float: left;
}
.costar div h4 span {
    position: relative;
    bottom: -170px;
}
.costar div h4 p {
    position: relative;
    bottom: -180px;
}
.costar div:nth-child(1) h4 {
    background: url('../images/chara_miki_face01.png') center no-repeat;
}
.costar div:nth-child(2) h4 {
    background: url('../images/chara_hitoha_face01.png') center no-repeat;
}
.costar div:nth-child(3) h4 {
    background: url('../images/chara_yotsuha_ph.png') center no-repeat;
}
.costar div:nth-child(4) h4 {
    background: url('../images/chara_fujii_ph.png') center no-repeat;
}
.costar div:nth-child(5) h4 {
    background: url('../images/chara_natori_ph.png') center no-repeat;
}
.costar div:nth-child(6) h4 {
    background: url('../images/chara_teshigawara_ph.png') center no-repeat;
}
.costar div:nth-child(7) h4 {
    background: url('../images/chara_takagi_ph.png') center no-repeat;
}
.costar div div {
    width: 230px;
    padding: 0 10px;
    height: 250px;
    position: relative;
}
.costar div div p {
    line-height: 40px;
    letter-spacing: 1px;
    text-indent: 2em;
}
.costar div div p:nth-child(2) {
    position: relative;
    bottom: -78px;
}
.staff {
    color: white;
    background: url('../images/ChMkJlg2YRGIXrtCABy9qCTYS60AAYB1AAAAAAAHL3A605.png') no-repeat;
    background-size: cover;
    background-attachment: fixed;
    padding-bottom: 50px;
}
.staff div {
    margin: auto;
    padding: 30px 0;
    width: 600px;
}
.staff div h4, .staff div div {
    font-size: 24px;
    text-align: center;
    line-height: 50px;
}
.staff div h4 span {
    font-size: 30px;
}
.staff div p {
    font-size: 16px;
    line-height: 30px;
    text-indent: 2em;
}
.staff button {
    border: 1px solid white;
    width: 200px;
    height: 50px;
    font-family: monospace;
    color: white;
    font-size: 18px;
    text-align: center;
    line-height: 50px;
    background: none;
    -webkit-transition: all 1s ease;
    transition: all 1s ease;
}
.staff button:hover {
    background: #3366CC;
}
.production-list {

/* Responsive image helpers for news/gallery */
.responsive-img{max-width:100%;height:auto;display:block}
.news-list img, .news-item img{max-width:100%;height:auto;display:block}

/* Gallery specific: keep aspect and center */
.gallery-grid{display:flex;flex-wrap:wrap;gap:12px}
.gallery-card{flex:1 1 220px;box-sizing:border-box}
.gallery-card img{width:100%;height:auto;object-fit:cover;border-radius:6px}
.production-list>button {
    display: block;
    border: 1px solid white;
    width: 50px;
    height: 30px;
    margin: 10px 0;
    line-height: 30px;
    font-size: 16px;
    color: white;
    background: transparent;
    position: relative;
    left: 90%;
}
.production-list>div {
    width: 200px;
    height: 320px;
    background: #3A3D7C;
    border: 1px solid white;
    display: inline-block;
    text-align: center;
    margin: 10px;
}
.production-list div div {
    display: inline-block;
    width: 200px;
    height: 280px;
}
.production-list div a {
    display: inline-block;
    border: 1px solid white;
    color: white;
    width: 80px;
    height: 30px;
    line-height: 30px;
    font-weight: bold;
    padding: 0 3px;
}
.production-list>button:hover, .production-list div a:hover {
    background: #3490de;
}
.footer {
    height: 80px;
    font-family: monospace;
    font-size: 20px;
    font-weight: bold;
    text-align: center;
    line-height: 30px;
    background: white;
}
.footer p {
    padding: 10px 0;
}
.reserve-button {
    font-size: 20px;
    padding: 15px 40px;
    background: linear-gradient(135deg, #4facfe, #00f2fe);
    border: none;
    border-radius: 12px;
    color: #fff;
    cursor: pointer;
    font-weight: bold;
    transition: 0.3s;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.reserve-button:hover {
    background: linear-gradient(135deg, #43e97b, #38f9d7);
    transform: scale(1.05);
}
