:root {
    --black: #0D0D12;
    --deep: #5B168A;
    --purple: #9B2CFF;
    --pink: #D84CFF;
    --cyan: #22D9F5;
    --white: #F4F1F7;
    --muted: #bcb6c7;
    --line: #ffffff25
}

* {
    box-sizing: border-box
}

html {
    scroll-behavior: smooth;
    scroll-padding-top: 30px
}

body {
    margin: 0;
    background: var(--black);
    color: var(--white);
    font: 17px/1.65 Arial, Helvetica, sans-serif;
    overflow-x: clip
}

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

button {
    font: inherit;
    cursor: pointer
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
    outline: 3px solid var(--cyan);
    outline-offset: 5px
}

img {
    display: block;
    width: 100%
}

h1,
h2,
h3,
p {
    margin: 0
}

h1,
h2,
h3 {
    line-height: 1.04
}

p {
    color: var(--muted)
}

.wrap {
    width: min(1280px, calc(100% - 80px));
    margin: auto
}

.nav {
    height: 105px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 25px;
    border-bottom: 1px solid var(--line)
}

.brand {
    display: flex;
    align-items: center;
    gap: 13px
}

.brand img {
    width: 48px;
    height: 48px;
    border-radius: 50%
}

.brand strong {
    font-size: 24px;
    letter-spacing: -1px
}

.brand small {
    display: block;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--muted)
}

.nav-links {
    display: flex;
    align-items: center;
    gap: 30px;
    font-size: 14px
}

.nav-links a:hover {
    color: var(--cyan)
}

.nav-links .nav-join {
    background: var(--white);
    color: var(--black);
    border-radius: 100px;
    padding: 11px 21px;
    font-weight: 700
}

.hero {
    position: relative;
    padding: 36px 0 60px;
    background: radial-gradient(ellipse at var(--gx, 70%) var(--gy, 25%), #5B168A90, transparent 62%)
}

.hero-kicker {
    display: flex;
    justify-content: space-between;
    gap: 15px;
    color: var(--muted);
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase
}

.hero-title {
    font-size: clamp(90px, 18vw, 260px);
    font-weight: 900;
    letter-spacing: -.085em;
    line-height: .82;
    padding: 35px 12px 10px 0;
    white-space: nowrap;
    text-transform: uppercase
}

.hero-title .outline {
    color: transparent;
    -webkit-text-stroke: 2px var(--pink)
}

.hero-scene {
    display: grid;
    grid-template-columns: .85fr 1fr .65fr;
    align-items: center;
    gap: 35px;
    margin-top: -4px;
    position: relative
}

.hero-copy {
    padding: 45px 0 10px
}

.hero-copy h2 {
    font-size: clamp(35px, 3.7vw, 52px);
    font-weight: 800;
    letter-spacing: -2px
}

.hero-copy h2 em {
    font-family: Georgia, serif;
    font-weight: 400;
    color: var(--cyan)
}

.hero-copy p {
    font-size: 17px;
    margin-top: 22px;
    max-width: 350px
}

.pill {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 14px 23px;
    border-radius: 100px;
    background: var(--cyan);
    color: var(--black);
    font-weight: 700;
    font-size: 15px;
    min-height: 50px;
    transition: transform .2s
}

.pill:hover {
    transform: translateY(-3px)
}

.hero-copy .pill {
    margin-top: 28px
}

.portrait-frame {
    position: relative;
    transform: rotate(-4deg);
    padding: 10px;
    background: var(--white);
    box-shadow: 0 22px 70px #0008;
    margin: -20px 0 0;
    z-index: 2
}

.portrait-frame img {
    height: 480px;
    object-fit: cover;
    object-position: center 22%
}

.portrait-frame figcaption {
    color: var(--black);
    font: italic 22px Georgia, serif;
    text-align: center;
    padding: 15px 0 7px
}

.portrait-frame:after {
    content: '';
    position: absolute;
    width: 110px;
    height: 32px;
    background: #D84CFFcc;
    top: -15px;
    left: calc(50% - 55px);
    transform: rotate(8deg);
    border: 1px solid #ffffff30
}

.side-notes {
    display: flex;
    align-items: center;
    flex-direction: column;
    gap: 35px;
    position: relative;
    z-index: 3
}

.brand-sticker {
    width: 180px;
    border-radius: 50%;
    transform: rotate(9deg);
    box-shadow: 0 0 50px #9B2CFF40;
    border: 3px solid var(--purple)
}

.note {
    font: italic 26px/1.2 Georgia, serif;
    text-align: center;
    transform: rotate(5deg);
    color: var(--white);
    max-width: 180px
}

.note span {
    color: var(--pink)
}

.mini-tag {
    padding: 10px 17px;
    background: var(--deep);
    border: 1px solid #b765f5;
    border-radius: 8px;
    font-size: 12px;
    letter-spacing: 1.5px;
    transform: rotate(-7deg);
    text-align: center
}

.marquee {
    overflow: hidden;
    background: var(--purple);
    color: var(--white);
    padding: 17px 0;
    border-block: 1px solid #cf80ff;
    transform: rotate(-1deg);
    margin: 18px 0 0
}

.marquee-track {
    width: max-content;
    display: flex;
    gap: 34px;
    animation: drift 32s linear infinite;
    font-size: 22px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: -.5px
}

.marquee-track span {
    white-space: nowrap
}

.marquee-track b {
    color: var(--cyan)
}

@keyframes drift {
    to {
        transform: translateX(-50%)
    }
}

.section {
    padding: 90px 0
}

.eyebrow {
    font-size: 12px;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--cyan);
    font-weight: 700
}

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 30px;
    margin: 18px 0 35px
}

.section-heading h2 {
    font-size: clamp(40px, 5vw, 68px);
    letter-spacing: -3px;
    font-weight: 800
}

.section-heading p {
    max-width: 320px;
    font-size: 16px
}

.socials {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 18px
}

.social {
    padding: 24px 23px;
    border-radius: 18px;
    background: #15131d;
    border: 1px solid var(--line);
    transition: transform .25s, box-shadow .25s
}

.social.tiktok {
    background: var(--cyan);
    color: var(--black);
    border-color: var(--cyan)
}

.social.discord {
    background: var(--purple);
    color: var(--white);
    border-color: #ae51ff
}

.social.instagram {
    background: #211128;
    border-color: #D84CFF88
}

.social.facebook {
    background: #121c2a;
    border-color: #557cc888
}

.social-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
    margin-bottom: 30px
}

.social-top svg {
    width: 31px;
    height: 31px;
    flex-shrink: 0
}

.social-top span {
    font-size: 10px;
    letter-spacing: 1px;
    font-weight: bold
}

.social strong {
    font-size: 32px;
    letter-spacing: -1.6px
}

.social p {
    margin-top: 10px;
    font-size: 14px;
    color: inherit;
    opacity: .82;
    min-height: 47px
}

.social-bottom {
    margin-top: 28px;
    padding-top: 17px;
    border-top: 1px solid currentColor;
    font-size: 13px;
    font-weight: 700
}

a.social:hover {
    transform: translateY(-8px) rotate(-1deg);
    box-shadow: 0 15px 35px #9B2CFF30
}

.about {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 80px;
    align-items: center;
    padding-top: 10px
}

.about-image {
    position: relative
}

.about-image img {
    height: 495px;
    object-fit: cover;
    object-position: center 20%;
    border-radius: 120px 120px 16px 16px
}

.about-image .stamp {
    position: absolute;
    bottom: 30px;
    right: -25px;
    transform: rotate(-7deg);
    padding: 16px 25px;
    background: var(--pink);
    color: var(--black);
    font-size: 20px;
    font-weight: 800;
    border-radius: 6px
}

.about h2 {
    font-size: clamp(42px, 5vw, 67px);
    letter-spacing: -3px;
    margin: 18px 0 27px
}

.about h2 span {
    color: var(--pink)
}

.about p+p {
    margin-top: 18px
}

.family {
    display: flex;
    gap: 18px;
    margin-top: 28px
}

.family div {
    flex: 1;
    border-top: 1px solid #9B2CFF80;
    padding-top: 15px
}

.family strong {
    font-size: 43px;
    line-height: 1;
    display: block;
    color: var(--white)
}

.family span {
    font-size: 13px;
    color: var(--muted)
}

.desk {
    background: linear-gradient(120deg, #1b1027, #100c18);
    border-block: 1px solid #9B2CFF50;
    position: relative
}

.desk h2 {
    font-size: clamp(44px, 6vw, 80px);
    letter-spacing: -4px;
    margin: 20px 0 35px;
    max-width: 800px
}

.desk h2 em {
    color: var(--cyan);
    font-family: Georgia, serif;
    font-weight: 400
}

.book-tabs {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin: 0 0 30px
}

.book-tabs button {
    border: 1px solid #ffffff40;
    background: transparent;
    color: var(--white);
    padding: 12px 23px;
    border-radius: 100px;
    font-size: 15px
}

.book-tabs button[aria-selected=true] {
    background: var(--white);
    color: var(--black);
    border-color: var(--white)
}

.book-panel {
    display: grid;
    grid-template-columns: 150px 1fr;
    gap: 45px;
    align-items: center;
    max-width: 950px;
    min-height: 225px
}

.book-panel[hidden] {
    display: none
}

.book-index {
    font-size: 145px;
    letter-spacing: -13px;
    line-height: .95;
    color: var(--purple);
    font-weight: 800
}

.book-panel h3 {
    font-size: 35px;
    letter-spacing: -1px;
    margin: 15px 0
}

.book-panel p {
    max-width: 620px
}

.book-panel .book-status {
    font-size: 12px;
    color: var(--pink);
    letter-spacing: 1.5px;
    text-transform: uppercase
}

.book-panel small {
    display: block;
    margin-top: 18px;
    color: var(--muted);
    font-size: 14px
}

.closing {
    display: flex;
    gap: 65px;
    align-items: center;
    justify-content: space-between
}

.closing h2 {
    font-size: clamp(42px, 5vw, 66px);
    letter-spacing: -3px;
    margin: 20px 0;
    max-width: 650px
}

.closing p {
    max-width: 540px
}

.closing .pill {
    background: var(--purple);
    color: var(--white);
    padding: 19px 30px;
    white-space: nowrap
}

.footer {
    border-top: 1px solid var(--line);
    padding: 30px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px
}

.footer strong {
    font-size: 22px;
    letter-spacing: -1px
}

.footer small {
    color: var(--muted);
    font-size: 12px
}

.motion {
    color: var(--muted);
    border: 1px solid var(--line);
    background: transparent;
    border-radius: 100px;
    padding: 9px 15px;
    font-size: 12px
}

.motion:hover {
    color: var(--white)
}

.reveal {
    opacity: 1
}

.animate .reveal {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity .65s, transform .65s
}

.animate .reveal.visible {
    opacity: 1;
    transform: none
}

.quiet * {
    animation: none !important;
    transition: none !important
}

.skip {
    position: absolute;
    top: -100px;
    left: 15px;
    padding: 12px;
    background: var(--white);
    color: var(--black);
    z-index: 10
}

.skip:focus {
    top: 10px
}

@media(max-width:1100px) {
    .hero-scene {
        grid-template-columns: 1fr 1fr;
        gap: 35px
    }

    .side-notes {
        display: none
    }

    .hero-title {
        font-size: 19vw
    }

    .portrait-frame img {
        height: 470px
    }

    .socials {
        grid-template-columns: 1fr 1fr
    }

    .social p {
        min-height: 0
    }

    .social-top {
        margin-bottom: 23px
    }

    .about {
        gap: 50px
    }
}

@media(max-width:700px) {
    .wrap {
        width: calc(100% - 36px)
    }

    .nav {
        height: 88px
    }

    .brand strong {
        font-size: 21px
    }

    .brand small {
        font-size: 9px
    }

    .brand img {
        width: 41px;
        height: 41px
    }

    .nav-links {
        gap: 15px
    }

    .nav-links a:not(.nav-join) {
        display: none
    }

    .nav-links .nav-join {
        font-size: 12px;
        padding: 10px 16px
    }

    .hero {
        padding: 27px 0 35px
    }

    .hero-kicker {
        font-size: 10px;
        letter-spacing: 1.3px
    }

    .hero-kicker span:last-child {
        display: none
    }

    .hero-title {
        font-size: 19vw;
        letter-spacing: -.085em;
        padding-top: 30px;
        padding-bottom: 28px
    }

    .hero-scene {
        grid-template-columns: 1fr;
        gap: 35px
    }

    .hero-copy {
        padding: 0
    }

    .hero-copy h2 {
        font-size: 43px;
        letter-spacing: -1.5px
    }

    .hero-copy p {
        font-size: 17px;
        max-width: 100%
    }

    .portrait-frame {
        max-width: 420px;
        width: calc(100% - 22px);
        margin: 10px auto 0;
        transform: rotate(-3deg)
    }

    .portrait-frame img {
        height: 420px
    }

    .marquee {
        padding: 15px 0;
        margin-top: 10px
    }

    .marquee-track {
        font-size: 18px;
        gap: 26px
    }

    .section {
        padding: 58px 0
    }

    .section-heading {
        display: block;
        margin-bottom: 25px
    }

    .section-heading h2 {
        font-size: 43px;
        letter-spacing: -2px
    }

    .section-heading p {
        margin-top: 17px;
        max-width: 100%
    }

    .socials {
        gap: 12px
    }

    .social {
        padding: 19px 15px;
        border-radius: 13px
    }

    .social-top {
        flex-direction: column;
        align-items: start;
        gap: 13px;
        margin-bottom: 24px
    }

    .social-top span {
        font-size: 9px
    }

    .social strong {
        font-size: 27px;
        letter-spacing: -1px
    }

    .social p {
        font-size: 14px;
        min-height: 47px
    }

    .social-bottom {
        font-size: 12px;
        margin-top: 20px;
        padding-top: 13px
    }

    .about {
        grid-template-columns: 1fr;
        gap: 40px;
        padding-top: 15px
    }

    .about-image {
        max-width: 460px
    }

    .about-image img {
        height: 430px
    }

    .about-image .stamp {
        right: 0;
        bottom: 25px;
        font-size: 18px
    }

    .about h2 {
        font-size: 45px;
        letter-spacing: -2px
    }

    .family {
        gap: 12px
    }

    .family strong {
        font-size: 36px
    }

    .family span {
        font-size: 12px
    }

    .desk h2 {
        font-size: 48px;
        letter-spacing: -2px
    }

    .book-panel {
        grid-template-columns: 75px 1fr;
        gap: 20px;
        align-items: start;
        min-height: 280px
    }

    .book-index {
        font-size: 75px;
        letter-spacing: -7px
    }

    .book-panel h3 {
        font-size: 28px
    }

    .book-panel .book-status {
        font-size: 10px
    }

    .book-panel p {
        font-size: 16px
    }

    .book-tabs button {
        padding: 11px 19px;
        font-size: 14px
    }

    .closing {
        display: block
    }

    .closing h2 {
        font-size: 43px;
        letter-spacing: -2px
    }

    .closing .pill {
        margin-top: 27px
    }

    .footer {
        flex-wrap: wrap;
        justify-content: space-between
    }

    .footer small {
        order: 3;
        width: 100%
    }

    .animate .reveal {
        transform: none
    }
}

@media(prefers-reduced-motion:reduce) {
    html {
        scroll-behavior: auto
    }

    *,
    .marquee-track {
        animation: none !important;
        transition: none !important
    }

    .animate .reveal {
        opacity: 1;
        transform: none
    }
}

/* V8 additions: series details and Elephant Designs footer. */
edit-text {
    display: contents
}

.series-intro {
    max-width: 720px;
    margin: -10px 0 28px;
    font-size: 18px
}

.book-tabs {
    margin-top: 20px
}

.book-tabs button {
    min-height: 48px
}

.book-panel h3 {
    overflow-wrap: anywhere
}

.book-cover {
    width: 135px;
    max-height: 200px;
    object-fit: contain;
    object-position: top
}

.design-credit {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 13px;
    color: var(--muted)
}

.design-credit strong {
    display: inline;
    font-size: 14px;
    color: var(--white);
    letter-spacing: 0
}

.design-credit img {
    width: auto;
    max-width: 150px;
    max-height: 58px;
    object-fit: contain
}

.design-credit img[hidden] {
    display: none
}

.footer {
    flex-wrap: wrap
}

.book-buy {
    display: inline-block;
    margin-top: 20px;
    font-size: 14px
}

.cover-and-number {
    align-self: start
}

.series-intro {
    line-height: 1.65
}

@media(max-width:700px) {
    .design-credit {
        width: 100%;
        order: 4
    }

    .series-intro {
        font-size: 16px
    }

    .book-cover {
        width: 75px;
        max-height: 125px
    }

    .book-tabs {
        gap: 8px
    }

    .book-tabs button {
        padding: 10px 16px
    }

    .book-panel {
        min-height: 300px
    }

    .footer small {
        order: 5
    }
}

/* Revised series showcase: every book is visible, no tab switching. */
.desk {
    background: radial-gradient(ellipse at 15% 20%, #5B168A32, transparent 70%), #100d18
}

.desk h2[data-series-heading] {
    max-width: none;
    font-size: clamp(50px, 6.8vw, 94px);
    letter-spacing: -4px;
    margin: 18px 0 24px;
    line-height: 1.06;
    color: var(--white)
}

.series-intro {
    margin: 0 0 34px;
    max-width: 680px
}

.series-featured {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px
}

.series-card {
    border: 1px solid #9B2CFF50;
    border-radius: 15px;
    overflow: hidden;
    background: #ffffff03
}

.featured-book {
    border-top: 3px solid var(--purple);
    background: linear-gradient(145deg, #5B168A25, transparent 75%), #14111d
}

.featured-book:nth-child(2) {
    border-color: #22D9F540;
    border-top-color: var(--cyan);
    background: linear-gradient(145deg, #22D9F509, transparent 70%), #14111d
}

.series-card-top {
    display: flex;
    justify-content: space-between;
    gap: 22px;
    align-items: start;
    padding: 25px 28px 20px;
    border-bottom: 1px solid var(--line)
}

.series-order {
    font-size: 12px;
    letter-spacing: 2px;
    font-weight: 700;
    white-space: nowrap;
    color: #ce9cff
}

.featured-book:nth-child(2) .series-order {
    color: var(--cyan)
}

.series-state {
    font-size: 12px;
    color: var(--muted);
    text-align: right;
    line-height: 1.6
}

.series-card-copy {
    padding: 29px 28px 30px;
    display: flex;
    flex-direction: column
}

.series-card .series-book-title {
    font-size: clamp(29px, 3vw, 42px);
    letter-spacing: -1.2px;
    line-height: 1.12;
    margin: 0 0 22px;
    max-width: 420px
}

.featured-book .series-card-copy {
    min-height: 275px
}

.series-card-copy p {
    font-size: 16px;
    line-height: 1.75;
    max-width: 480px
}

.series-book-note {
    display: block;
    margin-top: auto;
    padding-top: 26px;
    font-size: 13px;
    color: #ac9fbf;
    line-height: 1.6
}

.series-upcoming {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-top: 20px
}

.future-book {
    background: transparent;
    border-color: #ffffff20
}

.future-book .series-card-top {
    padding: 20px 22px 16px;
    gap: 12px
}

.future-book .series-order {
    color: var(--muted)
}

.future-book .series-state {
    font-size: 11px
}

.future-book .series-card-copy {
    padding: 22px
}

.future-book .series-book-title {
    font-size: 23px;
    letter-spacing: -.5px;
    line-height: 1.25;
    margin-bottom: 0
}

.future-book .series-book-note {
    padding-top: 14px;
    color: var(--muted)
}

.series-cover {
    width: auto;
    max-width: 420px;
    max-height: 630px;
    object-fit: contain;
    object-position: left;
    margin-bottom: 22px;
    border-radius: 4px
}

.series-card-copy .book-buy {
    align-self: start;
    margin-top: 20px
}

.desk .section {
    padding: 75px 0
}

@media(max-width:950px) {
    .series-card-top {
        flex-direction: column;
        gap: 10px
    }

    .series-state {
        text-align: left
    }

    .series-upcoming {
        gap: 12px
    }

    .future-book .series-card-top {
        padding: 17px
    }

    .future-book .series-card-copy {
        padding: 19px 17px
    }

    .future-book .series-book-title {
        font-size: 21px
    }
}

@media(max-width:650px) {
    .desk h2[data-series-heading] {
        font-size: clamp(45px, 12vw, 65px);
        letter-spacing: -2px
    }

    .series-featured {
        grid-template-columns: 1fr;
        gap: 17px
    }

    .series-card-top {
        padding: 21px 22px 17px;
        flex-direction: row;
        gap: 15px
    }

    .series-state {
        text-align: right;
        font-size: 11px
    }

    .series-card-copy {
        padding: 25px 22px
    }

    .series-card .series-book-title {
        font-size: 34px;
        letter-spacing: -1px;
        max-width: 100%
    }

    .featured-book .series-card-copy {
        min-height: 0
    }

    .series-book-note {
        margin-top: 0;
        padding-top: 20px
    }

    .series-upcoming {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-top: 17px
    }

    .future-book .series-card-top {
        padding: 17px 20px
    }

    .future-book .series-card-copy {
        padding: 18px 20px
    }

    .future-book .series-book-title {
        font-size: 24px
    }

    .future-book .series-book-note {
        padding-top: 9px
    }

    .desk .section {
        padding: 55px 0
    }

    .series-intro {
        margin-bottom: 27px
    }
}