:root{--paper:#f4eee3;--paper-2:#ebe3d3;--card:#fbf7ef;--ink:#2b2520;--ink-2:#5a5047;--ink-3:#8a7f73;--rule:#d8ccb6;--gold:#c9a24b;--gold-deep:#9b7a2c;--bukhari:#1f6f78;--muslim:#a0442c;--display:"IBM Plex Sans Arabic", system-ui, sans-serif;--naskh:"Noto Naskh Arabic", serif;--ui:"IBM Plex Sans Arabic", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background-color:var(--paper);color:var(--ink);font-family:var(--ui);-webkit-font-smoothing:antialiased;background-image:radial-gradient(1200px 600px at 85% -10%,#c9a24b24,#0000 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.28 0 0 0 0 0.18 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:no-repeat,repeat;background-attachment:fixed,scroll;font-size:15px}button{font:inherit;color:inherit;cursor:pointer}.sr-only{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--ink-3);font-size:13px}.app{flex-direction:column;min-height:100%;display:flex}.app.view-explorer{height:100%}.shell{flex:1;grid-template:"catalog stage folio"minmax(0,1fr)"foot foot foot"/320px minmax(0,1fr) 410px;min-height:0;display:grid}.masthead{z-index:20;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--rule);background:#f6f1e8db;align-items:center;gap:18px;padding:14px 24px 12px;display:flex;position:sticky;top:0}.brand{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.nav{gap:4px;margin-inline-start:auto;display:flex}.nav a{color:var(--ink-2);border:1px solid #0000;border-radius:9px;padding:7px 14px;font-size:14px;font-weight:500;text-decoration:none}.nav a:hover{color:var(--ink);border-color:var(--rule)}.nav a.on{background:var(--ink);color:var(--paper)}a{color:var(--gold-deep)}.seal{background:var(--ink);width:44px;height:44px;color:var(--gold);box-shadow:inset 0 0 0 1px #c9a24b80, 0 2px 0 var(--gold-deep);border-radius:12px;place-items:center;display:grid}.seal svg{width:28px;height:28px}.brand h1{font-family:var(--display);letter-spacing:0;margin:0;font-size:24px;font-weight:700;line-height:1.1}.brand p{color:var(--ink-2);margin:2px 0 0;font-size:14px}.badge-proto{color:var(--gold-deep);background:#c9a24b14;border:1px solid #c9a24b73;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600}.catalog{border-inline-end:1px solid var(--rule);flex-direction:column;grid-area:catalog;min-height:0;padding:16px 0 0;display:flex}.search{padding:0 16px}.search input{border:1px solid var(--rule);background:var(--card);width:100%;font:15px var(--ui);color:var(--ink);border-radius:10px;outline:none;padding:11px 14px;transition:border-color .15s,box-shadow .15s}.search input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #c9a24b33}.count{color:var(--ink-3);margin:10px 18px 6px;font-size:12px}.list{flex:1;margin:0;padding:0 10px 16px;list-style:none;overflow-y:auto}.list li{animation:.35s both rise}.list a{color:inherit;border:1px solid #0000;border-radius:10px;margin-bottom:2px;padding:11px 12px;text-decoration:none;transition:background .15s,border-color .15s;display:block}.list a:hover{border-color:var(--rule);background:#fbf7efcc}.list a.is-active{background:var(--card);border-color:var(--gold);box-shadow:inset -3px 0 0 var(--gold)}.list .title{-webkit-line-clamp:2;font-family:var(--naskh);-webkit-box-orient:vertical;font-size:16px;line-height:1.75;display:-webkit-box;overflow:hidden}.list .meta{align-items:center;gap:6px;margin-top:4px;font-size:11.5px;display:flex}.pill{color:#fbf6ec;border-radius:6px;padding:1px 7px;font-weight:500}.pill-b{background:var(--bukhari)}.pill-m{background:var(--muslim)}.routes{color:var(--ink-3);margin-inline-start:auto}.empty{color:var(--ink-3);padding:20px 12px;font-size:13px}.stage{flex-direction:column;grid-area:stage;min-width:0;min-height:0;display:flex;position:relative}.stage-head{padding:18px 26px 10px}.hadith-title{font-family:var(--naskh);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin:0;padding-inline-start:34px;font-size:23px;font-weight:600;line-height:1.85;display:-webkit-box;position:relative;overflow:hidden}.hadith-title:before{content:"۞";inset-inline-start:0;color:var(--gold);font-size:22px;position:absolute;top:2px}.stats{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:6px;font-size:13.5px;display:flex}.stats b{color:var(--ink);font-weight:600}.madar-tag{border:1px solid var(--gold);color:var(--gold-deep);background:#c9a24b24;border-radius:999px;padding:3px 12px;font-size:13px;font-weight:500}.madar-tag:hover{background:#c9a24b42}.controls{flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:12px;display:flex}.seg{background:var(--paper-2);border:1px solid var(--rule);border-radius:10px;padding:3px;display:inline-flex}.seg button{color:var(--ink-2);background:0 0;border:0;border-radius:7px;padding:6px 14px;font-size:13.5px}.seg button.on{background:var(--ink);color:var(--paper)}.legend{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:4px 14px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend .ln{border-radius:2px;width:18px;height:3px}.legend .sw{border:1.2px solid;border-radius:4px;width:13px;height:13px}.legend .sep{background:var(--rule);width:1px;height:14px}.graph-host{border:1px solid var(--rule);background-color:#fbf7ef8c;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='none' stroke='%23c9a24b' stroke-opacity='.16' stroke-width='.8'%3E%3Cpath d='M28 8l6 14 14 6-14 6-6 14-6-14-14-6 14-6z'/%3E%3Crect x='18' y='18' width='20' height='20' transform='rotate(45 28 28)'/%3E%3C/g%3E%3C/svg%3E");border-bottom:0;border-radius:16px 16px 0 0;flex:1;min-height:360px;margin:4px 16px 0;position:relative;overflow:hidden}.graph-tools{inset-inline-end:12px;z-index:2;flex-direction:column;gap:6px;display:flex;position:absolute;top:12px}.graph-tools button{border:1px solid var(--rule);background:var(--card);width:34px;height:34px;color:var(--ink);box-shadow:0 1px 0 var(--rule);border-radius:9px;font-size:16px;line-height:1}.graph-tools button:hover{border-color:var(--gold)}.folio{border-inline-start:1px solid var(--rule);background:#fbf7ef73;grid-area:folio;padding:18px 20px 24px;overflow-y:auto}.eyebrow{letter-spacing:0;color:var(--gold-deep);margin:0 0 4px;font-size:12px;font-weight:600}.hint{color:var(--ink-3);margin:0 0 14px;font-size:12.5px;line-height:1.7}.narrations{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.narration{background:var(--card);border:1px solid var(--rule);border-inline-start:3px solid var(--bukhari);border-radius:12px;padding:12px 14px 4px;transition:box-shadow .15s,transform .15s;animation:.3s both rise}.narration.book-muslim{border-inline-start-color:var(--muslim)}.narration:hover{transform:translateY(-1px);box-shadow:0 6px 20px -12px #2b252073}.narration header{flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;display:flex}.book{color:#fbf6ec;border-radius:6px;padding:2px 9px;font-weight:600}.book.book-bukhari{background:var(--bukhari)}.book.book-muslim{background:var(--muslim)}.no{color:var(--ink-2);cursor:help;border-bottom:1px dotted var(--ink-3)}.kitab{color:var(--ink-2);font-weight:500}.sub{color:var(--ink-3)}.narration-text{font-family:var(--naskh);margin:8px 0;font-size:17.5px;line-height:2.15}.narration-text .isnad{color:var(--ink-2)}.narration-text .matn{color:var(--ink)}.mention{font-family:var(--naskh);font-size:inherit;line-height:inherit;color:var(--ink-2);background:0 0;border:0;border-bottom:1px dashed #9b7a2c99;border-radius:2px;padding:0 1px}.mention:hover{color:var(--gold-deep);background:#c9a24b24}.mention.is-selected{color:var(--ink);background:#c9a24b4d}.narrator{animation:.25s both rise;position:relative}.narrator .close{inset-inline-end:-4px;color:var(--ink-3);background:0 0;border:0;font-size:26px;line-height:1;position:absolute;top:-6px}.narrator .close:hover{color:var(--ink)}.narrator h2{font-family:var(--display);margin:0;font-size:22px;font-weight:600;line-height:1.5}.nasab{font-family:var(--naskh);color:var(--ink-2);margin:2px 0 10px;font-size:16px;line-height:1.7}.grade{font-family:var(--naskh);border:1px solid;border-radius:10px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 14px;padding:8px 12px;font-size:16px;line-height:1.8;display:flex}.grade-tier{font-family:var(--ui);font-size:13px;font-weight:600}.facts{grid-template-columns:1fr 1fr;gap:8px;margin:0 0 12px;display:grid}.facts div{background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:8px 10px}.facts dt{color:var(--ink-3);font-size:11.5px}.facts dd{margin:2px 0 0;font-weight:500}.flags{flex-wrap:wrap;gap:6px;display:flex}.flags span{color:#8a3a28;background:#f3dcd3;border-radius:6px;padding:2px 8px;font-size:12px}.places{color:var(--ink-2);font-size:13px;line-height:1.8}.narrator h3{font-family:var(--display);border-bottom:1px solid var(--rule);margin:18px 0 8px;padding-bottom:6px;font-size:15px;font-weight:600}.rel{flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:8px;display:flex}.rel>span{color:var(--ink-3);min-width:52px;font-size:12px}.chip{border:1px solid var(--rule);background:var(--card);border-radius:8px;padding:3px 9px;font-size:12.5px}button.chip:hover{border-color:var(--gold)}.chip-prophet{background:var(--ink);color:#f4e7c4;border-color:var(--ink);font-family:var(--naskh);font-size:14px}.sayings{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.sayings li{background:var(--card);border:1px solid var(--rule);border-radius:8px;flex-direction:column;gap:2px;padding:8px 10px;display:flex}.sayings strong{color:var(--gold-deep);font-size:12px;font-weight:600}.sayings span{font-family:var(--naskh);font-size:15.5px;line-height:1.85}.colophon{color:var(--ink-3);border-top:1px solid var(--rule);grid-area:foot;padding:8px 24px;font-size:11.5px;line-height:1.7}.error{color:var(--muslim);margin:24px}.catalog-filters{flex-wrap:wrap;gap:4px;padding:10px 16px 0;display:flex}.catalog-filters button{border:1px solid var(--rule);color:var(--ink-2);background:0 0;border-radius:999px;padding:3px 10px;font-size:12.5px}.catalog-filters button small{color:var(--ink-3);font-size:11px}.catalog-filters button.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}.catalog-filters button.on small{color:var(--gold)}.pill-athar{background:#8a7f73}.star{color:var(--gold);font-size:12px}.more{border:1px dashed var(--rule);width:100%;color:var(--ink-2);background:0 0;border-radius:10px;margin:6px 0;padding:9px;font-size:13px}.more:hover{border-color:var(--gold);color:var(--ink)}.tag{background:var(--paper-2);border:1px solid var(--rule);border-radius:6px;padding:1px 8px;font-size:12.5px}.legend .ln-dashed{background:repeating-linear-gradient(to left, var(--ink-2) 0 5px, transparent 5px 8px)}.notice{color:var(--ink-2);background:#c9a24b1f;border:1px solid #c9a24b73;border-radius:10px;margin:10px 0 0;padding:8px 12px;font-size:13px;line-height:1.7}.graph-empty{border:1px dashed var(--rule);color:var(--ink-3);text-align:center;border-radius:16px;flex:1;place-items:center;margin:4px 16px 0;padding:24px;line-height:1.8;display:grid}.appearances{margin:0;padding:0;list-style:none}.appearances a{color:inherit;border:1px solid #0000;border-radius:8px;padding:8px 10px;text-decoration:none;display:block}.appearances a:hover{background:var(--card);border-color:var(--rule)}.appearances .title{-webkit-line-clamp:2;font-family:var(--naskh);-webkit-box-orient:vertical;font-size:15px;line-height:1.75;display:-webkit-box;overflow:hidden}.appearances .meta{align-items:center;gap:6px;margin-top:2px;font-size:11.5px;display:flex}.loading{animation:1.2s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.results section{margin-bottom:14px}.results h4{color:var(--gold-deep);align-items:baseline;gap:8px;margin:4px 6px 6px;font-size:13px;font-weight:600;display:flex}.results h4 small{color:var(--ink-3);font-size:12px;font-weight:400}.narrator-hits,.text-hits{margin:0;padding:0;list-style:none}.narrator-hits a{color:inherit;border:1px solid #0000;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;text-decoration:none;display:flex}.narrator-hits a:hover{background:var(--card);border-color:var(--rule)}.narrator-hits .dot{border:1.2px solid;border-radius:50%;flex:none;width:11px;height:11px}.narrator-hits .nm{flex-direction:column;flex:1;min-width:0;display:flex}.narrator-hits .nm span{font-weight:500}.narrator-hits .nm small{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;overflow:hidden}.narrator-hits .reach{color:var(--ink-3);flex:none;font-size:11.5px}.text-hits button{text-align:start;background:0 0;border:1px solid #0000;border-radius:10px;width:100%;padding:9px 10px;display:block}.text-hits button:hover{background:var(--card);border-color:var(--rule)}.text-hits .meta{align-items:center;gap:6px;font-size:11.5px;display:flex}.routes-inline{color:var(--ink-3)}.snip{font-family:var(--naskh);color:var(--ink-2);margin-top:3px;font-size:15.5px;line-height:1.85;display:block}.snip mark{color:var(--ink);background:#c9a24b59;border-radius:3px;padding:0 1px}.narration.flash{animation:2.2s ease-out flash}@keyframes flash{0%,30%{background:#fbf1d6;box-shadow:0 0 0 3px #c9a24bb3}to{box-shadow:0 0 #c9a24b00}}.stage-empty{text-align:center;max-width:520px;color:var(--ink-2);margin:auto;padding:40px 24px;line-height:1.9}.stage-empty h2{color:var(--ink);margin:4px 0 10px;font-size:24px}.folio-empty ul{color:var(--ink-2);padding-inline-start:18px;font-size:14px;line-height:1.9}.madar-wrap{align-items:center;gap:6px;display:inline-flex}.term-link{border:1px solid var(--rule);background:var(--card);width:20px;height:20px;color:var(--ink-2);border-radius:50%;place-items:center;font-size:12px;line-height:1;text-decoration:none;display:inline-grid}.term-link:hover{border-color:var(--gold);color:var(--ink)}.grade-help{margin:-8px 0 14px;font-size:12px}.page{flex:1}.page-inner{max-width:960px;margin:0 auto;padding:32px 24px 64px}.page-title{margin:4px 0 10px;font-size:30px;line-height:1.5}.lede{color:var(--ink-2);max-width:760px;font-size:16px;line-height:1.95}.callout{color:var(--ink-2);background:#c9a24b1f;border:1px solid #c9a24b73;border-radius:12px;margin:18px 0 0;padding:12px 16px;font-size:14.5px;line-height:1.9}.toc{background:var(--paper);z-index:2;flex-wrap:wrap;gap:6px;margin:22px 0 8px;padding:10px 0;display:flex;position:sticky;top:0}.toc a{color:var(--ink-2);border:1px solid var(--rule);background:var(--card);border-radius:999px;padding:5px 13px;font-size:13.5px;text-decoration:none}.toc a:hover{border-color:var(--gold);color:var(--ink)}.term-section{margin-top:36px;scroll-margin-top:70px}.term-section>h2{border-bottom:1px solid var(--rule);margin:0 0 14px;padding-bottom:8px;font-size:21px}.terms{grid-template-columns:repeat(auto-fill,minmax(min(100%,420px),1fr));gap:12px;display:grid}.term{background:var(--card);border:1px solid var(--rule);border-radius:14px;padding:14px 16px;scroll-margin-top:80px;transition:box-shadow .2s,border-color .2s}.term.is-active{border-color:var(--gold);box-shadow:0 0 0 3px #c9a24b40}.term h3{flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 6px;font-size:18px;display:flex}.term h3 small{color:var(--ink-3);font-size:13px;font-weight:400}.term .anchor{color:var(--rule);font-weight:400;text-decoration:none}.term:hover .anchor{color:var(--gold)}.term .def{font-family:var(--naskh);margin:0;font-size:16.5px;line-height:2}.term .site-note{background:var(--paper-2);color:var(--ink-2);border-radius:10px;margin:10px 0 0;padding:8px 12px;font-size:13.5px;line-height:1.85}.term .src{color:var(--ink-3);margin:8px 0 0;font-size:12px}.ranks{border-collapse:collapse;background:var(--card);border:1px solid var(--rule);border-radius:14px;width:100%;font-size:14.5px;overflow:hidden}.ranks th{text-align:start;background:var(--paper-2);color:var(--ink-2);font-size:13px;font-weight:600}.ranks th,.ranks td{border-bottom:1px solid var(--rule);vertical-align:top;padding:10px 14px;line-height:1.85}.ranks tr:last-child td{border-bottom:0}.ranks .rn{white-space:nowrap;font-weight:600}.ranks .rn span{background:var(--paper-2);border-radius:50%;place-items:center;width:24px;height:24px;margin-inline-end:6px;font-size:12.5px;display:inline-grid}.tier-chip{white-space:nowrap;border:1px solid;border-radius:8px;padding:2px 10px;font-size:12.5px;display:inline-block}.sources ul{padding-inline-start:20px;line-height:2.1}.view-home{background:#f6f1e8}.view-home .masthead{z-index:20;-webkit-backdrop-filter:blur(14px)saturate(140%);color:#f4eee3;background:#14110ff0;border-bottom-color:#ffffff14;position:sticky;top:0}.view-home .masthead .brand p{color:#f4eee399}.view-home .nav a{color:#f4eee3bf}.view-home .nav a:hover{color:#fff;border-color:#ffffff24}.view-home .nav a.on{color:#14110f;background:#f4eee3}.view-home .badge-proto{color:#e9c46a;border-color:#e9c46a66}.h-hero{color:#f4eee3;background:radial-gradient(900px 520px at 85% 10%,#c9a24b38,#0000 60%),radial-gradient(700px 500px at 10% 90%,#1f6f7859,#0000 60%),radial-gradient(600px 420px at 45% 60%,#a0442c2e,#0000 60%),#14110f;padding:72px 24px 0;position:relative;overflow:hidden}.h-grid{pointer-events:none;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-size:56px 56px;position:absolute;inset:0;-webkit-mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,#0000 75%);mask-image:radial-gradient(70% 60% at 50% 40%,#000 30%,#0000 75%)}.h-hero-inner{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:48px;max-width:1200px;margin:0 auto;display:grid;position:relative}.h-pill{color:#f4eee3d9;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:13px;display:inline-flex}.h-pill i{background:#e9c46a;border-radius:50%;width:7px;height:7px;box-shadow:0 0 12px #e9c46a}.h-title{font-family:var(--display);letter-spacing:0;margin:18px 0 16px;font-size:clamp(40px,5.4vw,72px);font-weight:700;line-height:1.45}.h-title span{background:linear-gradient(270deg,#e9c46a,#f4e2b0 50%,#5fc2c0);color:#0000;-webkit-background-clip:text;background-clip:text;padding:.08em 0 .14em;display:inline-block}.h-lede{color:#f4eee3b8;max-width:560px;margin:0 0 30px;font-size:17px;line-height:1.95}.cmd{background:#ffffff12;border:1px solid #ffffff24;border-radius:16px;align-items:center;gap:10px;max-width:600px;padding:7px;padding-inline-start:16px;transition:border-color .2s,box-shadow .2s,background .2s;display:flex;box-shadow:0 20px 50px -24px #000c,inset 0 1px #ffffff0f}.cmd:focus-within{background:#ffffff1a;border-color:#e9c46a99;box-shadow:0 0 0 4px #e9c46a24,0 20px 50px -24px #000c}.cmd-icon{fill:none;stroke:#f4eee38c;stroke-width:2px;flex:none;width:20px;height:20px}.cmd input{color:#fff;min-width:0;font:16px var(--ui);background:0 0;border:0;outline:none;flex:1;padding:10px 0}.cmd input::placeholder{color:#f4eee373}.cmd kbd{font:12px var(--ui);color:#f4eee38c;border:1px solid #ffffff2e;border-radius:6px;padding:2px 8px}.cmd button{color:#1b1509;background:linear-gradient(#f0d48a,#c9a24b);border:0;border-radius:11px;padding:11px 22px;font-size:15px;font-weight:600;box-shadow:0 8px 20px -8px #c9a24bcc}.cmd button:hover{filter:brightness(1.06)}.h-examples{color:#f4eee380;flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;font-size:13px;display:flex}.h-examples button{color:#f4eee3d9;background:#ffffff0a;border:1px solid #ffffff1f;border-radius:999px;padding:5px 12px;font-size:13px;transition:background .15s,border-color .15s}.h-examples button:hover{background:#ffffff1a;border-color:#e9c46a80}.h-visual{color:inherit;background:linear-gradient(#ffffff12,#ffffff05);border:1px solid #ffffff1f;border-radius:24px;padding:18px 18px 16px;text-decoration:none;transition:transform .3s,border-color .3s;display:block;position:relative;box-shadow:0 40px 80px -40px #000000e6,inset 0 1px #ffffff14}.h-visual:hover{border-color:#e9c46a59;transform:translateY(-3px)}.h-visual-head{color:#f4eee399;align-items:center;gap:8px;font-size:12.5px;display:flex}.dot-live{background:#5fc2c0;border-radius:50%;width:8px;height:8px;animation:2s infinite live;box-shadow:0 0 #5fc2c099}@keyframes live{70%{box-shadow:0 0 0 8px #5fc2c000}to{box-shadow:0 0 #5fc2c000}}.hero-tree{direction:ltr;width:100%;height:auto;margin:4px 0;display:block}.tree-skeleton{aspect-ratio:560/600;background:#ffffff08;border-radius:16px}.tree-edge{stroke-dasharray:1;stroke-dashoffset:1px;opacity:.85;animation:.9s ease-out forwards draw}@keyframes draw{to{stroke-dashoffset:0}}.tree-node{opacity:0;transform-box:fill-box;transform-origin:50%;animation:.45s ease-out forwards pop}@keyframes pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:none}}.n-root{fill:#f4e2b0;stroke:#14110f;stroke-width:2px}.n-madar{fill:#e9c46a;stroke:#14110f;stroke-width:2px}.n-author{fill:#f4eee3;stroke:#14110f;stroke-width:2px}.n-dot{fill:#d9cfbf;stroke:#14110f;stroke-width:1.2px}.madar-pulse{transform-box:fill-box;transform-origin:50%;animation:3s ease-in-out infinite glow}@keyframes glow{50%{opacity:.6;transform:scale(1.25)}}.hero-tree text{font-family:var(--ui);fill:#f4eee3d1;dominant-baseline:middle;font-size:13.5px}.hero-tree .t-root{font-family:var(--naskh);fill:#f4e2b0;font-size:16px;font-weight:700}.hero-tree .t-madar{fill:#e9c46a;font-weight:600}.h-visual-foot{color:#f4eee3a6;flex-wrap:wrap;align-items:baseline;gap:4px 14px;padding-top:4px;font-size:13.5px;display:flex}.h-visual-foot strong{font-family:var(--naskh);color:#f4eee3;font-size:16px}.h-legend{align-items:center;gap:6px;margin-inline-start:auto;font-size:12px;display:inline-flex}.h-legend i{border-radius:2px;width:14px;height:3px;margin-inline-start:6px;display:inline-block}.h-stats{border-top:1px solid #ffffff1a;grid-template-columns:repeat(4,1fr);max-width:1200px;margin:56px auto 0;display:grid;position:relative}.h-stats div{text-align:center;padding:26px 8px 30px}.h-stats div+div{border-inline-start:1px solid #ffffff1a}.h-stats b{font-family:var(--display);color:#fff;font-size:clamp(26px,3vw,38px);font-weight:700;display:block}.h-stats span{color:#f4eee38c;font-size:13.5px}.sec-head{max-width:1200px;margin:0 auto 22px}.sec-head.row{justify-content:space-between;align-items:end;gap:16px;display:flex}.sec-head h2{font-family:var(--display);margin:4px 0 0;font-size:clamp(24px,3vw,34px);font-weight:700;line-height:1.35}.bento-wrap,.feat-wrap{padding:72px 24px 0}.bento{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1200px;margin:0 auto;display:grid}.b-card{color:inherit;background:#fff;border:1px solid #e7ddca;border-radius:22px;flex-direction:column;gap:8px;padding:22px 22px 20px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 1px #2b25200a,0 20px 40px -32px #2b252059}a.b-card:hover{border-color:#d8c49a;transform:translateY(-3px);box-shadow:0 30px 50px -34px #2b252073}.b-card h3{font-family:var(--display);margin:0;font-size:19px;font-weight:700}.b-card p{color:var(--ink-2);margin:0;font-size:14.5px;line-height:1.85}.b-wide{flex-direction:row;grid-column:span 2;align-items:stretch;gap:22px}.b-wide .b-text{flex-direction:column;flex:1;gap:10px;display:flex}.b-wide h3{font-size:24px}.b-lines{background:linear-gradient(#faf6ee,#f2eadb);border-radius:16px;flex:0 0 42%;place-items:center;min-height:180px;display:grid}.b-lines svg{fill:none;stroke-width:3px;stroke-linecap:round;width:88%}.b-link{color:var(--gold-deep);margin-top:auto;font-size:14px;font-weight:600}.b-search-demo{background:#f7f2e8;border:1px solid #ece2cf;border-radius:14px;flex-direction:column;gap:6px;margin-top:auto;padding:12px;font-size:13.5px;display:flex}.b-search-demo .q{background:#fff;border:1px solid #e3d8c3;border-radius:8px;padding:6px 10px}.b-search-demo .r{color:var(--ink-2);font-family:var(--naskh)}.b-search-demo .r b{font-family:var(--ui);color:var(--muslim);margin-inline-end:6px;font-size:12.5px}.b-narrator{background:#f7f2e8;border:1px solid #ece2cf;border-radius:14px;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:auto;padding:12px;display:flex}.b-narrator .nm{width:100%;font-weight:600}.b-narrator .chip{border:1px solid;border-radius:8px;padding:2px 10px;font-size:12.5px}.b-narrator .meta{color:var(--ink-3);font-size:12.5px}.b-terms{flex-wrap:wrap;gap:6px;margin:4px 0 6px;display:flex}.b-terms span{color:var(--ink-2);background:#f4ecdc;border-radius:999px;padding:3px 10px;font-size:12.5px}.b-nums{flex-wrap:wrap;gap:6px;margin-top:auto;display:flex}.b-nums .pill{border-radius:8px;padding:3px 10px;font-size:12.5px}.ghost-btn{color:var(--ink);white-space:nowrap;background:#fff;border:1px solid #d9ccb3;border-radius:12px;padding:9px 16px;font-size:14px;font-weight:600;text-decoration:none}.ghost-btn:hover{border-color:var(--gold)}.feat{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;max-width:1200px;margin:0 auto;display:grid}.f-card{color:inherit;background:#fff;border:1px solid #e7ddca;border-radius:20px;flex-direction:column;gap:10px;padding:20px;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;animation:.4s both rise;display:flex}.f-card:hover{border-color:#d8c49a;transform:translateY(-3px);box-shadow:0 26px 44px -32px #2b252073}.f-routes{color:var(--ink-3);font-size:12.5px}.f-routes b{font-family:var(--display);color:var(--ink);margin-inline-end:4px;font-size:22px}.f-title{font-family:var(--naskh);-webkit-line-clamp:3;-webkit-box-orient:vertical;font-size:18px;line-height:1.85;display:-webkit-box;overflow:hidden}.f-meta{align-items:center;gap:6px;margin-top:auto;font-size:11.5px;display:flex}.f-companion{color:var(--ink-3);text-overflow:ellipsis;white-space:nowrap;margin-inline-start:auto;font-size:12px;overflow:hidden}.site-foot{color:#f4eee3b3;background:#14110f;margin-top:88px;padding:44px 24px}.foot-inner{grid-template-columns:1.3fr 1fr .7fr;gap:32px;max-width:1200px;margin:0 auto;font-size:14px;line-height:1.9;display:grid}.foot-inner strong{color:#f4eee3;font-family:var(--display);margin-bottom:6px;display:block}.foot-inner p{margin:0}.foot-inner nav{flex-direction:column;gap:2px;display:flex}.foot-inner a{color:#f4eee3bf;text-decoration:none}.foot-inner a:hover{color:#e9c46a}@media (width<=960px){.h-hero-inner{grid-template-columns:minmax(0,1fr);gap:32px}.h-visual{max-width:560px}.bento{grid-template-columns:1fr 1fr}.b-wide{grid-area:auto/span 2}.feat{grid-template-columns:1fr 1fr}}@media (width<=640px){.h-hero{padding-top:44px}.h-stats{grid-template-columns:1fr 1fr}.h-stats div:nth-child(3){border-inline-start:0}.h-stats div{border-top:1px solid #ffffff14}.cmd kbd{display:none}.h-title{font-size:38px}.h-lede{font-size:15.5px}.cmd button{padding:11px 16px}.bento,.feat{grid-template-columns:1fr}.b-wide{flex-direction:column;grid-column:auto}.foot-inner{grid-template-columns:1fr}.sec-head.row{flex-direction:column;align-items:start}}@media (prefers-reduced-motion:reduce){.tree-edge{stroke-dashoffset:0}.tree-node{opacity:1}}.view-narrators{background:#f6f1e8}.nr-inner{max-width:1160px;margin:0 auto;padding:36px 24px 72px}.nr-head h2{font-family:var(--display);margin:4px 0 8px;font-size:clamp(30px,4vw,44px);font-weight:700;line-height:1.25}.nr-note{color:var(--ink-3);max-width:860px;margin:6px 0 0;font-size:13.5px;line-height:1.9}.nr-controls{z-index:5;-webkit-backdrop-filter:blur(10px);background:#ffffffdb;border:1px solid #e7ddca;border-radius:18px;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:22px 0 18px;padding:12px;display:flex;position:sticky;top:72px;box-shadow:0 16px 40px -32px #2b252073}.nr-search{background:#f7f2e8;border:1px solid #ece2cf;border-radius:12px;flex:260px;align-items:center;gap:8px;padding:0 12px;display:flex}.nr-search:focus-within{border-color:var(--gold)}.nr-search svg{fill:none;width:18px;height:18px;stroke:var(--ink-3);stroke-width:2px;flex:none}.nr-search input{min-width:0;font:15px var(--ui);color:var(--ink);background:0 0;border:0;outline:none;flex:1;padding:10px 0}.nr-segs{flex-wrap:wrap;align-items:center;gap:6px 8px;display:flex}.nr-segs .lbl{color:var(--ink-3);margin-inline-start:4px;font-size:12px}.nr-segpair{align-items:center;gap:6px;display:inline-flex}.seg2{background:#f2ebde;border:1px solid #e7ddca;border-radius:11px;padding:3px;display:inline-flex}.seg2 button{color:var(--ink-2);white-space:nowrap;background:0 0;border:0;border-radius:8px;padding:6px 12px;font-size:13px}.seg2 button.on{color:var(--ink);background:#fff;font-weight:600;box-shadow:0 1px 3px #2b252026}.nr-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.nr-row{color:inherit;background:#fff;border:1px solid #ece2cf;border-radius:14px;grid-template-columns:44px minmax(0,1.5fr) auto 130px minmax(180px,1fr);align-items:center;gap:14px;padding:11px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .15s;display:grid}.nr-row:hover{border-color:#d8c49a;transform:translateY(-1px);box-shadow:0 14px 30px -26px #2b252080}.nr-rank{color:var(--ink-3);text-align:center;font-size:13px}.nr-name{flex-direction:column;min-width:0;display:flex}.nr-name strong{font-size:15.5px;font-weight:600}.nr-name small{color:var(--ink-3);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.nr-tier{white-space:nowrap;border:1px solid;border-radius:8px;padding:2px 10px;font-size:12px}.nr-meta{color:var(--ink-3);white-space:nowrap;gap:10px;font-size:12.5px;display:flex}.nr-count{grid-template-rows:auto auto;grid-template-columns:minmax(60px,1fr) auto;align-items:center;gap:4px 10px;display:grid}.nr-bar{background:#f2ebde;border-radius:999px;grid-area:1/1;height:8px;display:flex;overflow:hidden}.nr-bar i{border-radius:999px;height:100%;display:block}.nr-bar i.all{background:linear-gradient(90deg,#c9a24b,#9b7a2c)}.nr-bar i.b{background:var(--bukhari)}.nr-bar i.m{background:var(--muslim)}.nr-count b{font-family:var(--display);text-align:end;grid-area:1/2;min-width:3ch;font-size:18px;font-weight:700}.nr-split{grid-area:2/1/auto/-1;gap:5px;display:flex}.nr-split .pill{padding:0 6px;font-size:11px}.nr-group{margin-top:28px}.nr-group>header{align-items:baseline;gap:10px;margin-bottom:10px;display:flex}.nr-group h3{font-family:var(--display);margin:0;font-size:20px;font-weight:700}.nr-group>header span{color:var(--ink-3);font-size:13px}.nr-swatch{border:1.2px solid;border-radius:4px;align-self:center;width:14px;height:14px}.nr-back{color:var(--ink-2);margin-bottom:16px;font-size:14px;text-decoration:none;display:inline-block}.nr-back:hover{color:var(--gold-deep)}.np-hero{background:#fff;border:1px solid #e7ddca;border-radius:24px;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:28px;padding:28px;display:grid;box-shadow:0 30px 60px -50px #2b252099}.np-id h2{font-family:var(--display);margin:2px 0 6px;font-size:clamp(28px,3.4vw,40px);font-weight:700;line-height:1.3}.np-nasab{font-family:var(--naskh);color:var(--ink-2);margin:0 0 14px;font-size:16.5px;line-height:1.8}.np-grade{border:1px solid;border-radius:12px;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0;padding:8px 14px;display:inline-flex}.np-grade span{font-size:14px;font-weight:700}.np-grade em{font-style:normal;font-family:var(--naskh);font-size:16.5px}.np-help{margin:10px 0 0;font-size:13px}.np-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.np-facts div{background:#f7f2e8;border:1px solid #ece2cf;border-radius:14px;padding:12px 14px}.np-facts dt{color:var(--ink-3);font-size:12px}.np-facts dd{font-family:var(--display);margin:4px 0 0;font-size:22px;font-weight:700}.np-extra{color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:8px 14px;margin:14px 4px 0;font-size:13.5px;line-height:1.8;display:flex}.np-flag{color:#8a3a28;background:#f3dcd3;border-radius:8px;padding:2px 10px;font-size:12.5px;text-decoration:none}.np-cols{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);align-items:start;gap:22px;margin-top:26px;display:grid}.np-cols h3{font-family:var(--display);margin:0;font-size:20px;font-weight:700}.np-cols h3 small{color:var(--ink-3);margin-inline-start:6px;font-size:13px;font-weight:400}.np-hadith>header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:12px;display:flex}.np-tools{flex-wrap:wrap;gap:8px;display:flex}.np-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.np-list a{color:inherit;background:#fff;border:1px solid #ece2cf;border-radius:14px;flex-direction:column;gap:6px;padding:12px 16px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.np-list a:hover{border-color:#d8c49a;box-shadow:0 14px 30px -26px #2b252080}.np-list .t{font-family:var(--naskh);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:16.5px;line-height:1.85;display:-webkit-box;overflow:hidden}.np-list .m{align-items:center;gap:6px;font-size:11.5px;display:flex}.np-list .r{color:var(--ink-3);margin-inline-start:auto;font-size:12px}.np-sayings{background:#fff;border:1px solid #e7ddca;border-radius:20px;max-height:calc(100vh - 110px);padding:20px;position:sticky;top:88px;overflow:auto}.np-sayings ul{flex-direction:column;gap:8px;margin:14px 0 10px;padding:0;list-style:none;display:flex}.np-sayings li{background:#f7f2e8;border:1px solid #ece2cf;border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex}.np-sayings li strong{color:var(--gold-deep);font-size:12.5px}.np-sayings li span{font-family:var(--naskh);font-size:16px;line-height:1.8}@media (width<=960px){.nr-row{grid-template-columns:34px minmax(0,1fr) auto;grid-template-areas:"rank name tier""rank meta meta""rank count count";row-gap:6px}.nr-rank{grid-area:rank}.nr-name{grid-area:name}.nr-tier{grid-area:tier}.nr-meta{grid-area:meta}.nr-count{grid-area:count}.np-hero,.np-cols{grid-template-columns:minmax(0,1fr)}.np-sayings{max-height:none;position:static}.nr-controls{position:static}}@media (width<=640px){.np-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.np-hero{padding:20px}.nr-inner{padding:24px 16px 56px}}body.modal-open{overflow:hidden}.hmodal{width:min(860px,100vw - 32px);max-height:min(88vh,900px);color:var(--ink);background:#fbf8f2;border:0;border-radius:24px;padding:0;overflow:hidden;box-shadow:0 40px 100px -30px #14110fb3}.hmodal[open]{animation:.22s ease-out hm-in;display:flex}.hmodal::backdrop{-webkit-backdrop-filter:blur(4px);background:#14110f8c}@keyframes hm-in{0%{opacity:0;transform:translateY(12px)scale(.98)}to{opacity:1;transform:none}}.hm-panel{width:100%;max-height:inherit;flex-direction:column;display:flex}.hm-head{background:#fff;border-bottom:1px solid #ece2cf;justify-content:space-between;align-items:flex-start;gap:16px;padding:22px 26px 14px;display:flex}.hm-head h2{font-family:var(--naskh);margin:2px 0 0;font-size:21px;font-weight:600;line-height:1.8}.hm-close{width:38px;height:38px;color:var(--ink-2);background:#fff;border:1px solid #e7ddca;border-radius:12px;flex:none;font-size:22px;line-height:1}.hm-close:hover{border-color:var(--gold);color:var(--ink)}.hm-body{padding:16px 26px 20px;overflow-y:auto}.hm-sub{color:var(--ink-3);margin:0 0 12px;font-size:13.5px}.hm-body .narrations{margin-bottom:12px}.hm-body .narration{animation:none}.hm-body .narration-text{font-size:18px}.hm-foot{background:#fff;border-top:1px solid #ece2cf;justify-content:flex-start;align-items:center;gap:10px;padding:14px 26px 18px;display:flex}.hm-primary{color:#1b1509;background:linear-gradient(#f0d48a,#c9a24b);border-radius:12px;padding:11px 20px;font-size:15px;font-weight:600;text-decoration:none;box-shadow:0 10px 22px -12px #c9a24be6}.hm-primary:hover{filter:brightness(1.05)}.hm-secondary{color:var(--ink-2);background:#fff;border:1px solid #e3d8c3;border-radius:12px;padding:10px 18px;font-size:14.5px}.hm-secondary:hover{border-color:var(--gold);color:var(--ink)}.np-list a.is-open{border-color:var(--gold);box-shadow:0 0 0 3px #c9a24b33}@media (width<=640px){.hmodal{border-radius:20px 20px 0 0;width:100vw;max-height:92vh;margin:auto auto 0}.hm-head,.hm-body,.hm-foot{padding-inline:16px}.hm-foot{flex-wrap:wrap}.hm-primary{text-align:center;flex:1}}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}@media (width<=1100px){.app.view-explorer{height:auto}.shell{grid-template:"catalog stage"minmax(560px,1fr)"folio folio""foot foot"/280px minmax(0,1fr)}.folio{border-inline-start:0;border-top:1px solid var(--rule)}}@media (width<=720px){.shell{grid-template:"catalog""stage"minmax(70vh,auto)"folio""foot"/minmax(0,1fr)}.masthead{flex-wrap:wrap;gap:10px}.nav{order:3;width:100%;margin:0}.nav a{padding:6px 10px;font-size:13px}.badge-proto{display:none}.hero h2{font-size:26px}.hero-search{flex-direction:column}.stat-row{grid-template-columns:repeat(2,1fr)}.ranks td,.ranks th{padding:8px}.catalog{border-inline-end:0;border-bottom:1px solid var(--rule);max-height:42vh}.masthead{padding:12px 16px}.brand p{display:none}.stage-head{padding:14px 16px 8px}.hadith-title{font-size:21px}.graph-host{min-height:60vh;margin:4px 8px 0}}
