* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    overflow-x: hidden;
    font-family: "Shippori Mincho B1", serif;
}
h1 { letter-spacing: 3px;
    font-size: 40px;
    text-align: center;
    color: rgb(241, 241, 241);

}

h2 {  letter-spacing: 5px;
    font-size: 30px;
    text-align: center;
    color: rgb(241, 241, 241);
}
    
/*星空背景*/
.background {
    position:fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url('./photos/starrysky2.png') no-repeat center center;
    background-size: cover;
    z-index: -1;
}
/*星背景*/
.name {
    width: 100%;
    padding: 0;
    height: 90vh;
}

@media screen and (min-width: 768px) {
    .name {
        height: 100vh;
    }
    svg {
    width:100%;
    height: 99vh;
    }
}
/*オープニングアニメーション*/
/*タイトル*/
.svg-text-container {
    position: absolute;
    top: 47%;
    right: 13%; 
    transform: translateY(-50%);
    color: white;
    font-family: 'Shippori Mincho B1', serif;
    text-align: center;
}
/*第78回*/
.sub-text {
    font-size: 50px;
    opacity: 0;
    transition: opacity 0.5s;
}
/*九大祭*/
.main-text {
    font-size: 80px;
    opacity: 0;
    transition: opacity 0.5s;
}
/*11月1日-2日　9:00-19:00*/
.date-text {
    font-size: 30px;
    opacity: 0;
    transition: opacity 0.5s;
    letter-spacing: 3px;
}
@media (max-width: 600px) {
    .svg-text-container {
        position: absolute;
        top: 280px;  
        left: 10%;
        transform: translateY(-50%);
        color: white;
        font-family: 'Shippori Mincho B1', serif;
        text-align: left;
    }
    /*第78回*/
    .sub-text {
        font-size: 20px;
        opacity: 0;
        transition: opacity 0.5s;
    }
    /*九大祭*/
    .main-text {
        font-size: 45px;
        opacity: 0;
        transition: opacity 0.5s;
    }
    .date-text {
        margin-top: 5px;
        font-size: 15px;
        opacity: 0;
        transition: opacity 0.5s;
        letter-spacing: 2px;
    }
}

/*星瞬ロゴ*/
.theme {
    width: 100%;
    margin-top: 300px;
    min-height: 100vh;
    color: white;
    text-align: center;
    padding: 0 10% 0 10%;
    overflow: hidden;
}
.theme img {
    width: 50%;

}

.theme-p {
    line-height: 3;
}
/*テーマアニメーション部分*/
.fade-in {
    opacity: 0;
    transform: translateY(30px);
    transition: all 0.8s ease-out;
}

.fade-in.visible {
    opacity: 1;
    transform: translateY(0);
}
@media (max-width: 600px) {
    .theme img {
        width: 100%;
    }
    .theme h1 {
        font-size: 25px;
    }
    .theme h2 {
        font-size: 20px;
    }
    .theme-p {
        font-size: 14px;
    }
}
/*ロゴ下の余白部分*/
.yohaku {
    height: 50vh;
}

/*白い部分*/
.white {
    position: relative;
    width: 100%;
    height: 300px;
    background-color: white;
}
@media (max-width: 600px) {
    .white {
        height: 150px;
    }
}
/*お知らせ欄　背景*/
.content {
    position: relative;
    inset: 0; 
    height: 1050px; 
    width: 100%;
    z-index: 0;
    overflow: hidden;
}
@media (max-width: 600px) {
    .content {
        height:600px;
}
}
/*白い背景+円*/
.circle-mask {
    position: absolute;
    inset: 0;
    background-color: white;
    mask-image: radial-gradient(circle 450px at center, transparent 0%,transparent 449px,  black 450px);
    mask-mode: alpha;
    z-index: 1;
}

@media (max-width: 600px) {
    .circle-mask {
        mask-image: radial-gradient(circle 250px at center, transparent 0%,transparent 249px,  black 250px);
        mask-mode: alpha;
        
    }
}

/*円の装飾*/
.circle-decoration {
    width: 1050px;
    height: 1050px;
    position: relative;
    background-size: 1040px 1040px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 2;
    background-image: url('./photos/frame3.png');
    background-repeat: no-repeat;
    background-position: center center;
    /*円の装飾アニメーション*/
    animation: rotate360 60s linear infinite;
}
@media (max-width: 600px) {
    .circle-decoration {
        height: 600px;
        width: 600px;
        background-size: 580px 580px;
    }
}
@keyframes rotate360 {
    from {
        
        transform: translate(-50%, -50%) rotate(0deg);
    }
    to {
        
        transform: translate(-50%, -50%) rotate(360deg);
    }
}
/*星の装飾*/
.star-decoration {
    top: 0;
    height: 300px;
    width: 100%;
    position: absolute;
    left: 10%;
    background-image: url('./photos/star8.png');
    background-size: 160px 300px;
    z-index: 2;
    background-repeat: no-repeat;

}
.star-decoration2 {
    padding-top: 20px;
    width: 100%;
    height: 300px;
    left: 75%;
    background-image: url('./photos/star5.png');
    background-size: 280px 250px;
    z-index: 2;
    background-repeat: no-repeat;
    position: absolute;

}
.star-decoration3 {
    width: 100%;
    height: 300px;
    left: 75%;
    background-image: url('./photos/star6.png');
    background-size: 280px 250px;
    z-index: 2;
    background-repeat: no-repeat;
    position: absolute;

}

@media (max-width: 600px) {
    .star-decoration {
        height: 150px;
        left: 7%;
        background-size: 70px 150px;
    }
    .star-decoration2 {
        height: 100px;
        width: 100%;
        left: 75%;
        background-size: 100px 80px;
    
    }
    .star-decoration3 {
        width: 100%;
        height: 150px;
        left: 65%;
        background-size: 130px 130px;
        z-index: 2;
    
}
}

/*お知らせ*/
.circle-content {
    position: absolute;
    top: 200px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: rgb(241, 241, 241);
    text-align: center;
    z-index: 3;
}
@media (max-width: 600px) {
    .circle-content {
        
        top: 100px;
        width: 100%;
        text-align: center;
    }
    h2 { 
        font-size: 20px;
    }
}

.newstext a{
    display: block;
    margin-top: 10px;
    /*text-overflow: ellipsis;
    overflow: hidden;*/
    text-decoration: none;
    color: rgb(241, 241, 241);
    width: 100%;
}
.newslist {
    position: absolute;
    top: 300px;
    width: 650px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
}
.newslist li {
    padding: 15px 5px;
    overflow: hidden;
    /*white-space: nowrap;*/
    text-align: left;
    

}
.date {
    font-size: 20px;
    margin-right: 10px;
    color: #cac09b;

}
.newstext{
    color: rgb(241, 240, 240);
    font-size: 25px;
    
}
/*マウスを重ねると少し拡大する*/
.newstext a {
    display: inline-block;
    transition: transform 0.3s ease;
    transform-origin: left center;
}

.newstext a:hover {
    transform: scale(1.05);
}

/*マウスを重ねると色が変わる*/
/*.newstext a:hover {
    color: #dad2bd; 
}*/

/* 訪問済みのリンクの色が変わる */
/*.newstext a:visited {
    color: #cacaca; 
}*/

@media (max-width: 600px) {
    .newstext a{
        margin-top: 10px;
    }
    .newslist {
        top: 130px;
        width: 320px;
    
    }
    .newslist li {
        padding: 15px 5px;
    
    }
    .date {
        font-size: 13px;
        margin-right: 10px;
        color: #cac09b;
    
    }
    .newstext{
        color: white;
        font-size: 16px;

    }
}
/*企画を探す 背景*/
.content2 {
    position: relative;
    height: 1050px; 
    width: 100%;
    /*z-index: 0;*/
    overflow: hidden;
}
@media (max-width: 600px) {
    .content2 {
        height:600px;
    }
}
/*企画を探す*/
.circle-content2 {
    position: absolute;
    top: 200px;
    width: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    color: white;
    text-align: center;
    z-index: 3; 
    overflow: hidden;
}
@media (max-width: 600px) {
    .circle-content2 {
        
        top: 100px;
        width: 100%;
        text-align: center;
    }
    h2 { 
        font-size: 20px;
    }
}

/*リンク全体*/
.scroll-links {
    position:absolute;
    top: 300px; 
    left: 50%;
    transform: translateX(-50%);
    width: 530px;
    padding: 20px;
    display: flex;
    overflow-x: auto;
    gap:70px;
    z-index: 4; 
    scroll-padding-left: 0;
    
}
/*各リンク*/
.scroll-item {
    background-color: white;
    flex: 0 0 auto;
    width: 500px;
    height: 380px;
    /*border-radius: 10px;*/
    overflow: hidden;
    scroll-snap-align: start;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
    text-align: center;
}
/*リンクタイトル部分*/
.item-top {
    background-color: white;
    position: relative;
    height: 90px;
    overflow: hidden;
}
/*装飾*/
.image-left {
    position: absolute;
    top: 15px;
    left: 3%;
    width: 30px;
    height: auto;
}
/*装飾*/
.image-right {
    position: absolute;
    top: 15px;
    right: 3%;
    width: 30px;
    height: auto;
}

/*リンクタイトル（アーチ）*/
.arc-text {
    width: 100%;
    height: 100%;
    top: 10%;
    
}
/*リンク写真*/
.item-image {
    position: relative;
    display: inline-block;
    justify-content: center; 

    width: 100%;
    height: 300px;
    clip-path: ellipse(58% 100% at 50% 100%);
    overflow: hidden;
}
.item-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
/*写真内の文字（必要時）*/
.text-box{
    position: absolute;
    top: 220px;
    left: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60%;
    margin: 1em 10px;
    padding: 0.8em;
    background-color: #ffffffd2;
    border:solid 1px #91865d;
    box-shadow: 0 0 0 7px #ffffffd2;
    text-decoration: none;
    color: black;
    font-size: 11px;
}
.text-box p {
    font-size: 12px;
}
@media (max-width: 600px) {
    .text-box {
        top: 110px;
        left: 50%;
        left: 50%;
        width: 60%;
        margin: 5px 5px;
        padding: 3px;
        border: solid 1px #91865d;
        box-shadow: 0 0 0 3px #ffffffd2;
        font-size: 8px;

    }
    .text-box p {
        font-size: 10px;
    }
}

/*未公開部分*/
.scroll-item.coming-soon {
    pointer-events: none;  
    filter: brightness(0.5); 
}

/*スクロールバー*/
.scroll-links::-webkit-scrollbar {
    height: 7px; /* 横スクロールバーの高さ */
    background: rgba(88, 88, 88, 0.151); 
}
.scroll-links::-webkit-scrollbar-thumb {
    border-radius: 5px;
    background: rgb(122, 112, 60); 
}
.scroll-links::-webkit-scrollbar-track {
    border-radius: 5px;
}
.scroll-links::-webkit-scrollbar-track {
    background: rgba(224, 224, 212, 0.682);
}

@media (max-width: 600px) {
    /*リンク全体*/
    .scroll-links {
        top: 180px; 
        width: 90%;
        padding: 30px;
        gap:40px;
        left: 50%;
        transform: translateX(-50%);
    }
    .scroll-links a {
        width: 250px;
        height: 200px;
    }
    /*各リンク*/
    .scroll-item {
        flex: 0 0 auto;
        width: 250px;
        height: 200px;
        overflow: hidden;
        scroll-snap-align: start;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
        text-align: center;
    }
    /*リンクタイトル部分*/
    .item-top {
        position: relative;
        height: 50px;
        overflow: hidden;
    }
    /*装飾*/
    .image-left {
        position: absolute;
        top: 7px;
        left: 3%;
        width: 15px;
        height: auto;
    }
    /*装飾*/
    .image-right {
        position: absolute;
        top: 7px;
        right: 3%;
        width: 15px;
        height: auto;
    }
    
    /*リンクタイトル（アーチ）*/
    .arc-text {
        width: 100%;
        height: 100%;
        top: 10%;
        letter-spacing: 5px;
    }
    /*リンク写真*/
    .item-image {
        display: flex;
        justify-content: center; /* 中央寄せ */
    
        width: 100%;
        height: 150px;
        clip-path: ellipse(58% 100% at 50% 100%);
        overflow: hidden;
    }
    /*スクロールバー*/
    .scroll-links::-webkit-scrollbar {
        height: 5px; /* 横スクロールバーの高さ */
    }
}



/*来場者の皆様へ*/
.information {
    margin-top: 100px;
    padding: 100px 10% 100px 10%;
    flex-direction: column;
    gap: 20px;
    display: flex;
}
.container {
    margin-bottom: 100px;
}
.item {
    display: inline-block;
    text-decoration: none;
    color: #cacaca;
    font-size: 30px;
    transform: rotate(-7deg);
    position: relative;
    padding: 20px 20px 40px 20px;
}
.item.left {
align-self: flex-start;
}
.item.right {
    align-self: flex-end;
    text-align: right;
    transform: rotate(-7deg) translateY(-80px) ;
}
/*下線（左）*/
.item.left::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #cacaca;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(10px) scaleX(2.5);
    transform-origin: left;
}
/*下線（右）*/
.item.right::after {
    content: "";
    display: block;
    width: 100%;
    height: 1px;
    background-color: #cacaca;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(10px) scaleX(4);
    transform-origin: right;
}
@media (max-width: 600px) {
    .container {
        margin-bottom: 30px;
    }
    .information {
        margin-top: 50px;
        padding: 5px 0px 10px 0px;
        gap: 30px;
    }
    .item {
        padding: 5px 20px 10px 20px;
        font-size: 16px;
    }
    .item.right {
        transform: rotate(-7deg) translateY(-20px) ;
    }
    /*下線（左）*/
    .item.left::after {
        left: 0;
        top: 50%;
        transform: translateY(10px) /*scaleX(1.5)*/;
    }
    /*下線（右）*/
    .item.right::after {
        right: 0;
        top: 50%;
        transform: translateY(10px) /*scaleX(2.5)*/;
    }
}
/*下線の長さ*/
.long {
    width: 70%;
}

/*ひし形装飾*/
.item.left.l::before {
    content: "";
    position: absolute;
    bottom: 27px;
    left: 90%;
    /*transform: translateX(-50%) rotate(-7deg);*/
    width: 30px;
    height: 30px;
    background-image: url(./photos/star7.png);
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0; /* ← 追加 */
    transition: opacity 0.6s ease; /* ← アニメーション */
}
.item.left.l.show::before {
    opacity: 1;
}
.item.left.r::before {
    content: "";
    position: absolute;
    bottom: 27px;
    left: 40%;
    /*transform: translateX(-50%) rotate(-7deg);*/
    width: 30px;
    height: 30px;
    background-image: url(./photos/star7.png);
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0; 
    transition: opacity 0.6s ease; /* ← アニメーション */
}
.item.left.r.show::before {
    opacity: 1;
}
.item.right.l::before {
    content: "";
    position: absolute;
    bottom: 27px;
    left: 10%;
    /*transform: translateX(-50%) rotate(-7deg);*/
    width: 30px;
    height: 30px;
    background-image: url(./photos/star7.png);
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0; 
    transition: opacity 0.6s ease; /* ← アニメーション */
}
.item.right.l.show::before {
    opacity: 1;
}
.item.right.r::before {
    content: "";
    position: absolute;
    bottom: 27px;
    left: 55%;
    /*transform: translateX(-50%) rotate(-7deg);*/
    width: 30px;
    height: 30px;
    background-image: url(./photos/star7.png);
    background-size: cover;
    background-repeat: no-repeat;
    opacity: 0; /* ← 追加 */
    transition: opacity 0.6s ease; /* ← アニメーション */
}
.item.right.r.show::before {
    opacity: 1;
}
@media (max-width: 600px) {
    .item.left.l::before {
        bottom: 2px;
        left: 90%;
        width: 15px;
        height: 15px;
    }
    .item.left.r::before {
        bottom: 2px;
        left: 60%;
        width: 15px;
        height: 15px;
    }
    .item.right.l::before {
        bottom: 2px;
        left: 0%;
        width: 15px;
        height: 15px;
        background-image: url(./photos/star7.png);
    }
    .item.right.r::before {
        bottom: 2px;
        left: 40%;
        width: 15px;
        height: 15px;
        background-image: url(./photos/star7.png);
    }
}



/*未公開部分*/
.item.coming-soon {
    pointer-events: none;  
    filter: brightness(0.5); 
}


/*アニメーション*/
.item {
    position: relative;
    display: inline-block;
    color: transparent;
    background: linear-gradient(to right, transparent 0%, #cacaca 50%, #cacaca 100%);
    background-clip: text;
    -webkit-background-clip: text;
    background-size: 200% 100%;
    background-position: 100% 0;
}

.item.show {
    animation: revealText 1s forwards ease-out;
}

  /* 横線の初期状態（伸びてない） */
.item::after {
    content: "";
    position: absolute;
    height: 1px;
    background-color: #cacaca;
    top: 50%;
    width: 0;
    transform: translateY(10px) scaleX(0);
    opacity: 0;
    transition: width 0.9s cubic-bezier(.22,.9,.35,1), opacity 0.2s linear;
}

.item.left::after {
    right: 0;
    transform-origin: right;
}
.item.right::after {
    right: 0;
    transform-origin: right;
}

  /* 横線が伸びるアニメーション */
.item.show::after {
    animation: drawLine 0.7s forwards ease-out;
}

  /* テキスト表示アニメーション */
/*@keyframes revealText {
    from {
    background-position: 100% 0;
    color: transparent;
    }
    to {
    background-position: 0 0;
    color: #cacaca;
    }
}*/

  /* 線が右から左に伸びる */
@keyframes drawLine {
    /*from {
    transform: translateY(10px) scaleX(0);
    }
    to {
    transform: translateY(10px) scaleX(1);
    }*/
    0% {
        transform: translateY(10px) scaleX(0);
        opacity: 0;
    }
    10% {
        opacity: 1; 
    }
    100% {
        transform: translateY(10px) scaleX(1);
        opacity: 1;
    }
}

/*予備*/
/*.scroll-links {
    position:absolute;
    top: 300px; 
    left: 50%;
    transform: translateX(-50%);

    
    width: 530px;
    
    padding: 20px;
    display: flex;
    overflow-x: auto;
    gap:70px;
    z-index: 4; 
    scroll-padding-left: 0;
}
.scroll-links a {
    flex: 0 0 auto;
    width: 500px;
    height: 350px;
    border-radius: 12px;
    overflow: hidden;
    scroll-snap-align: start;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
}
.scroll-links img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}*/