/* verumway.com/graph: the explorer. The same field as the home page, seen from above, with the HUD turned
   into instruments. Loaded after verum.css (shell: HUD, pills, grain, footer) and page.css (the no-JS
   document). Built only from tokens.css; the only colours not in it are the family lines, which are
   light (see render.js) and appear here only as glowing swatches. */

.gpage{--g-gut:var(--gutter);--g-top:calc(var(--hud) + 12px);--g-rail:300px;--g-ins:384px;--g-time:74px;--g-bot:14px;
  --g-glass:rgb(6 7 10/.76);--g-glass-hi:rgb(10 11 15/.9);--g-r:12px;--g-ease:var(--ease)}

/* ---------- modes: the explorer while the script runs, a finished document without it ---------- */
.gws,.g-canvas,.g-labels,.g-veil{display:none}
html.js .gpage,html.js-run .gpage{height:100%;overflow:hidden;overscroll-behavior:none}
html.js .gpage .gws,html.js-run .gpage .gws{display:block}
html.js .gpage .g-canvas,html.js-run .gpage .g-canvas,html.js .gpage .g-labels,html.js-run .gpage .g-labels,html.js .gpage .g-veil,html.js-run .gpage .g-veil{display:block}
html.js .gpage .gdoc,html.js-run .gpage .gdoc,html.js .gpage>.foot,html.js-run .gpage>.foot{display:none}
/* The interactive chrome hides only when neither the head script nor the explorer ran. */
html:not(.js):not(.js-run) .gws{display:none}
html:not(.js):not(.js-run) .g-canvas,html:not(.js):not(.js-run) .g-labels{display:none}
.gpage.no-webgl .g-canvas,.gpage.no-webgl .g-labels,.gpage.no-webgl .g-zoom,.gpage.no-webgl .g-time{display:none}
.gpage.map-lost .g-canvas,.gpage.map-lost .g-labels{visibility:hidden}     /* a lost context shows nothing, not a stale or blank field */

/* ---------- the field ---------- */
.g-canvas{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:0;touch-action:none;cursor:grab;outline:none;opacity:0;transition:opacity 1.2s var(--g-ease)}
.gpage.is-ready .g-canvas{opacity:1}
.g-canvas.is-grabbing{cursor:grabbing}
.g-canvas.is-pointing{cursor:pointer}
.g-canvas:focus-visible{outline:none}
.g-canvas:focus-visible~.g-focusring{opacity:1}
.g-focusring{position:fixed;inset:calc(var(--hud) + 4px) 6px 6px;z-index:1;pointer-events:none;border:1px solid rgb(255 255 255/.5);border-radius:6px;opacity:0;transition:opacity .2s}
.g-labels{position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;z-index:1;pointer-events:none}
.g-veil{position:fixed;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgb(0 0 0/.62) 0,rgb(0 0 0/0) calc(var(--hud) + 60px),rgb(0 0 0/0) calc(100% - 150px),rgb(0 0 0/.72) 100%)}
.gpage .grain{opacity:.035}
.gpage .hud-top{z-index:30}
.gpage .hud-nav a[aria-current="page"]{color:var(--light)}

/* ---------- shared instrument parts ---------- */
.gws{position:relative;z-index:10}
.gws [hidden]{display:none!important}
/* Until the first build arrives there is nothing to filter: only the search frame, the status and the notice show. */
.gpage.is-loading .g-rail,.gpage.is-loading .g-time,.gpage.is-loading .g-keybar,.gpage.is-loading .g-zoom,.gpage.is-loading .g-rail-open,.gpage.is-loading .g-filters-btn{visibility:hidden}
:where(.gws) button{font:inherit;color:inherit}
.g-panel{background:var(--g-glass);border:1px solid var(--glass-line);border-radius:var(--g-r);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 24px 90px rgb(0 0 0/.55)}
.g-chrome{font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t3)}
.g-num{font:400 12px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--t3)}
.g-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:30px;padding:0 12px;border-radius:999px;border:1px solid var(--line-2);background:rgb(255 255 255/.03);font:500 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t2);cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.g-btn:hover{background:rgb(255 255 255/.08);border-color:rgb(255 255 255/.36);color:var(--light)}
.g-btn:active{background:rgb(255 255 255/.14)}
.g-btn[aria-expanded="true"],.g-btn[aria-pressed="true"]{border-color:rgb(255 255 255/.5);color:var(--light);background:rgb(255 255 255/.07)}
.g-btn__n{display:inline-block;min-width:17px;height:17px;padding:0 5px;margin:0 -4px 0 -2px;border-radius:999px;background:var(--light);color:var(--void);font:600 10px/17px var(--mono);letter-spacing:0;text-align:center}
.g-link{color:var(--t2);border-bottom:1px solid var(--line-2);transition:color .2s,border-color .2s}
.g-link:hover{color:var(--light);border-color:var(--light)}
.gws :focus-visible{outline:1.5px solid var(--light);outline-offset:2px}

/* ---------- search ---------- */
.g-find{position:fixed;z-index:26;left:var(--g-gut);top:var(--g-top);width:var(--g-rail);height:46px;display:flex;align-items:center;border-radius:999px;border:1px solid var(--line-2);background:var(--g-glass-hi);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);transition:border-color .2s,box-shadow .3s}
.g-find:focus-within{border-color:rgb(255 255 255/.5);box-shadow:0 0 0 5px rgb(255 255 255/.04),0 18px 60px rgb(0 0 0/.55)}
.g-find__icon{width:16px;height:16px;margin-left:16px;color:var(--t3);flex:none}
.g-find input{flex:1;min-width:0;height:100%;background:transparent;border:0;outline:0;color:var(--t1);font:400 15px/1 var(--sans);padding:0 10px 0 11px}
.g-find input::placeholder{color:var(--t3)}
.g-find input:focus-visible{outline:none}                     /* the pill's own ring shows focus */
.g-find input::-webkit-search-cancel-button{-webkit-appearance:none}
.g-find kbd{margin-right:12px;font:500 11px/1 var(--mono);color:var(--t4);border:1px solid var(--line);border-radius:5px;padding:4px 6px}
.g-results{position:absolute;left:0;right:0;top:calc(100% + 8px);list-style:none;margin:0;padding:6px;border-radius:14px;background:rgb(8 9 12/.985);border:1px solid var(--glass-line);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 24px 80px rgb(0 0 0/.65);max-height:min(420px,60vh);overflow:auto}
.g-results li{display:grid;grid-template-columns:14px minmax(0,1fr);column-gap:10px;row-gap:3px;align-items:center;padding:8px 11px;border-radius:9px;cursor:pointer}
.g-results li[aria-selected="true"],.g-results li:hover{background:rgb(255 255 255/.07)}
.g-results .r-name{font-size:14px;color:var(--t1);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-results .r-meta{grid-column:2;font:500 9.5px/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--t3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-results .r-empty{display:block;color:var(--t3);font-size:13.5px;line-height:1.45;cursor:default;padding:10px 12px}
.g-results .r-empty:hover{background:none}

/* ---------- the rail: kinds, families, layers, sources ---------- */
.g-rail{position:fixed;z-index:20;left:var(--g-gut);top:calc(var(--g-top) + 58px);bottom:calc(var(--g-time) + var(--g-bot) + 12px);width:var(--g-rail);display:flex;flex-direction:column;overflow:hidden;transition:opacity .35s var(--g-ease),transform .35s var(--g-ease)}
.g-rail__scroll{flex:1;overflow:auto;padding:6px 16px 16px;scrollbar-width:thin;scrollbar-color:rgb(255 255 255/.18) transparent}
.gpage.rail-closed .g-rail{opacity:0;transform:translateX(-14px);pointer-events:none;visibility:hidden;transition:opacity .25s var(--g-ease),transform .25s var(--g-ease),visibility 0s .25s}
.g-rail__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 12px 4px 16px}
.g-rail__head h2{font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t2);margin:0}
.g-rail__close{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 6px;border-radius:999px;border:1px solid var(--line);background:none;color:var(--t3);font:500 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;transition:color .2s,border-color .2s}
.g-rail__close:hover{color:var(--light);border-color:var(--line-2)}
.g-rail__close svg{width:10px;height:10px;display:block}
.g-narrow{display:none}
.g-sec{padding:14px 0 6px;border-top:1px solid var(--line)}
.g-sec:first-child{border-top:0}
.g-sec>header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.g-sec h2{font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t3);margin:0}
.g-sec h2 small{font:inherit;color:var(--t4);letter-spacing:.08em;margin-left:6px}
.g-reset{font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t4);background:none;border:0;padding:4px 0;cursor:pointer}
.g-reset:hover{color:var(--light)}
.g-reset[hidden]{display:none}
.g-list{list-style:none;margin:0;padding:0}
.g-row{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr) auto;gap:9px;align-items:center;width:100%;min-height:28px;padding:4px 6px 4px 4px;border-radius:7px;text-align:left;font-size:13.5px;line-height:1.25;color:var(--t1);background:none;border:0;cursor:pointer;transition:background .15s,color .15s}
.g-row:hover{background:rgb(255 255 255/.05)}
.g-row:active{background:rgb(255 255 255/.1)}
.g-status:active,.g-other:active{opacity:.8}
.g-row .g-sw{display:flex;align-items:center;justify-content:center;width:18px;height:18px;transition:opacity .2s}
.g-row .g-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-row .g-count{font:400 11.5px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--t3)}
.g-row[aria-pressed="false"]{color:var(--t4)}
.g-row[aria-pressed="false"] .g-sw{opacity:.28}
.g-row[aria-pressed="false"] .g-count{color:var(--t4);text-decoration:line-through;text-decoration-color:rgb(255 255 255/.2)}
.g-row.is-empty{cursor:default;color:var(--t4)}
.g-row.is-empty:hover{background:none}
.g-li{position:relative}
.g-only{position:absolute;right:52px;top:50%;transform:translateY(-50%);font:500 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3);background:rgb(12 13 17/.96);border:1px solid var(--line-2);border-radius:999px;padding:4px 7px;opacity:0;pointer-events:none;transition:opacity .15s;cursor:pointer}
.g-li:hover .g-only,.g-only:focus-visible{opacity:1;pointer-events:auto}
.g-only:hover{color:var(--light);border-color:rgb(255 255 255/.5)}
.g-sw svg{overflow:visible}
.g-glow{filter:drop-shadow(0 0 3px currentColor)}
.g-layer .g-row{grid-template-columns:30px minmax(0,1fr) auto;min-height:38px}
.g-layer .g-sw{width:30px}
.g-layer .g-name{white-space:normal}
.g-layer .g-sub{display:block;font-size:11.5px;line-height:1.3;color:var(--t3);margin-top:3px}
.g-row[aria-pressed="false"] .g-sub{color:var(--t4)}
.g-note{margin:8px 4px 4px;padding:9px 10px 9px 12px;border-left:1px solid var(--line-2);font-size:12.5px;line-height:1.45;color:var(--t2)}
.g-ended{margin-top:6px}
.g-row[disabled]{cursor:default}
.g-row[disabled]:hover{background:none}
.g-sources{list-style:none;margin:0;padding:0}
.g-sources li{padding:9px 4px;border-top:1px dashed var(--line)}
.g-sources li:first-child{border-top:0}
.g-src__top{display:flex;align-items:center;gap:8px}
.g-src__top b{font-weight:500;font-size:13px;color:var(--t1)}
.g-src__top .dot{width:6px;height:6px;flex:none}
.g-src__name{display:block;margin-top:4px;font-size:11.5px;line-height:1.4;color:var(--t3)}
.g-src__nums{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:6px;font:400 11px/1.3 var(--mono);font-variant-numeric:tabular-nums;color:var(--t3)}
.g-src__nums b{font-weight:400;color:var(--t2)}
.dot.is-amber{background:var(--sp-amber);box-shadow:0 0 0 3px rgb(255 212 90/.16),0 0 10px rgb(255 212 90/.5)}
.g-rail-open{position:fixed;z-index:21;left:var(--g-gut);top:calc(var(--g-top) + 58px);height:32px;background:var(--g-glass-hi);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);opacity:0;visibility:hidden;transform:translateX(-6px);transition:opacity .25s var(--g-ease),transform .25s var(--g-ease),visibility 0s .25s}
.g-rail-open svg{width:9px;height:9px}
.gpage.rail-closed .g-rail-open{opacity:1;visibility:visible;transform:none;transition:opacity .3s var(--g-ease) .1s,transform .3s var(--g-ease) .1s}

/* ---------- status pill and coverage ---------- */
.g-status{position:fixed;z-index:22;right:var(--g-gut);top:var(--g-top);height:34px;display:flex;align-items:center;gap:10px;padding:0 14px 0 13px;border-radius:999px;border:1px solid var(--line-2);background:var(--g-glass-hi);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);font:500 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t2);cursor:pointer;white-space:nowrap;transition:border-color .2s,background .2s,color .2s}
.g-status:hover{border-color:rgb(255 255 255/.4);color:var(--light)}
.g-status b{font-weight:500;color:var(--t1)}
.g-status i.sep{font-style:normal;color:var(--t4)}
.g-status .dot{width:7px;height:7px;flex:none}
.g-status.is-warn{border-color:rgb(255 212 90/.55);color:var(--sp-amber)}
.g-status.is-warn b{color:var(--sp-amber)}
.g-status.is-flash{animation:g-flash 1.6s var(--g-ease)}
@keyframes g-flash{0%{box-shadow:0 0 0 0 rgb(255 255 255/.4)}100%{box-shadow:0 0 0 14px rgb(255 255 255/0)}}
.g-cov{position:fixed;z-index:40;right:var(--g-gut);top:calc(var(--g-top) + 44px);width:min(640px,calc(100vw - 2 * var(--g-gut)));max-height:calc(100vh - var(--g-top) - 44px - var(--g-time) - var(--g-bot) - 24px);display:flex;flex-direction:column;background:var(--g-glass-hi)}
.g-cov[hidden]{display:none}
.g-cov__head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px 14px;border-bottom:1px solid var(--line)}
.g-cov__head h2{font:400 1.25rem/1.2 var(--sans);letter-spacing:-.02em;margin:0 0 6px}
.g-cov__head p{font-size:13px;line-height:1.45;color:var(--t2);max-width:52ch}
.g-cov__body{overflow:auto;padding:4px 20px 18px}
.g-cov table{width:100%;border-collapse:collapse;font:400 12px/1.35 var(--mono);font-variant-numeric:tabular-nums}
.g-cov caption{text-align:left;padding:16px 0 8px;font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t3)}
.g-cov th{font:500 9.5px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t4);text-align:right;padding:6px 0 6px 10px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgb(10 11 15)}
.g-cov th:first-child,.g-cov th:nth-child(2){text-align:left;padding-left:0}
.g-cov td{padding:6px 0 6px 10px;text-align:right;color:var(--t2);border-bottom:1px dashed rgb(255 255 255/.07);vertical-align:top}
.g-cov td:first-child,.g-cov td:nth-child(2){text-align:left;padding-left:0;color:var(--t1)}
.g-cov td:first-child{color:var(--t3)}
.g-cov td.drop{color:var(--t3);text-align:left;font-size:11px;max-width:180px}
.g-cov td.drop b{font-weight:400;color:var(--sp-amber)}
.g-cov tr.is-bad td{color:var(--sp-amber)}
.g-covnote{display:block;margin-top:3px;color:var(--t3)}
.g-covline{margin:10px 0 0;font-size:12.5px;line-height:1.45;color:var(--t3)}
.g-cov .g-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:14px 0 2px;font:400 12px/1.4 var(--mono);color:var(--t2)}
.g-cov .g-facts b{font-weight:400;color:var(--t1)}
.g-verdict{display:flex;align-items:flex-start;gap:8px;font:500 10.5px/1.45 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--live);padding-top:14px}
.g-verdict .dot{margin-top:4px;flex:none}
.g-verdict.is-warn{color:var(--sp-amber)}

/* ---------- inspector ---------- */
.g-ins{position:fixed;z-index:21;right:var(--g-gut);top:calc(var(--g-top) + 46px);bottom:calc(var(--g-time) + var(--g-bot) + 12px);width:var(--g-ins);display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateX(16px);transition:opacity .32s var(--g-ease),transform .32s var(--g-ease)}
.g-ins.is-on{opacity:1;transform:none}
.g-ins[hidden]{display:none}
.g-ins::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--spectrum);opacity:.0;transition:opacity .6s}
.g-ins.is-on::before{opacity:.5}
.g-ins__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px 0}
.g-ins__head .g-chrome{display:flex;align-items:center;gap:9px;color:var(--t2);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.g-ins__close{display:inline-flex;align-items:center;gap:8px;font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t3);background:none;border:0;padding:6px 0;cursor:pointer}
.g-ins__close:hover{color:var(--light)}
.g-ins__body{flex:1;overflow:auto;padding:10px 18px 22px;scrollbar-width:thin;scrollbar-color:rgb(255 255 255/.18) transparent}
.g-ins h2{font:300 1.75rem/1.1 var(--sans);letter-spacing:-.03em;color:var(--t1);margin:4px 0 12px;overflow-wrap:anywhere}
.g-ins h2:focus,.g-ins h2:focus-visible{outline:none}
.g-kindline{display:flex;align-items:center;gap:8px;font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t2)}
.g-badges{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 14px}
.g-badge{display:inline-flex;align-items:center;gap:6px;font:500 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t2);border:1px solid var(--line-2);padding:5px 7px;border-radius:3px;white-space:nowrap}
.g-badge--observation{border-style:dashed}
.g-badge--derived{border-style:dotted;color:var(--t3)}
.g-badge--inferred{border-style:dashed;color:var(--t2)}
.g-badge--ended{border-color:rgb(255 255 255/.14);background:rgb(255 255 255/.04);color:var(--t2)}
.g-badge--sm{font-size:9px;padding:3px 5px;letter-spacing:.1em}
.g-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 6px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.g-stats div{padding:10px 8px 10px 0}
.g-stats div+div{padding-left:10px;border-left:1px solid var(--line)}
.g-stats dt{font:500 9.5px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3);margin-bottom:7px}
.g-stats dd{margin:0;font:300 1.35rem/1 var(--sans);letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:var(--t1)}
.g-ident{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--t3)}
.g-ident a{color:var(--t2);border-bottom:1px solid var(--line-2)}
.g-ident a:hover{color:var(--light)}
.g-isec{margin-top:20px}
.g-isec>h3{display:flex;align-items:center;justify-content:space-between;gap:12px;font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t3);margin:0 0 6px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.g-isec>h3 span{color:var(--t4);letter-spacing:.08em}
.g-fam{margin-top:12px}
.g-fam>h4{display:flex;align-items:center;gap:9px;margin:0 0 2px;font:500 12px/1 var(--sans);color:var(--t1)}
.g-fam>h4 .g-count{margin-left:auto;font:400 11px/1 var(--mono);color:var(--t3)}
.g-fam>h4 .g-fline{width:16px;height:2px;border-radius:1px;box-shadow:0 0 6px currentColor;background:currentColor}
.g-rels{list-style:none;margin:0;padding:0}
.g-rel{padding:8px 0;border-bottom:1px dashed rgb(255 255 255/.07)}
.g-rel:last-child{border-bottom:0}
.g-rel__top{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:8px;row-gap:1px;min-width:0}
.g-rows{margin-left:auto;font:400 10.5px/1.3 var(--mono);font-variant-numeric:tabular-nums;color:var(--t3);white-space:nowrap}
/* one row per distinct fact under its heading: its own qualifiers, date and source */
.g-rel .g-facts{list-style:none;margin:3px 0 0;padding:0}
.g-fact{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 10px;padding:4px 0}
.g-fact+.g-fact{border-top:1px dotted rgb(255 255 255/.07);padding-top:6px}
.g-facts>.g-fact:only-child{padding-top:2px}
.g-rel .g-facts>.g-fact:not(:only-child){padding-left:10px;border-left:1px solid var(--line)}
.g-fact__main{display:flex;flex-direction:column;gap:3px;min-width:0}
.g-fact .g-tags{grid-column:2;grid-row:1;max-width:118px;flex-wrap:wrap;justify-content:flex-end}
.g-fact .g-badge{white-space:normal;text-align:center;line-height:1.3}
.g-fact .g-srcs{grid-column:1/-1}
.g-fact.is-ended .g-quals,.g-fact.is-ended .g-meta,.g-fact.is-ended .g-meta a{color:var(--t3)}
.g-morefacts{margin:4px 0 0 10px;padding:3px 0}
.g-words{flex:none;font:500 10px/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--t3);max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-other{flex:1 1 110px;max-width:100%;min-width:0;font-size:14px;line-height:1.3;color:var(--t1);background:none;border:0;padding:0;text-align:left;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:text-decoration-color .2s}
.g-other:hover{text-decoration-color:rgb(255 255 255/.5)}
.g-other[disabled]{cursor:default;color:var(--t2)}
.g-tags{display:flex;gap:4px;align-self:start;justify-self:end}
.g-tags--left{justify-self:start;flex-wrap:wrap;margin-bottom:6px}
.g-rel.is-ended .g-words,.g-rel.is-ended .g-other,.g-item.is-ended .g-item__t{color:var(--t3)}
.g-endtxt{color:var(--t2)}
.g-quals{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:1px 20px;font-size:12.5px;line-height:1.4;color:var(--t2);min-width:0}
.g-quals .g-sep{color:var(--t4)}
/* a line of bits (model.js sepLine): each bit after the first carries its "·", set in the gap before it.
   The line's box starts 4px left of its text and clips at that edge, so the "·" of a bit that starts a
   wrapped line falls outside and is not drawn; focus rings keep their 4px. */
.g-quals,.g-meta{margin-left:-4px;padding-left:4px;clip-path:inset(-6px -6px -6px 0)}
.g-mi{position:relative;display:flex;align-items:center;min-width:0;max-width:100%}
.g-mi>.g-sep{position:absolute;top:0;bottom:0;right:100%;display:flex;align-items:center;justify-content:center;pointer-events:none}
.g-quals .g-mi>.g-sep{width:20px}
.g-meta .g-mi>.g-sep{width:22px}
.g-quote{grid-column:1/-1;margin:3px 0 1px;padding:1px 0 1px 10px;border-left:1px solid var(--line-2);font-size:12.5px;line-height:1.45;color:var(--t2);overflow-wrap:anywhere}
.g-datenote{grid-column:1/-1;margin:1px 0 0;font-size:11.5px;line-height:1.4;color:var(--t3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.g-flag{font:500 9px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--sp-amber);border:1px solid rgb(255 212 90/.4);border-radius:3px;padding:2px 4px}
.g-dim{color:var(--t4)}
.g-srcs{grid-column:1/-1;padding-left:10px;border-left:1px solid var(--line)}
.g-srcs li{padding:4px 0}
.g-meta{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:2px 22px;font:400 11px/1.4 var(--mono);color:var(--t3);min-width:0}
.g-meta a{color:var(--t2);border-bottom:1px solid var(--line);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.g-meta a:hover{color:var(--light);border-color:var(--light)}
.g-meta .g-none{color:var(--t3)}
.g-meta .g-n{color:var(--t2)}
.g-meta .g-sep{color:var(--t4)}
.g-more{margin-top:6px}
.g-item{padding:10px 0;border-bottom:1px dashed rgb(255 255 255/.07)}
.g-item:last-child{border-bottom:0}
.g-item__t{font-size:13.5px;line-height:1.45;color:var(--t1);white-space:pre-line;overflow-wrap:anywhere}
.g-item__t.is-clip{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.g-expand{margin-top:4px;font:500 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3);background:none;border:0;padding:3px 0;cursor:pointer}
.g-expand:hover{color:var(--light)}
.g-item .g-meta{margin-top:5px}
.g-event{display:grid;grid-template-columns:94px minmax(0,1fr);gap:2px 10px;padding:9px 0;border-bottom:1px dashed rgb(255 255 255/.07)}
.g-event time{grid-row:span 2;font:500 11px/1.5 var(--mono);color:var(--t3);white-space:nowrap}
.g-event .g-other{white-space:normal}
.g-event .g-meta{grid-column:2}
.g-empty{font-size:13px;line-height:1.5;color:var(--t3);padding:8px 0}
.g-warn{margin-top:12px;padding:10px 12px;border-left:1px solid var(--sp-amber);background:linear-gradient(90deg,rgb(255 212 90/.07),transparent);font-size:12.5px;line-height:1.45;color:var(--t2)}
.g-skel{height:12px;border-radius:3px;background:linear-gradient(90deg,rgb(255 255 255/.05),rgb(255 255 255/.11),rgb(255 255 255/.05));background-size:200% 100%;margin:10px 0}
@media (prefers-reduced-motion:no-preference){.g-skel{animation:g-shimmer 1.4s linear infinite}@keyframes g-shimmer{to{background-position:-200% 0}}}

/* ---------- time ---------- */
.g-time{position:fixed;z-index:21;left:var(--g-gut);right:var(--g-gut);bottom:var(--g-bot);height:var(--g-time);display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:18px;padding:0 18px 0 14px}
.g-play{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-2);background:rgb(255 255 255/.03);display:flex;align-items:center;justify-content:center;color:var(--t1);cursor:pointer;transition:background .2s,border-color .2s}
.g-play:hover{background:rgb(255 255 255/.09);border-color:rgb(255 255 255/.45)}
.g-play:active{background:rgb(255 255 255/.16)}
.g-play svg{width:12px;height:12px}
.g-hist{position:relative;height:50px;cursor:ew-resize;touch-action:none;outline:none}
.g-hist:focus-visible{outline:none}
.g-hist canvas{position:absolute;left:0;top:0;width:100%;height:36px}
.g-years{position:absolute;left:0;right:0;top:40px;height:10px;font:500 9.5px/1 var(--mono);letter-spacing:.1em;color:var(--t4)}
.g-years span{position:absolute;transform:translateX(-50%);white-space:nowrap}
.g-handle{position:absolute;top:-6px;width:1px;height:48px;margin-left:-0.5px;background:var(--light);box-shadow:0 0 10px rgb(255 255 255/.7),0 0 26px rgb(200 225 255/.35);pointer-events:none}
.g-handle::before{content:"";position:absolute;left:-4px;top:-3px;width:9px;height:9px;border-radius:50%;background:var(--light);box-shadow:0 0 12px rgb(255 255 255/.8)}
.g-hist:focus-visible .g-handle::after{content:"";position:absolute;left:-9px;top:-8px;width:19px;height:19px;border-radius:50%;border:1.5px solid var(--light)}
.g-asof{display:flex;flex-direction:column;align-items:flex-end;gap:6px;width:264px;min-width:0}
.g-asof__k{font:500 9.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--t4)}
.g-asof b{font:500 13px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--t1);white-space:nowrap}
.g-asof small{display:block;font:400 10px/1.3 var(--mono);letter-spacing:.04em;color:var(--t4);text-align:right;max-width:100%}
.g-asof small span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-asof .g-reset{padding:0}
.g-asof__short{display:none}
.g-asof-row{display:flex;align-items:baseline;gap:10px}

/* ---------- tools on the field ---------- */
.g-zoom{position:fixed;z-index:20;right:calc(var(--g-gut) + 12px);bottom:calc(var(--g-time) + var(--g-bot) + 14px);display:flex;flex-direction:column;border-radius:10px;overflow:hidden;transition:right .32s var(--g-ease)}
.g-zoom button{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:none;border:0;color:var(--t2);cursor:pointer;transition:background .15s,color .15s}
.g-zoom button+button{border-top:1px solid var(--line)}
.g-zoom button:hover{background:rgb(255 255 255/.07);color:var(--light)}
.g-zoom button:active{background:rgb(255 255 255/.13)}
.g-zoom svg{width:13px;height:13px}
.gpage.ins-open .g-zoom{right:calc(var(--g-gut) + var(--g-ins) + 12px)}
.g-keybar{position:fixed;z-index:20;left:calc(var(--g-gut) + var(--g-rail) + 14px);bottom:calc(var(--g-time) + var(--g-bot) + 14px);display:flex;gap:8px;transition:left .35s var(--g-ease)}
.g-keybar .g-btn{background:var(--g-glass-hi);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur)}
.gpage.rail-closed .g-keybar{left:var(--g-gut)}
.g-filters-btn{display:none}
.g-legend{position:fixed;z-index:24;left:calc(var(--g-gut) + var(--g-rail) + 14px);bottom:calc(var(--g-time) + var(--g-bot) + 56px);width:min(520px,calc(100vw - 2 * var(--g-gut)));max-height:calc(100vh - var(--g-top) - var(--g-time) - 110px);overflow:auto;padding:16px 18px 18px;transition:left .35s var(--g-ease)}
.gpage.rail-closed .g-legend{left:var(--g-gut)}
.g-legend[hidden]{display:none}
.g-legend h2{font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t3);margin:0 0 10px}
.g-legend h2+*{margin-bottom:14px}
.g-key{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px 14px;list-style:none;margin:0;padding:0}
.g-key li{display:flex;align-items:center;gap:9px;font-size:12.5px;color:var(--t2);min-height:20px}
.g-key li .g-sw{display:flex;width:18px;justify-content:center;flex:none}
.g-key--lines li .g-sw{width:30px}
.g-key li.g-key__note{grid-column:1/-1;gap:6px;color:var(--t3);font-size:12px;line-height:1.4}
.g-legend p{font-size:12px;line-height:1.5;color:var(--t3);margin-top:4px}

/* ---------- the hover card ---------- */
.g-tip{position:fixed;left:0;top:0;z-index:35;pointer-events:none;opacity:0;width:max-content;max-width:300px;padding:10px 12px 11px;border-radius:10px;background:rgb(7 8 11/.9);border:1px solid var(--glass-line);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);box-shadow:0 18px 60px rgb(0 0 0/.6);transition:opacity .12s}
.g-tip.is-on{opacity:1}
.g-tip__name{font-size:14px;line-height:1.3;color:var(--t1)}
.g-tip__kind{display:flex;align-items:center;gap:7px;margin-top:5px;font:500 9.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t3)}
.g-tip ul{list-style:none;margin:8px 0 0;padding:7px 0 0;border-top:1px solid var(--line)}
.g-tip li{display:flex;align-items:baseline;gap:7px;font-size:12.5px;line-height:1.35;color:var(--t2);padding:2px 0;min-width:0}
.g-tip li .g-words{max-width:none}
.g-tsw{flex:none;display:inline-flex;align-items:center;align-self:center}
.g-tip__o{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.g-ev{flex:none;margin-left:auto;align-self:center;font:500 8.5px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--t3);border:1px solid var(--line-2);border-radius:3px;padding:2px 4px}
.g-ev+.g-ev{margin-left:0}
.g-ev--observation,.g-ev--inferred{border-style:dashed}
.g-ev--derived{border-style:dotted}
.g-ev--ended{color:var(--t2);background:rgb(255 255 255/.05);border-color:rgb(255 255 255/.14)}
.g-tip li.is-ended .g-words,.g-tip li.is-ended .g-tip__o{color:var(--t4)}
/* a relation line: its words and other end, then its date (or "undated") and any end, under them */
.g-tip li.g-tip__line{align-items:flex-start;padding:3px 0}
.g-tip__line>.g-tsw{align-self:flex-start;margin-top:5px}
.g-tip__line>.g-ev{align-self:flex-start;margin-top:2px}
.g-tip__rel{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 auto}
.g-tip__top{display:flex;align-items:baseline;gap:7px;min-width:0}
.g-tip__when{font:400 10.5px/1.35 var(--mono);color:var(--t3);white-space:normal}
.g-tip__when .g-ev{display:inline-block;margin-left:4px;vertical-align:1px}
.g-rel:focus,.g-fact:focus,.g-item:focus{outline:none}
.g-rel:focus-visible,.g-fact:focus-visible,.g-item:focus-visible{outline:1px solid rgb(255 255 255/.5);outline-offset:3px;border-radius:3px}
.g-tip__counts .g-words{flex:1 1 auto}
.g-tip__n{flex:none;margin-left:auto;font:400 11px/1 var(--mono);font-variant-numeric:tabular-nums;color:var(--t2)}
.g-tip__more{margin-top:6px;font-size:11.5px;line-height:1.4;color:var(--t3);max-width:270px}
.g-tip .g-hint{margin-top:7px;font:500 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t4)}

/* ---------- notices: loading, warming, error, empty ---------- */
.g-notice{position:fixed;z-index:25;left:50%;top:50%;transform:translate(-50%,-50%);width:min(440px,calc(100vw - 32px));text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;padding:26px 26px 24px}
.g-notice[hidden]{display:none}
.g-notice h2{font:300 1.6rem/1.15 var(--sans);letter-spacing:-.03em;margin:0}
.g-notice p{font-size:14px;line-height:1.5;color:var(--t2);max-width:38ch}
.g-notice .g-chrome{color:var(--t3)}
.g-notice--quiet{background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.g-scan{position:relative;width:180px;height:1px;background:var(--line);overflow:hidden}
.g-scan::after{content:"";position:absolute;top:0;left:-40%;width:40%;height:1px;background:linear-gradient(90deg,transparent,var(--light),transparent);box-shadow:0 0 10px rgb(255 255 255/.6)}
@media (prefers-reduced-motion:no-preference){.g-scan::after{animation:g-scan 1.5s var(--g-ease) infinite}@keyframes g-scan{to{left:100%}}}
.g-filtered{position:fixed;z-index:19;left:50%;top:calc(var(--g-top) + 60px);transform:translateX(-50%);display:flex;align-items:center;gap:12px;padding:8px 8px 8px 16px;border-radius:999px;font-size:13px;color:var(--t2)}
.g-filtered[hidden]{display:none}

/* ---------- the no-JS document ---------- */
.gdoc .claim{max-width:15ch}
.gdoc__needs{margin-top:22px;max-width:58ch;padding:14px 16px;border-left:1px solid var(--light);background:linear-gradient(90deg,rgb(255 255 255/.05),transparent);color:var(--t1)}
.gdoc__layers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(14px,2vw,26px);margin:0}
.gdoc__layers>div{padding:24px 22px;border:1px solid var(--glass-line);border-radius:var(--radius);background:rgb(255 255 255/.022)}
.gdoc__layers dt{display:flex;align-items:center;gap:12px;font:500 var(--fs-chrome)/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t1);margin-bottom:12px}
.gdoc__layers dt i{display:block;width:34px;height:0;border-top:1.5px solid var(--light)}
.gdoc__layers div:nth-child(2) dt i{border-top-style:dashed}
.gdoc__layers div:nth-child(3) dt i{border-top-style:dotted;opacity:.6}
.gdoc__layers dd{margin:0;color:var(--t2);font-size:15px;line-height:1.55}
.gdoc__fams{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:0 28px;list-style:none;margin:0;padding:0}
.gdoc__fams li{padding:14px 0;border-top:1px solid var(--line);color:var(--t2);font-size:14.5px;line-height:1.5}
.gdoc__fams b{display:block;font-weight:500;color:var(--t1);margin-bottom:3px}
.gdoc__kinds{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 6px;padding:0}
.gdoc__kinds li{font:500 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t2);border:1px solid var(--line-2);border-radius:999px;padding:8px 12px}
.gdoc__nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:26px 0 0;border-top:1px solid var(--line)}
.gdoc__nums div{padding:16px 16px 0 0}
.gdoc__nums dt{font:500 10px/1 var(--mono);letter-spacing:var(--track-chrome);text-transform:uppercase;color:var(--t3);margin-bottom:10px}
.gdoc__nums dd{margin:0;font:300 clamp(1.5rem,2.2vw,2rem)/1 var(--sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.gdoc code{font:400 13px/1 var(--mono);color:var(--t1)}

/* ---------- narrower ---------- */
@media (max-width:1180px){
  .gpage{--g-rail:272px;--g-ins:344px}
}
@media (max-width:900px){
  .gpage{--g-gut:16px;--g-time:56px;--g-bot:12px;--g-top:calc(var(--hud) + 8px)}
  .gpage .hud-top{gap:12px}
  .g-find{left:var(--g-gut);right:var(--g-gut);width:auto;height:44px}
  /* while its results are open the search sits above the sheets too; otherwise a tall sheet covers it */
  .gpage.results-open .g-find{z-index:47}
  .g-find kbd{display:none}
  .g-status{top:calc(var(--g-top) + 54px);height:30px;padding:0 11px;font-size:9.5px;gap:8px}
  .g-status .g-long{display:none}
  .g-cov{top:calc(var(--g-top) + 92px);left:var(--g-gut);right:var(--g-gut);width:auto;max-height:calc(100dvh - var(--g-top) - 110px - var(--g-time))}
  .g-cov table{font-size:11px}
  .g-cov td.drop{max-width:120px}
  .g-rail-open{display:none}
  .g-wide{display:none}.g-narrow{display:inline}
  .g-rail__close{height:30px;padding:0 12px;border-color:var(--line-2);color:var(--t2)}
  /* the rail becomes a bottom sheet behind "Filters" */
  .g-rail{left:0;right:0;top:auto;bottom:0;width:auto;max-height:78dvh;border-radius:16px 16px 0 0;border-bottom:0;transform:translateY(102%);opacity:1;visibility:hidden;transition:transform .38s var(--g-ease),visibility 0s .38s;z-index:45}
  .gpage.sheet-filters .g-rail{transform:none;visibility:visible;transition:transform .38s var(--g-ease)}
  .gpage.rail-closed .g-rail{transform:translateY(102%);opacity:1}
  .gpage.rail-closed.sheet-filters .g-rail{transform:none;visibility:visible;pointer-events:auto}
  .g-rail__head{position:relative;padding:18px 16px 10px;border-bottom:1px solid var(--line)}
  .g-rail__head::before{content:"";position:absolute;left:50%;top:6px;width:36px;height:3px;margin-left:-18px;border-radius:2px;background:rgb(255 255 255/.2)}
  .g-rail__scroll{padding:4px 16px calc(18px + env(safe-area-inset-bottom))}
  .g-row{min-height:40px}
  .g-only{opacity:1;pointer-events:auto;right:60px;color:var(--t4);border-color:var(--line)}
  .g-filters-btn{display:inline-flex;position:fixed;z-index:20;left:var(--g-gut);bottom:calc(var(--g-time) + var(--g-bot) + 12px);height:36px;padding:0 14px;background:var(--g-glass-hi)}
  .g-keybar{left:auto;right:calc(var(--g-gut) + 50px);bottom:calc(var(--g-time) + var(--g-bot) + 12px)}
  .gpage.rail-closed .g-keybar{left:auto}
  .g-keybar .g-btn{height:36px;background:var(--g-glass-hi)}
  .g-zoom{right:var(--g-gut);bottom:calc(var(--g-time) + var(--g-bot) + 12px)}
  .g-zoom #zoom-in,.g-zoom #zoom-out{display:none}
  .g-zoom button{width:36px;height:36px}
  .gpage.ins-open .g-zoom{right:var(--g-gut)}
  .g-legend{left:var(--g-gut);right:var(--g-gut);width:auto;bottom:calc(var(--g-time) + var(--g-bot) + 58px);max-height:58dvh}
  .gpage.rail-closed .g-legend{left:var(--g-gut)}
  /* the inspector becomes a bottom sheet */
  .g-ins{left:0;right:0;top:auto;bottom:0;width:auto;height:min(64dvh,560px);border-radius:16px 16px 0 0;border-bottom:0;transform:translateY(24px);z-index:46}
  .g-ins.is-tall{height:calc(100dvh - var(--g-top) - 8px)}
  .g-ins__head{padding:16px 16px 0;position:relative}
  .g-ins__head::before{content:"";position:absolute;left:50%;top:6px;width:36px;height:3px;margin-left:-18px;border-radius:2px;background:rgb(255 255 255/.2)}
  .g-ins__body{padding:8px 16px calc(22px + env(safe-area-inset-bottom))}
  .g-ins h2{font-size:1.5rem}
  .g-stats dd{font-size:1.15rem}
  .g-time{left:var(--g-gut);right:var(--g-gut);gap:10px;padding:0 10px 0 8px;grid-template-columns:auto minmax(0,1fr) auto}
  .g-play{width:34px;height:34px}
  .g-hist{height:38px}
  .g-hist canvas{height:26px}
  .g-years{top:29px;font-size:8.5px}
  .g-handle{height:36px;top:-5px}
  .g-asof{width:auto;min-width:0;gap:3px}
  .g-asof small,.g-asof__k{display:none}
  .g-asof__short{display:block;font:400 8.5px/1.2 var(--mono);letter-spacing:.03em;color:var(--t4);text-align:right;white-space:nowrap}
  .g-asof__short span{display:block}
  .g-asof b{font-size:11px;letter-spacing:.06em}
  .g-filtered{top:calc(var(--g-top) + 96px);max-width:calc(100vw - 32px)}
  .gdoc__layers{grid-template-columns:1fr}
  .g-tip{display:none}
}
@media (max-width:600px){
  /* coverage rows stack: layer and kind, then the numbers with their names, then what was dropped and why */
  .g-cov thead{display:none}
  .g-cov table,.g-cov tbody,.g-cov caption{display:block}
  .g-cov tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 12px;padding:11px 0;border-bottom:1px dashed rgb(255 255 255/.07)}
  .g-cov td,.g-cov td:first-child,.g-cov td:nth-child(2){padding:0;border:0;text-align:left}
  .g-cov td:nth-child(2){grid-column:2/-1}
  .g-cov td[data-k]::before{content:attr(data-k);display:block;margin-bottom:4px;font:500 9px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--t4)}
  .g-cov td.drop,.g-cov td[colspan]{grid-column:1/-1;max-width:none;padding-left:0!important}
}
@media (max-width:420px){
  .gpage .hud-top .pill{height:34px;padding:0 12px;font-size:13px}
}
@media (prefers-reduced-motion:reduce){
  /* nothing slides or fades: panels, sheets, the field and the toasts appear in place */
  .gws *,.gws *::before,.gws *::after{transition:none!important;animation:none!important}
}
