@charset "UTF-8";
@import"https://fonts.googleapis.com/css2?family=Marcellus&display=swap";

*,
*:before,
*:after {
    box-sizing: border-box;
    margin: 0;
    padding: 0
}

html {
    scroll-behavior: smooth
}

body {
    background: linear-gradient(90deg, #13202c 21%, #000);
    color: #f0f0f0;
    font-family: Noto Sans JP, sans-serif;
    line-height: 1.6;
    overflow-x: hidden;
    -webkit-font-smoothing: antialiased;
    font-family: Marcellus, serif;
    font-weight: 400;
    font-style: normal
}

h1,
h2,
h3,
h4,
h5,
h6 {
    font-family: Marcellus, serif;
    font-weight: 400;
    letter-spacing: .05em
}

a {
    color: inherit;
    text-decoration: none;
    transition: color .3s ease
}

ul {
    list-style: none
}

img {
    max-width: 100%;
    display: block
}

.container {
    width: 90%;
    margin: 0 auto;
    padding: 0 1rem
}

.section-title {
    text-align: center;
    font-size: 1.5rem;
    color: #a89060;
    margin-bottom: 4rem;
    text-transform: uppercase;
    letter-spacing: .2em;
    opacity: 0;
    transform: translateY(20px)
}

header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    padding: 2rem 4rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 100;
    mix-blend-mode: difference;
    color: #fff;
    transition: opacity 1s ease
}

header .logo {
    font-family: Shippori Mincho, serif;
    font-size: 1.2rem;
    display: flex;
    align-items: center;
    gap: .5rem;
    width: 221px
}

header .logo img {
    width: 100%;
    height: auto
}

header .contact-btn {
    border-bottom: 1px solid currentColor;
    padding-bottom: 2px;
    font-size: 1.2rem;
    letter-spacing: .1em;
    display: flex;
    align-items: center;
    gap: .5rem;
    position: relative;
    z-index: 1
}

header .contact-btn:after {
    content: "→";
    transition: transform .3s ease
}

header .contact-btn:hover:after {
    transform: translate(5px)
}

.menu-icon {
    position: fixed;
    top: 3.1rem;
    left: 50%;
    transform: translate(-50%);
    width: 30px;
    height: 10px;
    cursor: pointer;
    z-index: 1000;
    mix-blend-mode: difference;
    color: #fff;
    transition: opacity 1s ease
}

.menu-icon .line-1,
.menu-icon .line-2 {
    width: 100%;
    height: 1px;
    background-color: #fff;
    position: absolute;
    left: 0;
    transition: background-color .3s ease
}

.menu-icon .line-1 {
    top: 0
}

.menu-icon .line-2 {
    bottom: 0
}

.menu-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background-color: #000c;
    z-index: 900;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    visibility: hidden;
    opacity: 0
}

.menu-overlay .menu-item {
    font-family: Marcellus, serif;
    font-size: 2rem;
    color: #fff;
    margin: 1rem 0;
    cursor: pointer;
    opacity: 0;
    transform: translateY(20px);
    transition: color .3s ease
}

.menu-overlay .menu-item:hover {
    color: #a89060
}

#hero {
    position: relative;
    height: 100vh;
    width: 100%;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center
}

#hero .hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
    background-color: #ffffff05
}

#hero .hero-bg.is-desktop {
    display: block
}

#hero .hero-bg.is-mobile {
    display: none;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 0%, #000 80%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 0%, #000 80%, transparent 100%)
}

#hero .hero-text {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 1;
    color: #fff;
    font-family: Shippori Mincho, serif;
    background-color: #00000080;
    opacity: 0;
    transform: translateY(20px)
}

#hero .hero-text .hero-text-innder {
    /* width: 90% */
}

#hero .hero-text .hero-text-innder p {
    text-align: left;
    font-size: 2rem;
    margin-bottom: 2rem
}

#articles {
    padding: 8rem 0
}

#articles .article-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 4rem
}

#articles .article-card {
    text-align: left;
    cursor: pointer;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .8s ease, transform .8s ease
}

#articles .article-card .article-image-wrapper {
    width: 100%;
    aspect-ratio: 3/3.2;
    overflow: hidden;
    border-top-left-radius: 50%;
    border-top-right-radius: 50%;
    margin-bottom: 2rem;
    position: relative;
    border: 2px solid rgba(255, 255, 255, .2)
}

#articles .article-card .article-image-wrapper:before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40%;
    background: linear-gradient(0deg, #33536a 21%, #33536a00);
    z-index: 1
}

#articles .article-card .article-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease
}

#articles .article-card:hover .article-image-wrapper img {
    transform: scale(1.05)
}

#articles .article-card .article-date {
    font-size: .8rem;
    color: #a89060;
    margin-bottom: .5rem;
    display: block
}

#articles .article-card .article-title {
    font-size: 1.2rem;
    font-family: Shippori Mincho, serif
}

#articles .view-more-container {
    text-align: center;
    margin-top: 4rem
}

#intro {
    padding: 8rem 0;
    text-align: center;
    font-family: Shippori Mincho, serif;
    font-size: 1.1rem;
    line-height: 2.2;
    color: #ccc
}

#intro .intro-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: url(../image/intro.jpg) no-repeat center 0;
    background-size: cover;
    z-index: -1;
    opacity: 0
}

#intro p {
    font-size: 2rem;
    margin-bottom: 2rem;
    opacity: 0;
    transform: translateY(20px)
}

#intro .intro-text {
    text-align: left
}

#news {
    padding: 8rem 0
}

.news-list {
    margin: 0 auto
}

.news-item {
    display: flex;
    padding: 2rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    align-items: baseline;
    opacity: 0;
    transform: translateY(20px);
    transition: background-color .3s ease
}

.news-item:hover {
    background-color: #ffffff05
}

.news-item a {
    display: flex
}

.news-item a .news-date {
    color: #a89060;
    font-size: .9rem;
    width: 120px;
    flex-shrink: 0;
    width: 5rem
}

.news-item a .news-title {
    font-size: 1rem
}

#about {
    padding: 8rem 0;
    position: relative;
    overflow: hidden
}

#about .about-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    flex-wrap: wrap
}

#about .about-image {
    width: 528px;
    height: 559px;
    overflow: hidden;
    position: relative;
    opacity: 0;
    transform: translate(-50px)
}

#about .about-image img {
    width: 100%;
    height: auto;
    object-fit: cover
}

#about .about-content {
    max-width: 500px;
    opacity: 0;
    transform: translate(50px)
}

#about .about-content .about-title {
    font-size: 5rem;
    font-family: Marcellus, serif;
    margin-bottom: 2rem;
    line-height: 1.2;
    white-space: nowrap;
    margin-left: -400px
}

#about .about-content .about-subtitle {
    color: #a89060;
    font-size: 1.1rem;
    margin-bottom: 2rem;
    font-family: Shippori Mincho, serif
}

#about .about-content .about-desc {
    font-size: .9rem;
    color: #aaa;
    margin-bottom: 2rem;
    line-height: 1.8
}

.btn-outline {
    display: inline-block;
    border: 1px solid #fff;
    padding: .8rem 2rem;
    border-radius: 50px;
    font-size: .9rem;
    transition: all .3s ease;
    color: #fff
}

.btn-outline:hover {
    background-color: #fff
}

footer {
    padding: 4rem 0;
    border-top: 1px solid rgba(255, 255, 255, .05);
    font-size: .8rem;
    color: #666
}

footer .container {
    display: flex;
    justify-content: space-between;
    align-items: center
}

footer .footer-links {
    display: flex;
    gap: 2rem
}

section {
    min-height: 100vh;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden
}

@media(max-width:768px) {
    .container {
        width: 90%;
        padding: 0 1rem
    }

    h1 {
        font-size: 2rem !important
    }

    .section-title {
        font-size: 1.2rem;
        margin-bottom: 2rem
    }

    header {
        padding: 1rem
    }

    header .logo {
        width: 150px
    }

    header .contact-btn {
        display: none
    }

    .menu-icon {
        top: 1.7rem;
        left: auto;
        right: 1rem;
        transform: none
    }

    #hero {
        height: 100dvh
    }

    #hero .hero-text .hero-text-innder p {
        font-size: 1rem;
        margin-bottom: 1rem;
        line-height: 1.8
    }

    #hero .hero-bg.is-desktop {
        display: none
    }

    #hero .hero-bg.is-mobile {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: fill;
        object-position: center
    }

    #articles {
        padding: 4rem 0
    }

    #articles .article-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem
    }

    #articles .article-grid .article-card .article-title {
        font-size: .8rem
    }

    #articles .article-grid .article-card .article-image-wrapper {
        margin-bottom: 1rem
    }

    #articles .article-grid .article-card .article-date {
        margin-bottom: 0
    }

    #articles-listing .container .article-grid .article-card .article-title {
        font-size: .8rem
    }

    #articles-listing .container .article-grid .article-card .article-image-wrapper {
        margin-bottom: 1rem
    }

    #articles-listing .container .article-grid .article-card .article-date {
        margin-bottom: 0
    }

    #intro .intro-text p {
        font-size: 1rem
    }

    #news {
        padding: 4rem 0
    }

    .news-item {
        flex-direction: column;
        align-items: flex-start;
        padding: 1rem 0
    }

    .news-item .news-date {
        width: auto;
        padding-left: 0;
        padding-right: 0;
        margin-bottom: .5rem;
        font-size: .8rem
    }

    .news-item .news-title {
        font-size: .9rem;
        line-height: 1.6
    }

    #about {
        padding: 4rem 0
    }

    #about .about-container {
        flex-direction: column;
        text-align: center;
        gap: 4rem
    }

    #about .about-image {
        width: 280px;
        height: 287px;
        transform: none;
        opacity: 1;
        margin: 0 auto
    }

    #about .about-content {
        text-align: center;
        transform: none;
        opacity: 1;
        max-width: 100%
    }

    #about .about-content .about-title {
        font-size: 1.5rem;
        margin-left: 0;
        text-align: center;
        margin-bottom: 1rem
    }

    #about .about-content .about-subtitle {
        text-align: center;
        display: block
    }

    #about .about-content .about-desc {
        text-align: left
    }

    footer {
        padding: 2rem 0
    }

    footer .container {
        flex-direction: column-reverse;
        gap: 2rem
    }

    footer .footer-links {
        flex-direction: row;
        align-items: center;
        gap: 1rem
    }

    footer .copyright {
        text-align: center;
        font-size: .7rem
    }

    .article-header {
        height: 40vh
    }

    .article-header .article-title {
        font-size: 1.8rem
    }

    .articles-header {
        height: 40vh
    }

    .articles-header .articles-page-title {
        font-size: 2.5rem
    }

    .article-body {
        padding: 4rem 0
    }

    .article-container {
        flex-direction: column
    }

    .article-main .article-content p {
        font-size: .95rem
    }
}

.article-header {
    width: 100%;
    height: 60vh;
    overflow: hidden;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center
}

.article-header .article-thumbnail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0
}

.article-header .article-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .5;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%)
}

.article-header .article-title {
    position: relative;
    z-index: 1;
    font-family: Shippori Mincho, serif;
    font-size: 3rem;
    color: #fff;
    text-align: center;
    width: 90%;
    text-shadow: 0 2px 4px rgba(0, 0, 0, .5)
}

.article-header .article-title span {
    display: inline-block;
    will-change: transform, opacity, filter
}

.articles-header {
    width: 100%;
    height: 60vh;
    overflow: hidden;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center
}

.articles-header .articles-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0
}

.articles-header .articles-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .5;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%)
}

.articles-header .articles-page-title {
    position: relative;
    z-index: 1;
    font-family: Marcellus, serif;
    font-size: 4rem;
    color: #fff;
    text-align: center;
    width: 90%;
    text-shadow: 0 2px 4px rgba(0, 0, 0, .5);
    letter-spacing: .2em
}

.articles-header .articles-page-title span {
    display: inline-block;
    will-change: transform, opacity, filter
}

#articles-listing {
    padding: 8rem 0;
    min-height: auto
}

#articles-listing .article-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 4rem;
    justify-items: center;
    margin-bottom: 4rem
}

@media(max-width:1024px) {
    #articles-listing .article-grid {
        grid-template-columns: repeat(2, 1fr)
    }
}

@media(max-width:640px) {
    #articles-listing .article-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 1rem
    }
}

#articles-listing .article-card {
    text-align: left;
    cursor: pointer;
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .8s ease, transform .8s ease
}

#articles-listing .article-card .article-image-wrapper {
    width: 100%;
    aspect-ratio: 3/3.2;
    overflow: hidden;
    border-top-left-radius: 50%;
    border-top-right-radius: 50%;
    margin-bottom: 2rem;
    position: relative;
    border: 2px solid rgba(255, 255, 255, .2)
}

#articles-listing .article-card .article-image-wrapper:before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 40%;
    background: linear-gradient(0deg, #33536a 21%, #33536a00);
    z-index: 1
}

#articles-listing .article-card .article-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .6s ease
}

#articles-listing .article-card:hover .article-image-wrapper img {
    transform: scale(1.05)
}

#articles-listing .article-card .article-date {
    font-size: .8rem;
    color: #a89060;
    margin-bottom: .5rem;
    display: block
}

#articles-listing .article-card .article-title {
    font-size: 1.2rem;
    font-family: Shippori Mincho, serif
}

#articles-listing .view-more-container {
    text-align: center;
    margin-top: 4rem
}

#articles-listing .view-more-container #view-more-btn {
    background: transparent;
    cursor: pointer;
    transition: all .3s ease
}

#articles-listing .view-more-container #view-more-btn:hover {
    background-color: #fff;
    color: #050a14
}

.article-body {
    padding: 8rem 0
}

.article-container {
    display: flex;
    gap: 8rem;
    align-items: flex-start
}

@media(max-width:900px) {
    .article-container {
        flex-direction: column
    }
}

.article-main {
    flex: 2;
    width: 100%
}

.article-main .article-footer-meta {
    margin-bottom: 4rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding-top: 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center
}

.article-main .article-footer-meta .article-date {
    color: #a89060;
    font-size: .9rem
}

.article-main .article-footer-meta .article-categories a {
    border: 1px solid #fff;
    border-radius: 20px;
    padding: .2rem 1rem;
    font-size: .8rem;
    transition: all .3s ease
}

.article-main .article-footer-meta .article-categories a:hover {
    background-color: #fff;
    color: #050a14
}

.article-main .article-content {
    margin-bottom: 8rem
}

.article-main .article-content p {
    margin-bottom: 2rem;
    line-height: 1.8;
    color: #ccc
}

.article-main .article-content figure {
    margin: 4rem 0;
    width: 100%
}

.article-main .article-content figure img {
    width: 100%;
    height: auto
}

.article-main .comment-section {
    margin-top: 8rem;
    border-top: 1px solid rgba(255, 255, 255, .1);
    padding-top: 4rem
}

.article-main .comment-section .btn-outline {
    margin-bottom: 4rem
}

.article-main .comment-section .comment-list h3 {
    font-family: Shippori Mincho, serif;
    color: #a89060;
    margin-bottom: 2rem;
    letter-spacing: .1em
}

.article-main .comment-section .comment-list .comment-item {
    margin-bottom: 4rem;
    border-bottom: 1px solid rgba(255, 255, 255, .05);
    padding-bottom: 2rem
}

.article-main .comment-section .comment-list .comment-item p {
    font-size: .9rem;
    color: #aaa;
    margin-bottom: .5rem
}

.article-main .comment-section .comment-list .comment-item .comment-meta {
    display: block;
    text-align: right;
    font-size: .8rem;
    color: #666
}

.article-sidebar {
    flex: 1;
    width: 100%
}

.article-sidebar .sidebar-section {
    margin-bottom: 8rem
}

.article-sidebar .sidebar-section .sidebar-title {
    font-family: Shippori Mincho, serif;
    color: #a89060;
    margin-bottom: 2rem;
    letter-spacing: .1em;
    border-bottom: 1px solid #a89060;
    padding-bottom: .5rem;
    display: inline-block
}

.article-sidebar .sidebar-section .recommend-list {
    display: flex;
    flex-direction: column;
    gap: 2rem
}

.article-sidebar .sidebar-section .recommend-list .recommend-item {
    display: block
}

.article-sidebar .sidebar-section .recommend-list .recommend-item .recommend-img {
    width: 100%;
    aspect-ratio: 16/9;
    overflow: hidden;
    border-radius: 8px;
    margin-bottom: .5rem
}

.article-sidebar .sidebar-section .recommend-list .recommend-item .recommend-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s ease
}

.article-sidebar .sidebar-section .recommend-list .recommend-item .recommend-title {
    font-size: .9rem;
    color: #ccc
}

.article-sidebar .sidebar-section .recommend-list .recommend-item:hover .recommend-img img {
    transform: scale(1.05)
}

.article-sidebar .sidebar-section .recommend-list .recommend-item:hover .recommend-title {
    color: #fff
}

.article-sidebar .sidebar-section .category-list li {
    border-bottom: 1px solid rgba(255, 255, 255, .1)
}

.article-sidebar .sidebar-section .category-list li a {
    display: block;
    padding: .8rem 0;
    font-size: .9rem;
    color: #ccc;
    transition: padding-left .3s ease, color .3s ease
}

.article-sidebar .sidebar-section .category-list li a:hover {
    padding-left: 10px;
    color: #a89060
}

.modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    visibility: hidden;
    transition: all .3s ease
}

.modal.is-active {
    opacity: 1;
    visibility: visible
}

.modal .modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #000c;
    cursor: pointer
}

.modal .modal-content {
    position: relative;
    background-color: #050a14;
    padding: 2rem;
    width: 90%;
    max-width: 600px;
    border: 1px solid #fff;
    z-index: 1;
    transform: translateY(20px);
    transition: transform .3s ease
}

.modal .modal-content .modal-title {
    font-family: Marcellus, serif;
    color: #a89060;
    text-align: center;
    margin-bottom: 2rem;
    font-size: 1.5rem
}

.modal .modal-content .modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: none;
    border: none;
    color: #fff;
    font-size: 2rem;
    cursor: pointer;
    line-height: 1;
    transition: color .3s ease
}

.modal .modal-content .modal-close:hover {
    color: #a89060
}

.modal.is-active .modal-content {
    transform: translateY(0)
}

.modal .comment-form {
    display: flex;
    flex-direction: column;
    gap: 2rem
}

.modal .comment-form .form-group {
    display: flex;
    flex-direction: column;
    gap: .5rem
}

.modal .comment-form .form-group label {
    color: #a89060;
    font-size: .9rem;
    font-family: Marcellus, serif
}

.modal .comment-form .form-group input,
.modal .comment-form .form-group textarea,
.modal .comment-form .form-group select {
    background-color: #ffffff0d;
    border: 1px solid rgba(255, 255, 255, .1);
    padding: .8rem;
    color: #fff;
    font-family: Noto Sans JP, sans-serif;
    font-size: 1rem;
    transition: border-color .3s ease
}

.modal .comment-form .form-group input:focus,
.modal .comment-form .form-group textarea:focus,
.modal .comment-form .form-group select:focus {
    outline: none;
    border-color: #a89060
}

.modal .comment-form button[type=submit] {
    align-self: center;
    margin-top: 1rem;
    background: transparent;
    cursor: pointer
}

:root {
    --preloader-bg: rgba(0, 0, 0, .8);
    --preloader-text: #fff;
    --preloader-line: #fff;
    --preloader-font: $font-roman
}

.preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: var(--preloader-bg);
    z-index: 9999;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: hidden
}

.preloader.loaded {
    animation-name: preloader_fadeout;
    animation-duration: 1.5s;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards;
}

@keyframes preloader_fadeout {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        visibility: hidden;
    }
}

.logo-container {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 300px
}

.logo-container img {
    width: 100%;
    height: auto
}

.progress-container {
    position: absolute;
    bottom: 15%;
    left: 0;
    width: 100%;
    height: auto
}

.progress-line {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 1px;
    background-color: var(--preloader-line);
    width: 0%
}

.progress-number {
    position: absolute;
    bottom: 15px;
    left: 0;
    color: var(--preloader-text);
    font-family: var(--preloader-font);
    font-size: 16px;
    font-weight: 300;
    transform: translate(0);
    font-variant-numeric: tabular-nums
}

.news-header {
    width: 100%;
    height: 60vh;
    overflow: hidden;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center
}

.news-header .news-thumbnail {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0
}

.news-header .news-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: .5;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%);
    mask-image: linear-gradient(to bottom, transparent 0%, #000 10%, #000 90%, transparent 100%)
}

.news-header .news-title {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 1;
    font-family: Shippori Mincho, serif;
    font-size: 3rem;
    color: #fff;
    text-align: center;
    width: 90%;
    text-shadow: 0 2px 4px rgba(0, 0, 0, .5)
}

.news-header .news-title span {
    display: inline-block;
    will-change: transform, opacity, filter
}

.page-transition {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #050a14;
    z-index: 9998;
    opacity: 1;
    pointer-events: auto;
    transition: opacity .5s ease
}

.page-transition.is-loaded {
    opacity: 0;
    pointer-events: none
}

#about-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    padding: 8rem 0;
    position: relative;
    overflow: hidden
}

#about-page .about-content-wrapper {
    display: flex;
    align-items: flex-start;
    gap: 8rem
}

@media(max-width:900px) {
    #about-page .about-content-wrapper {
        flex-direction: column-reverse;
        text-align: center
    }
}

#about-page .about-text {
    flex: 1;
    z-index: 1
}

#about-page .about-text .about-title {
    font-family: Marcellus, serif;
    font-size: 5rem;
    line-height: 1.2;
    margin-bottom: 2rem;
    letter-spacing: .05em
}

@media(max-width:768px) {
    #about-page .about-text .about-title {
        font-size: 2rem
    }
}

#about-page .about-text .about-subtitle {
    font-size: 1.2rem;
    margin-bottom: 4rem;
    color: #a89060
}

#about-page .about-text .about-desc {
    margin-bottom: 8rem
}

#about-page .about-text .about-desc p {
    margin-bottom: 1rem;
    line-height: 2;
    color: #aaa;
    font-size: .9rem
}

#about-page .about-visual {
    flex: 1;
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center
}

#about-page .about-visual .image-container {
    position: relative;
    width: 100%;
    max-width: 500px
}

#about-page .about-visual .image-container img {
    width: 100%;
    height: 100%;
    object-fit: cover
}

#news-list .news-item {
    opacity: 1;
    transform: none
}