@font-face { font-family:"RF Merriweather"; font-style:normal; font-weight:300 900; font-display:swap; src:url("../fonts/merriweather.woff2") format("woff2"); }
@font-face { font-family:"RF Merriweather"; font-style:italic; font-weight:300 900; font-display:swap; src:url("../fonts/merriweather-italic.woff2") format("woff2"); }
@font-face { font-family:"RF Crimson Text"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/crimson-text.woff2") format("woff2"); }
@font-face { font-family:"RF Crimson Text"; font-style:italic; font-weight:400; font-display:swap; src:url("../fonts/crimson-text-italic.woff2") format("woff2"); }
@font-face { font-family:"RF Cormorant Garamond"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/cormorant-garamond.woff2") format("woff2"); }
@font-face { font-family:"RF Cormorant Garamond"; font-style:italic; font-weight:400; font-display:swap; src:url("../fonts/cormorant-garamond-italic.woff2") format("woff2"); }
@font-face { font-family:"RF Roboto Serif"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/roboto-serif.woff2") format("woff2"); }
@font-face { font-family:"RF Roboto Serif"; font-style:italic; font-weight:400; font-display:swap; src:url("../fonts/roboto-serif-italic.woff2") format("woff2"); }
@font-face { font-family:"RF OpenDyslexic"; font-style:normal; font-weight:400; font-display:swap; src:url("../fonts/open-dyslexic.ttf") format("truetype"); }
@font-face { font-family:"RF OpenDyslexic"; font-style:normal; font-weight:700; font-display:swap; src:url("../fonts/open-dyslexic-bold.ttf") format("truetype"); }
@font-face { font-family:"RF Inter"; font-style:normal; font-weight:100 900; font-display:swap; src:url("../fonts/inter.woff2") format("woff2"); }
@font-face { font-family:"RF Inter"; font-style:italic; font-weight:100 900; font-display:swap; src:url("../fonts/inter-italic.woff2") format("woff2"); }

.redofanfics-reader-page .rf-announcement,
.redofanfics-reader-page .rf-site-header,
.redofanfics-reader-page .rf-site-footer { display: none; }
.redofanfics-reader-page,
.redofanfics-reader-page .rf-site { background: #f2ede8; }
.rf-reader {
  --rf-reader-width: 760px;
  --rf-reader-room: #f2ede8;
  --rf-reader-panel: #fbf8f4;
  --rf-reader-admin-offset: 0px;
  --rf-reader-chrome-height: 72px;
  min-height: 100vh;
  color: #302936;
  background: var(--rf-reader-room);
  transition: background .25s ease;
}
body.admin-bar .rf-reader { --rf-reader-admin-offset: 32px; }
.rf-reader-progress { position: sticky; top: var(--rf-reader-admin-offset); z-index: 190; height: 4px; background: #dfd6d0; }
.rf-reader-progress span { display: block; width: 0; height: 100%; background: linear-gradient(90deg,#a73756,#eeb64d 52%,#5365bc); transition: width .15s linear; }
.rf-reader-toolbar { position: sticky; top: calc(var(--rf-reader-admin-offset) + 4px); z-index: 180; display: grid; grid-template-columns: minmax(0,1fr) auto minmax(0,1fr); align-items: center; gap: 18px; min-height: 68px; padding: 0 22px; color: #302936; background: rgb(255 253 249 / 94%); border-bottom: 1px solid rgb(80 61 72 / 12%); box-shadow: 0 8px 28px rgb(62 43 56 / 8%); backdrop-filter: blur(16px); }
.rf-reader-back { justify-self: start; display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 0 13px; color: #44394a; background: #fff; border: 1px solid #ddd2d0; border-radius: 6px; text-decoration: none; }
.rf-reader-back:hover { color: #84263f; border-color: #c68b9c; }
.rf-reader-toolbar > div:nth-child(2) { min-width: 0; text-align: center; }
.rf-reader-toolbar strong,
.rf-reader-toolbar span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rf-reader-toolbar > div:nth-child(2) strong { font-family: Georgia,serif; font-size: 16px; }
.rf-reader-toolbar > div:nth-child(2) span { color: #7c727b; font-size: 13px; }
.rf-reader-tools { display: flex; justify-content: flex-end; gap: 8px; }
.rf-reader .rf-icon-button { color: #4d4351; background: #fff; border-color: #ddd2d0; }
.rf-reader .rf-icon-button:hover,
.rf-reader .rf-icon-button[aria-expanded="true"] { color: #fff; background: #5365bc; border-color: #5365bc; }

.rf-reader-infinite-quick { position: relative; display: inline-flex; align-items: center; gap: 9px; min-height: 42px; padding: 0 11px; color: #564b5a; background: #fff; border: 1px solid #ddd2d0; border-radius: 6px; cursor: pointer; user-select: none; }
.rf-reader-infinite-quick > span { color: inherit; font-size: 13px; font-weight: 700; }
.rf-reader-infinite-quick__short { display: none !important; }
.rf-reader-infinite-quick input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.rf-reader-infinite-quick i { position: relative; width: 34px; height: 20px; background: #aaa1a7; border-radius: 10px; transition: background .2s ease; }
.rf-reader-infinite-quick i::after { content: ""; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; background: #fff; border-radius: 50%; box-shadow: 0 1px 3px rgb(0 0 0 / 25%); transition: transform .2s ease; }
.rf-reader-infinite-quick input:checked + i { background: #5365bc; }
.rf-reader-infinite-quick input:checked + i::after { transform: translateX(14px); }
.rf-reader-infinite-quick input:focus-visible + i { outline: 2px solid #a73756; outline-offset: 3px; }
.rf-reader-infinite-quick:hover { color: #84263f; border-color: #c68b9c; }

.rf-reader-layout { min-height: 780px; }
.rf-reader-stage { position: relative; min-width: 0; min-height: calc(100vh - 72px); padding: 54px 24px 96px; background: var(--rf-reader-room); transition: background .25s ease; }
.rf-reader-stage::before { content: ""; position: absolute; inset: 0 max(24px,calc((100% - min(var(--rf-reader-width),100%)) / 2 - 38px)); border-inline: 1px solid rgb(92 72 83 / 6%); pointer-events: none; }
.rf-reader-paper { position: relative; width: min(calc(100% - 48px),var(--rf-reader-width)); max-width: none; margin: 0 auto; padding: clamp(48px,6vw,74px) clamp(32px,6vw,82px) clamp(58px,7vw,88px); color: #262a28; background: #fffdf8; border: 1px solid rgb(91 71 80 / 10%); border-top: 5px solid #a73756; box-shadow: 0 22px 65px rgb(65 48 57 / 14%),0 3px 10px rgb(65 48 57 / 6%); font-family: Georgia,serif; font-size: 21px; line-height: 1.72; overflow-wrap: break-word; transition: width .2s ease,background .25s ease,color .25s ease; }
.rf-reader-paper::after { content: ""; position: absolute; inset: 14px; border: 1px solid rgb(130 102 111 / 6%); pointer-events: none; }
.rf-reader-chapter { position: relative; z-index: 1; color: inherit; }
.rf-reader-chapter + .rf-reader-chapter { margin-top: 54px; padding-top: 56px; border-top: 1px solid rgb(128 128 128 / 28%); }
.rf-reader-chapter > header { margin-bottom: 42px; text-align: center; }
.rf-reader-chapter > header span { color: #a73756; font-family: Inter,"Segoe UI",sans-serif; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.rf-reader-chapter h1,
.rf-reader-chapter h2 { margin: 10px 0 9px; color: inherit; font-family: inherit; font-size: 38px; line-height: 1.18; text-wrap: balance; }
.rf-reader-chapter > header small { color: color-mix(in srgb,currentColor 62%,transparent); font-family: Inter,"Segoe UI",sans-serif; }
.rf-reader-copy p { margin: 0 0 1.25em; color: inherit; font: inherit; }
.rf-reader-copy :where(span,font,p,div)[style] { color: inherit !important; background-color: transparent !important; font-size: inherit !important; font-family: inherit !important; }
.rf-reader-copy a { color: color-mix(in srgb,currentColor 65%,#5365bc); }
.rf-reader-copy img { margin: 1.5em auto; }
.rf-reader-sentinel { height: 1px; margin-top: 40px; }
.rf-reader-status { min-height: 30px; margin: 26px 0 10px; color: color-mix(in srgb,currentColor 72%,transparent); font-family: Inter,"Segoe UI",sans-serif; text-align: center; }
.rf-load-next { display: flex; margin: 10px auto 0; }

.rf-reader-panel-backdrop { position: fixed; z-index: 169; inset: calc(var(--rf-reader-admin-offset) + var(--rf-reader-chrome-height)) 0 0; width: 100%; height: calc(100dvh - var(--rf-reader-admin-offset) - var(--rf-reader-chrome-height)); padding: 0; background: rgb(48 35 48 / 28%); border: 0; backdrop-filter: blur(2px); cursor: default; }
.rf-reader-settings,
.rf-reader-chapters { position: fixed; z-index: 170; inset: calc(var(--rf-reader-admin-offset) + var(--rf-reader-chrome-height)) 0 0 auto; width: min(410px,100%); height: calc(100dvh - var(--rf-reader-admin-offset) - var(--rf-reader-chrome-height)); padding: 28px; color: #302936; background: var(--rf-reader-panel); border-left: 1px solid rgb(83 63 75 / 12%); box-shadow: -24px 0 60px rgb(46 33 45 / 18%); overflow-y: auto; overscroll-behavior: contain; }
.rf-reader-settings[hidden],
.rf-reader-chapters[hidden],
.rf-reader-panel-backdrop[hidden] { display: none; }
.rf-reader-panel-head { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 25px; padding-bottom: 18px; border-bottom: 1px solid #ded4d1; }
.rf-reader-panel-head > div:first-child { min-width: 0; }
.rf-reader-panel-head p { margin: 0 0 3px; color: #a73756; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.rf-reader-panel-head h2 { margin: 0; color: #302936; font-size: 28px; }
.rf-reader-panel-head > div:last-child { display: flex; align-items: center; gap: 8px; }
.rf-reader-panel-reset { min-height: 40px; padding: 0 8px; color: #84263f; background: transparent; border: 0; cursor: pointer; }
.rf-reader-settings > label { display: grid; gap: 8px; margin-bottom: 19px; }
.rf-reader-settings > label > span,
.rf-reader-settings legend { display: flex; justify-content: space-between; gap: 15px; color: #4c424f; }
.rf-reader-settings output { color: #a73756; font-weight: 700; }
.rf-reader-settings select { width: 100%; min-height: 46px; padding: 0 11px; color: #302936; background: #fff; border: 1px solid #d8ccca; border-radius: 5px; }
.rf-reader-settings input[type="range"] { width: 100%; accent-color: #a73756; }
.rf-reader-settings fieldset { margin: 0 0 20px; padding: 0; border: 0; }
.rf-reader-settings legend { width: 100%; margin-bottom: 10px; }
.rf-reader-swatches { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; }
.rf-reader-swatches button { position: relative; min-height: 46px; border: 2px solid transparent; border-radius: 5px; cursor: pointer; }
.rf-reader-swatches button[aria-pressed="true"] { border-color: #a73756; box-shadow: 0 0 0 1px #fff,0 0 0 3px #a73756; }
.rf-reader-swatches button[data-reader-theme="paper"] { color:#262a28;background:#fffdf8; }
.rf-reader-swatches button[data-reader-theme="ivory"] { color:#292820;background:#f8f1df; }
.rf-reader-swatches button[data-reader-theme="sepia"] { color:#28251f;background:#f4e4c5; }
.rf-reader-swatches button[data-reader-theme="sage"] { color:#202a24;background:#e3eee5; }
.rf-reader-swatches button[data-reader-theme="gray"] { color:#262a2c;background:#e8eaeb; }
.rf-reader-swatches button[data-reader-theme="dim"] { color:#e4e7e5;background:#454b48; }
.rf-reader-swatches button[data-reader-theme="night"] { color:#dce5df;background:#19211d; }
.rf-reader-swatches button[data-reader-theme="oled"] { color:#e6e6e6;background:#050505; }
.rf-reader-toggle { grid-template-columns: 1fr auto; align-items: center; min-height: 54px; margin: 0 !important; border-top: 1px solid #ded4d1; }
.rf-reader-toggle input { width: 20px; height: 20px; accent-color: #5365bc; }
.rf-reader-settings__note { padding: 14px; color: #6e636d; background: #f1ebe8; border-left: 4px solid #4b8b7b; font-size: 13px; }

.rf-reader-chapters__story { display: block; margin: -4px 0 20px; padding: 15px 17px; color: #fff; background: #3b3056; border-left: 5px solid #eeb64d; text-decoration: none; }
.rf-reader-chapters__story span,
.rf-reader-chapters__story small { display: block; }
.rf-reader-chapters__story span { font-family: Georgia,serif; font-size: 18px; font-weight: 700; }
.rf-reader-chapters__story small { color: #d9d1e0; }
.rf-reader-chapter-menu { margin: 0; padding: 0; list-style: none; }
.rf-reader-chapter-menu li { margin: 0; }
.rf-reader-chapter-menu a { display: grid; grid-template-columns: 35px minmax(0,1fr) 18px; align-items: center; gap: 11px; min-height: 68px; padding: 10px 10px; border-bottom: 1px solid #e3d9d6; text-decoration: none; }
.rf-reader-chapter-menu a:hover { background: #f4ecea; }
.rf-reader-chapter-menu a.is-current { background: #fae8ec; box-shadow: inset 4px 0 #a73756; }
.rf-reader-chapter-menu a > span:first-child { color: #a73756; font-family: Georgia,serif; font-size: 18px; font-weight: 700; text-align: center; }
.rf-reader-chapter-menu strong,
.rf-reader-chapter-menu small { display: block; }
.rf-reader-chapter-menu strong { overflow: hidden; color: #302936; text-overflow: ellipsis; white-space: nowrap; }
.rf-reader-chapter-menu small { color: #7b7079; font-size: 12px; }
.rf-reader-chapter-menu .rf-icon { color: #5365bc; }

.rf-reader-pagination { display: flex; justify-content: space-between; gap: 20px; padding: 20px max(20px,calc((100vw - min(var(--rf-reader-width),100vw)) / 2)); color: #463c49; background: rgb(255 253 249 / 72%); border-top: 1px solid rgb(83 63 75 / 10%); }
.rf-reader-pagination a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; text-decoration: none; }
.rf-reader .fpl-gate { color: inherit; background: rgb(127 127 127 / 8%); }

@media (prefers-reduced-motion: reduce) {
  .rf-reader,
  .rf-reader-stage,
  .rf-reader-paper,
  .rf-reader-progress span,
  .rf-reader-infinite-quick i,
  .rf-reader-infinite-quick i::after { transition: none; }
}
@media (max-width: 760px) {
  .rf-reader-toolbar { grid-template-columns: auto minmax(0,1fr) auto; padding: 0 12px; gap: 9px; }
  .rf-reader-back { width: 44px; padding: 0; justify-content: center; }
  .rf-reader-back span { position: absolute; width: 1px; height: 1px; clip: rect(0 0 0 0); overflow: hidden; }
  .rf-reader-infinite-quick { padding-inline: 9px; }
  .rf-reader-infinite-quick__full { display: none !important; }
  .rf-reader-infinite-quick__short { display: block !important; }
  .rf-reader-stage { padding: 18px 0 42px; }
  .rf-reader-stage::before { display: none; }
  .rf-reader-paper { width: calc(100% - 24px); max-width: none !important; padding: 42px 24px 54px; border-top-width: 4px; box-shadow: 0 10px 32px rgb(65 48 57 / 12%); }
  .rf-reader-chapter h1,
  .rf-reader-chapter h2 { font-size: 31px; overflow-wrap: anywhere; }
  .rf-reader-settings,
  .rf-reader-chapters { width: min(100%,430px); padding: 22px 18px; }
  .rf-reader-pagination { flex-direction: column; }
  .rf-reader-pagination a:last-child { justify-content: flex-end; }
}
@media screen and (max-width: 782px) {
  body.admin-bar .rf-reader { --rf-reader-admin-offset: 46px; }
}
@media (max-width: 480px) {
  .rf-reader-toolbar { min-height: 66px; padding-inline: 8px; gap: 6px; }
  .rf-reader-toolbar > div:nth-child(2) strong { font-size: 14px; }
  .rf-reader-toolbar > div:nth-child(2) span { font-size: 12px; }
  .rf-reader-tools { gap: 5px; }
  .rf-reader .rf-icon-button { width: 40px; min-width: 40px; height: 40px; }
  .rf-reader-infinite-quick { min-height: 40px; padding-inline: 7px; gap: 6px; }
  .rf-reader-infinite-quick > span { font-size: 12px; }
  .rf-reader-infinite-quick i { width: 30px; }
  .rf-reader-infinite-quick input:checked + i::after { transform: translateX(10px); }
}
@media (forced-colors: active) {
  .rf-reader-swatches button,
  .rf-reader-infinite-quick { border: 1px solid ButtonText; }
}
