/* Matrix exploration and the complete source reader. */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.matrix-view-switch{margin-bottom:22px;gap:5px;padding:5px;max-width:100%;flex-wrap:wrap}
.matrix-view-switch button{padding:10px 17px;font-size:12px}
.matrix-toolbar .count{font-size:9px;letter-spacing:.09em}
.matrix .milestone-r1{border-right:3px solid #d4b87a!important}
.matrix .milestone-r2{border-right:3px solid #b2a0d6!important}
.matrix thead th{position:relative;padding-bottom:25px}
.matrix thead .milestone-badge{position:absolute;right:-3px;bottom:0;width:auto;padding:1px 7px;font-size:9px;line-height:1.5;background:#d4b87a;color:#12272a;border-radius:4px 0 0 0;font-weight:700}
.matrix thead .milestone-r2 .milestone-badge{background:#b2a0d6}
.matrix .matrix-cell strong{font-size:19px;font-weight:500}
.matrix-cell.vector-cell{background:color-mix(in srgb,var(--level-fill) 26%,#0b1c22);border-color:color-mix(in srgb,var(--level-fill) 50%,#18343a);color:var(--level-fill);min-height:48px}
.matrix-cell.vector-cell:hover{background:color-mix(in srgb,var(--level-fill) 40%,#0b1c22);border-color:var(--level-fill)}
.matrix-cell.life-cell{background:var(--level-fill);border:1px solid #c2f2b942;color:#eff9ed;justify-content:space-evenly}
.matrix-cell.life-cell:hover{filter:brightness(1.2);box-shadow:0 0 14px #b6df8a22}
.matrix-cell .cell-role{font-size:9px;color:#d1e8d3;max-width:40px;line-height:1.3}
.scale-swatch{height:12px;width:12px;border-radius:3px;display:inline-block;border:1px solid #ffffff20}
.matrix-scale{gap:12px 20px;line-height:1.4}
.milestone-note{display:flex;gap:18px;align-items:center;flex-wrap:wrap;font-size:11px;color:var(--muted);margin:25px 0}
.milestone-key{color:#d4b87a;font-size:12px;font-weight:600;border-left:3px solid currentColor;padding-left:9px}
.milestone-key.r2{color:#b2a0d6}.milestone-key span{font-size:10px;font-weight:400;color:var(--muted);margin-left:5px}
.matrix-reference img{width:100%;height:180px;object-fit:contain;background:#eaf0e9;border-radius:4px;padding:8px}
.matrix-reference figcaption{font-size:10px;color:var(--muted);margin:8px 0 14px}
#cell-popover{position:fixed;inset:auto;margin:0;width:370px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto;border:1px solid #8ce6d770;background:#10252bf8;color:var(--text);border-radius:9px;padding:20px;box-shadow:0 14px 70px #000b;backdrop-filter:blur(20px)}
#cell-popover::backdrop{background:transparent}
.popover-heading{display:flex;gap:10px;align-items:center;color:var(--muted);font-size:11px;margin-bottom:15px}
.popover-close{margin-left:auto;font-size:21px;line-height:1;padding:2px 4px;color:var(--muted)}
#cell-popover h3{font-size:21px;line-height:1.25;margin-bottom:12px}
.popover-summary{font-size:12px;line-height:1.65;margin-bottom:16px;color:#c5d6d1}
.popover-participant,.popover-indicators{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
.popover-participant>span,.popover-indicators>span{display:block;font-size:8px;letter-spacing:.12em;color:#82adaf;margin-bottom:6px}
.popover-participant p{font-size:11px;margin:0;color:#d2e0d7}
.popover-indicators>div{display:flex;flex-wrap:wrap;gap:5px}
.popover-indicators>div>span{font-size:10px;font-family:monospace;border:1px solid #8ce6d725;padding:2px 6px;border-radius:3px;color:#add9cf}
#cell-popover.indicators-expanded{width:620px}
.indicators-expanded .popover-indicators>div{gap:7px}
.indicators-expanded .popover-indicators>div>span{font-family:inherit;font-size:11px;line-height:1.55;padding:5px 8px;white-space:normal;overflow-wrap:anywhere}
.popover-more{width:100%;justify-content:space-between;margin-top:18px;padding:10px 14px}
.cell-level-editor{border-top:1px solid #8ce6d735;padding-top:18px;margin-top:24px;display:grid;grid-template-columns:1fr 1.3fr;gap:10px 20px;align-items:center}
.cell-level-editor>div{display:flex;gap:14px;align-items:center}.cell-level-editor strong{font-size:26px;font-weight:400}.cell-level-editor select{width:100%;min-width:0;padding:9px 10px;font-size:11px}.cell-level-editor small{grid-column:1/-1;color:#8aa6a6;font-size:9px;line-height:1.5}
.cell-level-editor.compact{margin-top:14px;padding-top:12px;gap:8px;grid-template-columns:85px 1fr}.cell-level-editor.compact>div{display:block}.cell-level-editor.compact .count{font-size:8px;display:block}.cell-level-editor.compact strong{font-size:22px}
#detail.cell-carousel{--card-width:min(780px,66vw);background:transparent;border:0;box-shadow:none;width:100vw;max-width:100vw;height:min(92dvh,1080px);max-height:92dvh;overflow:hidden;border-radius:0}
#detail.cell-carousel[open]{display:flex;flex-direction:column}
#detail.cell-carousel>.dialog-bar{position:relative;width:var(--card-width);margin:0 auto;border:1px solid #8ce6d74d;border-radius:10px 10px 0 0;padding:12px 18px;gap:12px;flex-shrink:0;background:#12272c}
#detail.cell-carousel>.dialog-bar>.text-button{width:30px;flex-shrink:0;font-size:0}
#detail.cell-carousel>.dialog-bar>.text-button:before{content:'←';font-size:17px}
#cell-nav{flex:1;align-items:center;justify-content:center;gap:10px;min-width:0}
#cell-nav:not([hidden]){display:flex}
.carousel-periods{display:flex;gap:3px;justify-content:center;flex:1;overflow:auto;scrollbar-width:none}
.carousel-periods button{padding:5px 6px;color:#709c9f;font-size:10px;border-radius:3px;border:1px solid transparent;white-space:nowrap}
.carousel-periods button:hover{color:var(--aqua)}.carousel-periods button.active{background:#8ce6d71b;border-color:#8ce6d750;color:var(--aqua)}
#detail.cell-carousel #detail-content{padding:0;flex:1;min-height:0;position:relative}
.cell-carousel-stage{height:100%;position:relative;isolation:isolate}
.cell-panel{position:absolute;top:0;bottom:0;left:50%;transform:translateX(-50%);width:var(--card-width);background:#0c1c22;border:1px solid #8ce6d74d;border-top:0;border-radius:0 0 10px 10px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#385d61 transparent;touch-action:pan-y;z-index:2;box-shadow:0 18px 65px #0008}
.cell-panel:focus{outline:0}.cell-panel-body{padding:28px 36px 40px}.cell-panel-body #detail-title{font-size:31px}
.cell-neighbor{position:absolute;top:22px;bottom:22px;width:var(--card-width);overflow:hidden;background:#0d2027;border:1px solid #8ce6d73b;border-radius:12px;opacity:.46;transition:opacity .2s;pointer-events:auto}
.cell-neighbor.previous{right:calc(50% + var(--card-width)/2 + 22px)}.cell-neighbor.next{left:calc(50% + var(--card-width)/2 + 22px)}
.cell-neighbor.previous>div{text-align:right}
.cell-neighbor:hover{opacity:.8}.cell-neighbor>div{padding:55px 36px 36px}.cell-neighbor h3{font-size:30px;line-height:1.25;margin:20px 0}.cell-neighbor h3 em{display:block;color:var(--aqua);font-style:normal;margin-top:8px}.cell-neighbor h4{color:#93bbb9;font-size:11px;font-weight:400;margin:22px 0 12px}.cell-neighbor p{font-size:13px;line-height:1.8}.neighbor-indicator{padding:18px 0;border-top:1px solid var(--line);font-size:13px;color:#a1c7c2}
.neighbor-overlay{position:absolute;inset:0;display:block;width:100%;height:100%;text-align:left}.neighbor-overlay>span{position:absolute;top:15px;font-size:14px;color:var(--aqua);padding:7px 12px;border:1px solid #8ce6d74d;background:#17343b;border-radius:4px}.previous .neighbor-overlay>span{right:18px}.next .neighbor-overlay>span{left:18px}
.cell-enter{animation:cell-enter .22s ease-out}@keyframes cell-enter{from{opacity:.4}to{opacity:1}}
.reader-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:50px;align-items:start;padding-bottom:80px}
.reader-sidebar{position:sticky;top:115px;min-width:0}.reader-sidebar .search-box input{min-width:0;font-size:11px}.reader-expand{display:flex;gap:8px;font-size:10px;align-items:center;margin:14px 0;color:var(--muted)}.reader-expand input{accent-color:var(--aqua)}
#source-toc{max-height:calc(100dvh - 290px);overflow:auto;padding-right:12px;scrollbar-width:thin;scrollbar-color:#35585d transparent}
#source-toc a{display:block;font-size:11px;line-height:1.6;padding:8px 10px;border-left:1px solid var(--line);color:#8faeb0}
#source-toc a.toc-depth-1{color:#d5e4de;margin-top:10px;font-size:12px}
#source-toc a.toc-depth-3{padding-left:22px;font-size:10px}
#source-toc a:hover,#source-toc a.active{border-color:var(--aqua);background:#8ce6d708;color:var(--aqua)}
#source-toc small{display:block;color:#638990;font-size:9px}
.reader-document{background:#0c1d22;border:1px solid var(--line);padding:38px 40px;border-radius:6px;min-width:0;font-size:15px;line-height:1.9}
.reader-document h1{font-size:32px;line-height:1.3}.reader-document h2{font-size:27px;line-height:1.4}.reader-document h3{font-size:22px;line-height:1.4}.reader-document h4{font-size:18px;line-height:1.5;font-weight:500;letter-spacing:0}
.reader-document .source-section{scroll-margin-top:115px;padding-top:1px}.reader-document .source-section.is-current{border-left:2px solid #8ce6d780;padding-left:18px;margin-left:-20px}
.reader-document table{font-size:11px;line-height:1.6}.reader-document table td{min-width:160px}.reader-document pre{font-size:12px}.reader-document img{display:block;max-height:1000px;object-fit:contain;border-radius:4px;padding:8px}
@media(min-width:1550px){#detail.cell-carousel{--card-width:min(880px,64vw)}}
@media(max-width:1000px){.reader-layout{grid-template-columns:220px minmax(0,1fr);gap:25px}.reader-document{padding:24px}.cell-panel-body{padding:24px}.carousel-periods button{padding:5px 4px}#detail.cell-carousel{--card-width:72vw}}
@media(max-width:760px){.matrix-view-switch{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:4px}.matrix-view-switch button{font-size:11px;padding:10px}.matrix-toolbar>.count{width:100%;font-size:8px}.matrix-toolbar .text-button{font-size:10px}.matrix-scale{font-size:9px;gap:10px 14px}.milestone-note{font-size:10px;gap:12px}.matrix .milestone-r1,.matrix .milestone-r2{border-right-width:3px!important}#cell-popover{padding:17px}.popover-heading{font-size:10px}#detail.cell-carousel{--card-width:calc(100vw - 58px);height:94dvh;max-height:94dvh}.cell-panel-body{padding:22px 17px 30px}.cell-panel-body #detail-title{font-size:24px}.cell-panel-body .detail-summary{font-size:12px}.cell-panel-body .detail-block{padding:14px}.cell-panel-body .chapter-link{grid-template-columns:32px 1fr 15px;gap:10px}.cell-panel-body .chapter-link strong{font-size:13px!important}.cell-panel-body .detail-section h3{font-size:19px}#detail.cell-carousel>.dialog-bar{padding:9px 10px;gap:5px}#detail.cell-carousel>.dialog-bar>.text-button{width:17px}#cell-nav{gap:3px}#cell-nav>.icon-button{width:27px;height:29px;font-size:17px}.dialog-bar>.icon-button{width:28px;height:29px;font-size:19px}.carousel-periods button{display:none;font-size:10px;padding:5px 9px}.carousel-periods button.active,.carousel-periods button:has(+.active),.carousel-periods button.active+button{display:block}.cell-neighbor.previous{right:calc(50% + var(--card-width)/2 + 8px)}.cell-neighbor.next{left:calc(50% + var(--card-width)/2 + 8px)}.cell-neighbor{top:15px;bottom:15px}.neighbor-overlay>span{padding:8px 3px;font-size:11px}.previous .neighbor-overlay>span{right:0}.next .neighbor-overlay>span{left:0}.reader-layout{display:block}.reader-sidebar{position:relative;top:auto;margin-bottom:25px}#source-toc{max-height:240px;border:1px solid var(--line);padding:12px;border-radius:5px}.reader-document{padding:22px 18px;font-size:14px}.reader-document h1{font-size:26px}.reader-document h2{font-size:23px}.reader-document h3{font-size:20px}.reader-document .source-section{scroll-margin-top:145px}.reader-document .source-section.is-current{margin-left:-10px;padding-left:8px}.reader-document table td{min-width:125px}.reader-document img{padding:3px}.source-reader .page-head .button{margin-top:20px}}
@media print{.reader-sidebar{display:none}.reader-layout{display:block}.reader-document{border:0;padding:0;background:white}.reader-document .source-section{break-inside:auto}}

.cell-panel #detail-title{cursor:grab;user-select:none;touch-action:none}.cell-panel.dragging #detail-title{cursor:grabbing}
