@font-face{font-family:Tajawal;src:url('assets/Tajawal.woff2') format('woff2');font-weight:400 600;font-display:swap}
@font-face{font-family:Cairo;src:url('assets/Cairo.woff2') format('woff2');font-weight:700;font-display:swap}
:root{--bg:#0d1b23;--panel:#12242e;--line:rgba(201,174,115,.24);--gold:#d5bc87;--text:#eee9dc;--muted:#a6b2b3;--blue:#8caac9;--green:#8cbcaf;--serif:Cairo,Tajawal,sans-serif;color-scheme:dark}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse at 50% 0,rgba(88,98,77,.15),transparent 58%),var(--bg);color:var(--text);font-family:Tajawal,sans-serif;font-size:17px}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}button{cursor:pointer}button,a,input{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,.map-node:focus-visible{outline:2px solid #f2d18a}button{color:inherit}a{color:inherit;text-decoration:none}button{border:0}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:absolute;top:-70px;right:20px;padding:12px;background:var(--gold);color:var(--bg);z-index:20}.skip:focus{top:12px}
.topbar{height:89px;max-width:1600px;margin:auto;padding:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);font-size:19px;line-height:1.6}.brand small{display:block;color:var(--muted);font-family:Tajawal;font-size:12px;font-weight:500}.emblem{width:44px;height:44px;fill:none;stroke:var(--gold);stroke-width:1.2}.topbar-left{display:flex;align-items:center;gap:30px;font-size:14px}.edition{color:var(--muted);padding:7px 11px;border:1px solid #53615755;border-radius:5px}.back-link{color:var(--gold)}.back-link span{margin-right:13px}main{max-width:1600px;margin:auto;padding:0 4%}.intro{text-align:center;padding:44px 0 29px}.eyebrow{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold);font-size:13px}.eyebrow>span{height:1px;width:30px;background:var(--line)}h1{font-family:var(--serif);font-weight:700;font-size:clamp(37px,4vw,58px);margin:8px 0 2px;line-height:1.6}h1 em{font-style:normal;color:var(--gold)}.intro p{color:var(--muted);margin:4px 0 26px;font-size:16px}.separator{margin:0 10px;color:#6b776f}.realm-nav{display:flex;justify-content:center;align-items:center;gap:12px}.realm-nav button{display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:50px;padding:10px 18px;background:#192b31;font-size:15px;transition:background .2s}.realm-nav button:hover{background:#2b3d3e}.dot{width:7px;height:7px;border-radius:50%;display:inline-block}.dot.names{background:#8bb5a4}.dot.command{background:#d2b46e}.dot.creation{background:#89a9cf}.nav-line{height:1px;width:35px;background:linear-gradient(90deg,transparent,#8d7d55,transparent)}
.explorer{position:relative;border:1px solid #a48e5c55;border-radius:18px;background:#10202b;box-shadow:0 30px 90px #0004;overflow:hidden}.toolbar{min-height:76px;display:flex;align-items:center;gap:22px;justify-content:space-between;padding:14px 22px;background:#192b33;border-bottom:1px solid var(--line)}.view-switch{display:flex;padding:4px;background:#0f1e27;border:1px solid #65716b44;border-radius:9px;gap:3px}.view-switch button{padding:9px 13px;display:flex;gap:7px;align-items:center;border-radius:5px;background:none;font-size:15px;color:var(--muted)}.view-switch button.active{background:#46534a;color:#f5e9cd;box-shadow:0 2px 8px #0003}.view-switch svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.4}.search-wrap{position:relative;width:320px;max-width:33%;display:flex;align-items:center;gap:10px;border-bottom:1px solid #6b776c70;padding:3px 5px 6px}.search-wrap>svg{width:18px;height:18px;stroke:var(--muted);fill:none;stroke-width:1.4;flex:none}.search-wrap input{border:0;background:transparent;width:100%;color:var(--text);padding:6px 0;font-size:15px;min-width:0}.search-wrap input::placeholder{color:#99a7a9}.search-results{position:absolute;top:49px;left:0;right:0;min-width:240px;max-height:350px;overflow-y:auto;z-index:10;background:#1b3039;border:1px solid #bda16b66;border-radius:9px;box-shadow:0 10px 35px #0008;padding:6px}.search-results button{display:block;width:100%;text-align:right;background:transparent;padding:12px 10px;border-radius:4px;font-size:16px;line-height:1.4}.search-results button:hover,.search-results button:focus{background:#2f454b}.search-results small{display:block;color:var(--muted);font-size:12px;margin-top:4px}.search-results p{margin:10px;color:var(--muted);line-height:1.7}.tools{display:flex;gap:7px;direction:ltr}.tools button{border:1px solid #6b776c70;border-radius:7px;background:transparent;width:35px;height:35px;font-size:24px;display:grid;place-items:center;transition:background .2s}.tools button:hover{background:#40504a}.tools svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.4}.tools .fit-button{width:59px;font-size:13px;color:var(--gold)}.canvas-topline{height:46px;margin:0 25px;display:flex;align-items:center;justify-content:space-between;color:#98aaa9;font-size:13px}.canvas-topline>span{display:flex;align-items:center;gap:8px}.live-dot{width:5px;height:5px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px #d7bd7977}.canvas-topline button{font-size:12px;background:none;color:var(--gold)}.viewport{width:100%;height:min(82vh,960px);min-height:560px;overflow:auto;position:relative;direction:ltr;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#7a7959 #10202b;background:radial-gradient(ellipse at 50% 30%,#253a3e66,transparent 65%);touch-action:pan-x pan-y}.viewport.dragging{cursor:grabbing;user-select:none}.stage{position:relative;margin:0 auto;transform-origin:top left;width:100%;min-width:0}.stage>svg{width:100%;height:100%;display:block;overflow:visible}.map-node{cursor:pointer;outline:none}.map-node .surface,.map-node .bracket{transition:filter .18s,stroke .18s,stroke-width .18s}.map-node:hover .surface,.map-node:focus-visible .surface{filter:brightness(1.24);stroke:#f6d89c;stroke-opacity:1;stroke-width:2}.map-node:hover text,.map-node:focus-visible text{fill:#fff7df}.map-node:hover .bracket,.map-node:focus-visible .bracket{stroke:#fff0c7;stroke-width:3}.map-node .label-hit,.map-node .bracket-hit{transition:fill .2s}.map-node:hover .label-hit,.map-node:focus-visible .label-hit,.map-node:hover .bracket-hit,.map-node:focus-visible .bracket-hit{fill:#d6c18b12}.map-node.selected .surface,.map-node.related-selected .surface,.map-node.search-match .surface{stroke:#ffe1a0;stroke-opacity:1;stroke-width:3;filter:brightness(1.15)}.map-node.selected .bracket,.map-node.related-selected .bracket{stroke:#ffe1a0;stroke-width:3}.map-node.selected .label-hit,.map-node.related-selected .label-hit,.map-node.search-match .label-hit,.map-node.selected .bracket-hit{fill:#d6c18b20;stroke:#d6c18b}.canvas-bottom{border-top:1px solid #9a865633;display:flex;align-items:center;justify-content:space-between;padding:15px 23px;color:#91a1a4;font-size:12px;gap:15px}.map-signature{color:var(--gold);font-size:15px;display:flex;align-items:center;gap:12px}.map-signature>span{font-family:Georgia,serif;font-size:10px;letter-spacing:2px;opacity:.6}.below-map{display:flex;justify-content:space-between;align-items:center;margin:14px 4px 42px;gap:20px;font-size:13px;color:var(--muted)}.below-map p{margin:0;line-height:1.8}.text-button{background:none;color:var(--gold);white-space:nowrap;font-size:13px;padding:10px 0}.text-button span{display:inline-grid;place-items:center;border:1px solid var(--line);border-radius:50%;width:20px;height:20px;margin-right:5px}footer{border-top:1px solid var(--line);margin:auto;max-width:1600px;padding:26px 5%;display:flex;justify-content:space-between;color:var(--muted);font-size:13px}footer>a{color:var(--gold)}#tooltip{position:fixed;pointer-events:none;z-index:25;padding:9px 15px;background:#ece1c4;color:#14242d;border-radius:7px;box-shadow:0 6px 30px #0005;font-size:15px;max-width:280px;line-height:1.5}
.list-pane{padding:20px 28px 30px;min-height:550px}.list-section{margin-bottom:28px}.list-section>h2{font-family:var(--serif);font-size:21px;color:var(--gold);margin:0 0 15px}.node-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.node-list button{background:#1a2d37;border:1px solid #82958c40;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:17px;text-align:right;border-radius:7px;line-height:1.7;font-size:17px}.node-list button:hover{border-color:#d1b375;background:#233c45}.node-list button span{color:var(--gold)}.node-list button.selected{border-color:var(--gold);background:#3b453d}.node-list button.search-match{border-color:#f2d18a;box-shadow:inset 0 0 0 1px #f2d18a}
dialog{border:1px solid #b7a06c55;background:#132730;color:var(--text);font-family:Tajawal;box-shadow:0 25px 100px #000a;border-radius:18px;max-height:calc(100dvh - 32px);overflow:auto}dialog::backdrop{background:#06131cb8;backdrop-filter:blur(6px)}.detail-dialog{width:460px;max-width:calc(100vw - 28px);padding:0;--accent:var(--gold);animation:dialog-in .22s ease-out}.detail-head{padding:20px 24px;display:flex;align-items:center;justify-content:space-between;background:#1c323a;border-bottom:1px solid var(--line);color:var(--accent);font-size:14px}.close{background:transparent;color:var(--muted);font-size:29px;width:34px;height:34px;line-height:1;border:1px solid #66786d77;border-radius:50%}.close:hover{color:#fff;border-color:var(--gold)}.detail-content{padding:26px}.detail-path{color:var(--muted);font-size:12px;line-height:2}.detail-path button{background:none;color:inherit;padding:0 3px;font-size:inherit;text-decoration:underline;text-underline-offset:4px}h2{font-family:var(--serif);line-height:1.7}.detail-content h2{font-size:30px;line-height:1.8;margin:7px 0 20px;color:var(--accent)}.detail-rule{width:45px;height:2px;background:var(--accent);opacity:.6}.detail-content p{font-size:18px;line-height:1.9;color:#bdc8c5;margin:20px 0 0}.detail-group{margin-top:25px}.detail-group h3{font-weight:500;font-size:13px;color:var(--muted);margin-bottom:12px}.detail-group>div{display:flex;flex-wrap:wrap;gap:8px}.detail-group button{background:#223b42;border:1px solid #647b6c70;padding:9px 12px;border-radius:6px;font-size:15px;line-height:1.5;color:#ede3cb}.detail-group button:hover{border-color:var(--accent);background:#324c50}.detail-actions{padding:0 26px 22px;display:flex;gap:8px;flex-wrap:wrap}.primary,.secondary{border-radius:6px;padding:13px;font-size:15px;flex:1;white-space:nowrap}.primary{background:#c9ad75;color:#15242a}.primary span{margin-right:9px}.primary:hover{background:#ddc797}.secondary{border:1px solid var(--line);background:transparent}.secondary:hover{background:#2d4448}.detail-foot{text-align:center;color:#839a9c;font-size:12px;border-top:1px solid var(--line);padding:17px}.help-dialog{width:510px;max-width:calc(100vw - 28px);padding:32px}.help-dialog .close{position:absolute;left:17px;top:15px}.help-dialog>.eyebrow{justify-content:flex-start;margin:10px 0}.help-dialog h2{color:var(--gold);font-size:27px;margin-bottom:18px}.help-dialog ol{padding-right:22px;color:#c7d1cc}.help-dialog li{line-height:1.9;margin:10px 0;font-size:17px}.help-dialog p{font-size:13px;color:var(--muted);line-height:1.8;border-top:1px solid var(--line);padding-top:16px}.toast{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);padding:14px 24px;background:#e7d4a7;color:#14242a;border-radius:8px;z-index:100;box-shadow:0 5px 25px #0005;font-size:15px}.noscript{padding:20px;text-align:center}.explorer:fullscreen{border-radius:0;width:100vw;height:100dvh;background:#10202b;overflow:auto}.explorer:fullscreen .viewport{height:calc(100dvh - 185px);max-height:none}.explorer:fullscreen .list-pane{height:calc(100dvh - 140px);overflow:auto}@keyframes dialog-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@media(min-width:1450px){.intro{padding-top:48px}.viewport{height:960px;max-height:none}}
@media(max-width:1000px){main{padding:0 2.5%}.toolbar{gap:15px;padding:13px 16px}.search-wrap{max-width:31%}.node-list{grid-template-columns:repeat(3,minmax(0,1fr))}.canvas-bottom>span:first-child{display:none}.viewport{height:700px;min-height:0}.intro{padding:30px 0 25px}.topbar{padding:0 4%}}
@media(max-width:650px){body{font-size:16px}.topbar{height:74px;padding:0 5%}.brand{font-size:16px;gap:9px}.emblem{width:36px;height:36px}.brand small{font-size:11px}.edition{display:none}.back-link{font-size:12px}.back-link span{margin-right:4px}.intro{padding:27px 0 23px}.eyebrow{font-size:11px;gap:9px}.eyebrow>span{width:20px}.intro h1{font-size:38px;margin:9px 0 4px}.intro p{font-size:13px;margin-bottom:20px;line-height:1.8}.separator{margin:0 5px}.realm-nav{gap:5px}.realm-nav button{font-size:12px;gap:7px;padding:9px 10px}.nav-line{width:11px}.toolbar{flex-wrap:wrap;gap:12px 8px;padding:13px}.view-switch{order:1}.view-switch button{font-size:13px;padding:9px}.view-switch svg{width:15px}.tools{order:2;margin-right:auto;gap:4px}.tools button{width:30px;height:32px;font-size:22px}.tools .fit-button{width:48px;font-size:12px}.tools svg{width:17px}.search-wrap{order:3;width:100%;max-width:none;border:1px solid #6b776c55;border-radius:6px;padding:4px 10px;gap:8px}.search-wrap input{font-size:14px}.search-results{top:40px}.explorer{border-radius:12px}.canvas-topline{height:42px;margin:0 13px;font-size:11px;gap:5px}.canvas-topline button{font-size:11px}.viewport{height:560px;min-height:0}.canvas-bottom{padding:13px;font-size:11px;justify-content:center}.canvas-bottom>span:last-child{display:none}.map-signature{font-size:13px}.below-map{margin:13px 5px 28px;display:block;text-align:center;font-size:11px}.below-map .text-button{font-size:12px}footer{gap:15px;flex-wrap:wrap;justify-content:center;font-size:12px;padding:22px 6%}footer>span:first-child{display:none}.list-pane{padding:15px}.node-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.node-list button{font-size:15px;padding:13px}.list-section>h2{font-size:19px}.detail-content{padding:22px}.detail-content h2{font-size:27px}.detail-content p{font-size:17px}.detail-actions{padding:0 22px 22px}.explorer:fullscreen .viewport{height:calc(100dvh - 235px)}.help-dialog{padding:26px}.help-dialog h2{font-size:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
.embedded .topbar,.embedded .intro,.embedded footer,.embedded .below-map{display:none}.embedded main{padding:0;max-width:none}.embedded .explorer{border-radius:0;border:0}.embedded .viewport{height:calc(100dvh - 180px);min-height:440px}
.map-node[data-node="light"]:hover text,.map-node[data-node="light"]:focus-visible text,.map-node[data-node="between"]:hover text,.map-node[data-node="between"]:focus-visible text{fill:#1c333b}
.dot.names{background:#f3f7f4;box-shadow:0 0 9px #f3f7f433}.dot.command{background:#ecc96c}.dot.creation{background:#8fccec}
.map-node.light-node:hover text,.map-node.light-node:focus-visible text{fill:#293b42}
.map-node.light-node:hover .surface,.map-node.light-node:focus-visible .surface{filter:brightness(1.025);stroke:#9c7e43;stroke-width:2}
.map-node.light-node.selected .surface,.map-node.light-node.related-selected .surface,.map-node.light-node.search-match .surface{filter:brightness(1.025);stroke:#8b692b;stroke-width:2.5}
.map-node .surface.layer-surface{stroke:none;stroke-width:0}
.map-node:focus-visible:has(.layer-surface){outline:2px solid #b5d9ea}
.throne-float{animation:throne-float 7s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.throne-art{filter:drop-shadow(0 5px 3px #185e8b55);transition:filter .2s}
.map-node[data-node="throne"]:hover .throne-art,.map-node[data-node="throne"]:focus-visible .throne-art,.map-node[data-node="throne"].selected .throne-art{filter:drop-shadow(0 6px 4px #0e527a88) brightness(1.08)}
.water-wave{animation:water-drift 9s ease-in-out infinite;animation-delay:var(--wave-delay,0s)}
.water-ripple{animation:water-ripple 6s ease-in-out infinite;animation-delay:var(--ripple-delay,0s);transform-box:fill-box;transform-origin:center}
.flow-bridge{opacity:0;transition:opacity .2s ease;pointer-events:none}
.flow-bridge.is-visible{opacity:.76}
.flow-stem{animation:flow-down 1.8s linear infinite;animation-play-state:paused}
.flow-bridge.is-visible .flow-stem{animation-play-state:running}
@keyframes flow-down{to{stroke-dashoffset:-12}}
@keyframes throne-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes water-drift{0%,100%{transform:translateX(0)}50%{transform:translateX(11px)}}
@keyframes water-ripple{0%,100%{opacity:.4;transform:scale(.99)}50%{opacity:.65;transform:scale(1.015)}}
/* Give the landscape diagram more of the available desktop width. */
@media(min-width:1001px){
  main{max-width:1880px;padding-right:2%;padding-left:2%}
  .intro{padding-top:24px;padding-bottom:22px}
  .intro h1{font-size:46px;line-height:1.45}
  .intro p{margin-bottom:18px}
}
