@font-face{font-family:"Literata Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(fonts/literata-latin-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Literata Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(fonts/literata-latin-ext-opsz-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Literata Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(fonts/literata-latin-opsz-italic.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Literata Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(fonts/literata-latin-ext-opsz-italic.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

@font-face{font-family:"Archivo Variable";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(fonts/archivo-latin-wdth-normal.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Archivo Variable";font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(fonts/archivo-latin-ext-wdth-normal.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

@font-face{font-family:"Amiri";font-style:normal;font-display:swap;font-weight:400;src:url(fonts/amiri-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Amiri";font-style:normal;font-display:swap;font-weight:700;src:url(fonts/amiri-arabic-700-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:"Noto Nastaliq Urdu";font-style:normal;font-display:swap;font-weight:400;src:url(fonts/noto-nastaliq-urdu-arabic-400-normal.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}

:root{--weave-dark:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%3E%3Cfilter%20id%3D%22n%22%20x%3D%220%22%20y%3D%220%22%20width%3D%22100%25%22%20height%3D%22100%25%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%22.95%20.055%22%20numOctaves%3D%223%22%20seed%3D%227%22%2F%3E%3CfeColorMatrix%20values%3D%220%200%200%200%200%20%200%200%200%200%200%20%200%200%200%200%200%20%200%200%200%20.5%20-.12%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url(%23n)%22%2F%3E%3C%2Fsvg%3E");--weave-light:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22180%22%20height%3D%22180%22%3E%3Cfilter%20id%3D%22n%22%20x%3D%220%22%20y%3D%220%22%20width%3D%22100%25%22%20height%3D%22100%25%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%22.05%20.9%22%20numOctaves%3D%223%22%20seed%3D%223%22%2F%3E%3CfeColorMatrix%20values%3D%220%200%200%200%201%20%200%200%200%200%201%20%200%200%200%200%201%20%200%200%200%20.34%20-.1%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url(%23n)%22%2F%3E%3C%2Fsvg%3E");--grain:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22220%22%20height%3D%22220%22%3E%3Cfilter%20id%3D%22n%22%20x%3D%220%22%20y%3D%220%22%20width%3D%22100%25%22%20height%3D%22100%25%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%22.75%22%20numOctaves%3D%222%22%20seed%3D%2211%22%2F%3E%3CfeColorMatrix%20values%3D%220%200%200%200%20.25%20%200%200%200%200%20.2%20%200%200%200%200%20.1%20%200%200%200%20.07%200%22%2F%3E%3C%2Ffilter%3E%3Crect%20width%3D%22100%25%22%20height%3D%22100%25%22%20filter%3D%22url(%23n)%22%2F%3E%3C%2Fsvg%3E")}
.cloth-indigo{--cloth:oklch(31% 0.09 268);--cloth-hi:oklch(37% 0.1 268);--cloth-lo:oklch(23% 0.07 268);--cover-ink:#efe9d6;--accent:oklch(41% 0.15 268);--chain-thread:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%238f87a8%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%238f87a8%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23efe9d6%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23efe9d6%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--chain-holes:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%220%22%20r%3D%223.4%22%20fill%3D%22%230e1024%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2224%22%20r%3D%223.4%22%20fill%3D%22%230e1024%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");--chain-paper:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23343c86%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23343c86%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--deep:#343c86}
.cloth-madder{--cloth:oklch(36% 0.125 18);--cloth-hi:oklch(42% 0.135 18);--cloth-lo:oklch(27% 0.1 18);--cover-ink:#f3e8d6;--accent:oklch(43% 0.16 18);--chain-thread:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23a58978%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23a58978%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f3e8d6%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f3e8d6%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--chain-holes:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%220%22%20r%3D%223.4%22%20fill%3D%22%23240b0f%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2224%22%20r%3D%223.4%22%20fill%3D%22%23240b0f%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");--chain-paper:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%238a2433%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%238a2433%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--deep:#8a2433}
.cloth-bottle{--cloth:oklch(32% 0.065 168);--cloth-hi:oklch(38% 0.07 168);--cloth-lo:oklch(24% 0.05 168);--cover-ink:#ece9d4;--accent:oklch(40% 0.085 168);--chain-thread:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%2386917a%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%2386917a%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23ece9d4%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23ece9d4%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--chain-holes:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%220%22%20r%3D%223.4%22%20fill%3D%22%2308201a%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2224%22%20r%3D%223.4%22%20fill%3D%22%2308201a%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");--chain-paper:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%231f5a45%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%231f5a45%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--deep:#1f5a45}
.cloth-saffron{--cloth:oklch(77% 0.135 82);--cloth-hi:oklch(82% 0.13 84);--cloth-lo:oklch(68% 0.125 78);--cover-ink:#2b200c;--accent:oklch(46% 0.115 70);--chain-thread:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23b58a2c%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23b58a2c%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%233a2b0f%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%233a2b0f%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--chain-holes:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%220%22%20r%3D%223.4%22%20fill%3D%22%232b200c%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2224%22%20r%3D%223.4%22%20fill%3D%22%232b200c%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");--chain-paper:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%237a5516%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%237a5516%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--deep:#7a5516}
.cloth-aubergine{--cloth:oklch(30% 0.09 335);--cloth-hi:oklch(36% 0.1 335);--cloth-lo:oklch(22% 0.07 335);--cover-ink:#f1e6e8;--accent:oklch(41% 0.15 335);--chain-thread:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23a2859f%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23a2859f%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f1e6e8%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f1e6e8%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--chain-holes:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%220%22%20r%3D%223.4%22%20fill%3D%22%231d0a1d%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2224%22%20r%3D%223.4%22%20fill%3D%22%231d0a1d%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");--chain-paper:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%236b2a63%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%236b2a63%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--deep:#6b2a63}
.cloth-slate{--cloth:oklch(40% 0.03 245);--cloth-hi:oklch(46% 0.035 245);--cloth-lo:oklch(31% 0.025 245);--cover-ink:#eef0ee;--accent:oklch(41% 0.05 245);--chain-thread:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%238d98a2%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%238d98a2%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23eef0ee%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23eef0ee%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--chain-holes:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%220%22%20r%3D%223.4%22%20fill%3D%22%230f1820%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2224%22%20r%3D%223.4%22%20fill%3D%22%230f1820%22%20stroke%3D%22rgba(255%2C255%2C255%2C.22)%22%20stroke-width%3D%221%22%2F%3E%3C%2Fsvg%3E");--chain-paper:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%233b4f66%22%20stroke-width%3D%224.4%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%233b4f66%22%20stroke-width%3D%223.6%22%2F%3E%3Cpath%20d%3D%22M12%200C4%205.5%204%2018.5%2012%2024C20%2018.5%2020%205.5%2012%200Z%22%20fill%3D%22none%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%222.6%22%20stroke-linejoin%3D%22round%22%2F%3E%3Cpath%20d%3D%22M12%200H24M12%2024H24%22%20stroke%3D%22%23f6f1e2%22%20stroke-width%3D%221.8%22%2F%3E%3C%2Fsvg%3E");--deep:#3b4f66}

/* Research Library — Exposed Binding.
   Cloth variables (--cloth, --cover-ink, --chain-*, --accent, --deep) are generated per cloth in the build. */

:root {
  --rail: 56px;
  --gutter: clamp(1.25rem, 4vw, 3.5rem);
  --paper: oklch(97.6% 0.007 95);
  --paper-2: oklch(94.6% 0.01 95);
  --paper-3: oklch(91% 0.013 95);
  --ink: oklch(23% 0.02 265);
  --ink-2: oklch(43% 0.02 265);
  --line: oklch(86% 0.013 95);
  --line-strong: oklch(70% 0.015 95);
  --ok: oklch(40% 0.09 190);
  --q: oklch(47% 0.19 25);
  --caution: oklch(46% 0.11 65);
  --focus: var(--ink);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --serif: "Literata Variable", Literata, Georgia, "Times New Roman", serif;
  --sans: "Archivo Variable", Archivo, system-ui, -apple-system, "Segoe UI", sans-serif;
  --deboss-hi: rgb(255 255 255 / 0.1);
  --deboss-lo: rgb(0 0 0 / 0.45);
  --knot-open: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1C4.5 6 4.5 18 12 23C19.5 18 19.5 6 12 1Z' fill='none' stroke='black' stroke-width='2' stroke-dasharray='3.2 2.6' stroke-linecap='round'/%3E%3C/svg%3E");
  --knot-sewn: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1C4.5 6 4.5 18 12 23C19.5 18 19.5 6 12 1Z' fill='black'/%3E%3C/svg%3E");
  --lobe: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 1C4.5 6 4.5 18 12 23C19.5 18 19.5 6 12 1Z' fill='none' stroke='black' stroke-width='2.4'/%3E%3C/svg%3E");
}

.cloth-saffron {
  --deboss-hi: rgb(255 255 255 / 0.4);
  --deboss-lo: rgb(0 0 0 / 0.14);
}

*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: 100%;
  scroll-padding-top: 1.5rem;
  scroll-behavior: smooth;
}

body {
  margin: 0;
  padding-left: var(--rail);
  background: var(--paper) var(--grain);
  color: var(--ink);
  font-family: var(--serif);
  font-optical-sizing: auto;
  font-size: 1.0625rem;
  line-height: 1.6;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

::selection { background: color-mix(in oklab, var(--accent) 26%, white); color: var(--ink); }

img, svg { max-width: 100%; }
img { height: auto; display: block; }
code { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; font-size: 0.86em; background: var(--paper-2); padding: 0.1em 0.38em; border-radius: 3px; }
pre { background: var(--paper-2); padding: 1rem 1.1rem; overflow: auto; font-size: 0.84rem; line-height: 1.55; border: 1.5px dashed var(--line-strong); border-radius: 3px; }
pre code { background: none; padding: 0; font-size: inherit; }

a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 0.2em; text-decoration-color: color-mix(in oklab, currentColor 45%, transparent); transition: text-decoration-color 0.15s; }
a:hover { text-decoration-color: currentColor; }

:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; border-radius: 2px; }
.cover :focus-visible, .top :focus-visible, .btn:not(.btn--ghost):focus-visible, .book:focus-visible { --focus: var(--cover-ink); }
.btn:focus-visible, .book:focus-visible { box-shadow: 0 0 0 5px var(--paper); }
.book:focus-visible { outline-color: var(--ink); }
.cover :focus-visible, .top :focus-visible { box-shadow: none; }

.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.skip { position: fixed; left: calc(var(--rail) + 0.75rem); top: -4rem; z-index: 50; background: var(--ink); color: var(--paper); padding: 0.7rem 1rem; border-radius: 3px; font: 600 0.9rem var(--sans); transition: top 0.2s var(--ease-out); }
.skip:focus { top: 0.75rem; }

/* ---------- the spine: a rail of cloth with a chain stitched down it ---------- */

.rail {
  position: fixed; inset: 0 auto 0 0; width: var(--rail); z-index: 20;
  background-color: var(--cloth);
  background-image: var(--weave-light), var(--weave-dark), linear-gradient(90deg, var(--cloth-hi), var(--cloth) 45%, var(--cloth-lo));
  box-shadow: 1px 0 0 var(--cloth-lo), 8px 0 18px -8px rgb(0 0 0 / 0.4);
}
.rail::after { content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: linear-gradient(90deg, rgb(0 0 0 / 0.25), transparent); }

.chain-col {
  position: absolute; top: 0; bottom: 0; width: 24px;
  background: var(--chain-holes) 0 0 / 24px 24px repeat-y;
}
.chain-col > i {
  position: absolute; inset: 0; display: block;
  background: var(--chain-thread) 0 0 / 24px 24px repeat-y;
  clip-path: inset(0 0 calc((1 - var(--p, 1)) * 100%) 0);
}
.rail .chain-col { right: 10px; }

@media (prefers-reduced-motion: no-preference) {
  body:not(.page-paper) .chain-col > i { animation: sew 1.6s var(--ease-out) 0.15s both; }
  .book .chain-col > i { animation-duration: 1.9s; }
}
@keyframes sew {
  from { clip-path: inset(0 0 100% 0); }
  to { clip-path: inset(0 0 0 0); }
}

/* ---------- frame and top bar ---------- */

.frame { position: relative; min-height: 100dvh; display: flex; flex-direction: column; }
.frame > main { flex: 1; }

.top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem var(--gutter); font-family: var(--sans); color: var(--ink); }
.frame--cover .top { position: absolute; inset: 0 0 auto 0; z-index: 3; color: var(--cover-ink); }
.top__name { display: inline-flex; align-items: center; gap: 0.55rem; font-weight: 700; font-stretch: 108%; font-size: 0.95rem; text-decoration: none; letter-spacing: 0.01em; }
.top__nav { display: flex; gap: 1.5rem; font-weight: 600; font-size: 0.92rem; }
.top__nav a { text-decoration: none; padding: 0.3rem 0; background: linear-gradient(90deg, currentColor 55%, transparent 0) 0 100% / 8px 1.5px repeat-x; background-size: 8px 1.5px; padding-bottom: 0.25rem; background-position: 0 100%; background-repeat: repeat-x; background-color: transparent; }
.top__nav a:hover { background-image: linear-gradient(currentColor, currentColor); background-size: 100% 1.5px; }
.top__nav a[aria-current] { background-image: linear-gradient(currentColor, currentColor); background-size: 100% 1.5px; }
.lobe { width: 1.2em; height: 1.2em; fill: none; stroke: currentColor; stroke-width: 2.4; flex: none; }

/* ---------- stitched buttons ---------- */

.btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  min-height: 2.9rem; padding: 0.7rem 1.35rem; border: 0; border-radius: 4px; cursor: pointer;
  font: 600 0.95rem/1 var(--sans); letter-spacing: 0.01em; text-decoration: none;
  background-color: var(--cloth); background-image: var(--weave-light), var(--weave-dark); color: var(--cover-ink);
  box-shadow: 0 1px 0 rgb(255 255 255 / 0.12) inset, 0 3px 8px -3px rgb(0 0 0 / 0.45);
  transition: background-color 0.18s, transform 0.18s var(--ease-out), box-shadow 0.18s;
}
.btn::after { content: ""; position: absolute; inset: 4px; border: 1.5px dashed color-mix(in oklab, var(--cover-ink) 62%, transparent); border-radius: 2px; pointer-events: none; }
.btn:hover { background-color: var(--cloth-hi); transform: translateY(-1px); box-shadow: 0 1px 0 rgb(255 255 255 / 0.14) inset, 0 6px 12px -4px rgb(0 0 0 / 0.45); }
.btn:active { transform: translateY(0); box-shadow: 0 1px 0 rgb(0 0 0 / 0.3) inset; }
.btn[disabled], .btn[aria-disabled="true"] { opacity: 0.5; cursor: not-allowed; transform: none; }
.btn--ghost { background: transparent; color: var(--ink); box-shadow: none; border: 1.5px solid var(--ink); }
.btn--ghost::after { border-color: color-mix(in oklab, var(--ink) 40%, transparent); }
.btn--ghost:hover { background: var(--paper-2); box-shadow: none; }
.btn--sm { min-height: 2.35rem; padding: 0.5rem 0.95rem; font-size: 0.84rem; }
.btn--sm::after { inset: 3px; }
.btn.is-done::before { content: "Copied"; position: absolute; inset: 0; display: grid; place-items: center; background: var(--paper-2); border-radius: 3px; z-index: 1; }

/* ---------- shared pieces ---------- */

.sec__h { font: 600 1.55rem/1.2 var(--serif); letter-spacing: -0.01em; margin: 0 0 1.4rem; }

.knot { display: block; width: 20px; height: 20px; background: var(--ink-2); -webkit-mask: var(--knot-open) center / contain no-repeat; mask: var(--knot-open) center / contain no-repeat; flex: none; }
.is-read > .knot, .is-read .knot:first-child { background: var(--accent); -webkit-mask-image: var(--knot-sewn); mask-image: var(--knot-sewn); }

.state { display: inline-block; font: 600 0.72rem/1 var(--sans); letter-spacing: 0.03em; padding: 0.22rem 0.5rem; border: 1.5px solid var(--ink-2); color: var(--ink-2); border-radius: 2px; white-space: nowrap; }
.state--draft { border-style: dashed; }
.state--reviewed { border-color: var(--ok); color: var(--ok); }
.state--final { background: var(--ink); border-color: var(--ink); color: var(--paper); }

.tags { display: flex; flex-wrap: wrap; gap: 0.35rem; list-style: none; margin: 0; padding: 0; }
.tags li { font: 500 0.78rem/1 var(--sans); padding: 0.28rem 0.55rem; background: var(--paper-2); border-radius: 2px; color: var(--ink-2); }

.st { display: inline-block; font: 600 0.7rem/1 var(--sans); letter-spacing: 0.03em; padding: 0.22rem 0.45rem; border: 1.5px solid currentColor; border-radius: 2px; white-space: nowrap; vertical-align: 0.12em; }
.st-ok { color: var(--ok); }
.st-q { color: var(--q); border-style: dashed; }
.st-x { color: var(--ink-2); border-style: double; border-width: 3px; padding: 0.12rem 0.4rem; }

/* ---------- thread marks: how far a claim was checked ---------- */

.mk { background: none; color: inherit; padding: 0; }
.mk-ok { background: linear-gradient(90deg, var(--ok) 62%, transparent 0) 0 100% / 9px 2px repeat-x; padding-bottom: 2px; }
.mk-q { text-decoration: underline wavy var(--q) 1.4px; text-underline-offset: 0.28em; text-decoration-skip-ink: none; }
.mk-q::after { content: "?"; font: 700 0.62em/1 var(--sans); color: var(--q); vertical-align: 0.55em; margin-left: 0.12em; }
.mk-x { text-decoration: none; color: var(--ink-2); background: var(--cross) 0 62% / 6px 6px repeat-x; }
:root { --cross: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='6' height='6' viewBox='0 0 6 6'%3E%3Cpath d='M1 1l4 4M5 1l-4 4' stroke='%23585c6e' stroke-width='0.9' stroke-linecap='round'/%3E%3C/svg%3E"); }

/* ---------- home ---------- */

.hero, .shelf, .recent, .legend { padding-inline: var(--gutter); max-width: 76rem; }
.hero { padding-top: clamp(1.5rem, 5vh, 3.5rem); padding-bottom: 2.5rem; }
.hero__title { font: 540 clamp(2.5rem, 6.4vw, 5.2rem)/1.02 var(--serif); letter-spacing: -0.03em; max-width: 14.5ch; margin: 0 0 1.4rem; text-wrap: balance; }
.hero__intro { max-width: 40rem; font-size: 1.2rem; line-height: 1.55; color: var(--ink-2); margin: 0 0 1.8rem; text-wrap: pretty; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 0.8rem; margin: 0; }

.shelf { padding-top: 1.5rem; padding-bottom: 3.5rem; }
.shelf__list { list-style: none; margin: 0; padding: 0 1rem; display: grid; grid-template-columns: repeat(auto-fill, 13.5rem); column-gap: 2rem; justify-content: start; align-items: end; }
.shelf__item { display: flex; flex-direction: column; justify-content: flex-end; margin-bottom: 2.5rem; }
@supports (grid-template-rows: subgrid) {
  .shelf__item { display: grid; grid-row: span 3; grid-template-rows: subgrid; row-gap: 0; margin-bottom: 2.5rem; }
  .shelf__item .book { align-self: end; }
}
.shelf__empty { grid-column: 1 / -1; color: var(--ink-2); }

.book {
  position: relative; display: flex; flex-direction: column; justify-content: space-between;
  height: var(--h); padding: 1.35rem 1.1rem 1.2rem 3.6rem; color: var(--cover-ink); text-decoration: none;
  background-color: var(--cloth); background-image: var(--weave-light), var(--weave-dark), linear-gradient(100deg, var(--cloth-hi), var(--cloth) 55%, var(--cloth-lo));
  border-radius: 3px 9px 0 0;
  box-shadow: 0 -1px 0 rgb(255 255 255 / 0.1) inset, 10px 0 16px -10px rgb(0 0 0 / 0.5), 0 18px 20px -14px rgb(0 0 0 / 0.55);
  transition: transform 0.3s var(--ease-out), box-shadow 0.3s var(--ease-out);
}
.book::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 2.6rem; border-radius: 3px 0 0 0; background: linear-gradient(90deg, var(--cloth-lo), var(--cloth) 85%); box-shadow: inset -1px 0 0 rgb(0 0 0 / 0.35), 1px 0 0 rgb(255 255 255 / 0.08); }
.book .chain-col { left: 0.5rem; }
.book:hover { transform: translateY(-6px); box-shadow: 0 -1px 0 rgb(255 255 255 / 0.12) inset, 12px 0 20px -10px rgb(0 0 0 / 0.55), 0 26px 24px -14px rgb(0 0 0 / 0.6); }
.book__title { position: relative; font: 650 1.45rem/1.12 var(--serif); letter-spacing: -0.012em; text-shadow: 0 1px 0 var(--deboss-hi), 0 -1px 0 var(--deboss-lo); text-wrap: balance; }
.book__count { position: relative; font: 600 0.8rem/1.3 var(--sans); letter-spacing: 0.02em; opacity: 0.92; }
.book__read:not(:empty)::before { content: " · "; }
.ledge { height: 12px; margin-inline: -1rem; background: linear-gradient(var(--paper-3), oklch(80% 0.012 95)); border-top: 1px solid oklch(97% 0.005 95); box-shadow: 0 6px 10px -6px rgb(0 0 0 / 0.35); position: relative; }
.ledge::after { content: ""; position: absolute; left: 0.8rem; right: 0.8rem; top: 5px; border-top: 1.5px dashed var(--line-strong); }
.book__cap { margin: 0.9rem 0 0; font-size: 0.92rem; line-height: 1.5; color: var(--ink-2); max-width: 13.5rem; text-wrap: pretty; }

.recent { padding-bottom: 3rem; }
.rows { list-style: none; margin: 0; padding: 0; max-width: 52rem; }
.row { display: grid; grid-template-columns: 22px 1fr; gap: 1.1rem; padding: 1.45rem 0; background: repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 14px) 0 0 / 100% 1.5px no-repeat; }
.row .knot { margin-top: 0.35rem; }
.row__title { font: 600 1.4rem/1.25 var(--serif); letter-spacing: -0.01em; text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size 0.3s var(--ease-out); }
.row__title:hover { background-size: 100% 1.5px; }
.row__sum { margin: 0.4rem 0 0.7rem; color: var(--ink-2); max-width: 44rem; text-wrap: pretty; }
.row__meta, .sig__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.35rem 0.7rem; margin: 0; font: 500 0.84rem/1.3 var(--sans); color: var(--ink-2); }
.row--empty { display: block; color: var(--ink-2); }

.legend { padding-top: 1rem; padding-bottom: 5rem; }
.legend__h { font: 600 1.55rem/1.2 var(--serif); letter-spacing: -0.01em; margin: 0 0 0.6rem; }
.legend__lead { max-width: 40rem; color: var(--ink-2); margin: 0 0 1.5rem; }
.legend__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); gap: 0; margin: 0; max-width: 52rem; }
.legend__list > div { padding: 1.1rem 1.4rem 1.2rem 0; background: repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 14px) 0 0 / 100% 1.5px no-repeat; }
.legend__list dt { font: 600 1.25rem/1.2 var(--serif); margin: 0 0 0.45rem; }
.legend__list dd { margin: 0; font-size: 0.94rem; color: var(--ink-2); }

.foot { padding: 2.2rem var(--gutter) 2.6rem; background: var(--paper-2); color: var(--ink-2); font-size: 0.92rem; }
.foot__name { font: 700 0.95rem var(--sans); font-stretch: 108%; color: var(--ink); margin: 0 0 0.3rem; }
.foot__text { margin: 0 0 0.8rem; max-width: 42rem; }
.foot__fine { margin: 0; font: 500 0.84rem var(--sans); }

/* ---------- covers: collection and paper ---------- */

.cover {
  position: relative; color: var(--cover-ink);
  padding: 6.6rem var(--gutter) 3.6rem;
  background-color: var(--cloth);
  background-image: var(--weave-light), var(--weave-dark), linear-gradient(170deg, var(--cloth-hi), var(--cloth) 60%, var(--cloth-lo));
  box-shadow: 0 14px 24px -16px rgb(0 0 0 / 0.55);
  --focus: var(--cover-ink);
}
.cover::after { content: ""; position: absolute; left: var(--gutter); right: var(--gutter); bottom: 14px; border-top: 2px dashed color-mix(in oklab, var(--cover-ink) 50%, transparent); }
.cover__inner { max-width: 62rem; }
.crumb { display: flex; flex-wrap: wrap; gap: 0.5rem; font: 600 0.85rem/1.3 var(--sans); margin: 0 0 1.5rem; opacity: 0.92; }
.crumb a { text-decoration: none; text-decoration-line: underline; text-decoration-style: dotted; }
.cover__title { font: 650 clamp(2.1rem, 4.8vw, 4rem)/1.07 var(--serif); letter-spacing: -0.022em; margin: 0 0 0.9rem; max-width: 22ch; text-wrap: balance; text-shadow: 0 1px 0 var(--deboss-hi), 0 -1px 0 var(--deboss-lo); }
.cover__sub { font: italic 400 clamp(1.1rem, 2vw, 1.4rem)/1.4 var(--serif); margin: 0 0 1rem; max-width: 40rem; opacity: 0.95; }
.cover__sum { font-size: 1.1rem; line-height: 1.55; max-width: 38rem; margin: 0; opacity: 0.94; text-wrap: pretty; }
.cover__count { margin: 1.3rem 0 0; font: 600 0.88rem/1.3 var(--sans); letter-spacing: 0.02em; opacity: 0.9; }

.sigs-wrap { padding: 3rem var(--gutter) 5rem; }
.sigs { list-style: none; margin: 0; padding: 0 0 0 3.8rem; max-width: 54rem; position: relative; background: var(--chain-paper) 0 0 / 24px 24px repeat-y; }
.sig { position: relative; padding: 1.5rem 0 1.9rem; }
.sig::before { content: ""; position: absolute; left: -3.8rem; top: 1.2rem; width: 24px; height: 38px; background: var(--paper); }
.sig > .knot { position: absolute; left: -3.8rem; top: 1.6rem; width: 24px; height: 30px; }
.sig--empty { color: var(--ink-2); padding: 0; }
.sig--empty::before { display: none; }
.sig__title { font: 600 1.7rem/1.2 var(--serif); letter-spacing: -0.012em; margin: 0 0 0.3rem; }
.sig__title a { text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat; transition: background-size 0.3s var(--ease-out); }
.sig__title a:hover { background-size: 100% 1.5px; }
.sig__sub { font: italic 400 1.1rem/1.4 var(--serif); color: var(--ink-2); margin: 0 0 0.6rem; }
.sig__sum { margin: 0 0 0.8rem; max-width: 42rem; text-wrap: pretty; }
.sig__after { margin: 0 0 0.8rem; font: 500 0.88rem/1.4 var(--sans); color: var(--ink-2); }
.sig__main { min-width: 0; }

/* ---------- paper layout ---------- */

.paper { display: grid; grid-template-columns: minmax(0, 40rem); justify-content: center; padding: 2rem var(--gutter) 5rem; row-gap: 0; }
.paper__top { order: 1; }
.toc { order: 2; margin-bottom: 1.5rem; }
.prose { order: 3; min-width: 0; }

.meta { margin: 0 0 1.6rem; }
.meta__list { display: flex; flex-wrap: wrap; gap: 1.1rem 2.2rem; margin: 0 0 1.2rem; }
.meta__list dt { font: 600 0.74rem/1 var(--sans); letter-spacing: 0.04em; color: var(--ink-2); margin: 0 0 0.4rem; }
.meta__list dd { margin: 0; font: 500 0.95rem/1.3 var(--sans); }
.meta__actions { display: none; flex-wrap: wrap; gap: 0.6rem; margin: 0; }
.js .meta__actions { display: flex; }
.key { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.4rem 1.5rem; margin: 0 0 1.6rem; padding: 0.8rem 0; font: 500 0.9rem/1.3 var(--sans); background: repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 14px) 0 0 / 100% 1.5px no-repeat, repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 14px) 0 100% / 100% 1.5px no-repeat; }
.key__lead { color: var(--ink-2); font-weight: 600; }

.readfirst { margin: 0 0 1.8rem; padding: 1rem 1.2rem 1.1rem; background: var(--paper-2); border: 1.5px dashed var(--line-strong); border-radius: 3px; }
.readfirst__h { font: 700 0.95rem/1.2 var(--sans); margin: 0 0 0.2rem; }
.readfirst__lead { margin: 0 0 0.7rem; font-size: 0.92rem; color: var(--ink-2); }
.readfirst__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.45rem; }
.rf { display: flex; align-items: center; gap: 0.7rem; font-weight: 500; }
.rf .knot { width: 18px; height: 18px; }
.rf .row__state:not(:empty) { font: 500 0.8rem var(--sans); color: var(--ink-2); }
.rf .row__state:not(:empty)::before { content: "· "; }

.toc { font-family: var(--sans); }
.toc summary { cursor: pointer; font: 600 0.9rem/1 var(--sans); padding: 0.75rem 1rem; border: 1.5px solid var(--ink); border-radius: 4px; list-style: none; display: flex; justify-content: space-between; align-items: center; }
.toc summary::-webkit-details-marker { display: none; }
.toc summary::after { content: "+"; font-size: 1.1rem; }
.toc details[open] summary::after { content: "–"; }
.toc__list { list-style: none; margin: 0.9rem 0 0; padding: 0 0 0 1.5rem; position: relative; font-size: 0.88rem; line-height: 1.35; }
.toc__list::before { content: ""; position: absolute; left: 4px; top: 0.9rem; bottom: 0.9rem; width: 2px; background: repeating-linear-gradient(180deg, var(--line-strong) 0 6px, transparent 6px 10px); }
.toc__i { position: relative; }
.toc__i a { display: block; padding: 0.38rem 0; color: var(--ink-2); text-decoration: none; transition: color 0.15s; }
.toc__i a:hover { color: var(--ink); text-decoration: underline; }
.toc__i::before { content: ""; position: absolute; left: -1.5rem; top: 0.72rem; width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--line-strong); background: var(--paper); transition: background 0.2s, border-color 0.2s, box-shadow 0.2s; }
.toc__i--3 { padding-left: 0.9rem; font-size: 0.84rem; }
.toc__i--3::before { left: -1.4rem; width: 7px; height: 7px; top: 0.82rem; margin-left: 1.5px; }
.toc__i.is-done::before { background: var(--accent); border-color: var(--accent); }
.toc__i.is-done a { color: var(--accent); }
.toc__i.is-current::before { background: var(--paper); border-color: var(--accent); box-shadow: 0 0 0 4px color-mix(in oklab, var(--accent) 22%, transparent); }
.toc__i.is-current a { color: var(--ink); font-weight: 650; }

@media (min-width: 1000px) {
  .paper { grid-template-columns: 13rem minmax(0, 40rem); column-gap: 3rem; }
  .toc { grid-column: 1; grid-row: 1 / span 3; order: 0; position: sticky; top: 1.5rem; align-self: start; max-height: calc(100dvh - 3rem); overflow: auto; margin: 0; padding-right: 0.5rem; }
  .paper__top { grid-column: 2; grid-row: 1; }
  .prose { grid-column: 2; grid-row: 2; }
  .toc summary { display: none; }
  .toc__list { margin-top: 0; }
}
@media (min-width: 1380px) {
  .paper { padding-right: calc(var(--gutter) + 17.5rem); }
}

/* ---------- prose ---------- */

.prose { font-size: 1.1563rem; line-height: 1.62; font-variant-numeric: oldstyle-nums; hyphens: manual; }
.prose > :first-child { margin-top: 0; }
.prose p { margin: 0 0 1.1em; text-wrap: pretty; }
.prose h2, .prose h3, .prose h4 { position: relative; font-family: var(--serif); text-wrap: balance; }
.prose h2 { font-weight: 700; font-size: 1.95rem; line-height: 1.15; letter-spacing: -0.016em; margin: 3.4rem 0 1.1rem; }
.prose h3 { font-weight: 650; font-size: 1.32rem; line-height: 1.25; letter-spacing: -0.008em; margin: 2.3rem 0 0.6rem; }
.prose h4 { font-weight: 650; font-size: 1.1rem; margin: 1.8rem 0 0.4rem; }
.h-anchor { position: absolute; inset: 0 auto 0 -1.7rem; width: 1.5rem; text-decoration: none; }
.h-anchor::before { content: ""; position: absolute; left: 0; top: 0.4em; width: 1rem; height: 1.2rem; background: var(--accent); -webkit-mask: var(--lobe) center / contain no-repeat; mask: var(--lobe) center / contain no-repeat; opacity: 0; transition: opacity 0.15s; }
.prose h2:hover .h-anchor::before, .h-anchor:focus-visible::before { opacity: 0.8; }
.prose h2, .prose h3 { scroll-margin-top: 1.5rem; }
.prose ul, .prose ol { margin: 0 0 1.2em; padding-left: 1.35em; }
.prose li { margin: 0.35em 0; padding-left: 0.2em; }
.prose li::marker { color: var(--accent); }
.prose a { text-decoration-color: color-mix(in oklab, var(--accent) 60%, transparent); text-decoration-thickness: 1.5px; color: var(--accent); }
.prose a:hover { text-decoration-color: var(--accent); }
.prose a.ext::after { content: "↗"; font: 600 0.72em var(--sans); margin-left: 0.15em; vertical-align: 0.2em; text-decoration: none; display: inline-block; }
.prose strong { font-weight: 650; }
.prose hr { border: 0; height: 12px; margin: 2.6rem 0; background: var(--chain-paper) center / 24px 24px repeat-x; -webkit-mask: linear-gradient(90deg, transparent, black 20%, black 80%, transparent); mask: linear-gradient(90deg, transparent, black 20%, black 80%, transparent); }
.prose blockquote { margin: 1.8rem 0; padding: 1.2rem 0 1.2rem 1.4rem; font-style: italic; font-size: 1.08em; background: repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 14px) 0 0 / 100% 1.5px no-repeat, repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 14px) 0 100% / 100% 1.5px no-repeat; }
.prose blockquote p:last-child { margin-bottom: 0; }
.prose img { margin: 1.6rem auto; border-radius: 3px; }

.table-wrap { overflow-x: auto; margin: 1.6rem 0; -webkit-overflow-scrolling: touch; }
.prose table { width: 100%; border-collapse: collapse; font: 400 0.94rem/1.45 var(--sans); }
.prose th { text-align: left; font-weight: 650; font-size: 0.78rem; letter-spacing: 0.02em; color: var(--ink-2); padding: 0.6rem 0.8rem 0.6rem 0; border-bottom: 2px solid var(--ink); white-space: nowrap; }
.prose td { padding: 0.7rem 0.8rem 0.7rem 0; vertical-align: top; border-bottom: 1.5px dashed var(--line-strong); }
.prose td:first-child { font-weight: 600; }
.prose tr:last-child td { border-bottom-color: var(--ink); border-bottom-style: solid; }

/* ---------- right-to-left text ---------- */

.rtl { font-family: "Amiri", "Noto Naskh Arabic", serif; font-size: 1.2em; line-height: 1.5; unicode-bidi: isolate; font-variant-numeric: normal; }
.rtl-ur { font-family: "Noto Nastaliq Urdu", "Amiri", serif; font-size: 1.08em; line-height: 1.5; }
td .rtl, th .rtl { white-space: nowrap; }
.rtl-block { margin: 1.5rem 0 0.4rem; padding: 0.9rem 1.2rem; background: var(--paper-2); border-radius: 3px; font-family: "Amiri", "Noto Naskh Arabic", serif; font-size: 1.65rem; line-height: 2; font-variant-numeric: normal; }
.rtl-block.rtl-ur { font-family: "Noto Nastaliq Urdu", "Amiri", serif; font-size: 1.35rem; line-height: 2.3; }
.rtl-block p { margin: 0; }
.rtl-cite { margin: 0 0 1.6rem; font: 500 0.88rem/1.4 var(--sans); color: var(--ink-2); }

/* ---------- slips: callouts as tipped-in paper ---------- */

.slip { --c: var(--accent); margin: 1.8rem 0; padding: 0.95rem 1.15rem 0.35rem; background: var(--paper-2); border: 1.5px dashed var(--c); border-radius: 3px; font-size: 1rem; line-height: 1.55; }
.slip--ok { --c: var(--ok); }
.slip--q { --c: var(--q); }
.slip--x { --c: var(--ink-2); }
.slip--caution { --c: var(--caution); }
.slip__head { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.5rem; font: 700 0.9rem/1.2 var(--sans); color: var(--c); }
.slip__mark svg { display: block; width: 28px; height: 10px; fill: none; stroke: var(--c); stroke-width: 1.6; stroke-linecap: round; }
.slip__mark svg circle { fill: var(--c); stroke: none; }
.slip__body > :last-child { margin-bottom: 0.6em; }
.slip--x .slip__body { color: var(--ink-2); }

/* ---------- sidenotes ---------- */

.sn { position: relative; }
.sn__ref { font: 700 0.66rem/1 var(--sans); vertical-align: super; padding: 0 0.22em; color: var(--accent); text-decoration: none; font-variant-numeric: normal; }
.prose a.sn__ref { text-decoration: none; }
.sn__ref::before { content: "["; }
.sn__ref::after { content: "]"; }
.prose a.sn__ref::after { content: "]"; margin: 0; vertical-align: super; font: inherit; }
.sn__note { display: block; margin: 0.7rem 0 1rem; padding: 0.65rem 0.85rem; background: var(--paper-2); border: 1.5px dashed var(--line-strong); border-radius: 3px; font: 400 0.88rem/1.5 var(--serif); font-style: normal; font-variant-numeric: normal; color: var(--ink-2); text-indent: 0; }
.sn__num { font: 700 0.72rem var(--sans); color: var(--accent); margin-right: 0.45em; }
.js .sn__note { display: none; }
.js .sn__note.is-open { display: block; }

@media (min-width: 1380px) {
  .sn__note, .js .sn__note { display: block; float: right; clear: right; width: 15.5rem; margin: 0.15rem -17.5rem 1rem 0; box-shadow: 0 1px 0 var(--line), 0 8px 14px -10px rgb(0 0 0 / 0.3); border-style: solid; border-color: var(--line); background: var(--paper); font-size: 0.86rem; }
  .sn__note::before { content: ""; position: absolute; left: -2rem; top: 0.95rem; width: 1.6rem; border-top: 1.5px dashed var(--line-strong); }
  .sn__note { position: relative; }
}

/* ---------- figures and diagrams ---------- */

.fig { margin: 2.2rem 0; }
.fig__cap { font: 700 0.92rem/1.35 var(--sans); margin: 0 0 0.9rem; color: var(--ink); }
.fig__cap--below { margin: 0.6rem 0 0; font-weight: 500; color: var(--ink-2); }
.fig--plain img { margin: 0 auto; }

.bz { display: block; width: 100%; height: auto; overflow: visible; }
/* Below ~40rem the diagram keeps a legible size and scrolls, rather than shrinking its labels to 6px. */
.bz-scroll { overflow-x: auto; overscroll-behavior-x: contain; padding-bottom: 0.4rem; }
.bz-scroll .bz { min-width: 36rem; }
.bz-scroll:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.bz-label { font: 650 13px var(--sans); fill: var(--ink); }
.bz-word { font: italic 600 15px var(--serif); fill: var(--ink); }
.bz-repeat { fill: var(--ink-2); font-weight: 400; }
.bz-phase { font: 600 10.5px var(--sans); letter-spacing: 0.05em; text-transform: uppercase; fill: var(--ink-2); }
.bz-tick { stroke: var(--line-strong); stroke-width: 1; stroke-dasharray: 2 3; }
.bz-axis { stroke: var(--line-strong); stroke-width: 1; }
.bz-shade { fill: none; stroke: var(--accent); stroke-width: 6; stroke-linecap: round; stroke-linejoin: round; }
.bz-thread { fill: none; stroke: #f6f1e2; stroke-width: 2.6; stroke-linecap: round; stroke-linejoin: round; }

.prose ol.chain { list-style: none; margin: 0; padding: 0 0 0 3.2rem; position: relative; background: var(--chain-paper) 0 0 / 24px 24px repeat-y; }
.prose li.chain__node { position: relative; margin: 0; padding: 0.55rem 0 0.9rem; min-height: 3.4rem; }
.chain__station { position: absolute; left: -3.2rem; top: 0.75rem; width: 24px; height: 24px; background: var(--paper); border-radius: 50%; }
.chain__station::after { content: ""; position: absolute; inset: 4px; border-radius: 50%; border: 2.5px solid var(--deep); background: var(--deep); }
.chain__node.is-q .chain__station::after { background: var(--paper); border-style: dashed; border-color: var(--q); }
.chain__body { font-size: 1rem; line-height: 1.45; }
.chain__name { font-weight: 650; font-size: 1.08rem; }
.chain__note { display: block; margin-top: 0.15rem; color: var(--ink-2); font-size: 0.94rem; }

.prose ol.tl { list-style: none; margin: 0; padding: 0 0 0 1.8rem; position: relative; }
.tl::before { content: ""; position: absolute; left: 5px; top: 0.6rem; bottom: 0.6rem; width: 2px; background: repeating-linear-gradient(180deg, var(--deep) 0 7px, transparent 7px 11px); }
.prose li.tl__item { position: relative; margin: 0; padding: 0.35rem 0 1rem; display: grid; grid-template-columns: 6.2rem 1fr; gap: 0.2rem 1rem; }
.tl__station { position: absolute; left: -1.8rem; top: 0.8rem; width: 12px; height: 12px; border-radius: 50%; background: var(--deep); box-shadow: 0 0 0 3px var(--paper); }
.tl__date { font: 700 0.9rem/1.5 var(--sans); font-variant-numeric: tabular-nums; }
.tl__note { display: block; color: var(--ink-2); font-size: 0.92rem; }

.bars { display: grid; gap: 0.9rem; }
.bars__row { display: grid; grid-template-columns: minmax(7rem, 12rem) 1fr 6.5rem; gap: 0.3rem 0.9rem; align-items: center; font: 500 0.92rem/1.3 var(--sans); }
.bars__track { height: 18px; background: repeating-linear-gradient(90deg, var(--line) 0 6px, transparent 6px 9px); border-radius: 2px; position: relative; }
.bars__fill { position: absolute; inset: 0 auto 0 0; width: var(--w); background: repeating-linear-gradient(90deg, var(--accent) 0 6px, transparent 6px 9px); border-radius: 2px; }
.bars__value { font-weight: 700; font-variant-numeric: tabular-nums; text-align: right; white-space: nowrap; }
.bars__unit { font-weight: 500; color: var(--ink-2); }
.bars__note { grid-column: 2 / -1; font-size: 0.84rem; color: var(--ink-2); }

.register { font-size: 0.9rem; }
.reg__status { white-space: nowrap; }
.register tr.is-x .reg__claim { color: var(--ink-2); text-decoration: line-through; text-decoration-thickness: 1px; }
.register td:first-child { font-weight: 500; }
.reg__claim { min-width: 11rem; }

.mx { white-space: nowrap; }
.mx__mark { display: inline-block; width: 11px; height: 11px; border-radius: 50%; margin-right: 0.45rem; vertical-align: -1px; border: 2px solid var(--deep); }
.mx-yes .mx__mark { background: var(--deep); }
.mx-partial .mx__mark { background: linear-gradient(90deg, var(--deep) 50%, transparent 50%); }
.mx-disputed .mx__mark { border-color: var(--q); border-style: dashed; }
.mx-no .mx__mark { border-color: var(--line-strong); }
.mx__word { font-weight: 600; }
.mx__note { display: block; white-space: normal; font-size: 0.82rem; color: var(--ink-2); margin: 0.2rem 0 0 1.05rem; font-weight: 400; }

.sources { margin-top: 3.6rem; }
.sources h2, .leads__h { margin-top: 0; }
.sources__list { list-style: none; padding: 0 !important; margin: 0; display: grid; gap: 0.55rem; font: 400 0.95rem/1.45 var(--sans); }
.sources__list li { display: grid; grid-template-columns: 6.5rem 1fr; gap: 0.8rem; align-items: baseline; padding: 0; margin: 0; }
.src__kind { justify-self: start; font: 600 0.7rem/1 var(--sans); letter-spacing: 0.03em; padding: 0.25rem 0.45rem; border: 1.5px solid currentColor; border-radius: 2px; }
.src--primary .src__kind { color: var(--ok); }
.src--secondary .src__kind { color: var(--ink-2); }
.src--unverified .src__kind { color: var(--q); border-style: dashed; }
.src a { word-break: break-word; }

.leads { margin-top: 3.4rem; }
.leads__h { font: 700 1.5rem/1.2 var(--serif); }
.leads__list { list-style: none; padding: 0 !important; margin: 0; display: grid; gap: 1rem; }
.leads__list li { padding: 0; margin: 0; display: grid; gap: 0.15rem; }
.leads__list a { font: 600 1.2rem/1.3 var(--serif); }
.leads__list span { color: var(--ink-2); font-size: 0.96rem; }

/* ---------- search ---------- */

.searchhead { padding: 1.5rem var(--gutter) 1rem; max-width: 56rem; }
.searchhead__title { font: 540 clamp(2.2rem, 5vw, 3.6rem)/1.05 var(--serif); letter-spacing: -0.026em; margin: 0 0 1.4rem; }
.sform { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.sform input { flex: 1 1 18rem; min-width: 0; min-height: 3.2rem; padding: 0.7rem 1rem; font: 400 1.2rem var(--serif); color: var(--ink); background: var(--paper); border: 2px solid var(--ink); border-radius: 4px; }
.sform input::placeholder { color: var(--ink-2); opacity: 0.8; }
.sform input:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
.s-status { min-height: 1.5rem; margin: 1rem 0 0; font: 500 0.95rem var(--sans); color: var(--ink-2); }
.s-status.is-error { color: var(--q); font-weight: 600; }
.results { list-style: none; margin: 0; padding: 0 var(--gutter) 5rem; max-width: 56rem; }
.result { padding: 1.3rem 0; background: repeating-linear-gradient(90deg, var(--line-strong) 0 8px, transparent 8px 14px) 0 0 / 100% 1.5px no-repeat; }
.result__title { font: 600 1.4rem/1.25 var(--serif); letter-spacing: -0.01em; }
.result__meta { margin: 0.2rem 0 0.4rem; font: 500 0.84rem var(--sans); color: var(--ink-2); }
.result__sum { margin: 0; color: var(--ink-2); max-width: 44rem; }
.result__in { margin: 0.5rem 0 0; font: 500 0.86rem/1.4 var(--sans); color: var(--ink-2); }
.hit { font-weight: 650; color: var(--ink); background: linear-gradient(90deg, var(--ok) 62%, transparent 0) 0 100% / 9px 2px repeat-x; }
.s-note { padding: 0 var(--gutter) 3rem; color: var(--ink-2); }

.lost { padding: 3rem var(--gutter) 6rem; max-width: 46rem; }
.lost__title { font: 540 clamp(2.3rem, 5.6vw, 4.2rem)/1.04 var(--serif); letter-spacing: -0.028em; margin: 0 0 1.2rem; text-wrap: balance; }
.lost__text { font-size: 1.15rem; color: var(--ink-2); margin: 0 0 1.8rem; }

/* ---------- narrow screens ---------- */

@media (max-width: 640px) {
  :root { --rail: 30px; }
  body { font-size: 1rem; }
  .rail .chain-col { right: 3px; }
  .top { padding-block: 0.9rem; }
  .top__nav { gap: 1.1rem; }
  .top__name span { max-width: 9.5rem; line-height: 1.15; }
  .cover { padding-top: 5.6rem; padding-bottom: 3rem; }
  .prose { font-size: 1.08rem; }
  .prose h2 { font-size: 1.65rem; margin-top: 2.8rem; }
  .h-anchor { display: none; }
  .sigs { padding-left: 3.2rem; }
  .sig::before, .sig > .knot { left: -3.2rem; }
  .shelf__list { grid-template-columns: repeat(auto-fill, minmax(10.5rem, 1fr)); column-gap: 1.2rem; padding: 0 0.5rem; }
  .book { padding-left: 3.2rem; }
  .book__title { font-size: 1.25rem; }
  .book__cap { max-width: none; }
  .bars__row { grid-template-columns: 1fr 5.6rem; }
  .bars__label { grid-column: 1 / -1; }
  .bars__track { grid-column: 1; }
  .bars__note { grid-column: 1 / -1; }
  .tl__item { grid-template-columns: 1fr; }
  .sources__list li { grid-template-columns: 1fr; gap: 0.3rem; }
  .row { grid-template-columns: 20px 1fr; gap: 0.8rem; }
  .btn { flex: 1 1 auto; }
  .meta__actions .btn { flex: 1 1 auto; }
  .rtl-block { font-size: 1.45rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}

/* ---------- print ---------- */

@media print {
  :root { --rail: 0px; }
  body { background: #fff; font-size: 11pt; padding: 0; }
  .rail, .top, .foot, .skip, .toc, .meta__actions, .btn { display: none !important; }
  .cover { background: none !important; color: #000; padding: 0 0 1rem; box-shadow: none; }
  .cover::after { display: none; }
  .cover__title { text-shadow: none; }
  .paper { display: block; padding: 0; }
  .prose { font-size: 11pt; }
  .sn__note, .js .sn__note { display: block !important; float: none; width: auto; margin: 0.4rem 0; box-shadow: none; }
  a { color: inherit; }
  .prose a.ext::after { content: " (" attr(href) ")"; font: inherit; }
  .fig, .slip, .readfirst { break-inside: avoid; }
}
