body:has(.faviconlab){background:var(--frame);margin:0}.faviconlab{--frame:light-dark(#dde1e7,#1c1e23);--tab:light-dark(#fff,#2d3037);--tab-idle:light-dark(#e8ebf0,#24262c);--page-bg:light-dark(#f7f8fa,#131519);--ink:light-dark(#1c2028,#e9ebef);--muted:light-dark(#5d6470,#9ba2ad);--line:light-dark(#c9ced7,#3a3e47);--amber:#ffb000;--amber-ink:light-dark(#7a4f00,#ffc94d);--pixel:var(--font-faviconlab), ui-monospace, monospace;--ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--icon:clamp(88px, 21vw, 232px);color-scheme:light dark;box-sizing:border-box;min-height:100dvh;color:var(--ink);background:var(--frame);font:400 1rem/1.6 var(--ui);padding-top:3.25rem}.faviconlab *,.faviconlab :before,.faviconlab :after{box-sizing:inherit}.faviconlab [hidden]{display:none!important}.faviconlab .lookup{font:400 .8rem/1 var(--pixel);letter-spacing:.04em;color:var(--amber-ink);text-transform:uppercase;margin:0;position:absolute;top:.75rem;left:1rem}.faviconlab .lookup-arrow{font-size:1.1rem;animation:1.6s ease-in-out infinite faviconlab-nudge;display:inline-block}@keyframes faviconlab-nudge{50%{transform:translateY(-.3rem)}}.faviconlab .window{container:window/inline-size}.faviconlab .tabs{align-items:flex-end;gap:0;min-width:0;padding:0 1rem;display:flex}.faviconlab .tab{--size:var(--icon);align-items:center;gap:calc(var(--size) * .16);min-width:0;max-width:100%;padding:calc(var(--size) * .14) calc(var(--size) * .2);border-radius:calc(var(--size) * .14) calc(var(--size) * .14) 0 0;color:var(--muted);flex:0 auto;display:flex;position:relative}.faviconlab .tab.is-self{background:var(--tab);color:var(--ink);z-index:1}.faviconlab .tab.is-self:before,.faviconlab .tab.is-self:after{content:"";width:calc(var(--size) * .14);height:calc(var(--size) * .14);position:absolute;bottom:0}.faviconlab .tab.is-self:before{left:calc(var(--size) * -.14);background:radial-gradient(circle at 0 0, transparent 70%, var(--tab) 71%)}.faviconlab .tab.is-self:after{right:calc(var(--size) * -.14);background:radial-gradient(circle at 100% 0, transparent 70%, var(--tab) 71%)}.faviconlab .tab:not(.is-self)+.tab:not(.is-self):before{content:"";border-left:max(1px, calc(var(--size) * .012)) solid var(--line);position:absolute;top:25%;bottom:25%;left:0}.faviconlab .tab-icon{width:var(--size);height:var(--size);background:repeating-conic-gradient(light-dark(#e6e8ec,#2a2c31) 0 25%, transparent 0 50%) 0 0 / calc(var(--size) / 8) calc(var(--size) / 8);flex:none;position:relative}.faviconlab .tab-icon canvas,.faviconlab .tab-icon img{width:100%;height:100%;image-rendering:pixelated;display:block}.faviconlab .tab-icon:after{content:"";pointer-events:none;background:linear-gradient(to right, light-dark(#0000000f,#ffffff0f) 1px, transparent 1px) 0 0 / calc(var(--size) / 32) 100%, linear-gradient(to bottom, light-dark(#0000000f,#ffffff0f) 1px, transparent 1px) 0 0 / 100% calc(var(--size) / 32);position:absolute;inset:0}.faviconlab .tab-icon.is-smooth img{image-rendering:auto}.faviconlab .tab-icon.is-smooth:after{display:none}.faviconlab .cover{z-index:1;text-align:center;color:var(--amber);font:400 calc(var(--size) * .09) / 1.4 var(--pixel);text-transform:uppercase;background:repeating-linear-gradient(45deg,#16120c 0 10px,#241c10 10px 20px);place-items:center;display:grid;position:absolute;inset:0}.faviconlab .tab-title{white-space:nowrap;text-overflow:ellipsis;min-width:0;font:400 calc(var(--size) * .36) / 1.2 var(--ui);letter-spacing:-.01em;flex:0 auto;overflow:hidden}.faviconlab .tab-x{font:300 calc(var(--size) * .3) / 1 var(--ui);color:var(--muted);flex:none}.faviconlab .tab-new{margin-left:calc(var(--icon) * .12);font:300 calc(var(--icon) * .5) / 1 var(--ui);color:var(--muted);padding:0 calc(var(--icon) * .08);border-radius:50%;flex:none;align-self:center;text-decoration:none}.faviconlab .tab-new:hover,.faviconlab .tab-new:focus-visible{color:var(--ink);background:var(--tab-idle)}.faviconlab .toolbar{background:var(--tab);color:var(--muted);font:400 clamp(.85rem, 2.2vw, 1.15rem) / 1.2 var(--ui);border-bottom:1px solid var(--line);align-items:center;gap:1rem;padding:.6rem 1rem;display:flex}.faviconlab .nav-glyphs{letter-spacing:.5em;white-space:nowrap}.faviconlab .url{text-overflow:ellipsis;white-space:nowrap;background:var(--frame);min-width:0;color:var(--ink);border-radius:999px;flex:1;padding:.35rem .9rem;overflow:hidden}.faviconlab .tabs[data-count] .tab{--size:clamp(28px, calc((100cqi - 6rem) / var(--count) * .42), var(--icon));flex:1 1 0}.faviconlab .tabs[data-count] .tab-x{display:none}.faviconlab .page{background:var(--page-bg);padding:1.5rem 1rem 2rem}.faviconlab .programs{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr));gap:.5rem;max-width:62rem;margin:0 auto 1.5rem;display:grid}.faviconlab .programs button{text-align:left;border:1px solid var(--line);background:var(--tab);color:var(--ink);cursor:pointer;font:inherit;border-radius:.6rem;gap:.2rem;padding:.7rem .85rem;display:grid}.faviconlab .programs button[aria-pressed=true]{border-color:var(--amber);box-shadow:inset 0 0 0 2px var(--amber)}.faviconlab .program-name{font:700 .95rem/1.1 var(--pixel);text-transform:uppercase;letter-spacing:.03em}.faviconlab .program-blurb{color:var(--muted);font-size:.85rem}.faviconlab .panel,.faviconlab .notes{max-width:62rem;margin:0 auto}.faviconlab .panel h1,.faviconlab .panel h2,.faviconlab .notes h2{font:700 1.15rem/1.3 var(--pixel);text-transform:uppercase;letter-spacing:.02em;margin:1.5rem 0 .5rem}.faviconlab .panel h1{margin-top:0;font-size:clamp(1.2rem,3.4vw,1.6rem)}.faviconlab .panel p,.faviconlab .panel ul,.faviconlab .notes p{max-width:40rem}.faviconlab .note,.faviconlab .chart-key{color:var(--muted);font-size:.9rem}.faviconlab code{font:.9em ui-monospace,monospace}.faviconlab a{color:var(--amber-ink)}.faviconlab .row{flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;display:flex}.faviconlab .row .row{margin:0}.faviconlab .btn{border:1px solid var(--line);background:var(--tab);color:var(--ink);font:700 .8rem/1.2 var(--pixel);text-transform:uppercase;letter-spacing:.03em;cursor:pointer;border-radius:.5rem;padding:.5rem .9rem;text-decoration:none;display:inline-block}.faviconlab .btn:hover{border-color:var(--muted)}.faviconlab .btn[aria-pressed=true]{background:var(--amber);border-color:var(--amber);color:#16120c}.faviconlab :focus-visible{outline:2px solid var(--amber);outline-offset:2px}.faviconlab .readout{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0 0 0 .5rem;display:flex}.faviconlab .readout div{display:grid}.faviconlab .readout dt{font:400 .7rem/1.2 var(--pixel);text-transform:uppercase;color:var(--muted)}.faviconlab .readout dd{font:700 1.1rem/1.3 var(--pixel);font-variant-numeric:tabular-nums;margin:0}.faviconlab .pad{touch-action:manipulation;grid-template:".up.""left.right"".down."/3.25rem 3.25rem 3.25rem;gap:.25rem;margin:1rem 0;display:grid}.faviconlab .pad .btn{padding:.7rem 0;font-size:1rem}.faviconlab [data-dir=up]{grid-area:up}.faviconlab [data-dir=left]{grid-area:left}.faviconlab [data-dir=right]{grid-area:right}.faviconlab [data-dir=down]{grid-area:down}.faviconlab .report{border:1px solid var(--line);background:var(--tab);border-radius:.6rem;margin:1rem 0;padding:1rem}.faviconlab .report p{margin-top:0}.faviconlab .chart{width:100%;height:auto;font:400 11px var(--pixel);display:block}.faviconlab .chart .grid{stroke:var(--line);stroke-width:1px}.faviconlab .chart .axis{stroke:var(--muted);stroke-width:1px}.faviconlab .chart .mark{stroke:var(--muted);stroke-dasharray:4 4}.faviconlab .chart .label{fill:var(--muted)}.faviconlab .chart .dot{fill:var(--amber);fill-opacity:.85}.faviconlab .chart .dot.hum{fill:#4fc85f}.faviconlab .palette{grid-template-columns:repeat(8,2.5rem);gap:.35rem;display:grid}.faviconlab .swatch{border:1px solid var(--line);background:var(--swatch);cursor:pointer;border-radius:.4rem;width:2.5rem;height:2.5rem}.faviconlab .swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--page-bg), 0 0 0 4px var(--amber)}.faviconlab .specimens{grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:1rem;margin:1rem 0;display:grid}.faviconlab .specimens figure{margin:0}.faviconlab .specimens img{width:8rem;height:8rem;image-rendering:pixelated;margin-bottom:.5rem;display:block}.faviconlab .specimens figcaption{color:var(--muted);font-size:.9rem}.faviconlab .field{gap:.3rem;max-width:28rem;display:grid}.faviconlab .field span{font:400 .75rem/1.2 var(--pixel);text-transform:uppercase;color:var(--muted)}.faviconlab .field input{border:1px solid var(--line);background:var(--tab);color:var(--ink);font:700 1rem/1.2 var(--pixel);text-transform:uppercase;border-radius:.5rem;padding:.55rem .75rem}.faviconlab .status{font-weight:600}.faviconlab .roster{gap:.35rem;max-width:28rem;margin:.5rem 0 1rem;padding:0;list-style:none;display:grid}.faviconlab .roster li{border:1px solid var(--line);background:var(--tab);border-radius:.5rem;align-items:center;gap:.5rem;padding:.35rem .5rem;display:flex}.faviconlab .roster li.is-self{border-color:var(--amber)}.faviconlab .roster .who{font:700 .85rem/1.2 var(--pixel);text-transform:uppercase;flex:1}.faviconlab .roster .btn{padding:.3rem .55rem}.faviconlab .noscript{max-width:62rem;color:var(--muted);margin:0 auto 1rem}.faviconlab .notes{color:var(--ink);padding:1rem 1rem 3rem}.faviconlab .notes h2{margin-top:2rem}.faviconlab .credits{color:var(--muted);font-size:.85rem}@media (prefers-reduced-motion:reduce){.faviconlab .lookup-arrow{animation:none}}
