:root{--parchment:#f4ead3;--parchment-2:#ebdcb9;--parchment-3:#e2cfa4;--ink:#2b2118;--ink-soft:#5c4a37;--ink-faint:#8a7660;--gold:#a87b16;--gold-bright:#c99a2e;--green:#1f4d3a;--rule:#c4ab7c;--event:#7a2e2e;--serif:"EB Garamond", "Iowan Old Style", Georgia, serif;--display:"Cormorant Garamond", "EB Garamond", Georgia, serif;--arabic:"Amiri", "Geeza Pro", serif;--ruqaa:"Aref Ruqaa", "Amiri", serif;--panel-w:400px;--pattern:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23a87b16' stroke-opacity='0.13' stroke-width='1'%3E%3Crect x='14' y='14' width='20' height='20'/%3E%3Crect x='14' y='14' width='20' height='20' transform='rotate(45 24 24)'/%3E%3Cpath d='M0 24h10M38 24h10M24 0v10M24 38v10'/%3E%3C/g%3E%3C/svg%3E")}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--parchment);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;font-size:16px}button{font:inherit;color:inherit;cursor:pointer}[lang=ar],.ar{font-family:var(--arabic);direction:rtl;unicode-bidi:isolate}kbd{font-family:var(--serif);border:1px solid var(--rule);background:var(--parchment);border-bottom-width:2px;border-radius:4px;padding:0 5px;font-size:.85em}.app{grid-template-columns:minmax(0, 1fr) var(--panel-w);grid-template-rows:auto minmax(0,1fr);height:100vh;display:grid}.header{grid-column:1/-1;position:relative}.stage{flex-direction:column;min-width:0;min-height:0;display:flex}.panel{grid-area:2/2}.header{background:var(--parchment-2) var(--pattern);border-bottom:3px double var(--rule);grid-template-columns:auto auto 1fr auto;grid-template-areas:"brand search readout controls""legend legend legend legend";align-items:center;gap:6px 24px;padding:10px 20px 8px;display:grid}@media (width>=901px) and (width<=1599px){.header{grid-template-columns:auto 1fr auto;grid-template-areas:"brand readout controls""search search search""legend legend legend"}.search__input{width:290px}}.brand{font-size:inherit;font-weight:inherit;grid-area:brand;align-items:baseline;gap:12px;margin:0;display:flex}.brand__ar{font-family:var(--ruqaa);color:var(--green);font-size:34px;line-height:1}.brand__en{font-family:var(--display);letter-spacing:.06em;text-transform:uppercase;font-size:26px;font-weight:700}.readout{text-align:center;grid-area:readout;min-width:0}.readout__main{font-family:var(--display);white-space:nowrap;font-size:26px;font-weight:600;line-height:1.1}.readout__main small{letter-spacing:.08em;font-size:.6em}.readout__sep{color:var(--gold);margin:0 4px}.readout__sub{color:var(--ink-soft);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-style:italic;overflow:hidden}.controls{grid-area:controls;align-items:center;gap:6px;display:flex}.btn{border:1px solid var(--rule);background:var(--parchment);border-radius:50%;place-items:center;width:34px;height:34px;font-size:13px;display:grid}.btn:hover{border-color:var(--gold);color:var(--gold)}.btn--play{background:var(--green);width:42px;height:42px;color:var(--parchment);border-color:var(--green);font-size:16px}.btn--play:hover{color:#fff;background:#2a6a50}.speed{border:1px solid var(--rule);border-radius:999px;margin-left:6px;display:flex;overflow:hidden}.speed__btn{background:0 0;border:0;padding:4px 9px;font-size:13px}.speed__btn.is-on{color:var(--parchment);background:#7d5a0e}.legend{flex-wrap:wrap;grid-area:legend;align-items:center;gap:6px 8px;display:flex}.legend__chip{border:1px solid var(--rule);color:var(--ink-faint);background:0 0;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:14px;display:inline-flex}.legend__chip.is-on{background:var(--parchment);color:var(--ink);border-color:var(--c)}.legend__dot{background:var(--c);opacity:.35;border-radius:50%;width:9px;height:9px}.legend__chip.is-on .legend__dot{opacity:1;box-shadow:0 0 6px var(--c)}.legend__madhhab{color:var(--ink-soft);align-items:center;gap:6px;margin-left:8px;font-size:14px;display:inline-flex}.legend__madhhab select,.index__filters select{font:inherit;color:var(--ink);background:var(--parchment);border:1px solid var(--rule);border-radius:999px;padding:2px 8px;font-size:14px}.legend__traces{color:var(--ink-soft);align-items:center;gap:6px;margin-left:auto;font-size:14px;display:inline-flex}.legend__traces input{accent-color:var(--green)}.legend__traces--tight{margin-left:14px}.header__actions,.menu-steps{display:none}.header__menu{display:contents}.header__search{grid-area:search;align-items:center;gap:8px;display:flex}.search{position:relative}.search__input{width:clamp(150px,18.5vw,290px);font:inherit;border:1px solid var(--rule);background:var(--parchment);color:var(--ink);border-radius:999px;padding:6px 14px;font-size:15px}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}svg :focus-visible{outline:none}.tl-scrub:focus-visible .tl-handle rect,.tl-lane-toggle:focus-visible rect{stroke:var(--gold-bright);stroke-width:2px}.tl-body:focus-visible{outline-offset:-2px}.search__input:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #a87b1626}.search__results{z-index:20;background:var(--parchment);border:1px solid var(--rule);border-radius:8px;width:420px;max-height:60vh;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto;box-shadow:0 10px 30px #2b21182e}.search__results button{text-align:left;background:0 0;border:0;border-radius:5px;grid-template-rows:auto auto;grid-template-columns:52px 1fr auto;align-items:baseline;column-gap:8px;width:100%;padding:6px 8px;display:grid}.search__results button.is-active{background:#a87b161f}.search__kind{text-transform:uppercase;letter-spacing:.06em;color:var(--gold);grid-row:1/3;align-self:center;font-size:11px}.search__title{font-weight:600}.search__ar{color:var(--ink-soft)}.search__sub{color:var(--ink-soft);grid-column:2/4;font-size:13px}.search__empty{color:var(--ink-soft);padding:8px;font-style:italic}.btn-text{border:1px solid var(--rule);background:var(--parchment);border-radius:999px;padding:5px 14px;font-size:15px}.lang-toggle{letter-spacing:.06em;min-width:42px;font-weight:600}.btn-text:hover,.btn-text.is-on{border-color:var(--gold);color:var(--gold)}.btn-text.is-on{background:#a87b161a}.text-size{position:relative}.text-size__toggle{min-width:42px;padding-inline:10px;font-weight:600}.text-size__toggle small{font-size:.78em}.text-size__menu{z-index:40;background:var(--parchment);border:1px solid var(--rule);border-radius:8px;width:230px;padding:8px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #2b21182e}.text-size__title{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:2px 6px 6px;font-size:12px}.text-size__opt{text-align:left;background:0 0;border:1px solid #0000;border-radius:6px;align-items:center;gap:12px;width:100%;padding:6px 8px;font-size:16px;display:flex}.text-size__opt:hover{border-color:var(--rule)}.text-size__opt.is-on{border-color:var(--gold);background:#a87b161a}.text-size__sample{text-align:center;width:24px;font-family:var(--display);font-weight:700;line-height:1}.text-size__opt--normal .text-size__sample{font-size:16px}.text-size__opt--large .text-size__sample{font-size:20px}.text-size__opt--larger .text-size__sample{font-size:25px}.text-size__note{color:var(--ink-soft);margin:6px 6px 2px;font-size:13px;font-style:italic;line-height:1.35}:root[data-text-size]{--ink-soft:#3f3226;--ink-faint:#5c4a37}:root[data-text-size=large]{--read-zoom:1.15;--panel-w:440px}:root[data-text-size=larger]{--read-zoom:1.3;--panel-w:480px}.panel>*,.tour-card>*,.era-note>*,.onboarding__card>*{zoom:var(--read-zoom,1)}.map-wrap{flex:1;min-height:0;position:relative;overflow:hidden}.map{position:absolute;inset:0}.map-paper{pointer-events:none;mix-blend-mode:multiply;opacity:.55;background:radial-gradient(#0000 55%,#5c401847 100%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.35 0 0 0 0 0.25 0 0 0 0 0.1 0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:absolute;inset:0}.maplibregl-ctrl-group{border:1px solid var(--rule);background:var(--parchment)!important;box-shadow:none!important}.maplibregl-ctrl-attrib{font-family:var(--serif);background:#f4ead3cc!important}.era-note{max-width:calc(340px * var(--read-zoom,1));border:1px solid var(--rule);border-left:3px solid var(--gold);color:var(--ink-soft);background:#f4ead3eb;padding:10px 14px;font-size:14px;line-height:1.4;position:absolute;bottom:16px;left:16px}.tour-card{z-index:5;width:min(calc(400px * var(--read-zoom,1)), calc(100% - 32px));border:1px solid var(--gold);box-shadow:0 0 0 4px #f6eedaf5, 0 0 0 5px var(--rule), 0 8px 24px #3c280a2e;background:#f6eedaf5;padding:12px 16px;position:absolute;bottom:16px;left:16px}.tour-card__head{letter-spacing:.08em;text-transform:uppercase;color:var(--gold);align-items:center;gap:10px;font-size:12px;display:flex}.tour-card__name{flex:auto;min-width:0;font-weight:600}.tour-card__name+.tour-card__listen{margin-left:auto}.tour-card__listen{border:1px solid var(--rule);width:26px;height:22px;color:var(--ink-soft);background:0 0;border-radius:999px;flex:none;place-items:center;padding:0;display:inline-grid}.tour-card__listen:hover{border-color:var(--gold);color:var(--gold)}.tour-card__listen.is-on{background:var(--green);border-color:var(--green);color:var(--parchment)}.tour-card__listen+.tour-card__mode{margin-left:0}.tour-card__mode{border:1px solid var(--rule);border-radius:999px;flex:none;margin-left:auto;display:inline-flex;overflow:hidden}.tour-card__mode button{white-space:nowrap;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);background:0 0;border:0;padding:1px 9px;font-size:11px}.tour-card__mode button.is-on{background:var(--green);color:var(--parchment)}.tour-card__mode+.tour-card__count{margin-left:0}.tour-card__count{white-space:nowrap;color:var(--ink-soft);flex:none;margin-left:auto}.tour-card__close{color:var(--ink-soft);background:0 0;border:0;flex:none;padding:0 2px;font-size:20px;line-height:1}.tour-card__close:hover{color:var(--ink)}.tour-card__title{font-family:var(--display);color:var(--ink);margin:4px 0;font-size:21px;font-weight:700}.tour-card__text{color:var(--ink);margin:0 0 10px;font-size:15px;line-height:1.45}.tour-card__text a{color:var(--green)}.tour-card__at{color:var(--green);margin:0 0 4px;font-size:13px;font-weight:600}.tour-card__points{margin:0;padding-left:1.1em}.tour-card__points li{margin:0 0 3px}.tour-card__points li::marker{color:var(--gold)}.tour-link{font:inherit;color:var(--green);cursor:pointer;text-align:inherit;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;-webkit-text-decoration-color:color-mix(in srgb, var(--green) 55%, transparent);text-decoration-color:color-mix(in srgb, var(--green) 55%, transparent);text-underline-offset:3px;background:0 0;border:0;margin:0;padding:0;font-weight:600;display:inline}.tour-link:hover{color:var(--gold);text-decoration-style:solid}.tour-link:focus-visible{outline:2px solid var(--gold);outline-offset:1px;border-radius:2px}.tour-card__story{max-height:min(17em,42vh);padding-right:6px;overflow-y:auto}.tour-card__story p{margin:0 0 .6em}.tour-card__story.has-more{-webkit-mask-image:linear-gradient(#000 82%,#0000);mask-image:linear-gradient(#000 82%,#0000)}.tour-card__story p:last-child{margin-bottom:0}.tour-card__nav{align-items:center;gap:10px;display:flex}.tour-card__btn{border:1px solid var(--rule);background:var(--parchment);color:var(--ink);border-radius:999px;padding:3px 14px;font-size:14px}.tour-card__btn:hover:not(:disabled){border-color:var(--gold);color:var(--gold)}.tour-card__btn:disabled{opacity:.4}.tour-card__btn--next{background:var(--green);border-color:var(--green);color:var(--parchment);margin-left:auto}.tour-card__btn--next:hover:not(:disabled){color:var(--parchment);background:#173c2d}.tour-card__dots{flex-wrap:wrap;flex:1;justify-content:center;gap:4px;display:flex}.tour-card__dots span{background:var(--rule);border-radius:50%;width:6px;height:6px}.tour-card__dots .is-on{background:var(--gold)}.tour-list{gap:10px;margin:0 0 14px;padding:0;list-style:none;display:grid}.tour-list button{text-align:left;background:var(--parchment);border:1px solid var(--rule);border-left:3px solid var(--gold);gap:2px;width:100%;padding:10px 14px;display:grid}.tour-list button:hover{border-color:var(--gold);background:#a87b160f}.tour-list__ar{font-family:var(--arabic);color:var(--green);justify-self:start;font-size:18px}.tour-list__title{font-family:var(--display);color:var(--ink);font-size:19px;font-weight:700}.tour-list__summary{color:var(--ink-soft);font-size:14.5px;line-height:1.4}.tour-list__meta{color:#7d5a0e;letter-spacing:.04em;margin-top:2px;font-size:12.5px}.welcome__tours{font-family:var(--display);color:var(--ink);margin:18px 0 8px;font-size:17px}.era-note__title{font-family:var(--display);color:var(--ink);letter-spacing:.04em;font-size:17px;font-weight:700}.quiz__modes{border:1px solid var(--rule);border-radius:999px;margin:2px 0 10px;display:inline-flex;overflow:hidden}.quiz__modes button{color:var(--ink-soft);background:0 0;border:0;padding:4px 14px;font-size:14px}.quiz__modes button.is-on{background:var(--green);color:var(--parchment)}.who__clues{gap:6px;margin:0 0 12px;padding-left:22px;font-size:16.5px;display:grid}.who__clues li::marker{color:var(--gold);font-weight:600}.who__clues li:last-child{animation:.35s who-in}@keyframes who-in{0%{opacity:0;transform:translateY(-3px)}}@media (prefers-reduced-motion:reduce){.who__clues li:last-child{animation:none}}.who__more{flex-wrap:wrap;align-items:center;gap:6px 12px;margin-bottom:12px;display:flex}.who__more .btn-text:disabled{opacity:.45;cursor:default}.who__worth{color:#7d5a0e;font-size:13.5px;font-style:italic}.quiz__topics{gap:8px;margin:14px 0;padding:0;list-style:none;display:grid}.quiz__topics button{text-align:left;background:var(--parchment);border:1px solid var(--rule);border-left:3px solid var(--gold);width:100%;font-family:var(--display);justify-content:space-between;align-items:baseline;gap:10px;padding:9px 14px;font-size:17.5px;font-weight:600;display:flex}.quiz__topics button:hover{border-color:var(--gold);background:#a87b160f}.quiz__best{font-family:var(--serif);color:#7d5a0e;white-space:nowrap;font-size:13px;font-weight:400}.quiz__invite{border:1px dashed var(--gold);background:#a87b160f;margin:12px 0;padding:10px 14px}.quiz__invite p{margin:0 0 8px;font-size:15px}.quiz__primary{border:1px solid var(--green);background:var(--green);color:var(--parchment);border-radius:999px;padding:6px 16px;font-size:15px}.quiz__primary:hover{background:#173c2d}.quiz__progress{color:var(--ink-soft);align-items:center;gap:10px;margin:4px 36px 10px 0;font-size:13.5px;display:flex}.quiz__dots{flex:1;justify-content:center;gap:4px;display:flex}.quiz__dot{background:var(--rule);border-radius:50%;width:8px;height:8px}.quiz__dot.is-now{background:var(--gold)}.quiz__dot.is-right{background:var(--green)}.quiz__dot.is-half{background:var(--gold-bright)}.quiz__dot.is-wrong{background:var(--event)}.quiz__prompt{font-family:var(--display);margin:6px 0 14px;font-size:23px;line-height:1.25}.quiz__hint{color:var(--ink-soft);font-style:italic}.quiz__options{gap:8px;margin:0;padding:0;list-style:none;display:grid}.quiz__options button{text-align:left;background:var(--parchment);border:1px solid var(--rule);border-radius:6px;align-items:center;gap:10px;width:100%;padding:9px 12px;font-size:16.5px;display:flex}.quiz__options button:hover:not(:disabled){border-color:var(--gold);background:#a87b160f}.quiz__options button:disabled{cursor:default;color:var(--ink)}.quiz__options button.is-right{border-color:var(--green);background:#1f4d3a1f}.quiz__options button.is-wrong{border-color:var(--event);background:#7a2e2e1a}.quiz__options button.is-out{opacity:.6}.quiz__key{border:1px solid var(--rule);width:22px;height:22px;color:var(--ink-soft);border-radius:50%;flex:none;place-items:center;font-size:12.5px;display:grid}.quiz__feedback{justify-items:start;gap:10px;margin-top:14px;display:grid}.quiz__feedback p{margin:0}.quiz__feedback .is-right strong{color:var(--green)}.quiz__feedback .is-wrong strong{color:var(--event)}.quiz__learn{color:var(--green);text-align:left;background:0 0;border:0;padding:0;font-size:15px}.quiz__learn:hover{text-decoration:underline}.quiz__result{text-align:center;margin:18px 0 14px}.quiz__result-label{letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);margin:0;font-size:13px;font-weight:400}.quiz__result-score{font-family:var(--display);color:var(--green);font-size:64px;font-weight:700;line-height:1.1}.quiz__result-score small{color:var(--ink-soft);font-size:28px}.quiz__result-topic{font-family:var(--display);font-size:19px}.quiz__cheer{color:#7d5a0e;margin:6px 0 0;font-style:italic}.quiz__actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:8px;display:flex}.quiz__missed{gap:10px;margin:0;padding:0;font-size:15px;list-style:none;display:grid}.quiz__missed li{border-bottom:1px dotted var(--rule);gap:2px;padding-bottom:8px;display:grid}.quiz__missed-answer{color:var(--green);font-weight:600}.map-wrap.is-quiz .light,.map-wrap.is-quiz .cluster,.map-wrap.is-quiz .resting,.map-wrap.is-quiz .dynasty-label,.map-wrap.is-quiz .kingdom-label,.map-wrap.is-quiz .era-note{display:none}.map-wrap.is-quiz-asking .maplibregl-canvas{cursor:crosshair}.quiz-pin{pointer-events:none;align-items:center;gap:6px;display:flex}.quiz-pin__dot{background:var(--green);width:14px;height:14px;box-shadow:0 0 0 3px #fff8e6, 0 0 12px var(--gold-bright);border-radius:50%}.quiz-pin__label{white-space:nowrap;font-family:var(--display);border:1px solid var(--rule);background:#f4ead3eb;padding:0 6px;font-size:16px;font-weight:700;position:absolute;left:20px}.quiz-tap{color:var(--event);text-shadow:0 0 3px #fff8e6;pointer-events:none;font-size:26px;font-weight:700;line-height:1}.kingdom-label{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb, var(--c) 75%, #2b2118);white-space:nowrap;pointer-events:none;opacity:.85;text-shadow:0 0 3px var(--parchment), 0 0 3px var(--parchment);font-size:12.5px;font-weight:700}.dynasty-label{pointer-events:none;font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;color:color-mix(in srgb, var(--c) 80%, black);opacity:.55;white-space:nowrap;text-shadow:0 0 3px var(--parchment), 0 0 6px var(--parchment);font-size:13px;font-weight:700}.sea-label{pointer-events:none}.sea-label__inner{text-align:center;color:#5d6b63;transform:rotate(var(--rotate,0deg));white-space:nowrap;line-height:1.05}.sea-label__ar{font-family:var(--ruqaa);opacity:.7;font-size:17px;display:block}.sea-label__en{font-family:var(--serif);letter-spacing:.08em;opacity:.8;font-size:12.5px;font-style:italic;display:block}.saw{font-family:var(--arabic);font-size:1.3em;font-style:normal;line-height:0}.light{cursor:pointer;opacity:0;width:14px;height:14px;transition:opacity .7s}.light.is-on{opacity:1}.light__core{background:var(--c);border:1.5px solid #fff8e6;border-radius:50%;position:absolute;inset:3px;box-shadow:0 0 0 1px #2b211859}.light__halo{background:radial-gradient(circle, color-mix(in srgb, var(--c) 55%, transparent) 0%, transparent 70%);border-radius:50%;animation:2.6s ease-in-out infinite pulse;position:absolute;inset:-9px}.light__label{white-space:nowrap;font-family:var(--serif);color:var(--ink);text-shadow:0 0 3px var(--parchment), 0 0 3px var(--parchment), 0 0 6px var(--parchment);pointer-events:none;font-size:13px;font-weight:600;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.light[data-state=current]{z-index:3}.light[data-state=current] .light__core{inset:1px}.light[data-state=current] .light__halo{inset:-16px}.light[data-state=current] .light__label{font-size:16px;left:20px}.light[data-state=trace] .light__core{opacity:.45;box-shadow:none;border-color:#0000;inset:4px}.light[data-state=trace] .light__halo,.light[data-state=trace] .light__label{display:none}.light:hover{z-index:5}.light:hover .light__label,.light.is-selected .light__label{display:block}.light.is-selected{z-index:4}.light.is-selected .light__core{box-shadow:0 0 0 2px var(--gold-bright), 0 0 10px var(--gold-bright);opacity:1}.light--event .light__core{border-radius:2px;transform:rotate(45deg)}.light--event .light__label{color:var(--event);font-style:italic}.cluster{z-index:2;cursor:pointer;opacity:0;flex-direction:column;align-items:center;transition:opacity .7s;display:flex}.cluster.is-on{opacity:1}.cluster__ring{background:var(--ring);border-radius:50%;place-items:center;width:34px;height:34px;animation:2.6s ease-in-out infinite pulse;display:grid;box-shadow:0 0 0 2px #fff8e6,0 0 14px #b8860b8c}.cluster__n{background:var(--parchment);width:24px;height:24px;font-family:var(--display);color:var(--ink);border-radius:50%;place-items:center;font-size:14px;font-weight:700;display:grid}.cluster__label{white-space:nowrap;font-family:var(--display);letter-spacing:.04em;text-shadow:0 0 3px var(--parchment), 0 0 3px var(--parchment), 0 0 6px var(--parchment);font-size:14px;font-weight:700;position:absolute;top:38px}.cluster:hover .cluster__ring,.cluster.is-selected .cluster__ring{box-shadow:0 0 0 2px var(--gold-bright), 0 0 16px var(--gold-bright)}.cluster:hover,.cluster.is-selected{z-index:4}.resting{border:1px solid var(--ink-faint);width:18px;height:18px;color:var(--ink-soft);cursor:pointer;opacity:0;background:#f4ead3d9;border-radius:50%;place-items:center;font-size:10.5px;font-weight:600;transition:opacity .7s;display:grid}.resting.is-on{opacity:.85}.resting:hover,.resting.is-selected{opacity:1;border-color:var(--gold);color:var(--ink);z-index:4}.photo{margin:0 0 14px}.photo img{aspect-ratio:16/10;object-fit:cover;border:1px solid var(--rule);filter:sepia(.18)saturate(.9);background:var(--parchment-2);border-radius:4px;width:100%;display:block}.photo a:hover img{filter:none}.photo figcaption{flex-direction:column;gap:2px;margin-top:4px;display:flex}.photo__caption{font-size:14px;font-style:italic}.photo__credit{color:var(--ink-faint);font-size:11.5px}.photo__credit a{color:inherit}.index__count{color:var(--ink-soft);margin-top:4px;font-style:italic}.index__filters{grid-template-columns:1fr 1fr;gap:8px 12px;margin:0 0 14px;display:grid}.index__filters label{color:var(--ink-soft);flex-direction:column;gap:3px;font-size:13px;display:flex}.index__filters label:last-child{grid-column:1/-1}.index__madhhab{color:var(--ink-soft);font-size:13px;font-weight:400}.index__close{border:1px solid var(--rule);background:var(--parchment);border-radius:999px;margin-top:14px;padding:4px 14px}.panel__back{color:var(--green);background:0 0;border:0;margin-bottom:4px;padding:0;font-size:14px}.panel__back:hover{text-decoration:underline}.place-list{margin:0;padding:0;list-style:none}.place-list li{margin:0}.place-list button{text-align:left;border:0;border-bottom:1px dotted var(--rule);background:0 0;align-items:baseline;gap:8px;width:100%;padding:5px 4px;display:flex}.place-list button:hover{background:#a87b1614}.place-list__dot{background:var(--c);border-radius:50%;flex:none;align-self:center;width:9px;height:9px}.place-list__name{font-weight:600}.place-list__dates{color:var(--ink-soft);white-space:nowrap;margin-left:auto;font-size:13px}.place-list--resting .place-list__name{color:var(--ink-soft);font-weight:400}@keyframes pulse{0%,to{opacity:.8;transform:scale(.85)}50%{opacity:1;transform:scale(1.15)}}@media (prefers-reduced-motion:reduce){.light__halo{animation:none}.light{transition:none}}.timeline{height:calc((100% - 22px) * var(--split,.4));background:var(--parchment);-webkit-user-select:none;user-select:none;cursor:grab;flex-direction:column;flex:none;display:flex;position:relative;overflow:hidden}.timeline:active{cursor:grabbing}.timeline.is-scrubbing,.timeline.is-scrubbing *{cursor:ew-resize!important}.timeline svg{display:block}.tl-head{border-bottom:1px solid var(--rule);touch-action:none;flex:none}.tl-body{touch-action:pan-y;flex:1;overflow:hidden auto}.tl-zoom{flex-wrap:wrap;align-items:center;gap:4px;width:132px;display:flex;position:absolute;top:7px;left:10px}.tl-zoom button{border:1px solid var(--rule);background:var(--parchment);border-radius:4px;width:22px;height:22px;padding:0;font-size:15px;line-height:1}.tl-zoom button:hover{border-color:var(--gold);color:var(--gold)}.tl-zoom__hint{color:var(--ink-faint);flex:1;min-width:0;padding-left:2px;font-size:10.5px;font-style:italic;line-height:1.1}.tl-band{fill:var(--gold);opacity:.08}.tl-lane{fill:#0000}.tl-lane--alt{fill:var(--parchment-2);opacity:.5}.tl-grid{stroke:var(--rule);stroke-opacity:.45;stroke-dasharray:2 4}.tl-gutter{fill:var(--parchment-2)}.tl-lane-label{font-family:var(--display);fill:var(--ink-soft);font-size:14px;font-weight:700}.tl-lane-toggle{cursor:pointer}.tl-lane-toggle rect{fill:#0000}.tl-lane-toggle:hover .tl-lane-label{fill:var(--green)}.tl-lane-toggle.is-empty .tl-lane-label{opacity:.55;font-size:12px}.tl-lane-caret{fill:var(--gold);font-size:11px}.tl-lane-count{font-family:var(--serif);fill:var(--ink-faint);font-size:11.5px;font-weight:400}.tl-item--thin:hover rect:not(.tl-hit),.tl-item--thin:hover circle{stroke:var(--ink);stroke-width:1px}.tl-axis-bg{fill:var(--parchment-2);cursor:ew-resize}.tl-scrub{cursor:ew-resize}.tl-tick line{stroke:var(--ink-soft)}.tl-tick text,.tl-band-label text{text-anchor:middle;fill:var(--ink);font-size:13px;font-weight:600}.tl-tick .tl-tick__ah,.tl-band-label .tl-tick__ah{fill:var(--ink-faint);font-size:10.5px;font-style:italic;font-weight:400}.tl-band-label text:first-child{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;fill:var(--gold)}.tl-step{fill:var(--gold)}.tl-break{text-anchor:middle;fill:var(--ink-faint);font-size:18px}.tl-item{cursor:pointer}.tl-item text{font-size:calc(12px * var(--read-zoom,1));fill:var(--ink);pointer-events:none}.tl-item rect:not(.tl-hit),.tl-item circle{fill:var(--c)}.tl-item .tl-hit{fill:#0000}.tl-item:hover text{font-weight:600}.tl-item.is-dim{opacity:.45}.tl-item.is-selected rect:not(.tl-hit),.tl-item.is-selected circle{stroke:var(--gold-bright);stroke-width:2.5px}.tl-item.is-selected text{font-weight:700}.tl-item--event rect:not(.tl-hit){fill:var(--event)}.tl-item--event text{fill:var(--event);font-style:italic}.tl-item--dynasty{cursor:default}.tl-item--dynasty rect{fill-opacity:.22;stroke:var(--c);stroke-opacity:.6}.tl-item--dynasty text{font-size:calc(11.5px * var(--read-zoom,1));fill:var(--ink-soft);font-style:italic}.tl-cursor{stroke:var(--green);stroke-width:2px;pointer-events:none}.tl-handle{cursor:ew-resize}.tl-handle rect,.tl-handle path{fill:var(--green)}.tl-handle text{fill:var(--parchment);text-anchor:middle;font-size:12px;font-weight:600}.tl-picker{z-index:6;background:var(--parchment);border:1px solid var(--rule);cursor:default;-webkit-user-select:none;user-select:none;border-radius:10px;padding:4px;position:absolute;overflow-y:auto;box-shadow:0 10px 30px #2b211838}.tl-picker__title{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);padding:6px 10px 4px;font-size:12px}.tl-picker ul{margin:0;padding:0;list-style:none}.tl-picker__item{text-align:left;background:0 0;border:0;border-radius:6px;align-items:center;gap:10px;width:100%;min-height:44px;padding:6px 10px;font-size:16px;line-height:1.2;display:flex}.tl-picker__item:hover,.tl-picker__item:active{background:#a87b161f}.tl-picker__dot{background:var(--c);border-radius:50%;flex:none;width:10px;height:10px}.tl-picker__item--event .tl-picker__dot{background:var(--event);border-radius:2px;transform:rotate(45deg)}.tl-picker__item--event .tl-picker__name{color:var(--event);font-style:italic}.tl-picker__name{flex:1;min-width:0}.tl-picker__dates{color:var(--ink-faint);white-space:nowrap;flex:none;font-size:13px}.divider{background:var(--parchment-2);border-top:3px double var(--rule);border-bottom:1px solid var(--rule);cursor:row-resize;touch-action:none;flex:none;justify-content:center;align-items:center;height:18px;display:flex;position:relative}.divider:before{content:"";z-index:1;position:absolute;inset:-6px 0}.divider__grip{background:var(--rule);border-radius:3px;width:44px;height:5px}.divider:hover .divider__grip,.divider.is-dragging .divider__grip,.divider:focus-visible .divider__grip{background:var(--gold)}.divider:focus-visible{outline-offset:-2px}.divider__min{z-index:2;border:1px solid var(--rule);background:var(--parchment);color:var(--ink-soft);white-space:nowrap;border-radius:999px;padding:0 10px;font-size:12.5px;line-height:16px;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.divider__min:hover{border-color:var(--gold);color:var(--gold)}.stage.is-tl-min .timeline{height:auto}.stage.is-tl-min .tl-body,.panel__grab{display:none}.panel{border-left:3px double var(--rule);background:var(--parchment) var(--pattern);padding:20px 24px 40px;position:relative;overflow-y:auto}.panel__close{z-index:3;border:1px solid var(--rule);background:var(--parchment);border-radius:50%;width:32px;height:32px;font-size:20px;line-height:1;position:absolute;top:10px;right:12px}.panel__close:hover{border-color:var(--gold);color:var(--gold)}.panel__share{z-index:3;border:1px solid var(--rule);background:var(--parchment);width:32px;height:32px;color:var(--ink);border-radius:50%;place-items:center;padding:0;display:grid;position:absolute;top:10px;right:52px}.panel__share:hover{border-color:var(--gold);color:var(--gold)}.panel__copied{z-index:4;background:var(--ink);color:var(--parchment);pointer-events:none;border-radius:12px;padding:4px 10px;font-size:13px;position:absolute;top:48px;right:12px}.calligraphy{width:100%;height:auto;margin:8px 0 14px;display:block}.calligraphy__outer{fill:var(--parchment-2);stroke:var(--gold);stroke-width:1.5px}.calligraphy__inner{fill:#f8f0dc;stroke-width:1.2px}.calligraphy__star rect{stroke:none}.calligraphy__star-eye{fill:#f8f0dc}.calligraphy text{font-family:var(--ruqaa);fill:var(--ink)}.detail{line-height:1.55}.detail p{margin:0 0 12px}.detail__title{font-family:var(--display);margin:0;font-size:30px;font-weight:700;line-height:1.1}.detail__fullname{color:var(--ink-soft);margin-top:2px;font-style:italic}.detail__dates{color:var(--green);margin:8px 0 10px;font-weight:600}.detail__dot{color:var(--gold);margin:0 6px}.detail__reign{color:var(--ink-soft);margin-top:-2px;font-size:15px}.listen{border:1px solid var(--rule);color:var(--ink-soft);background:0 0;border-radius:999px;align-items:center;gap:6px;margin:2px 0 10px;padding:3px 12px 3px 10px;font-size:14px;display:inline-flex}.listen:hover{border-color:var(--gold);color:var(--gold)}.listen.is-on{background:var(--green);border-color:var(--green);color:var(--parchment)}.detail__summary{color:var(--ink-soft);border-left:3px solid var(--gold);padding-left:12px;font-size:17.5px;font-style:italic}.detail__section h3{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);align-items:center;gap:10px;margin:22px 0 10px;font-size:15px;display:flex}.detail__section h3:before,.detail__section h3:after{content:"";background:var(--rule);flex:1;height:1px}.detail__section h3:before{flex:0 0 14px}.chips{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.chip{border:1px solid var(--c,var(--rule));background:var(--parchment);border-radius:999px;padding:1px 10px;font-size:13px}.chip--plain{color:var(--ink-soft)}.chip--note{border-style:dashed;border-color:var(--gold);color:var(--ink-soft);font-style:italic}.journey__show{border:1px dashed var(--gold);color:var(--ink-soft);background:0 0;border-radius:999px;margin-bottom:10px;padding:2px 12px;font-size:13.5px}.journey__show:hover{color:var(--ink);background:#a87b1614}.journey{border-left:2px solid var(--rule);margin:0;padding:0;list-style:none}.journey li{padding:0 0 10px 16px;position:relative}.journey li:before{content:"";background:var(--gold);border:2px solid var(--parchment);border-radius:50%;width:10px;height:10px;position:absolute;top:7px;left:-6px}.journey__place{text-align:left;background:0 0;border:0;flex-wrap:wrap;align-items:baseline;gap:10px;padding:0;display:flex}.journey__place:hover .journey__name{color:var(--green);text-decoration:underline}.journey__place--inline{margin-bottom:12px;font-weight:600}.journey__year{color:var(--green);min-width:62px;font-size:14px;font-weight:600}.journey__name .ar{color:var(--ink-soft);margin-left:6px}.untranslated{color:var(--ink-faint);border-left:2px solid var(--rule);margin:0 0 8px;padding-left:8px;font-size:13.5px;font-style:italic}.journey__note{color:var(--ink-soft);margin-top:2px;font-size:14px}.lineage li{border-bottom:1px dotted var(--rule);margin-bottom:4px;padding-bottom:6px}.lineage button{border-bottom:0}.lineage__note{color:var(--ink-soft);padding:0 6px 0 23px;font-size:14px;line-height:1.4}.lineage__show{margin-top:18px}.link-label{font-family:var(--display);color:var(--ink);border:1px solid var(--gold);white-space:nowrap;background:#f6eedae6;border-radius:3px;padding:0 6px;font-size:13px;font-style:italic}.link-label button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.link-label button:hover{color:var(--gold);text-decoration:underline}.link-label .is-self{font-style:normal;font-weight:700}.is-lineage .light__label,.is-lineage .light.is-selected .light__label{display:none}.is-lineage .light:not(.is-selected),.is-lineage .cluster,.is-lineage .resting{opacity:.35}.lineage__show.is-on{color:var(--ink);background:#a87b161a;border-style:solid}.journey__died{color:var(--ink-soft);font-size:14px;font-weight:600}.works{margin:0;padding:0;list-style:none}.works li{margin-bottom:10px}.works .ar{margin-left:6px}.works__en{color:var(--ink-soft);font-size:14px}.works__summary{font-size:14px}.quran-refs{flex-wrap:wrap;gap:6px;display:flex}.quran-refs a{border:1px solid var(--rule);color:var(--green);background:var(--parchment);border-radius:4px;padding:2px 10px;font-size:14px;text-decoration:none}.quran-refs a:hover{border-color:var(--green)}.sources{margin:0 0 10px;padding-left:18px;font-size:14px}.sources__ref{color:var(--ink-soft)}.review{border-radius:4px;padding:8px 10px;font-size:13.5px}.review--draft{border:1px dashed var(--gold);background:#a87b161f}.review--ok{border:1px solid var(--green);color:var(--green);background:#1f4d3a1a}.review__notes{color:var(--ink-soft);margin-top:4px}.correction{font:inherit;color:var(--ink-soft);text-underline-offset:2px;cursor:pointer;text-align:left;background:0 0;border:0;margin-top:10px;padding:0;font-size:13.5px;text-decoration:underline;display:block}.correction:hover,.correction:focus-visible{color:var(--green)}.correction--card{margin:-4px 0 8px;font-size:12.5px}.crashed{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:4px;height:100%;padding:0 16px;display:flex}.crashed__ar{font-family:var(--ruqaa);color:var(--green);font-size:56px}.crashed p{color:var(--ink-soft);margin:8px 0}.crashed a{color:var(--green);font-size:17px}.event-ar{font-family:var(--ruqaa);color:var(--event);text-align:center;margin:10px 0;font-size:40px}.welcome__ar{font-family:var(--ruqaa);color:var(--green);text-align:center;margin-top:10px;font-size:64px;line-height:1.3}.welcome .detail__title{text-align:center;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}.welcome__how{margin:0 0 16px;padding-left:20px}.welcome__how li{margin-bottom:8px}.welcome__note{color:var(--ink-soft);font-size:14px;font-style:italic}.about ul{margin:0 0 10px;padding-left:18px}.about li{margin-bottom:6px}.about__credits{font-size:14px}.khatimah{text-align:center}.khatimah__ar{font-family:var(--arabic);margin:4px 0 12px;font-size:20px;line-height:2}.khatimah__name{color:var(--green);font-weight:700}.khatimah__tr{color:var(--ink-soft);font-size:15px;font-style:italic}.welcome__by{color:var(--ink-soft);text-decoration:underline;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);text-underline-offset:3px;background:0 0;border:0;margin:14px auto 0;padding:2px 0;font-size:14px;display:block}.welcome__by:hover{color:var(--gold);text-decoration-color:currentColor}.help-toggle{min-width:34px;padding-inline:10px;font-weight:600}.onboarding__shade{z-index:100;position:fixed;inset:0}.onboarding__shade.is-dim{background:#1c140c8c}.onboarding__spot{z-index:101;pointer-events:none;outline:2px solid var(--gold-bright);border-radius:10px;transition:left .3s,top .3s,width .3s,height .3s;position:fixed;box-shadow:0 0 0 200vmax #1c140c8c}.onboarding__card{z-index:102;width:calc(340px * var(--read-zoom,1));background:var(--parchment) var(--pattern);border:3px double var(--rule);border-radius:10px;max-width:calc(100vw - 32px);padding:14px 18px 12px;transition:left .3s,top .3s;position:fixed;box-shadow:0 14px 40px #1c140c59}.onboarding__card--welcome{width:calc(380px * var(--read-zoom,1));text-align:center;transition:none}.onboarding__ar{font-family:var(--ruqaa);color:var(--green);font-size:48px;line-height:1.2}.onboarding__title{font-family:var(--display);margin:0 0 6px;font-size:23px;font-weight:700;line-height:1.15}.onboarding__text{margin:0 0 12px;font-size:15.5px;line-height:1.45}.onboarding__text p{margin:0 0 6px}.onboarding__text p[lang=ms]{color:var(--ink-soft);font-style:italic}.onboarding__foot{align-items:center;gap:8px;display:flex}.onboarding__progress{color:var(--ink-faint);white-space:nowrap;margin-right:auto;font-size:13px}.onboarding__btn{white-space:nowrap;border:1px solid var(--rule);background:var(--parchment);border-radius:999px;padding:5px 14px;font-size:15px}.onboarding__btn:hover{border-color:var(--gold);color:var(--gold)}.onboarding__btn.is-primary{background:var(--green);border-color:var(--green);color:var(--parchment)}.onboarding__btn.is-primary:hover{color:#fff;background:#2a6a50}.onboarding__skip{color:var(--ink-soft);text-underline-offset:3px;background:0 0;border:0;padding:4px 2px;font-size:14px;text-decoration:underline}.onboarding__skip:hover{color:var(--gold)}.onboarding__langs{justify-content:center;gap:10px;margin-bottom:8px;display:flex}.onboarding__langs .onboarding__btn{padding:7px 18px;font-size:16px}@media (prefers-reduced-motion:reduce){.onboarding__spot,.onboarding__card{transition:none}}@media (pointer:coarse){.tl-item text{font-size:calc(13px * var(--read-zoom,1))}.tl-item--dynasty text{font-size:calc(12.5px * var(--read-zoom,1))}.tl-zoom{gap:6px;width:140px}.tl-zoom button{width:32px;height:32px;font-size:18px}.btn-text{padding:7px 14px}.legend__chip{padding:5px 12px}.light:after{content:"";border-radius:50%;position:absolute;inset:-11px}.resting:after{content:"";border-radius:50%;position:absolute;inset:-9px}}@media (width<=900px),(orientation:landscape) and (height<=500px){.app{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;height:100dvh}.header{grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"brand readout controls actions";gap:0 12px;padding:6px 12px}.brand__ar{font-size:26px}.brand__en{font-size:18px}.btn{width:36px;height:36px}.btn--play{width:40px;height:40px}.header__actions{grid-area:actions;gap:6px;display:flex}.menu-toggle.is-on{border-color:var(--gold);color:var(--gold)}.readout{text-align:left}.readout__main{font-size:19px}.readout__sub{font-size:12px}.controls .speed,.header__menu{display:none}.header.is-menu-open .header__menu{z-index:35;background:var(--parchment-2) var(--pattern);border-bottom:3px double var(--rule);flex-direction:column;gap:12px;max-height:calc(100dvh - 70px);padding:12px 12px 14px;display:flex;position:absolute;top:calc(100% + 3px);left:0;right:0;overflow-y:auto;box-shadow:0 14px 30px #2b211840}.header__search{flex-wrap:wrap;gap:8px 6px}.search{flex:100%}.search__input{width:100%;padding:9px 14px;font-size:16px}.search__results{width:100%;max-height:50dvh}.menu-steps .speed{display:flex}.legend{gap:8px}.legend__madhhab{margin-left:0}.legend__traces,.legend__traces--tight{margin-left:0;margin-right:10px}.divider:before{top:-10px;bottom:-10px}.tl-zoom__hint{display:none}.tl-zoom{width:auto}.era-note{max-width:none;padding:8px 10px;font-size:13px;bottom:10px;left:10px;right:10px}.tour-card{width:auto;padding:8px 12px;inset:8px 8px auto}.tour-card__title{font-size:17px}.tour-card__text{max-height:6.2em;font-size:13.5px;overflow-y:auto}.tour-card__short{max-height:9.5em}.tour-card__at{font-size:12.5px}.tour-card__story{max-height:10em}.panel{z-index:30;border-left:0;border-top:3px double var(--rule);border-radius:14px 14px 0 0;max-height:52dvh;padding:0 18px 28px;transition:transform .3s,max-height .3s;position:fixed;bottom:0;left:0;right:0;transform:translateY(105%);box-shadow:0 -12px 30px #2b211840}.panel.is-open{transform:none}.panel{touch-action:pan-y;overscroll-behavior:contain;overflow-wrap:break-word;overflow-x:hidden}.panel.is-touring{max-height:34dvh}.panel.is-touring .calligraphy{display:none}.panel.is-quiz-map{max-height:30dvh}.panel.is-full{max-height:92dvh}.panel.is-dragging{transition:none}.quiz__prompt{margin-bottom:6px;font-size:19px}.panel__grab{z-index:2;background:var(--parchment);touch-action:none;cursor:grab;justify-content:center;align-items:center;height:28px;margin:0 -18px 6px;display:flex;position:sticky;top:0}.panel__grab-bar{background:var(--rule);border-radius:3px;width:44px;height:5px}.panel__grab:focus-visible .panel__grab-bar{background:var(--gold)}.panel__close,.panel__share{top:32px}.panel__copied{top:70px}.calligraphy{max-width:320px;margin-inline:auto}.detail__title{font-size:26px}.onboarding__card{width:calc(100vw - 32px);max-width:480px}.onboarding__card:not(.onboarding__card--welcome){transition:none}}@media (width<=599px){.brand__en,.controls .btn--step{display:none}.menu-steps{align-items:center;gap:6px;display:flex}}@media (orientation:landscape) and (height<=500px){.header{padding:4px 12px}.brand__ar{font-size:22px}.brand__en{font-size:16px}.readout__sub{display:none}.stage{flex-direction:row}.divider{cursor:col-resize;border-top:0;border-bottom:0;border-left:3px double var(--rule);border-right:1px solid var(--rule);width:18px;height:auto}.divider:before{inset:0 -10px}.divider__min{display:none}.stage.is-tl-min .tl-body{display:block}.divider__grip{width:5px;height:44px}.timeline{height:auto;width:calc((100% - 22px) * var(--split,.5))}.panel,.panel.is-touring,.panel.is-quiz-map,.panel.is-full{border-top:0;border-left:3px double var(--rule);border-radius:14px 0 0 14px;width:min(440px,62vw);max-height:none;padding-top:16px;top:0;bottom:0;left:auto;transform:translate(105%);box-shadow:-12px 0 30px #2b211840}.panel.is-open{transform:none}.panel .panel__grab{display:none}.panel__close,.panel__share{top:10px}.panel__copied{top:48px}}
