/* =========================================================
   SABRE DE PLEIADES
   ABOUT PAGE
========================================================= */


/* =========================================================
   ROOT
========================================================= */

:root {

    --midnight: #04081b;
    --deep-blue: #070d27;
    --cosmic-blue: #0b1437;

    --gold: #d7b45a;
    --gold-light: #f0d78a;

    --white: #f5f3ed;
    --soft-white: #d9d9d5;

    --muted: #9da5bb;

    --border: rgba(215, 180, 90, 0.22);

}


/* =========================================================
   RESET
========================================================= */

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {

    margin: 0;

    background: var(--midnight);

    color: var(--white);

    font-family: "Inter", sans-serif;

    overflow-x: hidden;

}

img {

    max-width: 100%;

    display: block;

}

a {

    text-decoration: none;

}

.container {

    width: min(1200px, 90%);

    margin: auto;

}


/* =========================================================
   BUTTONS
========================================================= */

.gold-button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 13px;

    padding: 15px 26px;

    background: var(--gold);

    color: #050a20;

    font-size: 0.73rem;

    font-weight: 600;

    letter-spacing: 1.5px;

    text-transform: uppercase;

    transition: 0.35s ease;

}

.gold-button:hover {

    color: #050a20;

    background: var(--gold-light);

    transform: translateY(-3px);

    box-shadow:
        0 15px 35px
        rgba(215, 180, 90, 0.18);

}


.outline-button {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    gap: 13px;

    padding: 14px 25px;

    border:
        1px solid
        rgba(240, 215, 138, 0.45);

    color: var(--white);

    font-size: 0.73rem;

    font-weight: 500;

    letter-spacing: 1.5px;

    text-transform: uppercase;

    transition: 0.35s ease;

}

.outline-button:hover {

    color: var(--gold-light);

    border-color: var(--gold);

    transform: translateY(-3px);

}


/* =========================================================
   SECTION LABEL
========================================================= */

.section-label {

    display: inline-flex;

    align-items: center;

    gap: 12px;

    color: var(--gold);

    font-size: 0.68rem;

    font-weight: 600;

    letter-spacing: 4px;

}

.section-label::before {

    content: "";

    width: 28px;

    height: 1px;

    background: var(--gold);

}


/* =========================================================
   ABOUT HERO
========================================================= */

.about-hero {

    position: relative;

    min-height: 650px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    background: var(--midnight);

}

.about-hero-background {

    position: absolute;

    inset: 0;

    background:

        radial-gradient(
            circle at 50% 35%,
            rgba(48, 69, 145, 0.32),
            transparent 40%
        ),

        linear-gradient(
            180deg,
            #070e2b 0%,
            #04081b 100%
        );

}

.about-hero-background::after {

    content: "";

    position: absolute;

    inset: 0;

    background:

        radial-gradient(
            circle at 50% 50%,
            transparent 0,
            rgba(4, 8, 27, 0.35) 55%,
            rgba(4, 8, 27, 0.9) 100%
        );

}

.about-stars {

    position: absolute;

    inset: 0;

    opacity: 0.5;

    background-image:

        radial-gradient(
            circle,
            rgba(255, 255, 255, 0.9) 1px,
            transparent 1px
        ),

        radial-gradient(
            circle,
            rgba(215, 180, 90, 0.6) 1px,
            transparent 1px
        );

    background-size:

        140px 140px,

        220px 220px;

    background-position:

        15px 25px,

        90px 80px;

    animation:
        starDrift
        40s
        linear
        infinite;

}

@keyframes starDrift {

    from {

        transform:
            translateY(0);

    }

    to {

        transform:
            translateY(-120px);

    }

}

.about-hero .container {

    position: relative;

    z-index: 2;

}

.about-hero-content {

    text-align: center;

    max-width: 900px;

    margin: auto;

    padding-top: 70px;

}

.page-eyebrow {

    color: var(--gold);

    font-size: 0.67rem;

    font-weight: 600;

    letter-spacing: 5px;

}

.about-hero h1 {

    margin: 20px 0;

    font-family: "Cinzel", serif;

    font-size:
        clamp(
            3rem,
            7vw,
            6rem
        );

    font-weight: 500;

    line-height: 1.05;

    letter-spacing: 2px;

}

.about-hero h1 span {

    display: block;

    color: var(--gold-light);

}

.hero-line {

    width: 55px;

    height: 1px;

    margin: 25px auto;

    background: var(--gold);

}

.about-hero-content > p {

    color: #c9ccd6;

    font-family:
        "Cormorant Garamond",
        serif;

    font-size: 1.45rem;

    letter-spacing: 2px;

}

.hero-scroll {

    display: flex;

    flex-direction: column;

    align-items: center;

    gap: 10px;

    margin-top: 60px;

    color: #737c94;

    font-size: 0.6rem;

    letter-spacing: 3px;

    text-transform: uppercase;

}

.hero-scroll i {

    color: var(--gold);

    animation:
        arrowFloat
        1.8s
        ease-in-out
        infinite;

}

@keyframes arrowFloat {

    0%,
    100% {

        transform:
            translateY(0);

    }

    50% {

        transform:
            translateY(7px);

    }

}


/* =========================================================
   AUTHOR INTRODUCTION
========================================================= */

.author-introduction {

    position: relative;

    padding: 150px 0;

    background: var(--midnight);

}

.author-intro-grid {

    display: grid;

    grid-template-columns:
        0.9fr 1.1fr;

    gap: 100px;

    align-items: center;

}


/* =========================================================
   PORTRAIT
========================================================= */

.author-portrait {

    position: relative;

    width:
        min(
            430px,
            100%
        );

    margin: auto;

}

.portrait-frame {

    position: absolute;

    width: 100%;

    height: 100%;

    left: 20px;

    top: 20px;

    opacity: 0.5;

}

.portrait-image {

    position: relative;

    z-index: 2;

    overflow: hidden;

    background: var(--deep-blue);

}

.portrait-image img {

    width: 100%;

    aspect-ratio: 4 / 5;

    object-fit: cover;

    transition:
        transform
        0.8s
        ease;

}

.author-portrait:hover
.portrait-image img {

    transform:
        scale(1.035);

}

.portrait-caption {

    position: relative;

    z-index: 3;

    display: flex;

    justify-content: space-between;

    gap: 15px;

    padding: 16px 0;

    border-bottom:
        1px solid
        var(--border);

}

.portrait-caption span {

    color: var(--gold-light);

    font-size: 0.65rem;

    letter-spacing: 2px;

}

.portrait-caption small {

    color: var(--muted);

    font-size: 0.58rem;

    letter-spacing: 1px;

}


/* =========================================================
   INTRO CONTENT
========================================================= */

.author-intro-content h2 {

    margin:
        20px 0
        25px;

    font-family:
        "Cinzel",
        serif;

    font-size:
        clamp(
            2.4rem,
            4.5vw,
            4rem
        );

    font-weight: 500;

    line-height: 1.12;

}

.author-intro-content h2 span {

    display: block;

    color: var(--gold-light);

}

.author-intro-content p {

    max-width: 650px;

    color: var(--muted);

    font-size: 0.92rem;

    line-height: 1.9;

}

.author-intro-content .lead-text {

    color: var(--white);

    font-family:
        "Cormorant Garamond",
        serif;

    font-size: 1.45rem;

    line-height: 1.55;

    text-align: justify;

    text-indent: 40px;

}

.author-signature {

    display: flex;

    flex-direction: column;

    gap: 4px;

    margin-top: 35px;

    padding-left: 20px;

    border-left:
        1px solid
        var(--gold);

}

.author-signature span {

    color: var(--gold-light);

    font-family:
        "Cormorant Garamond",
        serif;

    font-size: 1.5rem;

    font-style: italic;

}

.author-signature small {

    color: var(--muted);

    font-size: 0.63rem;

    letter-spacing: 2px;

    text-transform: uppercase;

}


/* =========================================================
   SCROLL REVEAL
========================================================= */

.reveal,
.reveal-left,
.reveal-right {

    opacity: 0;

    transition:

        opacity
        0.9s
        ease,

        transform
        0.9s
        ease;

}

.reveal {

    transform:
        translateY(50px);

}

.reveal-left {

    transform:
        translateX(-70px);

}

.reveal-right {

    transform:
        translateX(70px);

}

.reveal.visible,
.reveal-left.visible,
.reveal-right.visible {

    opacity: 1;

    transform:
        translate(0);

}


/* =========================================================
   HERO REVEAL
========================================================= */

.about-reveal {

    opacity: 0;

    transform:
        translateY(35px);

    animation:
        aboutHeroReveal
        1s
        ease
        forwards;

}

.about-reveal:nth-child(1) {

    animation-delay:
        0.2s;

}

.about-reveal:nth-child(2) {

    animation-delay:
        0.4s;

}

.about-reveal:nth-child(3) {

    animation-delay:
        0.6s;

}

.about-reveal:nth-child(4) {

    animation-delay:
        0.8s;

}

.about-reveal:nth-child(5) {

    animation-delay:
        1s;

}

@keyframes aboutHeroReveal {

    to {

        opacity: 1;

        transform:
            translateY(0);

    }

}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 991px) {

    .author-intro-grid {

        grid-template-columns: 1fr;

        gap: 70px;

    }

    .author-portrait {

        max-width: 430px;

    }

    .author-intro-content {

        text-align: center;

    }

    .author-intro-content .section-label {

        justify-content: center;

    }

    .author-intro-content p {

        margin-left: auto;

        margin-right: auto;

    }

    .author-signature {

        width: max-content;

        margin-left: auto;

        margin-right: auto;

        text-align: left;

    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .about-hero {

        min-height: 600px;

    }

    .about-hero h1 {

        font-size: 2.8rem;

    }

    .about-hero-content > p {

        font-size: 1.2rem;

    }

    .hero-scroll {

        margin-top: 45px;

    }

    .author-introduction {

        padding:
            100px 0;

    }

    .portrait-frame {

        left: 10px;

        top: 10px;

    }

    .portrait-caption {

        flex-direction: column;

        gap: 5px;

    }

    .author-intro-content h2 {

        font-size: 2.35rem;

    }

    .author-intro-content .lead-text {

        font-size: 1.25rem;

        line-height: 1.6;

        text-align: justify;

        text-indent: 30px;

    }

    .reveal-left,
    .reveal-right {

        transform:
            translateY(40px);

    }

}


/* =========================================================
   SMALL MOBILE (narrow phones)
========================================================= */

@media (max-width: 380px) {

    .about-hero {

        min-height: 560px;

    }

    .about-hero h1 {

        font-size: 2.3rem;

    }

    .about-hero-content > p {

        font-size: 1.05rem;

    }

    .author-introduction {

        padding: 80px 0;

    }

    .author-intro-content h2 {

        font-size: 2rem;

    }

    .author-intro-content .lead-text {

        font-size: 1.1rem;

        text-indent: 22px;

    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    html {

        scroll-behavior:
            auto;

    }

    *,
    *::before,
    *::after {

        animation-duration:
            0.01ms !important;

        animation-iteration-count:  
            1 !important;

        transition-duration:
            0.01ms !important;

    }

}





























/* =========================================================
   AUTHOR SECTION
   Bernadette Y. Quander — Sabre de Pleiades
========================================================= */

.author-section {
    width: 100%;
    padding: 100px 0;
    background: #030817;
    color: #f3eee4;
    overflow: hidden;
}


/* =========================================================
   CONTAINER
========================================================= */

.author-section .container {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}


/* =========================================================
   HEADING
========================================================= */

.author-section h2 {
    margin: 0 0 52px;

    text-align: center;

    font-family: "Cinzel", "Playfair Display", serif;
    font-size: clamp(2rem, 3.5vw, 2.6rem);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.015em;

    color: #e5b93f;

    /* Animation initial state */
    opacity: 0;
    transform: translateX(-90px);

    transition:
        opacity 1s ease,
        transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}


/* =========================================================
   AUTHOR BOX
========================================================= */

.author-box {
    width: 100%;
    max-width: 950px;

    min-height: 195px;

    margin: 0 auto;
    padding: 45px 45px;

    box-sizing: border-box;

    background: #151a2a;

    border: 1px solid rgba(255, 255, 255, 0.10);
    border-radius: 19px;

    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12);

    /* Animation initial state */
    opacity: 0;
    transform: translateX(-120px);

    transition:
        opacity 1.2s ease,
        transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}


/* =========================================================
   ANIMATION ACTIVE STATE
========================================================= */

.author-section.is-visible .author-box {
    opacity: 1;
    transform: translateX(0);
}


/* Heading comes after the container */

.author-section.is-visible h2 {
    opacity: 1;
    transform: translateX(0);

    transition-delay: 0.35s;
}


/* =========================================================
   AUTHOR TEXT
========================================================= */

.author-box p {
    margin: 0;

    font-family: "Inter", sans-serif;
    font-size: 0.95rem;
    font-weight: 400;
    line-height: 1.8;

    color: rgba(243, 238, 228, 0.82);
}

.author-box p + p {
    margin-top: 22px;
}


/* =========================================================
   BOOK TITLE
========================================================= */

.author-box strong {
    color: #f3eee4;
    font-weight: 700;
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 768px) {

    .author-section {
        padding: 80px 0;
    }

    .author-section .container {
        padding: 0 20px;
    }

    .author-section h2 {
        margin-bottom: 40px;
        font-size: 2rem;
    }

    .author-box {
        min-height: 180px;
        padding: 38px 32px;
        border-radius: 16px;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 480px) {

    .author-section {
        padding: 65px 0;
    }

    .author-section .container {
        padding: 0 16px;
    }

    .author-section h2 {
        margin-bottom: 32px;
        font-size: 1.55rem;
        line-height: 1.3;
    }

    .author-box {
        min-height: 170px;
        padding: 30px 24px;
        border-radius: 14px;
    }

    .author-box p {
        font-size: 0.82rem;
        line-height: 1.7;
    }

}


/* =========================================================
   REDUCED MOTION
========================================================= */

@media (prefers-reduced-motion: reduce) {

    .author-section h2,
    .author-box {
        opacity: 1;
        transform: none;
        transition: none;
    }

}





































/* =========================================================
   AUTHOR / EXCERPT BOX
========================================================= */

.author-box {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;

    gap: 45px;

    align-items: center;

    max-width: 850px;

    margin-top: 20px;
}


/* =========================================================
   EXCERPT IMAGE
========================================================= */

.author-excerpt-image {
    position: relative;

    width: 100%;
    aspect-ratio: 4 / 5;

    overflow: hidden;

    border: 1px solid rgba(229, 185, 63, 0.45);

    background: #101936;

    box-shadow:
        0 25px 60px rgba(0, 0, 0, 0.35);
}


.author-excerpt-image::after {
    content: "";

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            135deg,
            rgba(8, 14, 39, 0.05),
            rgba(8, 14, 39, 0.35)
        );

    pointer-events: none;
}


.author-excerpt-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;

    transition:
        transform 0.7s ease,
        filter 0.7s ease;
}


.author-excerpt-image:hover img {
    transform: scale(1.04);

    filter: brightness(1.08);
}


/* =========================================================
   EXCERPT CONTENT
========================================================= */

.author-excerpt-content {
    padding-right: 10px;
}


/* =========================================================
   LABEL
========================================================= */

.author-excerpt-label {
    display: block;

    margin-bottom: 14px;

    font-family: "Inter", sans-serif;

    font-size: 10px;
    font-weight: 600;

    letter-spacing: 4px;

    color: #e5b93f;
}


/* =========================================================
   TITLE
========================================================= */

.author-excerpt-content h3 {
    margin: 0 0 22px;

    font-family: "Playfair Display", serif;

    font-size: clamp(30px, 4vw, 46px);

    font-weight: 500;

    line-height: 1.15;

    color: #f3eee4;
}


/* =========================================================
   DESCRIPTION
========================================================= */

.author-excerpt-content p {
    margin: 0 0 30px;

    max-width: 520px;

    font-family: "Cormorant Garamond", serif;

    font-size: 20px;

    line-height: 1.65;

    color: rgba(243, 238, 228, 0.75);
}


.author-excerpt-content p strong {
    color: #e5b93f;

    font-weight: 600;
}


/* =========================================================
   BUTTON
========================================================= */

.author-excerpt-button {
    display: inline-flex;

    align-items: center;

    gap: 15px;

    padding: 13px 22px;

    border: 1px solid #e5b93f;

    color: #e5b93f;

    background: transparent;

    font-family: "Inter", sans-serif;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 2px;

    text-decoration: none;

    transition:
        background 0.35s ease,
        color 0.35s ease,
        transform 0.35s ease;
}


.author-excerpt-button span {
    font-size: 17px;

    line-height: 1;

    transition:
        transform 0.35s ease;
}


.author-excerpt-button:hover {
    background: #e5b93f;

    color: #080e27;

    transform: translateY(-3px);
}


.author-excerpt-button:hover span {
    transform: translate(3px, -3px);
}


/* =========================================================
   TABLET
========================================================= */

@media (max-width: 850px) {

    .author-box {
        grid-template-columns: 1fr;

        gap: 35px;

        max-width: 500px;

        margin-left: auto;
        margin-right: auto;
    }

    .author-excerpt-image {
        max-width: 350px;

        margin: 0 auto;
    }

    .author-excerpt-content {
        text-align: center;

        padding-right: 0;
    }

    .author-excerpt-content p {
        margin-left: auto;
        margin-right: auto;
    }

}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .author-box {
        gap: 30px;
    }

    .author-excerpt-image {
        max-width: 300px;
    }

    .author-excerpt-content h3 {
        font-size: 32px;
    }

    .author-excerpt-content p {
        font-size: 18px;
    }

    .author-excerpt-button {
        padding: 12px 18px;

        font-size: 9px;
    }

}































/* =========================================================
   AUTHOR IMAGE FULL-SIZE VIEW
========================================================= */

.author-image-viewer {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 30px;

    background: rgba(0, 0, 0, 0.92);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity 0.35s ease,
        visibility 0.35s ease;
}

.author-image-viewer.active {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.author-image-viewer img {
    display: block;

    max-width: 95vw;
    max-height: 90vh;

    width: auto;
    height: auto;

    object-fit: contain;

    transform: scale(0.85);

    transition: transform 0.4s ease;
}

.author-image-viewer.active img {
    transform: scale(1);
}


/* =========================================================
   CLOSE BUTTON
========================================================= */

.author-image-viewer-close {
    position: absolute;

    top: 20px;
    right: 25px;

    width: 50px;
    height: 50px;

    border: 2px solid #e5b93f;
    border-radius: 50%;

    background: rgba(8, 14, 39, 0.9);

    color: #e5b93f;

    font-family: Arial, sans-serif;
    font-size: 32px;
    font-weight: 400;

    line-height: 1;

    cursor: pointer;

    display: flex;
    align-items: center;
    justify-content: center;

    z-index: 100000;

    transition:
        background 0.3s ease,
        color 0.3s ease,
        transform 0.3s ease;
}

.author-image-viewer-close:hover {
    background: #e5b93f;
    color: #080e27;

    transform: rotate(90deg);
}


/* =========================================================
   CLICKABLE IMAGE
========================================================= */

.author-excerpt-image {
    cursor: zoom-in;
}


/* Prevent page scrolling while viewer is open */

body.author-image-viewer-open {
    overflow: hidden;
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 600px) {

    .author-image-viewer {
        padding: 15px;
    }

    .author-image-viewer img {
        max-width: 96vw;
        max-height: 85vh;
    }

    .author-image-viewer-close {
        top: 15px;
        right: 15px;

        width: 44px;
        height: 44px;

        font-size: 28px;
    }

}







































.author-section .container {
    max-width: 1100px;
    width: 92%;
    margin: 0 auto;
}

.author-box {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 50px;
    align-items: center;

    width: 100%;
    max-width: 1000px;
    margin: 20px auto 0;
}

.author-excerpt-image {
    width: 100%;
    aspect-ratio: 4 / 5;
}

.author-excerpt-content h3 {
    font-size: clamp(32px, 4vw, 50px);
}

.author-excerpt-content p {
    max-width: 560px;
    font-size: 25px;
    text-indent: 35px;
    text-align: justify;
}














































.author-excerpt-image {
    position: relative;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;

    border: 1px solid rgba(229, 185, 63, 0.45);
    background: #101936;

    box-shadow: 0 25px 60px rgba(0, 0, 0, 0.35);

    display: flex;
    align-items: center;
    justify-content: center;
}

.author-excerpt-image img {
    display: block;
    width: 100%;
    height: 100%;

    object-fit: contain;
    object-position: center;

    transition: transform 0.7s ease, filter 0.7s ease;
}

.author-excerpt-image:hover img {
    transform: scale(1.02);
    filter: brightness(1.08);
}

















.author-excerpt-image {
    position: relative;
    width: 100%;
    height: auto;

    display: flex;
    align-items: center;
    justify-content: center;

    background: transparent;
    border: none !important;
    box-shadow: none !important;
    overflow: visible;
}

.author-excerpt-image::before,
.author-excerpt-image::after {
    display: none !important;
}

.author-excerpt-image img {
    display: block;
    width: 100%;
    height: auto;

    max-width: 100%;
    object-fit: contain;

    border: none !important;
    box-shadow: none !important;
}