/* ===================================================================
   gabs.report -- v2
   Editorial-flow, generative, sepia-nostalgic, luxurious.
   Palette (from DESIGN.md):
     Sepia Base:      #F0E6D4
     Nostalgic Brown: #5C4A35
     Report Gold:     #C4944A
     Ink Black:       #1E1E24
     Marble Cream:    #E8E0D5
     Patina Green:    #5E7A62
     Copper Warm:     #B87D5A
   Fonts:
     DM Sans (display), Spectral (body), IBM Plex Mono (data)
   =================================================================== */

:root {
    --sepia-base:      #F0E6D4;
    --nostalgic-brown: #5C4A35;
    --report-gold:     #C4944A;
    --ink-black:       #1E1E24;
    --marble-cream:    #E8E0D5;
    --patina-green:    #5E7A62;
    --copper-warm:     #B87D5A;

    --sepia-deep:      #E4D5B7;
    --sepia-wash:      #F6EEDC;

    --editorial-max:   680px;
    --gutter:          clamp(20px, 4vw, 48px);

    --font-display: "DM Sans", "Helvetica Neue", Arial, sans-serif;
    --font-body:    "Spectral", "Iowan Old Style", Georgia, serif;
    --font-mono:    "IBM Plex Mono", "SF Mono", Menlo, monospace;
}

* { box-sizing: border-box; }

html, body {
    margin: 0;
    padding: 0;
    background: var(--sepia-base);
    color: var(--nostalgic-brown);
    font-family: var(--font-body);
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.85;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    overflow-x: hidden;
}

body {
    min-height: 100vh;
    position: relative;
    /* subtle vignette over the whole page */
    background:
        radial-gradient(1400px 900px at 50% 0%, rgba(240,230,212,1) 0%, rgba(228,213,183,1) 100%);
}

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

.svg-defs { position: absolute; width: 0; height: 0; }

/* ---------- Grain overlay (persistent, fixed) ---------- */
.grain-overlay {
    position: fixed;
    inset: 0;
    pointer-events: none;
    z-index: 900;
    /* Layered SVG turbulence as a data-URI, tiled as a texture */
    background-image:
        url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='220' height='220'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' seed='4' stitchTiles='stitch'/><feColorMatrix type='saturate' values='0'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='0.55'/></svg>");
    background-size: 220px 220px;
    mix-blend-mode: multiply;
    opacity: 0.10;
}

/* ---------- Scroll progress ---------- */
.scroll-progress {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: rgba(92,74,53,0.08);
    z-index: 950;
}
.scroll-progress-bar {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--report-gold), var(--copper-warm));
    transition: width 120ms linear;
}

/* ---------- Masthead ---------- */
.masthead {
    position: fixed;
    top: 10px;
    left: 0;
    right: 0;
    padding: 0 clamp(18px, 3vw, 40px);
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--nostalgic-brown);
    z-index: 920;
    pointer-events: none;
    mix-blend-mode: multiply;
}
.masthead-left, .masthead-right { display: flex; align-items: center; gap: 8px; }
.masthead-right { justify-content: flex-end; font-variant-numeric: tabular-nums; }
.masthead-center {
    justify-self: center;
    font-family: var(--font-display);
    font-weight: 500;
    letter-spacing: 0.3em;
    font-size: 10px;
}
.masthead-mark { font-family: var(--font-display); font-weight: 700; }
.masthead-div { opacity: 0.5; }
.masthead-section { color: var(--report-gold); font-weight: 500; }

/* ---------- Hero ---------- */
.hero {
    position: relative;
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 120px var(--gutter) 80px;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(ellipse at 50% 35%, #F6EEDC 0%, #EAD9B8 55%, #D8C59B 100%);
}

.hero-moire {
    position: absolute;
    inset: -20%;
    z-index: 0;
    background:
        repeating-radial-gradient(circle at 30% 45%,
            rgba(94,122,98,0.00) 0px,
            rgba(94,122,98,0.12) 2px,
            rgba(30,30,36,0.00) 4px,
            rgba(196,148,74,0.10) 6px,
            rgba(30,30,36,0.00) 8px);
    opacity: 0.0;
    animation: moire-rotate 48s linear infinite, moire-fadein 1400ms 400ms ease-out forwards;
    mix-blend-mode: multiply;
    transform-origin: 30% 45%;
    filter: blur(0.4px);
}
.hero-moire-b {
    background:
        repeating-radial-gradient(circle at 72% 60%,
            rgba(184,125,90,0.00) 0px,
            rgba(184,125,90,0.14) 3px,
            rgba(30,30,36,0.00) 6px,
            rgba(196,148,74,0.08) 9px,
            rgba(30,30,36,0.00) 12px);
    animation: moire-rotate-rev 72s linear infinite, moire-fadein 1400ms 600ms ease-out forwards;
    mix-blend-mode: multiply;
    transform-origin: 72% 60%;
}
@keyframes moire-rotate {
    from { transform: rotate(0deg) scale(1.05); }
    to   { transform: rotate(360deg) scale(1.05); }
}
@keyframes moire-rotate-rev {
    from { transform: rotate(360deg) scale(1.08); }
    to   { transform: rotate(0deg) scale(1.08); }
}
@keyframes moire-fadein {
    to { opacity: 0.75; }
}

.hero-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 900px;
}

.hero-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 14px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--nostalgic-brown);
    margin: 0 0 30px;
    opacity: 0;
    transform: translateY(-6px);
    animation: fade-up 700ms 700ms ease-out forwards;
}
.hero-eyebrow-line {
    display: inline-block;
    width: 58px;
    height: 1px;
    background: currentColor;
    opacity: 0.55;
}

.hero-title {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(72px, 14vw, 220px);
    line-height: 0.9;
    letter-spacing: -0.04em;
    color: var(--ink-black);
    overflow: visible;
}
.hero-title-word {
    display: inline-block;
    background:
        linear-gradient(180deg, #1E1E24 0%, #2A241C 100%);
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    opacity: 0;
    transform: translateY(-12px);
    animation: fade-up 700ms 1200ms ease-out forwards;
    position: relative;
}
.hero-title-word::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: -8%;
    height: 10%;
    background: radial-gradient(ellipse at center, rgba(30,30,36,0.22), transparent 70%);
    filter: blur(3px);
}

.hero-sub {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 10px 0 0;
    font-family: var(--font-display);
    font-weight: 400;
    font-style: italic;
    font-size: clamp(20px, 2.6vw, 32px);
    letter-spacing: 0.22em;
    color: var(--report-gold);
    opacity: 0;
    animation: fade-up 700ms 1400ms ease-out forwards;
}
.hero-sub-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--report-gold);
    box-shadow: 0 0 0 3px rgba(196,148,74,0.15);
}

.hero-tagline {
    margin: 28px auto 0;
    max-width: 560px;
    font-family: var(--font-body);
    font-style: italic;
    font-size: clamp(16px, 1.5vw, 19px);
    color: var(--nostalgic-brown);
    line-height: 1.6;
    opacity: 0;
    animation: fade-up 800ms 1700ms ease-out forwards;
}

.hero-meta {
    margin-top: 40px;
    display: inline-flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    justify-content: center;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--nostalgic-brown);
    opacity: 0;
    animation: fade-up 800ms 1950ms ease-out forwards;
}
.hero-meta em {
    font-style: normal;
    color: var(--report-gold);
    margin-right: 6px;
}
.hero-meta-sep {
    width: 6px;
    height: 6px;
    border: 1px solid var(--nostalgic-brown);
    transform: rotate(45deg);
    opacity: 0.6;
}

.hero-scroll-hint {
    margin-top: 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    opacity: 0;
    animation: fade-up 700ms 2200ms ease-out forwards;
}
.hero-scroll-line {
    width: 1px;
    height: 42px;
    background: linear-gradient(180deg, transparent, var(--nostalgic-brown));
    position: relative;
    overflow: hidden;
}
.hero-scroll-line::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -60%;
    height: 60%;
    background: linear-gradient(180deg, transparent, var(--report-gold));
    animation: scroll-trickle 2.2s ease-in-out infinite;
}
@keyframes scroll-trickle {
    0%   { top: -60%; }
    100% { top: 120%; }
}
.hero-scroll-label {
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--nostalgic-brown);
}

@keyframes fade-up {
    to { opacity: 1; transform: translateY(0); }
}

/* ---------- Data ribbons ---------- */
.data-ribbon {
    position: relative;
    overflow: hidden;
    padding: 22px 0;
    background:
        linear-gradient(180deg, rgba(232,224,213,0.0), rgba(232,224,213,0.75), rgba(232,224,213,0.0));
    border-top: 1px solid rgba(92,74,53,0.18);
    border-bottom: 1px solid rgba(92,74,53,0.18);
    white-space: nowrap;
}
.data-ribbon::before, .data-ribbon::after {
    content: "";
    position: absolute;
    top: 0; bottom: 0;
    width: 80px;
    z-index: 2;
    pointer-events: none;
}
.data-ribbon::before { left: 0;  background: linear-gradient(90deg, var(--sepia-base), transparent); }
.data-ribbon::after  { right: 0; background: linear-gradient(270deg, var(--sepia-base), transparent); }

.ribbon-track {
    display: inline-flex;
    align-items: center;
    gap: 22px;
    font-family: var(--font-mono);
    font-size: 13px;
    letter-spacing: 0.08em;
    color: var(--nostalgic-brown);
    animation: ribbon-scroll 55s linear infinite;
    will-change: transform;
}
.ribbon-reverse {
    animation-direction: reverse;
    animation-duration: 70s;
}
.data-ribbon-slow .ribbon-track { animation-duration: 95s; }

.ribbon-unit { display: inline-flex; align-items: baseline; gap: 8px; }
.ribbon-unit b {
    font-weight: 600;
    color: var(--ink-black);
    font-variant-numeric: tabular-nums;
}
.ribbon-sep {
    color: var(--report-gold);
    font-size: 10px;
    transform: translateY(-1px);
}

@keyframes ribbon-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ---------- Editorial sections ---------- */
.editorial {
    padding: clamp(80px, 12vh, 140px) var(--gutter);
    position: relative;
}
.editorial-column {
    max-width: var(--editorial-max);
    margin: 0 auto;
    position: relative;
}

.section-kicker {
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--report-gold);
    margin: 0 0 18px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(196,148,74,0.4);
    display: inline-block;
}

.section-head {
    margin: 8px 0 40px;
    font-family: var(--font-display);
    font-weight: 500;
    font-size: clamp(28px, 5vw, 64px);
    line-height: 1.08;
    letter-spacing: -0.02em;
    color: var(--ink-black);
}

.editorial-body {
    margin: 0 0 1.4em;
    font-family: var(--font-body);
    font-size: clamp(16px, 1.6vw, 20px);
    line-height: 1.85;
    color: var(--nostalgic-brown);
    opacity: 0;
    transform: translateY(15px);
    transition: opacity 650ms ease, transform 650ms ease;
}
.editorial-body.in-view { opacity: 1; transform: translateY(0); }

/* ---------- Drop cap (marble) ---------- */
.drop-cap {
    float: left;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 80px;
    line-height: 0.8;
    margin: 6px 14px 0 -2px;
    padding: 2px 4px 4px 0;
    letter-spacing: -0.02em;
    /* Marble: layered gradients creating cream/brown/white veining,
       clipped to the glyph via background-clip: text */
    background:
        radial-gradient(ellipse at 30% 20%, rgba(255,255,255,0.85) 0%, transparent 45%),
        radial-gradient(ellipse at 80% 70%, rgba(184,125,90,0.45) 0%, transparent 50%),
        linear-gradient(135deg,
            #F6EEDC 0%,
            #D8C9A8 25%,
            #E8E0D5 45%,
            #A4886A 60%,
            #E0D2B6 80%,
            #F0E6D4 100%);
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    -webkit-text-stroke: 1px rgba(30,30,36,0.25);
    transform: scale(0.95);
    opacity: 0.9;
    transition: transform 600ms ease, opacity 600ms ease;
    text-shadow: 1px 2px 0 rgba(30,30,36,0.05);
}
.in-view .drop-cap { transform: scale(1); opacity: 1; }

/* ---------- Pull quote ---------- */
.pull-quote {
    margin: 56px auto;
    max-width: 620px;
    text-align: center;
    opacity: 0;
    transform: translateY(12px);
    transition: opacity 700ms ease, transform 700ms ease;
}
.pull-quote.in-view { opacity: 1; transform: translateY(0); }

.pull-rule {
    display: block;
    height: 1px;
    width: 60%;
    margin: 0 auto;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--report-gold) 20%,
        var(--report-gold) 80%,
        transparent 100%);
    transform-origin: center;
    animation: rule-draw 900ms ease forwards;
}
@keyframes rule-draw {
    from { transform: scaleX(0); opacity: 0.2; }
    to   { transform: scaleX(1); opacity: 1; }
}

.pull-quote blockquote {
    margin: 22px 0;
    font-family: var(--font-body);
    font-style: italic;
    font-size: clamp(22px, 3vw, 34px);
    line-height: 1.35;
    color: var(--report-gold);
    letter-spacing: 0.005em;
}

.pull-attr {
    display: inline-block;
    margin-top: 6px;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--nostalgic-brown);
}

/* ---------- Marginalia ---------- */
.marginalia {
    margin: 48px 0;
    padding: 24px 26px;
    border-left: 3px solid var(--patina-green);
    background: rgba(232,224,213,0.55);
    position: relative;
}
.marginalia::before {
    content: "";
    position: absolute;
    top: -1px; right: -1px;
    width: 28px; height: 28px;
    background:
        linear-gradient(135deg, transparent 50%, var(--patina-green) 50%);
    opacity: 0.55;
}
.marginalia-eyebrow {
    margin: 0 0 8px;
    font-family: var(--font-mono);
    font-size: 10px;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--patina-green);
}
.marginalia-body {
    margin: 0;
    font-family: var(--font-body);
    font-style: italic;
    font-size: 17px;
    line-height: 1.7;
    color: var(--nostalgic-brown);
}

/* ---------- Generative break sections ---------- */
.gen-break {
    position: relative;
    overflow: hidden;
    height: clamp(280px, 40vh, 440px);
    margin: 0;
    isolation: isolate;
    background: linear-gradient(180deg, var(--sepia-base), var(--sepia-deep));
    display: grid;
    place-items: end center;
    padding-bottom: 18px;
}
.gen-moire {
    position: absolute;
    inset: -10%;
    background:
        conic-gradient(from 0deg at 35% 50%,
            rgba(94,122,98,0.22),
            rgba(196,148,74,0.22),
            rgba(184,125,90,0.22),
            rgba(30,30,36,0.18),
            rgba(94,122,98,0.22));
    mix-blend-mode: multiply;
    animation: gen-rotate 44s linear infinite;
    transform-origin: 35% 50%;
    filter: blur(0.3px);
    opacity: 0.8;
}
.gen-moire-b {
    background:
        conic-gradient(from 180deg at 72% 50%,
            rgba(184,125,90,0.18),
            rgba(196,148,74,0.18),
            rgba(94,122,98,0.12),
            rgba(30,30,36,0.10),
            rgba(184,125,90,0.18));
    animation: gen-rotate-rev 64s linear infinite;
    transform-origin: 72% 50%;
}
.gen-break-radial .gen-radial {
    position: absolute;
    inset: -15%;
    background:
        repeating-radial-gradient(circle at 50% 60%,
            rgba(30,30,36,0.0) 0px,
            rgba(30,30,36,0.14) 2px,
            rgba(240,230,212,0.0) 4px,
            rgba(196,148,74,0.16) 6px,
            rgba(240,230,212,0.0) 8px);
    animation: gen-pulse 18s ease-in-out infinite;
    mix-blend-mode: multiply;
    filter: blur(0.3px);
}
@keyframes gen-rotate {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}
@keyframes gen-rotate-rev {
    from { transform: rotate(360deg); }
    to   { transform: rotate(0deg); }
}
@keyframes gen-pulse {
    0%, 100% { transform: scale(1); }
    50%      { transform: scale(1.08); }
}
.gen-caption {
    position: relative;
    z-index: 2;
    margin: 0;
    padding: 6px 12px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--nostalgic-brown);
    background: rgba(240,230,212,0.78);
    border: 1px solid rgba(92,74,53,0.25);
}
.gen-caption span {
    color: var(--report-gold);
    margin-right: 8px;
}

/* ---------- Correspondence ---------- */
.correspondence {
    padding: clamp(80px, 10vh, 120px) var(--gutter);
    background:
        linear-gradient(180deg, var(--sepia-base) 0%, var(--marble-cream) 100%);
    border-top: 1px solid rgba(92,74,53,0.14);
    border-bottom: 1px solid rgba(92,74,53,0.14);
}
.correspondence .editorial-column { max-width: 1020px; }
.correspondence-grid {
    margin-top: 28px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}
.letter {
    background: rgba(246,238,220,0.7);
    border: 1px solid rgba(92,74,53,0.18);
    padding: 24px 22px 22px;
    position: relative;
    overflow: hidden;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity 700ms ease, transform 700ms ease;
}
.letter.in-view { opacity: 1; transform: translateY(0); }
.letter::before {
    content: "";
    position: absolute;
    top: -1px; left: -1px;
    width: 24px; height: 24px;
    background: linear-gradient(135deg, var(--report-gold) 50%, transparent 50%);
    opacity: 0.75;
}
.letter-place {
    margin: 0 0 10px;
    font-family: var(--font-mono);
    font-size: 10.5px;
    letter-spacing: 0.26em;
    text-transform: uppercase;
    color: var(--copper-warm);
}
.letter-body {
    margin: 0 0 14px;
    font-family: var(--font-body);
    font-size: 16px;
    line-height: 1.72;
    color: var(--nostalgic-brown);
}
.letter-sign {
    margin: 0;
    font-family: var(--font-body);
    font-style: italic;
    font-size: 14px;
    color: var(--ink-black);
    text-align: right;
}

/* ---------- Closing ---------- */
.closing {
    position: relative;
    min-height: 90vh;
    padding: clamp(100px, 14vh, 160px) var(--gutter);
    display: grid;
    place-items: center;
    overflow: hidden;
    isolation: isolate;
    background:
        radial-gradient(ellipse at 50% 60%, #EAD9B8 0%, #D8C59B 50%, #BFA678 100%);
}
.closing-pattern {
    position: absolute;
    inset: -10%;
    background:
        repeating-conic-gradient(from 0deg at 50% 50%,
            rgba(30,30,36,0.06) 0deg 4deg,
            rgba(240,230,212,0) 4deg 8deg);
    animation: gen-rotate 80s linear infinite;
    opacity: 0.9;
    mix-blend-mode: multiply;
    filter: blur(0.3px);
}

.closing-inner {
    position: relative;
    z-index: 1;
    text-align: center;
}
.closing-mark {
    margin: 0;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: clamp(60px, 10vw, 140px);
    letter-spacing: -0.03em;
    line-height: 0.95;
    color: var(--ink-black);
}
.closing-label {
    margin: 4px 0 24px;
    font-family: var(--font-display);
    font-style: italic;
    letter-spacing: 0.22em;
    color: var(--report-gold);
    font-size: clamp(18px, 2.4vw, 28px);
}
.closing-kanji {
    margin: 0;
    font-family: "Noto Serif KR", var(--font-body), serif;
    font-size: clamp(90px, 14vw, 180px);
    line-height: 1;
    /* marble clip */
    background:
        radial-gradient(ellipse at 30% 20%, rgba(255,255,255,0.75) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 70%, rgba(184,125,90,0.45) 0%, transparent 50%),
        linear-gradient(135deg, #F6EEDC 0%, #D8C9A8 30%, #A4886A 60%, #F0E6D4 100%);
    -webkit-background-clip: text;
            background-clip: text;
    color: transparent;
    -webkit-text-stroke: 1px rgba(30,30,36,0.25);
    margin-top: 20px;
}
.closing-desc {
    margin: 14px 0 0;
    font-family: var(--font-body);
    font-style: italic;
    font-size: clamp(18px, 2vw, 24px);
    color: var(--nostalgic-brown);
    letter-spacing: 0.04em;
}

.colophon {
    margin-top: 52px;
    display: inline-block;
    padding: 20px 28px;
    border-top: 1px solid rgba(92,74,53,0.3);
    border-bottom: 1px solid rgba(92,74,53,0.3);
    max-width: 560px;
}
.colophon-line {
    margin: 4px 0;
    font-family: var(--font-mono);
    font-size: 11px;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--nostalgic-brown);
}
.colophon-line em {
    font-style: normal;
    color: var(--report-gold);
    margin-right: 6px;
}
.colophon-line b {
    color: var(--ink-black);
    font-weight: 600;
}

/* ---------- Responsive ---------- */
@media (max-width: 860px) {
    .masthead { grid-template-columns: 1fr 1fr; row-gap: 4px; }
    .masthead-center { grid-column: 1 / -1; justify-self: center; }
    .correspondence-grid { grid-template-columns: 1fr; }
    .hero-meta { font-size: 10px; gap: 10px; }
    .drop-cap { font-size: 64px; margin-right: 10px; }
}

@media (max-width: 560px) {
    .hero { padding: 120px 18px 80px; }
    .editorial { padding: 80px 18px; }
    .pull-quote blockquote { font-size: 22px; }
    .drop-cap { font-size: 56px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.001ms !important;
    }
    .editorial-body, .pull-quote, .letter { opacity: 1; transform: none; }
    .ribbon-track { animation: none; }
}
