.mrc-reader { --mrc-bg: #0f1012;
--mrc-panel: rgba(22, 24, 28, 0.96);
--mrc-text: #f5f7fa;
--mrc-muted: #aeb4be;
--mrc-border: rgba(255, 255, 255, 0.10);
--mrc-accent: #ffffff;
--mrc-page-bg: #17191d;
--mrc-control-active: rgba(255, 255, 255, 0.13);
--mrc-control-hover: rgba(255, 255, 255, 0.10);
--mrc-progress-track: rgba(255, 255, 255, 0.14);
--mrc-progress-thumb: #ffffff;
--mrc-reader-radius: 14px;
--mrc-toolbar-radius: 13px;
--mrc-button-radius: 8px;
--mrc-toolbar-blur: 14px;
--mrc-paged-height: 90svh;
--mrc-paged-fallback-height: 90svh;
--mrc-reader-shadow: none;
--mrc-progress-height: 3px;
--mrc-progress-thumb-size: 12px;
--mrc-zoom-width: 180%;
--mrc-top-button-bg: rgba(22, 24, 28, 0.92);
--mrc-top-button-color: #ffffff;
--mrc-top-button-border: rgba(255, 255, 255, 0.18);
--mrc-top-button-size: 44px;
--mrc-top-button-right: 12px;
--mrc-top-button-bottom: 18vh;
--mrc-top-button-shadow: 0 6px 18px rgba(0, 0, 0, 0.22);
--mrc-sticky-top: 0px;
position: relative;
width: 100%;
max-width: var(--mrc-max-width, 1100px);
margin: 1.5rem auto;
background: var(--mrc-bg);
color: var(--mrc-text);
border: 1px solid var(--mrc-border);
border-radius: var(--mrc-reader-radius);
overflow: visible;
box-sizing: border-box;
isolation: isolate;
font: inherit;
box-shadow: var(--mrc-reader-shadow);
}
.mrc-reader *,
.mrc-reader *::before,
.mrc-reader *::after { box-sizing: border-box; } .mrc-reader.mrc-skin-anime {
--mrc-bg: #fff7fb;
--mrc-panel: rgba(255, 247, 252, 0.96);
--mrc-text: #59445f;
--mrc-muted: #927d99;
--mrc-border: rgba(181, 117, 165, 0.20);
--mrc-accent: #ff83b7;
--mrc-page-bg: #fffafd;
--mrc-control-active: rgba(255, 131, 183, 0.18);
--mrc-control-hover: rgba(255, 131, 183, 0.11);
--mrc-progress-track: rgba(188, 137, 177, 0.22);
--mrc-progress-thumb: #ff83b7;
--mrc-reader-radius: 18px;
--mrc-toolbar-radius: 17px;
--mrc-button-radius: 10px;
--mrc-reader-shadow: 0 10px 30px rgba(189, 123, 171, 0.14);
--mrc-top-button-bg: rgba(255, 239, 248, 0.96);
--mrc-top-button-color: #ff6ca8;
--mrc-top-button-border: rgba(255, 108, 168, 0.28);
--mrc-top-button-shadow: 0 7px 20px rgba(189, 123, 171, 0.22);
} .mrc-reader.mrc-skin-minimal,
.mrc-reader.mrc-theme-light {
--mrc-bg: #ffffff;
--mrc-panel: rgba(255, 255, 255, 0.98);
--mrc-text: #151515;
--mrc-muted: #777777;
--mrc-border: #e7e7e7;
--mrc-accent: #151515;
--mrc-page-bg: #ffffff;
--mrc-control-active: #f1f1f1;
--mrc-control-hover: #f6f6f6;
--mrc-progress-track: #e6e6e6;
--mrc-progress-thumb: #151515;
--mrc-reader-radius: 8px;
--mrc-toolbar-radius: 7px;
--mrc-button-radius: 6px;
--mrc-toolbar-blur: 8px;
--mrc-reader-shadow: none;
--mrc-top-button-bg: rgba(255, 255, 255, 0.98);
--mrc-top-button-color: #151515;
--mrc-top-button-border: #dedede;
--mrc-top-button-shadow: 0 5px 16px rgba(0, 0, 0, 0.10);
}
.mrc-toolbar-anchor { width: 1px; height: 0; pointer-events: none; }
.mrc-toolbar {
position: sticky;
top: var(--mrc-sticky-top, 0px);
z-index: 100;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
gap: 8px 16px;
align-items: center;
min-height: 54px;
padding: 8px 12px 7px;
background: var(--mrc-panel);
border-bottom: 1px solid var(--mrc-border);
border-radius: var(--mrc-toolbar-radius) var(--mrc-toolbar-radius) 0 0;
backdrop-filter: blur(var(--mrc-toolbar-blur)) saturate(1.2);
-webkit-backdrop-filter: blur(var(--mrc-toolbar-blur)) saturate(1.2);
transition: box-shadow 100ms ease, background-color 100ms ease;
}
.mrc-toolbar--floating { box-shadow: 0 8px 22px rgba(0, 0, 0, 0.24); }
.mrc-toolbar__meta {
display: flex;
flex-wrap: wrap;
gap: 8px 14px;
align-items: center;
min-width: 0;
}
.mrc-page-counter { font-weight: 700; }
.mrc-load-counter { color: var(--mrc-muted); font-size: 0.86em; }
.mrc-toolbar__actions { display: flex; gap: 7px; align-items: center; }
.mrc-mode-switch {
display: inline-flex;
align-items: center;
padding: 2px;
border: 1px solid var(--mrc-border);
border-radius: calc(var(--mrc-button-radius) + 1px);
background: var(--mrc-control-hover);
}
.mrc-mode-switch .mrc-button { border: 0; border-radius: var(--mrc-button-radius); padding: 6px 10px; }
.mrc-mode-switch .mrc-button[aria-pressed="true"] { background: var(--mrc-control-active); box-shadow: inset 0 0 0 1px var(--mrc-border); }
.mrc-button {
appearance: none;
-webkit-appearance: none;
border: 1px solid var(--mrc-border);
border-radius: var(--mrc-button-radius);
background: transparent;
color: var(--mrc-text);
padding: 7px 11px;
font: inherit;
font-size: 0.88em;
line-height: 1.2;
cursor: pointer;
}
.mrc-button:hover,
.mrc-button:focus-visible { background: var(--mrc-control-hover); outline: none; }
.mrc-button:disabled { opacity: 0.42; cursor: default; }
.mrc-progress {
position: relative;
grid-column: 1 / -1;
height: 14px;
overflow: visible;
cursor: pointer;
touch-action: pan-x;
}
.mrc-progress__track {
position: absolute; left: calc(var(--mrc-progress-thumb-size) / 2);
right: calc(var(--mrc-progress-thumb-size) / 2);
top: 50%;
height: var(--mrc-progress-height);
transform: translateY(-50%);
overflow: hidden;
background: var(--mrc-progress-track);
border-radius: 999px;
pointer-events: none;
}
.mrc-progress__bar {
display: block;
width: 0;
height: 100%;
background: var(--mrc-accent);
border-radius: inherit;
transition: width 120ms ease-out;
} .mrc-progress__range,
.mrc-progress__range:hover,
.mrc-progress__range:focus,
.mrc-progress__range:focus-visible,
.mrc-progress__range:active {
appearance: none !important;
-webkit-appearance: none !important;
position: absolute !important;
left: 0 !important;
right: 0 !important;
top: -5px !important;
width: 100% !important;
height: 24px !important;
min-width: 0 !important;
max-width: none !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
outline: 0 !important;
background: transparent !important;
box-shadow: none !important;
filter: none !important;
transform: none !important;
opacity: 0.001 !important;
z-index: 5;
cursor: grab;
}
.mrc-progress__range:active { cursor: grabbing; }
.mrc-progress__range::-webkit-slider-runnable-track,
.mrc-progress__range::-moz-range-track,
.mrc-progress__range::-moz-range-progress {
height: 24px !important;
border: 0 !important;
background: transparent !important;
box-shadow: none !important;
}
.mrc-progress__range::-webkit-slider-thumb {
-webkit-appearance: none !important;
width: var(--mrc-progress-thumb-size) !important;
height: var(--mrc-progress-thumb-size) !important;
margin: 0 !important;
border: 0 !important;
background: transparent !important;
box-shadow: none !important;
opacity: 0 !important;
}
.mrc-progress__range::-moz-range-thumb {
width: var(--mrc-progress-thumb-size) !important;
height: var(--mrc-progress-thumb-size) !important;
border: 0 !important;
background: transparent !important;
box-shadow: none !important;
opacity: 0 !important;
} .mrc-progress__thumb {
position: absolute;
left: calc(var(--mrc-progress-thumb-size) / 2);
top: 50%;
z-index: 4;
width: var(--mrc-progress-thumb-size);
height: var(--mrc-progress-thumb-size);
transform: translate(-50%, -50%);
border: 2px solid var(--mrc-panel);
border-radius: 999px;
background: var(--mrc-progress-thumb);
box-shadow: 0 1px 5px rgba(0, 0, 0, 0.30);
pointer-events: none;
transition: transform 100ms ease, box-shadow 100ms ease;
}
.mrc-progress:hover .mrc-progress__thumb,
.mrc-progress.is-scrubbing .mrc-progress__thumb,
.mrc-progress:focus-within .mrc-progress__thumb {
transform: translate(-50%, -50%) scale(1.18);
box-shadow: 0 1px 7px rgba(0, 0, 0, 0.38);
}
.mrc-progress__value {
position: absolute;
left: calc(var(--mrc-progress-thumb-size) / 2);
bottom: 17px;
z-index: 6;
transform: translate(-50%, 4px);
min-width: 58px;
padding: 5px 8px;
border: 1px solid var(--mrc-border);
border-radius: 8px;
background: var(--mrc-panel);
color: var(--mrc-text);
font-size: 11px;
line-height: 1.1;
text-align: center;
white-space: nowrap;
opacity: 0;
pointer-events: none;
transition: opacity 100ms ease, transform 100ms ease;
box-shadow: 0 5px 16px rgba(0, 0, 0, 0.16);
}
.mrc-progress.is-scrubbing .mrc-progress__value,
.mrc-progress:focus-within .mrc-progress__value { opacity: 1; transform: translate(-50%, 0); }
.mrc-stage,
.mrc-paged {
width: 100%;
background: var(--mrc-bg);
border-radius: 0 0 var(--mrc-toolbar-radius) var(--mrc-toolbar-radius);
overflow: hidden;
}
.mrc-stage { min-height: 0; }
.mrc-stage[hidden],
.mrc-paged[hidden] { display: none !important; }
.mrc-pages {
width: 100%;
min-width: 0;
line-height: 0;
} .mrc-page {
position: relative;
display: block;
width: 100%;
min-width: 0;
min-height: 0;
margin: 0 0 var(--mrc-gap, 0px) !important;
padding: 0 !important;
overflow: hidden;
background: var(--mrc-page-bg);
line-height: 0;
overflow-anchor: auto;
}
.mrc-page[data-state="waiting"]:not(.mrc-page--sized),
.mrc-page[data-state="loading"]:not(.mrc-page--sized),
.mrc-page[data-state="error"]:not(.mrc-page--sized) { min-height: min(72vh, 760px); }
.mrc-page:last-child { margin-bottom: 0 !important; }
.mrc-page > img {
display: block !important;
width: 100% !important;
max-width: none !important;
height: auto !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
vertical-align: top !important;
opacity: 0;
user-select: none;
-webkit-user-drag: none;
}
.mrc-page--loaded { min-height: 0 !important; aspect-ratio: auto !important; }
.mrc-page--loaded > img { position: relative; z-index: 2; opacity: 1; } .mrc-page--unloaded { min-height: 0 !important; }
.mrc-page--unloaded > img { position: absolute; inset: 0; opacity: 0; } .mrc-page--zoomed {
max-height: min(88vh, 980px);
overflow: auto !important;
overscroll-behavior: contain;
touch-action: pan-x pan-y;
scrollbar-width: thin;
cursor: grab;
}
.mrc-page--zoomed.mrc-page--dragging { cursor: grabbing; }
.mrc-page--zoomed > img { width: var(--mrc-zoom-width) !important; max-width: none !important; height: auto !important; }
.mrc-page__status {
position: absolute;
inset: 0;
z-index: 4;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 10px;
color: var(--mrc-muted);
font-size: 0.9em;
line-height: 1.4;
pointer-events: none;
}
.mrc-page__status[hidden] { display: none !important; }
.mrc-spinner {
width: 28px;
height: 28px;
border: 3px solid var(--mrc-border);
border-top-color: var(--mrc-text);
border-radius: 50%;
animation: mrc-spin 0.8s linear infinite;
}
@keyframes mrc-spin { to { transform: rotate(360deg); } }
.mrc-page__retry {
position: absolute;
z-index: 6;
left: 50%;
top: calc(50% + 46px);
transform: translateX(-50%);
background: var(--mrc-panel);
}
.mrc-sentinel { width: 100%; height: 2px; }
.mrc-load-more { display: block; margin: 24px auto; }
.mrc-load-more[hidden] { display: none !important; }
.mrc-end {
padding: 28px 16px 34px;
display: flex;
align-items: center;
justify-content: center;
gap: 10px;
text-align: center;
color: var(--mrc-muted);
font-size: 0.9em;
line-height: 1.4;
}
.mrc-end[hidden] { display: none !important; } .mrc-back-top {
appearance: none;
-webkit-appearance: none;
display: inline-grid;
place-items: center;
width: var(--mrc-top-button-size);
height: var(--mrc-top-button-size);
min-width: var(--mrc-top-button-size);
min-height: var(--mrc-top-button-size);
padding: 0 !important;
margin: 0 !important;
border: 1px solid var(--mrc-top-button-border) !important;
border-radius: 999px !important;
background: var(--mrc-top-button-bg) !important;
color: var(--mrc-top-button-color) !important;
box-shadow: var(--mrc-top-button-shadow) !important;
line-height: 1;
cursor: pointer;
-webkit-tap-highlight-color: transparent;
}
.mrc-back-top svg {
width: 48%;
height: 48%;
fill: none;
stroke: currentColor;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
pointer-events: none;
}
.mrc-back-top:focus-visible {
outline: 2px solid var(--mrc-accent);
outline-offset: 2px;
}
.mrc-back-top--floating {
position: fixed;
right: calc(var(--mrc-top-button-size) / -2);
bottom: var(--mrc-top-button-bottom);
z-index: 140;
opacity: 0.92;
transform: translateX(0);
transition: right 300ms cubic-bezier(.2,.75,.25,1), opacity 300ms ease, transform 300ms ease;
}
.mrc-back-top--floating[hidden] { display: none !important; }
.mrc-back-top--floating.is-peeked {
right: var(--mrc-top-button-right);
opacity: 1;
}
.mrc-back-top--floating.is-bottom-near {
right: calc(var(--mrc-top-button-size) * -1.15);
opacity: 0;
transform: translateX(8px);
pointer-events: none;
}
.mrc-back-top--end {
position: relative;
flex: 0 0 auto;
transition: transform 160ms ease;
}
.mrc-back-top--end:hover,
.mrc-back-top--end:focus-visible { transform: translateY(-1px); } .mrc-reader[data-mode="paged"] .mrc-back-top { display: none !important; } .mrc-paged { min-height: 0; }
.mrc-paged__viewport {
position: relative;
width: 100%;
height: 90vh;
height: var(--mrc-paged-height, 90svh);
min-height: 0;
max-height: none;
overflow: hidden;
background: var(--mrc-page-bg);
touch-action: pan-y pinch-zoom;
user-select: none;
-webkit-user-select: none;
} .mrc-paged__height-fallback {
display: none !important;
pointer-events: none !important;
visibility: hidden !important;
user-select: none !important;
} .mrc-paged__layer {
position: absolute;
inset: 0;
z-index: 1;
display: flex;
align-items: center;
justify-content: center;
opacity: 0;
pointer-events: none;
transition: opacity 100ms ease-out;
will-change: opacity;
}
.mrc-paged__layer.is-visible { z-index: 2; opacity: 1; }
.mrc-paged__layer > img {
display: block;
width: auto;
height: auto;
max-width: 100% !important;
max-height: 100% !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
box-shadow: none !important;
object-fit: contain;
user-select: none;
-webkit-user-drag: none;
} .mrc-paged__hit,
.mrc-paged__hit:hover,
.mrc-paged__hit:focus,
.mrc-paged__hit:focus-visible,
.mrc-paged__hit:active,
.mrc-paged__hit:disabled,
.mrc-paged__hit[disabled] {
appearance: none !important;
-webkit-appearance: none !important;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
-webkit-touch-callout: none !important;
position: absolute;
top: 0;
bottom: 0;
z-index: 5;
width: 50%;
padding: 0 !important;
margin: 0 !important;
border: 0 !important;
border-color: transparent !important;
outline: 0 !important;
outline-color: transparent !important;
background: transparent !important;
background-color: transparent !important;
background-image: none !important;
color: transparent !important;
caret-color: transparent !important;
box-shadow: none !important;
text-shadow: none !important;
text-decoration: none !important;
filter: none !important;
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
opacity: 0 !important;
visibility: visible !important;
cursor: pointer;
pointer-events: auto !important;
transform: none !important;
transition: none !important;
animation: none !important;
touch-action: manipulation;
}
.mrc-paged__hit--prev { left: 0; }
.mrc-paged__hit--next { right: 0; }
.mrc-paged__hit > span,
.mrc-paged__hit::before,
.mrc-paged__hit::after,
.mrc-paged__hit:hover::before,
.mrc-paged__hit:hover::after,
.mrc-paged__hit:focus::before,
.mrc-paged__hit:focus::after,
.mrc-paged__hit:focus-visible::before,
.mrc-paged__hit:focus-visible::after,
.mrc-paged__hit:active::before,
.mrc-paged__hit:active::after {
display: none !important;
visibility: hidden !important;
opacity: 0 !important;
content: none !important;
background: transparent !important;
border: 0 !important;
box-shadow: none !important;
transform: none !important;
animation: none !important;
}
.mrc-paged__hit:disabled,
.mrc-paged__hit[disabled] { cursor: default; }
.mrc-paged__loading,
.mrc-paged__error {
position: absolute;
left: 50%;
bottom: 22px;
z-index: 8;
transform: translateX(-50%);
display: flex;
align-items: center;
gap: 10px;
max-width: calc(100% - 32px);
padding: 9px 12px;
border: 1px solid var(--mrc-border);
border-radius: 10px;
background: var(--mrc-panel);
color: var(--mrc-text);
font-size: 0.88em;
line-height: 1.3;
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.22);
}
.mrc-paged__loading .mrc-spinner { width: 20px; height: 20px; border-width: 2px; }
.mrc-paged__loading[hidden],
.mrc-paged__error[hidden] { display: none !important; }
.mrc-message { margin: 1rem 0; padding: 12px 14px; border-radius: 8px; }
.mrc-message--error { border: 1px solid #dc3545; background: rgba(220, 53, 69, 0.08); }
.mrc-reader:fullscreen,
.mrc-reader:-webkit-full-screen {
--mrc-sticky-top: 0px !important;
width: 100vw;
max-width: none !important;
height: 100vh;
margin: 0;
border: 0;
border-radius: 0;
overflow-y: auto;
overscroll-behavior: contain;
}
.mrc-reader:fullscreen .mrc-toolbar,
.mrc-reader:-webkit-full-screen .mrc-toolbar { border-radius: 0; }
.mrc-reader:fullscreen .mrc-stage,
.mrc-reader:fullscreen .mrc-paged,
.mrc-reader:-webkit-full-screen .mrc-stage,
.mrc-reader:-webkit-full-screen .mrc-paged { border-radius: 0; }
.mrc-reader:fullscreen .mrc-paged__viewport,
.mrc-reader:-webkit-full-screen .mrc-paged__viewport { height: calc(100vh - 58px); max-height: none; }
.mrc-reader:focus-visible { outline: 2px solid var(--mrc-accent); outline-offset: 3px; }
@media (max-width: 640px) {
.mrc-reader {
width: 100%;
max-width: none;
margin: 0.75rem auto;
border-left: 0;
border-right: 0;
border-radius: 0;
}
.mrc-toolbar { grid-template-columns: minmax(0, 1fr) auto; gap: 6px 8px; padding: 7px 8px 6px; border-radius: 0; }
.mrc-load-counter { display: none; }
.mrc-button { padding: 7px 9px; }
.mrc-mode-switch .mrc-button { padding: 6px 8px; }
.mrc-page[data-state="waiting"]:not(.mrc-page--sized),
.mrc-page[data-state="loading"]:not(.mrc-page--sized),
.mrc-page[data-state="error"]:not(.mrc-page--sized) { min-height: 58vh; min-height: 58svh; }
.mrc-page--loaded,
.mrc-page--unloaded { min-height: 0 !important; }
.mrc-paged__viewport { min-height: 0; max-height: none; height: 90vh; height: var(--mrc-paged-height, 90svh); }
.mrc-paged__hit > span { display: none; }
}
@media (prefers-reduced-motion: reduce) {
.mrc-progress__bar,
.mrc-progress__value,
.mrc-paged__layer,
.mrc-toolbar,
.mrc-back-top--floating,
.mrc-back-top--end { transition: none; }
.mrc-spinner { animation-duration: 1.6s; }
}