
/* Papers: the app's six themes (noveldesk-web app/src/styles/tokens.css); no attribute = Match system (the page's own) */
html[data-rd-theme=light],[data-rd-theme=light]{--paper:#FBFCFD;--ink:#1D2433;--graphite:#5B6475;--rule:#E3E8EF;--pencil:#9CCBEA;--pencil-ink:#2C66A8;--plate-blend:multiply;--plate-filter:brightness(1);color-scheme:light}
html[data-rd-theme=apricot],[data-rd-theme=apricot]{--paper:#FCF6F1;--ink:#35261F;--graphite:#7A6359;--rule:#F0E1D7;--pencil:#EDB295;--pencil-ink:#A4522E;--plate-blend:multiply;--plate-filter:brightness(1);color-scheme:light}
html[data-rd-theme=dawn],[data-rd-theme=dawn]{--paper:#F5F3FA;--ink:#252239;--graphite:#64607E;--rule:#E4E0EE;--pencil:#C3B9E6;--pencil-ink:#5B4BA1;--plate-blend:multiply;--plate-filter:brightness(1);color-scheme:light}
html[data-rd-theme=dark],[data-rd-theme=dark]{--paper:#172030;--ink:#E6EAF0;--graphite:#96A1B3;--rule:#26324A;--pencil:#5E98C8;--pencil-ink:#A9D2F2;--plate-blend:normal;--plate-filter:brightness(.9) saturate(.9);color-scheme:dark}
html[data-rd-theme=forest],[data-rd-theme=forest]{--paper:#161F1A;--ink:#E0E7DD;--graphite:#96A493;--rule:#25322A;--pencil:#6F9D7D;--pencil-ink:#ABD5B6;--plate-blend:normal;--plate-filter:brightness(.9) saturate(.9);color-scheme:dark}
html[data-rd-theme=lamp],[data-rd-theme=lamp]{--paper:#1C1814;--ink:#EFE6D9;--graphite:#A89A88;--rule:#30291F;--pencil:#B98A47;--pencil-ink:#EEC88B;--plate-blend:normal;--plate-filter:brightness(.9) saturate(.9);color-scheme:dark}
html{background:var(--paper)}
body{transition:background-color .35s ease,color .35s ease}

/* Text size and alignment: the chapter text only (the headings keep their sizes). The size is a step from the page's own
   size, which is smaller on a phone, so one setting suits both */
.text,.nx-lines{font-size:calc(1em + var(--rd-step,0px))}
html[data-rd-align=justify] .text p{text-align:justify;-webkit-hyphens:auto;hyphens:auto}
/* Korean set justified breaks between syllables, as Korean books do; whole-word breaking leaves wide gaps on a phone */
html[data-rd-align=justify][lang=ko] .text p{-webkit-hyphens:manual;hyphens:manual;word-break:normal}

/* Aa: at the right of the chapter's top line and of the running head */
.rd-btn{all:unset;box-sizing:border-box;flex:none;display:inline-grid;place-items:center;min-width:34px;height:28px;margin:-5px -8px -5px 6px;padding:0 8px;border-radius:6px;cursor:pointer;
font:400 15px/1 Literata,Georgia,serif;font-variation-settings:"opsz" 24;letter-spacing:.01em;color:var(--graphite);transition:color .2s ease,background-color .2s ease}
.rd-btn:hover,.rd-btn[aria-expanded=true]{color:var(--ink);background:color-mix(in srgb,var(--graphite) 10%,transparent)}
.rd-btn:focus-visible{outline:2px solid var(--pencil-ink);outline-offset:2px}
.top{align-items:center}
.top span{margin-left:auto}
.rh-in .rd-btn{margin-left:auto;margin-right:-8px}

/* The popover: the writing screen's Aa at the same size */
.rd-pop{position:fixed;z-index:20;width:300px;max-width:calc(100vw - 16px);padding:14px;border:1px solid var(--rule);border-radius:10px;background:var(--paper);color:var(--ink);
box-shadow:0 1px 2px rgba(15,20,30,.06),0 12px 32px -8px rgba(15,20,30,.22);font:400 13px/1.5 "IBM Plex Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;letter-spacing:0;
animation:rd-in .22s cubic-bezier(.22,1,.36,1)}
@keyframes rd-in{from{opacity:0;transform:translateY(-4px)}}
:where(.rd-pop) button{all:unset;box-sizing:border-box;cursor:pointer;-webkit-tap-highlight-color:transparent}
.rd-pop button:focus-visible{outline:2px solid var(--pencil-ink);outline-offset:2px;border-radius:6px}
.rd-themes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.rd-th{display:block;border-radius:8px}
.rd-page{display:flex;flex-direction:column;gap:2.5px;aspect-ratio:1;padding:22% 18%;border-radius:7px;overflow:hidden;background:var(--paper);box-shadow:inset 0 0 0 1px var(--rule);transition:transform .2s ease}
.rd-page i{display:block;height:2px;border-radius:1px;background:var(--graphite);opacity:.55}
.rd-page i.t{height:3px;width:62%;background:var(--ink);opacity:.9}
.rd-page i.u{width:30%;height:2px;background:var(--pencil);opacity:1}
.rd-page i.c{width:46%}
.rd-page:has(.rd-half){flex-direction:row;gap:0;padding:0}
.rd-half{flex:1;display:flex;flex-direction:column;gap:2.5px;padding:22% 0 22% 36%;background:var(--paper);overflow:hidden}
.rd-half+.rd-half{padding-left:0;padding-right:36%}
.rd-th:hover .rd-page{transform:translateY(-1px)}
.rd-th[aria-checked=true] .rd-page{box-shadow:inset 0 0 0 1px var(--rule),0 0 0 2px var(--paper),0 0 0 3.5px var(--ink)}
.rd-pop .rd-page{background:var(--paper)}
.rd-name{margin:9px 0 0;min-height:1.4em;font-size:12.5px;line-height:1.4;color:var(--graphite)}
.rd-l{font-size:13px;color:var(--graphite)}
.rd-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;padding-top:12px;border-top:1px solid var(--rule)}
.rd-step{display:flex;align-items:center;gap:2px}
.rd-step button{width:32px;height:30px;border-radius:6px;display:grid;place-items:center;color:var(--ink)}
.rd-step button:hover{background:color-mix(in srgb,var(--graphite) 10%,transparent)}
.rd-step button:disabled{opacity:.3;pointer-events:none}
.rd-step .a-sm,.rd-step .a-lg{font-family:Literata,Georgia,serif;line-height:1}
.rd-step .a-sm{font-size:12px}.rd-step .a-lg{font-size:18px}
.rd-out{min-width:2.2em;text-align:center;font-size:13px;font-variant-numeric:tabular-nums;color:var(--ink)}
.rd-col{display:grid;gap:7px;margin-top:12px}
.rd-seg{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:2px;border-radius:8px;background:color-mix(in srgb,var(--graphite) 9%,transparent)}
.rd-seg button{padding:6px 4px;border-radius:6px;text-align:center;color:var(--graphite);transition:background-color .2s ease,color .2s ease}
.rd-seg button[aria-checked=true]{background:var(--paper);color:var(--ink);box-shadow:0 1px 2px rgba(15,20,30,.12)}
.rd-sw{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding-top:12px;border-top:1px solid var(--rule)}
.rd-sw .rd-l{color:var(--ink);line-height:1.35}
.rd-sw small{display:block;margin-top:2px;font-size:12px;color:var(--graphite)}
.rd-switch{position:relative;flex:none;width:36px;height:22px;border-radius:11px;background:color-mix(in srgb,var(--graphite) 28%,transparent);transition:background-color .2s ease}
.rd-switch::after{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--paper);box-shadow:0 1px 2px rgba(0,0,0,.2);transition:transform .25s cubic-bezier(.22,1,.36,1)}
.rd-switch[aria-checked=true]{background:var(--ink)}
.rd-switch[aria-checked=true]::after{transform:translateX(14px)}

/* Focus scroll: the band from 30% to 64% of the screen stays clear; above and below, the page is washed and softened */
.rd-veil{display:none;position:fixed;left:0;right:0;z-index:9;pointer-events:none;
background:color-mix(in srgb,var(--paper) 58%,transparent);-webkit-backdrop-filter:blur(2.5px);backdrop-filter:blur(2.5px)}
html.rd-focus .rd-veil{display:block}
.rd-t{top:0;height:30vh;-webkit-mask-image:linear-gradient(#000 55%,transparent);mask-image:linear-gradient(#000 55%,transparent)}
.rd-b{bottom:0;height:36vh;-webkit-mask-image:linear-gradient(transparent,#000 45%);mask-image:linear-gradient(transparent,#000 45%)}

/* "Back where you left off", for a few seconds */
.rd-back{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom));z-index:15;display:flex;align-items:center;gap:14px;padding:9px 10px 9px 16px;border-radius:999px;
background:var(--ink);color:var(--paper);transform:translate(-50%,8px);opacity:0;transition:opacity .3s ease,transform .4s cubic-bezier(.22,1,.36,1);white-space:nowrap}
.rd-back.on{opacity:1;transform:translate(-50%,0)}
.rd-back button{all:unset;cursor:pointer;padding:3px 8px;border-radius:999px;color:var(--paper);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:1px}
.rd-back button:focus-visible{outline:2px solid var(--pencil);outline-offset:1px}
@media (prefers-reduced-motion:reduce){.rd-pop{animation:none}.rd-back,.rd-switch::after,body{transition:none}}
@media print{.rd-btn,.rd-veil,.rd-back,.rd-pop{display:none!important}}
