/* ==========================================================================
   端野丸 人物設定帖 — 夜之社
   responsive / compact heights / reduced motion
   ========================================================================== */

/* ---------- wide but short laptops ---------- */
@media (min-width: 1001px) and (max-height: 840px) {
    .hero {
        padding-top: calc(var(--header-h) + 24px);
        padding-bottom: 154px;
    }

    .hero-logo {
        height: clamp(118px, 15vh, 150px);
    }

    .hero-role {
        margin-top: 8px;
    }

    .hero-tagline {
        margin: 10px 0 8px;
        font-size: clamp(21px, 2.1vw, 27px);
    }

    .hero-intro {
        display: none;
    }

    .hero-stats {
        margin-bottom: 16px;
    }

    .hero-stage {
        height: clamp(330px, 61svh, 540px);
    }

    .hero-switch {
        bottom: 40px;
    }

    .medallion-frame {
        width: 72px;
        height: 72px;
    }

    .medallion-no {
        margin-right: -47px;
    }

    .medallion-text i {
        display: none;
    }

    .switch-label,
    .switch-count {
        padding: 6px 12px;
    }

    .about-grid {
        gap: 46px;
    }
}

@media (min-width: 1001px) and (max-height: 700px) {
    .hero {
        padding-top: calc(var(--header-h) + 12px);
        padding-bottom: 136px;
    }

    .hero-logo {
        height: 104px;
    }

    .hero-tagline {
        font-size: 20px;
        line-height: 1.5;
    }

    .hero-stats {
        margin-bottom: 10px;
    }

    .hero-stage {
        height: 54svh;
    }

    .hero-switch {
        bottom: 34px;
    }

    .medallion-frame {
        width: 62px;
        height: 62px;
    }

    .medallion-text b {
        font-size: 14px;
    }

    .medallion-text i {
        display: none;
    }

    .medallion-no {
        margin-right: -42px;
    }
}

/* ---------- small desktop ---------- */
@media (max-width: 1240px) {
    .hero-side {
        display: none;
    }

    .hero-switch {
        width: calc(100% - (var(--gutter) * 2));
    }

    .switch-track {
        gap: clamp(14px, 2.8vw, 44px);
    }

    .medallion-text i {
        max-width: 132px;
    }

    .nav {
        gap: 18px;
    }
}

@media (max-width: 1100px) {
    .about-grid {
        gap: 40px;
    }

    .attr-grid {
        gap: 8px;
    }

    .attr-grid li {
        padding: 8px 10px;
    }

    .attr-grid b {
        font-size: 13px;
    }

    .cast-stage {
        min-height: 520px;
    }

    .cast-art {
        height: clamp(330px, 43vw, 470px);
    }

    .cast-info {
        padding: 28px;
    }

    .cast-logo {
        height: 100px;
    }

    .viewer-screen {
        grid-template-columns: minmax(0, 1.4fr) minmax(0, .75fr);
    }
}

/* ==========================================================================
   tablet / stacked
   ========================================================================== */
@media (max-width: 1000px) {
    :root {
        --header-h: 70px;
    }

    .page-frame {
        inset: 10px;
    }

    .pf-corner {
        width: 76px;
        height: 76px;
        opacity: .42;
    }

    .site-header {
        height: var(--header-h);
        padding: 0 20px;
        gap: 14px;
    }

    .site-header.is-scrolled {
        height: var(--header-h);
    }

    .nav {
        display: none;
    }

    .header-tools {
        display: flex;
    }

    .menu-toggle {
        display: block;
    }

    .brand-seal {
        width: 38px;
        height: 38px;
        font-size: 21px;
    }

    .brand-text b {
        font-size: 15px;
    }

    .brand-text i {
        font-size: 12px;
    }

    /* hero */
    .hero {
        display: flex;
        flex-direction: column;
        align-items: center;
        min-height: 0;
        padding: calc(var(--header-h) + 26px) var(--gutter) 30px;
    }

    .hero-inner {
        display: contents;
    }

    .hero-copy {
        order: 1;
        width: min(680px, 100%);
        padding-bottom: 0;
    }

    .hero-switch {
        position: relative;
        left: auto;
        bottom: auto;
        order: 2;
        width: min(680px, 100%);
        margin: 14px auto 0;
        transform: none;
        grid-template-columns: 1fr;
        gap: 0;
        padding: 6px 0;
    }

    .hero-switch::before {
        top: 50%;
    }

    .switch-label,
    .switch-count {
        display: none;
    }

    .switch-track {
        justify-content: space-between;
        gap: 6px;
        width: 100%;
        padding: 0 2px;
    }

    .medallion {
        flex: 1 1 0;
        padding: 2px 4px;
    }

    .medallion-frame {
        width: 70px;
        height: 70px;
    }

    .medallion-no {
        margin-right: -46px;
    }

    .medallion-text b {
        font-size: 14px;
    }

    .medallion-text i {
        font-size: 12px;
        max-width: 130px;
    }

    .hero-stage {
        order: 3;
        width: min(680px, 100%);
        height: clamp(300px, 45svh, 440px);
        margin-top: 4px;
    }

    .hero-side,
    .hero-scroll {
        display: none;
    }

    .hero-torii {
        width: 108vw;
        opacity: .25;
    }

    .bg-moon {
        top: auto;
        right: -50px;
        bottom: 0;
        width: min(56vw, 250px);
        opacity: .55;
    }

    .moon-halo {
        inset: -22%;
    }

    .hero-art[data-char="uram"] {
        --s: 1.04;
    }

    .ofuda {
        width: 44px;
        font-size: 16px;
        padding: 9px 0 7px;
    }

    .ofuda i {
        width: 15px;
        height: 15px;
    }

    .hero-seal-stack {
        left: 2%;
        bottom: 5%;
        width: 52px;
        height: 52px;
    }

    .hero-seal {
        width: 48px;
        height: 48px;
    }

    .hero-seal i {
        font-size: 15px;
    }

    .hero-ghost,
    .sec-watermark {
        opacity: .8;
    }

    .band-divider {
        padding: 8px 0 6px;
    }

    .band-divider img {
        width: 86vw;
    }

    /* section heading */
    .section {
        padding: 70px 0;
    }

    .sec-head {
        margin-bottom: 34px;
    }

    .sec-orn span {
        width: 54px;
    }

    .sec-title {
        gap: 14px;
    }

    .sec-seal {
        width: 40px;
        height: 40px;
        font-size: 19px;
    }

    .sec-title .cn {
        font-size: clamp(30px, 6vw, 42px);
    }

    .sec-title .jp {
        font-size: 13px;
    }

    .sec-lead {
        font-size: 13px;
        max-width: 540px;
    }

    .sec-watermark {
        font-size: 48vw;
        right: -6vw;
        top: 24px;
    }

    /* about */
    .about-grid {
        grid-template-columns: 1fr;
        gap: 34px;
    }

    .hanging-scroll {
        width: min(300px, 100%);
    }

    .scroll-caption {
        margin-top: 80px;
    }

    .about-panel {
        padding: 24px;
    }

    .about-quote {
        font-size: 27px;
    }

    .attr-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .attr-grid b {
        font-size: 14px;
    }

    /* archive */
    .archive-nav {
        display: flex;
        overflow-x: auto;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .archive-nav::-webkit-scrollbar {
        display: none;
    }

    .arc-tab {
        flex: 0 0 112px;
        min-height: 74px;
        padding: 9px 8px;
        border-right: 1px solid var(--gold-line);
    }

    .arc-tab .arc-cn {
        font-size: 15px;
    }

    .archive-panels {
        padding: 22px;
        min-height: 0;
    }

    .arc-head {
        gap: 12px;
    }

    .arc-kanji {
        min-width: 38px;
        height: 60px;
        padding-right: 10px;
        font-size: 22px;
    }

    .arc-head h3 {
        font-size: 24px;
    }

    .arc-list,
    .arc-swatches {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0 20px;
    }

    .arc-list li {
        min-height: 58px;
    }

    .arc-list b {
        font-size: 15px;
    }

    .arc-count {
        font-size: 14px;
    }

    /* cast */
    .cast-card,
    .cast-card--reverse {
        grid-template-columns: 1fr;
        margin-top: 22px;
    }

    .cast-card--reverse .cast-stage {
        order: 1;
    }

    .cast-card--reverse .cast-info {
        order: 2;
    }

    .cast-stage {
        min-height: 380px;
        padding: 24px 18px;
        border-right: 0;
        border-bottom: 1px solid var(--gold-line);
    }

    .cast-card--reverse .cast-stage {
        border-left: 0;
        border-bottom: 1px solid var(--gold-line);
    }

    .cast-art {
        height: clamp(320px, 62vw, 430px);
    }

    .cast-ring {
        width: min(72%, 340px);
    }

    .cast-watermark {
        font-size: 34vw;
    }

    .cast-ofuda {
        right: 5%;
        top: 12%;
        width: 40px;
        height: 118px;
        font-size: 16px;
    }

    .cast-seal {
        left: 6%;
        bottom: 6%;
        width: 46px;
        height: 46px;
        font-size: 19px;
    }

    .cast-info {
        padding: 24px 22px 28px;
    }

    .cast-logo {
        height: 104px;
    }

    .cast-tagline {
        font-size: 21px;
    }

    .cast-bio {
        font-size: 13px;
        line-height: 1.95;
    }

    .cast-facts {
        gap: 0 18px;
    }

    .cast-facts dt {
        font-size: 12px;
    }

    .cast-facts dd {
        font-size: 13px;
    }

    /* gallery */
    .viewer {
        padding: 12px;
    }

    .viewer-screen {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .viewer-media {
        aspect-ratio: 16 / 10;
    }

    .viewer-info {
        padding: 0 4px 6px;
    }

    .viewer-play {
        width: 92px;
        height: 92px;
        margin: -46px 0 0 -46px;
        font-size: 13px;
    }

    .viewer-thumbs {
        display: flex;
        gap: 8px;
        overflow-x: auto;
        padding-bottom: 4px;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .viewer-thumbs::-webkit-scrollbar {
        display: none;
    }

    .v-thumb {
        flex: 0 0 132px;
        aspect-ratio: 16 / 10;
    }

    /* contact */
    .contact-shell {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .contact-jp {
        font-size: clamp(27px, 6.4vw, 36px);
    }

    .contact-hanko {
        width: 74px;
        height: 74px;
        font-size: 19px;
        margin-top: 22px;
    }

    .contact-note {
        margin-top: 14px;
    }

    .contact-row>a {
        padding: 14px 54px 14px 8px;
    }

    /* footer */
    .footer-top {
        flex-wrap: wrap;
        gap: 16px;
    }

    .footer-words {
        order: 3;
        width: 100%;
        text-align: left;
        font-size: 14px;
        padding-top: 14px;
        border-top: 1px solid var(--gold-line);
    }

    .footer-words span {
        font-size: 12px;
    }

    .footer-top-btn {
        margin-left: auto;
    }

    .footer-mark {
        margin: 18px 0 14px;
        font-size: 10vw;
    }

    .footer-nav {
        justify-content: flex-start;
        gap: 18px;
        padding: 12px 0 18px;
    }

    .footer-nav a {
        font-size: 13px;
    }

    .footer-bottom {
        flex-direction: column;
        align-items: flex-start;
        gap: 4px;
        font-size: 12px;
    }

    .back-top {
        right: 16px;
        bottom: 16px;
        width: 48px;
        height: 48px;
    }

    .back-top span {
        font-size: 13px;
    }

    /* dialogs */
    .lb-shell {
        gap: 0;
    }

    .lb-nav {
        position: absolute;
        top: 50%;
        margin-top: -23px;
        z-index: 4;
    }

    .lb-prev {
        left: 0;
    }

    .lb-next {
        right: 0;
    }

    .lb-close {
        right: 0;
        top: 0;
    }

    .lb-figure img {
        max-height: 68vh;
    }
}

/* ==========================================================================
   phones
   ========================================================================== */
@media (max-width: 720px) {
    :root {
        --gutter: 20px;
    }

    body {
        font-size: 15px;
    }

    .page-frame {
        inset: 7px;
    }

    .pf-corner {
        width: 52px;
        height: 52px;
        opacity: .32;
    }

    .site-header {
        padding: 0 16px;
    }

    .brand {
        gap: 10px;
    }

    .brand-seal {
        width: 36px;
        height: 36px;
        font-size: 20px;
    }

    .brand-text b {
        font-size: 14px;
        letter-spacing: .12em;
    }

    .brand-text i {
        font-size: 12px;
        letter-spacing: .16em;
    }

    .menu-toggle {
        width: 40px;
        height: 40px;
    }

    .hero {
        padding-top: calc(var(--header-h) + 20px);
    }

    .hero-eyebrow {
        font-size: 12px;
        letter-spacing: .18em;
        gap: 8px;
    }

    .eyebrow-line {
        width: 22px;
    }

    .hero-stack {
        margin-top: 10px;
    }

    .hero-logo {
        height: clamp(116px, 31vw, 150px);
    }

    .hero-role {
        gap: 10px;
        margin-top: 10px;
    }

    .role-seal {
        width: 34px;
        height: 34px;
        font-size: 16px;
    }

    .hero-role b {
        font-size: 15px;
        letter-spacing: .1em;
    }

    .hero-role i {
        font-size: 12px;
        letter-spacing: .12em;
    }

    .hero-tagline {
        margin: 12px 0 8px;
        font-size: clamp(22px, 6vw, 27px);
        line-height: 1.6;
    }

    .hero-intro {
        font-size: 14px;
        line-height: 1.9;
        margin-bottom: 14px;
    }

    .hero-stats {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px 0;
        margin-bottom: 16px;
    }

    .hero-stats li {
        padding: 0 10px;
    }
    .hero-stats li:first-child{
        padding-left: 10px;
        border-left: 1px solid var(--gold-line);
    }
    .hero-stats b {
        font-size: 14px;
    }

    .hero-stats span {
        font-size: 12px;
    }

    .hero-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }

    .hero-actions .btn {
        min-height: 46px;
        padding: 0 10px;
        font-size: 13px;
        gap: 7px;
    }

    .hero-switch {
        margin-top: 12px;
    }

    .medallion-frame {
        width: 60px;
        height: 60px;
        padding: 3px;
    }

    .medallion-no {
        margin-right: -40px;
        min-width: 22px;
        height: 18px;
        font-size: 12px;
    }

    .medallion-text {
        gap: 1px;
    }

    .medallion-text b {
        font-size: 13px;
    }

    .medallion-text i {
        display: none;
    }

    .hero-stage {
        height: clamp(280px, 41svh, 380px);
        margin-top: 10px;
    }

    .stage-ring {
        width: 94%;
    }

    .ofuda {
        width: 38px;
        font-size: 15px;
        padding: 8px 0 6px;
    }

    .ofuda i {
        width: 13px;
        height: 13px;
        margin-top: 5px;
    }

    .ofuda-a {
        left: 1%;
        top: 22%;
    }

    .ofuda-b {
        right: 1%;
        bottom: 18%;
    }

    .hero-seal-stack {
        width: 44px;
        height: 44px;
    }

    .hero-seal {
        width: 42px;
        height: 42px;
    }

    .hero-seal i {
        font-size: 14px;
    }

    .hero-torii {
        width: 132vw;
        opacity: .22;
    }

    .band-divider img {
        width: 92vw;
    }

    .section {
        padding: 54px 0;
    }

    .sec-head {
        margin-bottom: 28px;
    }

    .sec-orn {
        margin-bottom: 11px;
        gap: 10px;
    }

    .sec-orn span {
        width: 40px;
    }

    .sec-kicker {
        font-size: 12px;
        letter-spacing: .18em;
        gap: 8px;
    }

    .sec-title {
        gap: 11px;
        margin: 9px 0 10px;
    }

    .sec-seal {
        width: 34px;
        height: 34px;
        font-size: 17px;
    }

    .sec-title .cn {
        font-size: clamp(26px, 7.4vw, 34px);
    }

    .sec-title .jp {
        font-size: 12px;
        letter-spacing: .4em;
        margin-bottom: 3px;
        padding-left: .4em;
    }

    .sec-lead {
        font-size: 13px;
        line-height: 1.9;
    }

    .sec-watermark {
        display: none;
    }

    .about-grid {
        gap: 26px;
    }

    .hanging-scroll {
        width: min(272px, 100%);
    }

    .scroll-caption {
        margin-top: 74px;
    }

    .scroll-note {
        font-size: 12px;
    }

    .about-panel {
        padding: 20px 16px;
    }

    .about-panel::before,
    .about-panel::after {
        width: 54px;
        height: 54px;
    }

    .about-quote {
        font-size: 24px;
        line-height: 1.7;
    }

    .about-quote-cn {
        font-size: 13px;
        margin: 8px 0 18px;
    }

    .about-body p {
        font-size: 14px;
        line-height: 2;
        margin-bottom: 12px;
    }

    .about-quote-box {
        margin-top: 16px;
        padding: 12px 14px;
    }

    .about-quote-box p {
        font-size: 14px;
    }

    .attr-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 7px;
        margin-top: 18px;
    }

    .attr-grid li {
        min-height: 60px;
        padding: 7px 8px;
        gap: 8px;
    }

    .attr-icon {
        width: 28px;
        height: 28px;
        font-size: 13px;
    }

    .attr-grid b {
        font-size: 13px;
    }

    .attr-grid li > div > span {
        font-size: 12px;
    }

    /* archive */
    .arc-tab {
        flex: 0 0 100px;
        min-height: 66px;
    }

    .arc-tab .arc-cn {
        font-size: 14px;
    }

    .arc-tab .arc-en {
        font-size: 12px;
    }

    .archive-panels {
        padding: 16px 13px;
    }

    .arc-head {
        flex-wrap: wrap;
        gap: 10px;
        padding-bottom: 12px;
    }

    .arc-kanji {
        min-width: 32px;
        height: 52px;
        font-size: 19px;
        padding-right: 8px;
    }

    .arc-head h3 {
        font-size: 22px;
    }

    .arc-head p {
        font-size: 12px;
        letter-spacing: .16em;
    }

    .arc-count {
        font-size: 13px;
    }

    .arc-list,
    .arc-swatches {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .arc-list li {
        min-height: 54px;
        padding: 10px 0;
    }

    .arc-list b {
        font-size: 15px;
    }

    .arc-list i {
        font-size: 12px;
    }

    .arc-swatch {
        width: 32px;
        height: 32px;
    }

    .arc-swatches li {
        min-height: 60px;
    }

    .arc-note {
        font-size: 12px;
        margin-top: 16px;
    }

    /* cast */
    .cast-stage {
        min-height: 300px;
        padding: 18px 10px;
    }

    .cast-art {
        height: clamp(270px, 70vw, 360px);
    }

    .cast-ofuda {
        right: 3%;
        top: 8%;
        width: 34px;
        height: 98px;
        font-size: 14px;
    }

    .cast-seal {
        left: 5%;
        bottom: 5%;
        width: 38px;
        height: 38px;
        font-size: 16px;
    }

    .cast-info {
        padding: 20px 16px 24px;
    }

    .cast-label {
        font-size: 12px;
    }

    .cast-label {
        font-size: 12px;
    }

    .cast-logo {
        height: 92px;
        margin: 10px 0 4px;
    }

    .cast-kana {
        font-size: 13px;
    }

    .cast-tagline {
        font-size: 19px;
        margin: 8px 0 8px;
    }

    .cast-bio {
        font-size: 13px;
    }

    .cast-facts {
        grid-template-columns: 1fr;
        margin-top: 14px;
    }

    .cast-facts>div {
        padding: 7px 0;
    }

    .cast-facts dt {
        font-size: 12px;
    }

    .cast-facts dd {
        font-size: 13px;
    }

    .cast-actions {
        gap: 10px;
        margin-top: 16px;
    }

    .cast-actions .btn {
        min-height: 44px;
        font-size: 13px;
    }

    .cast-note {
        font-size: 12px;
    }

    /* viewer */
    .viewer {
        padding: 9px;
    }

    .viewer-media {
        aspect-ratio: 4 / 3;
    }

    .viewer-info h3 {
        font-size: 23px;
    }

    .viewer-info p {
        font-size: 13px;
    }

    .viewer-kicker {
        font-size: 12px;
    }

    .viewer-play {
        width: 76px;
        height: 76px;
        margin: -38px 0 0 -38px;
        font-size: 12px;
        gap: 4px;
    }

    .viewer-play i {
        font-size: 16px;
    }

    .v-thumb {
        flex: 0 0 116px;
    }

    /* contact */
    .contact-jp {
        font-size: 26px;
        line-height: 1.75;
    }

    .contact-cn {
        font-size: 13px;
        margin-top: 10px;
    }

    .contact-desc {
        font-size: 13px;
        margin-top: 14px;
    }

    .contact-hanko {
        width: 66px;
        height: 66px;
        font-size: 17px;
        margin-top: 18px;
    }

    .contact-note {
        font-size: 12px;
    }

    .contact-row>a {
        gap: 12px;
        padding: 12px 48px 12px 4px;
    }

    .contact-icon {
        width: 38px;
        height: 38px;
        font-size: 14px;
    }

    .contact-meta b {
        font-size: 15px;
    }

    .contact-meta i,
    .contact-meta em {
        font-size: 12px;
    }

    .qr-trigger {
        width: 32px;
        height: 32px;
        margin-top: -16px;
    }

    /* footer */
    .site-footer {
        padding: 44px 0 22px;
    }

    .footer-top {
        padding-bottom: 18px;
    }

    .footer-words {
        font-size: 13px;
    }

    .footer-top-btn {
        font-size: 12px;
        padding: 8px 11px;
    }

    .footer-mark {
        font-size: 10vw;
        margin: 14px 0 10px;
    }

    .footer-nav {
        gap: 14px;
        padding: 10px 0 14px;
    }

    .footer-nav a {
        font-size: 12px;
    }

    .footer-bottom {
        font-size: 12px;
        padding-top: 12px;
    }

    /* mobile menu */
    .mobile-menu-inner {
        width: calc(100% - 40px);
        padding-top: calc(var(--header-h) + 24px);
    }

    .mm-cn {
        font-size: 27px;
    }

    .mm-en {
        font-size: 12px;
    }

    .mm-moon {
        position: absolute;
        right: -100px;
        top: auto;
        bottom: 10vh;
        width: 250px;
        height: 250px;
        opacity: .22;
    }

    .mm-deco img {
        width: 700px;
        max-width: 220%;
        opacity: .24;
    }

    .back-top {
        display: none;
    }

    /* dialogs */
    dialog.lightbox {
        padding: 12px;
    }

    .lb-figure img {
        max-height: 64vh;
        border-width: 4px;
    }

    .lb-cap b {
        font-size: 15px;
    }

    .lb-sub {
        width: 100%;
        font-size: 12px;
    }

    .lb-nav,
    .lb-close {
        width: 40px;
        height: 40px;
        font-size: 13px;
    }

    .lb-nav {
        margin-top: -20px;
    }

    .qr-inner {
        padding: 26px 18px 20px;
    }

    .qr-frame {
        width: 206px;
        margin: 14px auto 10px;
        padding: 10px;
    }

    .qr-inner h3 {
        font-size: 22px;
    }

    .qr-en {
        font-size: 12px;
    }

    .qr-handle {
        font-size: 13px;
    }

    .qr-actions .btn {
        font-size: 13px;
        min-height: 40px;
    }

    .qr-tip {
        font-size: 12px;
    }
}

@media (max-width: 400px) {
    .hero-logo {
        height: 108px;
    }

    .hero-tagline {
        font-size: 21px;
    }

    .medallion-frame {
        width: 54px;
        height: 54px;
    }

    .medallion-no {
        margin-right: -37px;
        height: 17px;
        font-size: 12px;
    }

    .medallion-text b {
        font-size: 12px;
    }

    .medallion-text i {
        max-width: 86px;
    }

    .hero-stage {
        height: 270px;
    }

    .cast-art {
        height: 260px;
    }

    .attr-grid {
        grid-template-columns: 1fr;
    }

    .footer-mark {
        font-size: 10vw;
    }
}

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

    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
        scroll-behavior: auto !important;
    }

    .js [data-reveal] {
        opacity: 1 !important;
        transform: none !important;
    }

    .cloud,
    .ofuda,
    .ring-inner,
    .scroll-line::after {
        animation: none;
    }

    #dust,
    .cursor {
        display: none !important;
    }
}


/* creator scroll sizes */
@media (max-width: 1000px) {
    .creator-mat {
        padding: 22px;
    }

    .creator-ink-name {
        font-size: clamp(42px, 5.6vw, 54px);
    }

    .creator-ink .creator-ink-gem {
        width: 38px;
        height: 38px;
    }
}

@media (max-width: 720px) {
    .creator-mat {
        padding: 18px;
    }

    .creator-ink-name {
        font-size: 46px;
    }

    .creator-ink-role {
        font-size: 15px;
    }

    .creator-ink .creator-ink-gem {
        width: 34px;
        height: 34px;
    }

    .creator-ink-en {
        letter-spacing: .1em;
    }
}


/* featured first OC card */
@media (max-width: 1000px) {
    .cast-featured-badge {
        left: 12px;
        top: 12px;
        padding: 7px 9px;
    }

    .cast-chibi {
        width: clamp(96px, 12vw, 128px);
        right: 3%;
        bottom: 3%;
    }
}

@media (max-width: 720px) {
    .cast-featured-badge {
        left: 10px;
        top: 10px;
        padding: 6px 8px;
    }

    .cast-featured-badge b {
        font-size: 12px;
    }

    .cast-chibi {
        width: 92px;
        right: 2.5%;
        bottom: 2.5%;
        padding: 5px 5px 7px;
    }

    .cast-chibi-cap {
        font-size: 12px;
    }
}
