:root { --content-width: 900px; }
/* The reading view's colours, as variables: see export/palette.rs. */
:root {
  --n-111: #111;
  --n-161616: #161616;
  --n-18181b: #18181b;
  --n-1a1a1a: #1a1a1a;
  --n-1e1e1e: #1e1e1e;
  --n-212121: #212121;
  --n-222: #222;
  --n-222227: #222227;
  --n-22252b: #22252b;
  --n-232323: #232323;
  --n-233: #233;
  --n-242424: #242424;
  --n-262626: #262626;
  --n-2a2a2a: #2a2a2a;
  --n-2a2d33: #2a2d33;
  --n-2e2e2e: #2e2e2e;
  --n-303030: #303030;
  --n-333: #333;
  --n-333333: #333333;
  --n-333338: #333338;
  --n-363636: #363636;
  --n-393939: #393939;
  --n-3f3f3f: #3f3f3f;
  --n-3f3f46: #3f3f46;
  --n-555: #555;
  --n-666666: #666666;
  --n-6c6c6c: #6c6c6c;
  --n-71717a: #71717a;
  --n-777: #777;
  --n-888: #888;
  --n-999: #999;
  --n-999999: #999999;
  --n-9fa1b0: #9fa1b0;
  --n-a1a1aa: #a1a1aa;
  --n-aaa: #aaa;
  --n-b3b3b3: #b3b3b3;
  --n-b4b4b4: #b4b4b4;
  --n-ccc: #ccc;
  --n-ccccdc: #ccccdc;
  --n-d0d3d6: #d0d3d6;
  --n-d9d9d9: #d9d9d9;
  --n-d9d9df: #d9d9df;
  --n-dadada: #dadada;
  --n-ddd: #ddd;
  --n-e4e4e7: #e4e4e7;
  --n-eee: #eee;
  --n-eff1f5: #eff1f5;
  --n-f5f5f5: #f5f5f5;
  --n-8b6cef: #8b6cef;
  --n-8b6cef1f: #8b6cef1f;
  --n-8b6cef55: #8b6cef55;
  --n-8b6cef66: #8b6cef66;
  --n-8b6cef88: #8b6cef88;
  --n-a68af9: #a68af9;
  --n-c4b5fd: #c4b5fd;
  --n-d7d4f0: #d7d4f0;
  --nrgba-139-108-239-0-1: rgba(139,108,239,0.1);
  --nrgba-139-108-239-0-15: rgba(139,108,239,0.15);
  --nrgba-139-108-239-0-25: rgba(139,108,239,0.25);
  --nrgba-139-108-239-0-30: rgba(139,108,239,0.30);
  --nrgba-166-138-249-0-5: rgba(166,138,249,0.5);
  --n-7f1d1d: #7f1d1d;
  --n-bb555544: #bb555544;
  --n-c97070: #c97070;
  --n-e06c75: #e06c75;
  --n-f2495c: #f2495c;
  --n-f78: #f78;
  --n-fca5a5: #fca5a5;
  --n-ff332255: #ff332255;
  --n-c9a35a: #c9a35a;
  --n-d08770: #d08770;
  --n-e0a050: #e0a050;
  --n-7fae7f: #7fae7f;
  --n-86efac: #86efac;
  --n-8fce9b: #8fce9b;
  --n-a3be8c: #a3be8c;
  --n-328c8252: #328c8252;
  --n-99eeff33: #99eeff33;
  --n-cceeff44: #cceeff44;
  --n-e2f2ff: #e2f2ff;
  --nrgba-255-208-0-0-4: rgba(255,208,0,0.4);
  --nrgba-255-255-255-0-03: rgba(255,255,255,0.03);
  --nrgba-255-255-255-0-04: rgba(255,255,255,0.04);
  --nrgba-255-255-255-0-06: rgba(255,255,255,0.06);
  --nrgba-30-30-30-0-82: rgba(30,30,30,0.82);
  --nrgba-55-55-55-0-9: rgba(55,55,55,0.9);
  --nrgba-0-0-0-0-5: rgba(0,0,0,0.5);
}
@media (prefers-color-scheme: light) {
:root:not([data-theme="dark"]) {
  --n-111: #fafafa;
  --n-161616: #f6f6f6;
  --n-18181b: #f4f4f5;
  --n-1a1a1a: #f6f6f6;
  --n-1e1e1e: #ffffff;
  --n-212121: #f5f5f5;
  --n-222: #ececec;
  --n-222227: #e8e8eb;
  --n-22252b: #e5e7eb;
  --n-232323: #f3f3f3;
  --n-233: #e0ebeb;
  --n-242424: #f2f2f2;
  --n-262626: #f0f0f0;
  --n-2a2a2a: #ececec;
  --n-2a2d33: #dddfe3;
  --n-2e2e2e: #e8e8e8;
  --n-303030: #e3e3e3;
  --n-333: #dbdbdb;
  --n-333333: #dbdbdb;
  --n-333338: #d7d7db;
  --n-363636: #dedede;
  --n-393939: #d5d5d5;
  --n-3f3f3f: #d4d4d4;
  --n-3f3f46: #c9c9ce;
  --n-555: #b9b9b9;
  --n-666666: #8a8a8a;
  --n-6c6c6c: #808080;
  --n-71717a: #7a7a84;
  --n-777: #737373;
  --n-888: #6e6e6e;
  --n-999: #5c5c5c;
  --n-999999: #5c5c5c;
  --n-9fa1b0: #5d5f71;
  --n-a1a1aa: #64646e;
  --n-aaa: #555555;
  --n-b3b3b3: #4d4d4d;
  --n-b4b4b4: #4d4d4d;
  --n-ccc: #424242;
  --n-ccccdc: #4a4a5e;
  --n-d0d3d6: #373b3f;
  --n-d9d9d9: #353535;
  --n-d9d9df: #2e2e37;
  --n-dadada: #222222;
  --n-ddd: #262626;
  --n-e4e4e7: #26262b;
  --n-eee: #202020;
  --n-eff1f5: #2e3440;
  --n-f5f5f5: #191919;
  --n-8b6cef: #6d4ae0;
  --n-8b6cef1f: #6d4ae01f;
  --n-8b6cef55: #6d4ae055;
  --n-8b6cef66: #6d4ae066;
  --n-8b6cef88: #6d4ae088;
  --n-a68af9: #7c5ce6;
  --n-c4b5fd: #6d4ae0;
  --n-d7d4f0: #4c4580;
  --nrgba-139-108-239-0-1: rgba(109, 74, 224, 0.1);
  --nrgba-139-108-239-0-15: rgba(109, 74, 224, 0.15);
  --nrgba-139-108-239-0-25: rgba(109, 74, 224, 0.25);
  --nrgba-139-108-239-0-30: rgba(109, 74, 224, 0.3);
  --nrgba-166-138-249-0-5: rgba(124, 92, 230, 0.5);
  --n-7f1d1d: #fde2e2;
  --n-bb555544: #c9404044;
  --n-c97070: #a33a3a;
  --n-e06c75: #c4303c;
  --n-f2495c: #c2091e;
  --n-f78: #c41d3a;
  --n-fca5a5: #b91c1c;
  --n-ff332255: #e0302055;
  --n-c9a35a: #89682a;
  --n-d08770: #9f4b31;
  --n-e0a050: #a6681a;
  --n-7fae7f: #3f7a3f;
  --n-86efac: #15803d;
  --n-8fce9b: #2f8a43;
  --n-a3be8c: #55803a;
  --n-328c8252: #2a9d8f40;
  --n-99eeff33: #0891b233;
  --n-cceeff44: #0ea5e933;
  --n-e2f2ff: #1d4f7a;
  --nrgba-255-208-0-0-4: rgba(250, 204, 21, 0.45);
  --nrgba-255-255-255-0-03: rgba(0, 0, 0, 0.03);
  --nrgba-255-255-255-0-04: rgba(0, 0, 0, 0.04);
  --nrgba-255-255-255-0-06: rgba(0, 0, 0, 0.06);
  --nrgba-30-30-30-0-82: rgba(255, 255, 255, 0.92);
  --nrgba-55-55-55-0-9: rgba(225, 225, 225, 0.9);
  --nrgba-0-0-0-0-5: rgba(0, 0, 0, 0.15);
}
}
:root[data-theme="light"] {
  --n-111: #fafafa;
  --n-161616: #f6f6f6;
  --n-18181b: #f4f4f5;
  --n-1a1a1a: #f6f6f6;
  --n-1e1e1e: #ffffff;
  --n-212121: #f5f5f5;
  --n-222: #ececec;
  --n-222227: #e8e8eb;
  --n-22252b: #e5e7eb;
  --n-232323: #f3f3f3;
  --n-233: #e0ebeb;
  --n-242424: #f2f2f2;
  --n-262626: #f0f0f0;
  --n-2a2a2a: #ececec;
  --n-2a2d33: #dddfe3;
  --n-2e2e2e: #e8e8e8;
  --n-303030: #e3e3e3;
  --n-333: #dbdbdb;
  --n-333333: #dbdbdb;
  --n-333338: #d7d7db;
  --n-363636: #dedede;
  --n-393939: #d5d5d5;
  --n-3f3f3f: #d4d4d4;
  --n-3f3f46: #c9c9ce;
  --n-555: #b9b9b9;
  --n-666666: #8a8a8a;
  --n-6c6c6c: #808080;
  --n-71717a: #7a7a84;
  --n-777: #737373;
  --n-888: #6e6e6e;
  --n-999: #5c5c5c;
  --n-999999: #5c5c5c;
  --n-9fa1b0: #5d5f71;
  --n-a1a1aa: #64646e;
  --n-aaa: #555555;
  --n-b3b3b3: #4d4d4d;
  --n-b4b4b4: #4d4d4d;
  --n-ccc: #424242;
  --n-ccccdc: #4a4a5e;
  --n-d0d3d6: #373b3f;
  --n-d9d9d9: #353535;
  --n-d9d9df: #2e2e37;
  --n-dadada: #222222;
  --n-ddd: #262626;
  --n-e4e4e7: #26262b;
  --n-eee: #202020;
  --n-eff1f5: #2e3440;
  --n-f5f5f5: #191919;
  --n-8b6cef: #6d4ae0;
  --n-8b6cef1f: #6d4ae01f;
  --n-8b6cef55: #6d4ae055;
  --n-8b6cef66: #6d4ae066;
  --n-8b6cef88: #6d4ae088;
  --n-a68af9: #7c5ce6;
  --n-c4b5fd: #6d4ae0;
  --n-d7d4f0: #4c4580;
  --nrgba-139-108-239-0-1: rgba(109, 74, 224, 0.1);
  --nrgba-139-108-239-0-15: rgba(109, 74, 224, 0.15);
  --nrgba-139-108-239-0-25: rgba(109, 74, 224, 0.25);
  --nrgba-139-108-239-0-30: rgba(109, 74, 224, 0.3);
  --nrgba-166-138-249-0-5: rgba(124, 92, 230, 0.5);
  --n-7f1d1d: #fde2e2;
  --n-bb555544: #c9404044;
  --n-c97070: #a33a3a;
  --n-e06c75: #c4303c;
  --n-f2495c: #c2091e;
  --n-f78: #c41d3a;
  --n-fca5a5: #b91c1c;
  --n-ff332255: #e0302055;
  --n-c9a35a: #89682a;
  --n-d08770: #9f4b31;
  --n-e0a050: #a6681a;
  --n-7fae7f: #3f7a3f;
  --n-86efac: #15803d;
  --n-8fce9b: #2f8a43;
  --n-a3be8c: #55803a;
  --n-328c8252: #2a9d8f40;
  --n-99eeff33: #0891b233;
  --n-cceeff44: #0ea5e933;
  --n-e2f2ff: #1d4f7a;
  --nrgba-255-208-0-0-4: rgba(250, 204, 21, 0.45);
  --nrgba-255-255-255-0-03: rgba(0, 0, 0, 0.03);
  --nrgba-255-255-255-0-04: rgba(0, 0, 0, 0.04);
  --nrgba-255-255-255-0-06: rgba(0, 0, 0, 0.06);
  --nrgba-30-30-30-0-82: rgba(255, 255, 255, 0.92);
  --nrgba-55-55-55-0-9: rgba(225, 225, 225, 0.9);
  --nrgba-0-0-0-0-5: rgba(0, 0, 0, 0.15);
}

.ͼ1.cm-focused {outline: 1px dotted var(--n-212121);}
.ͼ1 {position: relative !important; box-sizing: border-box; display: flex !important; flex-direction: column;}
.ͼ1 .cm-scroller {display: flex !important; align-items: flex-start !important; font-family: monospace; line-height: 1.4; height: 100%; overflow-x: auto; position: relative; z-index: 0; overflow-anchor: none;}
.ͼ1 .cm-content[contenteditable=true] {-webkit-user-modify: read-write-plaintext-only;}
.ͼ1 .cm-content {margin: 0; flex-grow: 2; flex-shrink: 0; display: block; white-space: pre; word-wrap: normal; box-sizing: border-box; min-height: 100%; padding: 4px 0; outline: none;}
.ͼ1 .cm-lineWrapping {white-space: pre-wrap; white-space: break-spaces; word-break: break-word; overflow-wrap: anywhere; flex-shrink: 1;}
.ͼ2 .cm-content {caret-color: black;}
.ͼ3 .cm-content {caret-color: white;}
.ͼ1 .cm-line {display: block; padding: 0 2px 0 6px;}
.ͼ1 .cm-layer > * {position: absolute;}
.ͼ1 .cm-layer {user-select: none; position: absolute; left: 0; top: 0; contain: size style;}
.ͼ2 .cm-selectionBackground {background: var(--n-d9d9d9);}
.ͼ3 .cm-selectionBackground {background: var(--n-222);}
.ͼ2.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground {background: var(--n-d7d4f0);}
.ͼ3.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground {background: var(--n-233);}
.ͼ1 .cm-cursorLayer {pointer-events: none;}
.ͼ1.cm-focused > .cm-scroller > .cm-cursorLayer {animation: steps(1) cm-blink 1.2s infinite;}
@keyframes cm-blink {50% {opacity: 0;}}
@keyframes cm-blink2 {50% {opacity: 0;}}
.ͼ1 .cm-cursor, .ͼ1 .cm-dropCursor {border-left: 1.2px solid black; margin-left: -0.6px; pointer-events: none;}
.ͼ1 .cm-cursor {display: none;}
.ͼ3 .cm-cursor {border-left-color: var(--n-ddd);}
.ͼ1 .cm-selectionHandle {background-color: currentColor; width: 1.5px;}
.ͼ1 .cm-selectionHandle-start::before, .ͼ1 .cm-selectionHandle-end::before {content: ""; background-color: inherit; border-radius: 50%; width: 8px; height: 8px; position: absolute; left: -3.25px;}
.ͼ1 .cm-selectionHandle-start::before {top: -8px;}
.ͼ1 .cm-selectionHandle-end::before {bottom: -8px;}
.ͼ1 .cm-dropCursor {position: absolute;}
.ͼ1.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor {display: block;}
.ͼ1 .cm-iso {unicode-bidi: isolate;}
.ͼ1 .cm-announced {position: fixed; top: -10000px;}
@media print {.ͼ1 .cm-announced {display: none;}}
.ͼ2 .cm-activeLine {background-color: var(--n-cceeff44);}
.ͼ3 .cm-activeLine {background-color: var(--n-99eeff33);}
.ͼ2 .cm-specialChar {color: red;}
.ͼ3 .cm-specialChar {color: var(--n-f78);}
.ͼ1 .cm-gutters {flex-shrink: 0; display: flex; height: 100%; box-sizing: border-box; z-index: 200;}
.ͼ1 .cm-gutters-before {inset-inline-start: 0;}
.ͼ1 .cm-gutters-after {inset-inline-end: 0;}
.ͼ2 .cm-gutters.cm-gutters-before {border-right-width: 1px;}
.ͼ2 .cm-gutters.cm-gutters-after {border-left-width: 1px;}
.ͼ2 .cm-gutters {background-color: var(--n-f5f5f5); color: var(--n-6c6c6c); border: 0px solid var(--n-ddd);}
.ͼ3 .cm-gutters {background-color: var(--n-333338); color: var(--n-ccc);}
.ͼ1 .cm-gutter {display: flex !important; flex-direction: column; flex-shrink: 0; box-sizing: border-box; min-height: 100%; overflow: hidden;}
.ͼ1 .cm-gutterElement {box-sizing: border-box;}
.ͼ1 .cm-lineNumbers .cm-gutterElement {padding: 0 3px 0 5px; min-width: 20px; text-align: right; white-space: nowrap;}
.ͼ2 .cm-activeLineGutter {background-color: var(--n-e2f2ff);}
.ͼ3 .cm-activeLineGutter {background-color: var(--n-222227);}
.ͼ1 .cm-panels {box-sizing: border-box; position: sticky; left: 0; right: 0; z-index: 300;}
.ͼ2 .cm-panels {background-color: var(--n-f5f5f5); color: black;}
.ͼ1 .cm-panels-top {top: 0;}
.ͼ1 .cm-panels-bottom {bottom: 0;}
.ͼ2 .cm-panels-top {border-bottom: 1px solid var(--n-ddd);}
.ͼ2 .cm-panels-bottom {border-top: 1px solid var(--n-ddd);}
.ͼ3 .cm-panels {background-color: var(--n-333338); color: white;}
.ͼ1 .cm-dialog label {font-size: 80%;}
.ͼ1 .cm-dialog {padding: 2px 19px 4px 6px; position: relative;}
.ͼ1 .cm-dialog-close {position: absolute; top: 3px; right: 4px; background-color: inherit; border: none; font: inherit; font-size: 14px; padding: 0;}
.ͼ1 .cm-tab {display: inline-block; overflow: hidden; vertical-align: bottom;}
.ͼ1 .cm-widgetBuffer {vertical-align: text-top; height: 1em; width: 0; display: inline;}
.ͼ1 .cm-placeholder {color: var(--n-888); display: inline-block; vertical-align: top; user-select: none;}
.ͼ1 .cm-highlightSpace {background: radial-gradient(circle at 50% 55%, var(--n-aaa) 20%, transparent 0) no-repeat; background-size: .4em; background-position: calc(min(50%, 0px)) center;}
.ͼ1 .cm-highlightTab {background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="200" height="20"><path stroke="%23888" stroke-width="1" fill="none" d="M1 10H196L190 5M190 15L196 10M197 4L197 16"/></svg>'); background-size: auto 100%; background-position: right 90%; background-repeat: no-repeat;}
.ͼ1 .cm-trailingSpace {background-color: var(--n-ff332255);}
.ͼ1 .cm-button {vertical-align: middle; color: inherit; font-size: 70%; padding: .2em 1em; border-radius: 1px;}
.ͼ2 .cm-button:active {background-image: linear-gradient(var(--n-b4b4b4), var(--n-d0d3d6));}
.ͼ2 .cm-button {background-image: linear-gradient(var(--n-eff1f5), var(--n-d9d9df)); border: 1px solid var(--n-888);}
.ͼ3 .cm-button:active {background-image: linear-gradient(var(--n-111), var(--n-333));}
.ͼ3 .cm-button {background-image: linear-gradient(var(--n-393939), var(--n-111)); border: 1px solid var(--n-888);}
.ͼ1 .cm-textfield {vertical-align: middle; color: inherit; font-size: 70%; border: 1px solid silver; padding: .2em .5em;}
.ͼ2 .cm-textfield {background-color: white;}
.ͼ3 .cm-textfield {border: 1px solid var(--n-555); background-color: inherit;}
.ͼ1 .noita-git-gutter {width: 4px; margin-right: 4px;}
.ͼ1 .noita-git-gutter .cm-gutterElement {padding: 0;}
.ͼ1 .noita-git-mark {width: 3px; height: 100%; cursor: pointer;}
.ͼ1 .noita-git-added {background: var(--git-added, var(--n-7fae7f));}
.ͼ1 .noita-git-modified {background: var(--git-modified, var(--n-c9a35a));}
.ͼ1 .noita-git-deleted {height: 0; border-top: 4px solid var(--git-deleted, var(--n-c97070)); border-right: 4px solid transparent; width: 0;}
.ͼ1.cm-focused .cm-matchingBracket {background-color: var(--n-328c8252);}
.ͼ1.cm-focused .cm-nonmatchingBracket {background-color: var(--n-bb555544);}
.ͼ1 .cm-foldPlaceholder {background-color: var(--n-eee); border: 1px solid var(--n-ddd); color: var(--n-888); border-radius: .2em; margin: 0 1px; padding: 0 1px; cursor: pointer;}
.ͼ1 .cm-foldGutter span {padding: 0 1px; cursor: pointer;}
.ͼ1.noita-has-banner .cm-scroller {padding-top: 0 !important; overflow-x: hidden;}
.ͼ1 .cm-banner {position: relative; margin-bottom: 8px;}
.ͼ1 .cm-banner.icon-only {padding-top: 24px;}
.ͼ1 .cm-banner-cover {position: relative; z-index: 201; width: var(--noita-pane, 100%); margin-left: calc(-1 * var(--noita-inset, 0px)); height: 240px; overflow: hidden; background: var(--n-262626);}
.ͼ1 .cm-banner-cover img {display: block; width: 100%; height: 100%; object-fit: cover; user-select: none;}
.ͼ1 .cm-banner.broken .cm-banner-cover img {visibility: hidden;}
.ͼ1 .cm-banner-cover.repositioning img {cursor: grab;}
.ͼ1 .cm-banner-cover.repositioning:active img {cursor: grabbing;}
.ͼ1 .cm-banner-actions {position: absolute; right: 12px; bottom: 12px; display: flex; gap: 1px; border-radius: 5px; overflow: hidden; opacity: 0; transition: opacity 120ms;}
.ͼ1 .cm-banner-cover:hover .cm-banner-actions, .ͼ1 .cm-banner-cover.repositioning .cm-banner-actions {opacity: 1;}
.ͼ1 .cm-banner-button {background: var(--nrgba-30-30-30-0-82); color: var(--n-dadada); border: none; padding: 5px 10px; font: inherit; font-size: 12px; cursor: pointer;}
.ͼ1 .cm-banner-button:hover {background: var(--nrgba-55-55-55-0-9);}
.ͼ1 .cm-banner-icon {position: relative; z-index: 202; font-size: 64px; line-height: 1; height: 64px; width: fit-content; margin-top: -40px; margin-bottom: 16px; padding-left: 2px; user-select: none;}
.ͼ1 .cm-banner.icon-only .cm-banner-icon {margin-top: 0;}
.ͼ1 .cm-page-header {padding-bottom: 4px;}
.ͼ1 .cm-inline-title {font-size: 1.618em; font-weight: 700; line-height: 1.2; color: var(--n-dadada); padding: 4px 0 12px; outline: none; overflow-wrap: anywhere; cursor: text; user-select: text; -webkit-user-select: text;}
.ͼ1 .cm-inline-title:empty::before {content: "Untitled"; color: var(--n-666666);}
.ͼ1 .cm-run-slot {padding: 2px 0 12px;}
.ͼ1 .cm-run-dock {border-radius: 4px; border: 1px solid var(--n-2e2e2e); background-color: var(--n-18181b); font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; font-size: 12px; color: var(--n-a1a1aa); overflow: hidden;}
.ͼ1 .cm-run-dock.stale .cm-run-screen {opacity: 0.45;}
.ͼ1 .cm-run-dock[data-state=failed] {border-color: var(--n-7f1d1d);}
.ͼ1 .cm-run-dock[data-state=ok] {border-color: var(--n-2e2e2e);}
.ͼ1 .cm-run-refused {padding: 6px 10px; color: var(--n-fca5a5);}
.ͼ1 .cm-run-bar {display: flex; align-items: center; gap: 10px; padding: 4px 8px; border-bottom: 1px solid var(--n-2e2e2e);}
.ͼ1 .cm-run-dock[data-state=running] .cm-run-status {color: var(--n-c4b5fd);}
.ͼ1 .cm-run-dock[data-state=ok] .cm-run-status {color: var(--n-86efac);}
.ͼ1 .cm-run-dock[data-state=failed] .cm-run-status {color: var(--n-fca5a5);}
.ͼ1 .cm-run-when {color: var(--n-71717a); font-variant-numeric: tabular-nums;}
.ͼ1 .cm-run-note {font-style: italic; color: var(--n-71717a);}
.ͼ1 .cm-run-actions {margin-left: auto; display: flex; gap: 4px;}
.ͼ1 .cm-run-button {background: none; border: 1px solid transparent; border-radius: 4px; color: var(--n-a1a1aa); font: inherit; padding: 1px 6px; cursor: pointer;}
.ͼ1 .cm-run-button:hover {color: var(--n-e4e4e7); border-color: var(--n-3f3f46);}
.ͼ1 .cm-run-screen {padding: 4px 6px;}
.ͼ1 .cm-run-screen .terminal-screen {position: static; display: flex;}
.ͼ1 .cm-run-screen .terminal-viewport .xterm {height: auto;}
.ͼ1 .cm-code-run {display: inline-flex; cursor: pointer; color: var(--n-8b6cef);}
.ͼ1 .cm-code-run:hover {color: var(--n-c4b5fd);}
.ͼ1 .cm-code-run svg {width: 14px; height: 14px;}
.ͼ1 .cm-block.cm-block-math {padding: 0; border: none; background: transparent; font-size: inherit; font-family: inherit;}
.ͼ1 .cm-math-block {display: flex; justify-content: center; overflow-x: auto; font-size: 1.2em; padding: 4px 0; overflow-y: hidden; color: var(--n-dadada);}
.ͼ1 .cm-block.cm-block-image {padding: 0; border: none; background: transparent; font-size: inherit; font-family: inherit;}
.ͼ1 .cm-image img {display: block; max-width: 100%; height: auto; border-radius: 4px;}
.ͼ1 .cm-block.cm-block-table {padding: 0; border: none; background: transparent; font-size: inherit; font-family: inherit;}
.ͼ1 .cm-table-scroll {overflow-x: auto;}
.ͼ1 .cm-block-table table {border-collapse: collapse; font-size: inherit;}
.ͼ1 .cm-block-table th, .ͼ1 .cm-block-table td {padding: 5px 12px; border: 1px solid var(--n-303030); vertical-align: top; text-align: left;}
.ͼ1 .cm-block-table th {font-weight: 600; background: var(--n-242424);}
.ͼ1 .cm-block-table code {font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.9em; padding: 1px 4px; border-radius: 4px; background: var(--n-2a2a2a);}
.ͼ1 .cm-table-wikilink, .ͼ1 .cm-table-tag {background: none; border: none; padding: 0; font: inherit; color: var(--n-8b6cef); cursor: pointer;}
.ͼ1 .cm-table-wikilink:hover, .ͼ1 .cm-table-tag:hover {text-decoration: underline;}
.ͼ1 .cm-table-link {text-decoration: underline; text-decoration-color: var(--n-666666);}
.ͼ1 .cm-block.cm-block-mermaid {padding: 8px 0; border: none; background: transparent; font-size: inherit;}
.ͼ1 .cm-mermaid {display: flex; justify-content: center; overflow-x: auto;}
.ͼ1 .cm-mermaid > svg {filter: invert(100%) hue-rotate(180deg) saturate(1.25);}
.ͼ1 .cm-mermaid svg {max-width: 100%; height: auto;}
.ͼ1 .cm-block.cm-block-embed {padding: 0; border: none; background: transparent; font-size: inherit; font-family: inherit;}
.ͼ1 .cm-embed {border-left: 2px solid var(--n-8b6cef); padding: 4px 0 4px 24px;}
.ͼ1 .cm-embed-head {display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 4px;}
.ͼ1 .cm-embed-title {font-weight: 600; color: var(--n-dadada); font-size: 1em;}
.ͼ1 .cm-embed-open {display: inline-flex; color: var(--n-666666); cursor: pointer;}
.ͼ1 .cm-embed-open:hover {color: var(--n-dadada);}
.ͼ1 .cm-embed-open svg {width: 16px; height: 16px;}
.ͼ1 .cm-block.cm-block-properties {padding: 8px 0 24px; border: none; background: transparent; font-size: 14px; color: var(--n-b3b3b3);}
.ͼ1 .cm-properties {display: flex; flex-direction: column;}
.ͼ1 .cm-properties-heading {position: relative; display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; padding: 4px 4px 4px 0; margin-bottom: 4px; cursor: pointer; user-select: none;}
.ͼ1 .cm-properties-title {color: var(--n-dadada); font-size: 16px; font-weight: 500;}
.ͼ1 .cm-properties-fold {position: absolute; left: -18px; display: inline-flex; color: var(--n-666666); transform: rotate(90deg); transition: transform 100ms ease-in-out; opacity: 0;}
.ͼ1 .cm-properties-heading:hover .cm-properties-fold, .ͼ1 .cm-properties.folded .cm-properties-fold {opacity: 1;}
.ͼ1 .cm-properties.folded .cm-properties-fold {transform: none;}
.ͼ1 .cm-properties-fold svg {width: 14px; height: 14px;}
.ͼ1 .cm-properties.folded .cm-properties-list {display: none;}
.ͼ1 .cm-properties-list {display: flex; flex-direction: column; gap: 2px;}
.ͼ1 .cm-properties-row {display: flex; align-items: flex-start; min-height: 29px; border-radius: 6px;}
.ͼ1 .cm-properties-row:hover {background: var(--nrgba-255-255-255-0-04);}
.ͼ1 .cm-properties-keycell {flex: 0 0 144px; width: 144px; min-width: 0; display: flex; align-items: center; min-height: 29px; padding-left: 2px;}
.ͼ1 .cm-properties-icon {display: inline-flex; flex: 0 0 auto; color: var(--n-999999);}
.ͼ1 .cm-properties-icon svg, .ͼ1 .cm-properties-plus svg {width: 16px; height: 16px;}
.ͼ1 .cm-properties-key {flex: 1 1 auto; width: 0; min-width: 0; background: transparent; border: none; border-radius: 4px; padding: 4px 8px; color: var(--n-b3b3b3); font: inherit; font-size: 14px; outline: none; text-overflow: ellipsis;}
.ͼ1 .cm-properties-key:focus {background: var(--nrgba-255-255-255-0-06); color: var(--n-dadada);}
.ͼ1 .cm-properties-value {flex: 1 1 auto; min-width: 0; display: flex; align-items: center; min-height: 29px;}
.ͼ1 .cm-properties-input, .ͼ1 .cm-properties-display {width: 100%; background: transparent; border: none; border-radius: 4px; padding: 4px 8px; color: var(--n-dadada); font: inherit; font-size: 14px; line-height: 21px; outline: none; color-scheme: dark;}
.ͼ1 .cm-properties-input::placeholder {color: var(--n-666666);}
.ͼ1 .cm-properties-secret {display: flex; align-items: center; gap: 6px; width: 100%;}
.ͼ1 .cm-properties-reveal {background: none; border: 1px solid var(--n-333333); border-radius: 4px; color: var(--n-999999); font: inherit; font-size: 12px; padding: 1px 8px; cursor: pointer;}
.ͼ1 .cm-properties-reveal:hover {color: var(--n-dadada);}
.ͼ1 .cm-properties-select {width: auto; min-width: 160px; cursor: pointer; background: var(--n-262626);}
.ͼ1 .cm-properties-input[type=number] {appearance: textfield; -moz-appearance: textfield;}
.ͼ1 .cm-properties-input::-webkit-inner-spin-button, .ͼ1 .cm-properties-input::-webkit-outer-spin-button {-webkit-appearance: none; margin: 0;}
.ͼ1 .cm-properties-input:focus {background: var(--nrgba-255-255-255-0-06);}
.ͼ1 .cm-properties-switch {width: 100%;}
.ͼ1 .cm-properties-display {cursor: text; min-height: 29px; box-sizing: border-box;}
.ͼ1 .cm-properties-link {background: none; border: none; padding: 0; font: inherit; color: var(--n-a68af9); text-decoration: underline; text-decoration-color: var(--nrgba-166-138-249-0-5); text-underline-offset: 2px; cursor: pointer;}
.ͼ1 .cm-properties-url {color: var(--n-a68af9); text-decoration: underline; cursor: text;}
.ͼ1 .cm-properties-checkbox {appearance: none; -webkit-appearance: none; width: 15px; height: 15px; margin: 0 0 0 8px; border: 1px solid var(--n-666666); border-radius: 4px; background-color: transparent; cursor: pointer;}
.ͼ1 .cm-properties-checkbox:hover {border-color: var(--n-999999);}
.ͼ1 .cm-properties-checkbox:checked {border-color: var(--n-8b6cef); background-color: var(--n-8b6cef); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); background-size: 11px; background-position: center; background-repeat: no-repeat;}
.ͼ1 .cm-properties-chips {flex: 1 1 auto; display: flex; flex-wrap: wrap; align-items: center; gap: 4px 6px; padding: 4px 8px; min-height: 29px; box-sizing: border-box; cursor: text;}
.ͼ1 .cm-properties-chip {display: inline-flex; align-items: center; gap: 2px; color: var(--n-dadada); font-size: 14px; line-height: 18px;}
.ͼ1 .cm-properties-chip.tag {color: var(--n-a68af9); background: var(--nrgba-139-108-239-0-1); border: 1px solid var(--nrgba-139-108-239-0-15); border-radius: 28px; padding: 1px 6px 1px 9px;}
.ͼ1 .cm-properties-chip-remove, .ͼ1 .cm-properties-remove {background: none; border: none; padding: 0 2px; color: var(--n-666666); font: inherit; line-height: 1; cursor: pointer;}
.ͼ1 .cm-properties-chip.tag .cm-properties-chip-remove {color: var(--n-a68af9);}
.ͼ1 .cm-properties-chip-remove:hover, .ͼ1 .cm-properties-remove:hover {color: var(--n-e06c75) !important;}
.ͼ1 .cm-properties-remove {flex: 0 0 auto; align-self: center; padding: 0 8px; visibility: hidden;}
.ͼ1 .cm-properties-row:hover .cm-properties-remove {visibility: visible;}
.ͼ1 .cm-properties-chip-add {flex: 1 0 40px; background: transparent; border: none; outline: none; color: var(--n-dadada); font: inherit; font-size: 14px; min-width: 40px; padding: 0;}
.ͼ1 .cm-properties-chip-add.refused {color: var(--n-e06c75);}
.ͼ1 .cm-properties-chip-pick {background: transparent; border: 1px dashed var(--n-3f3f3f); border-radius: 10px; color: var(--n-999999); font: inherit; font-size: 13px; padding: 1px 6px; cursor: pointer;}
.ͼ1 .cm-properties-opaque {color: var(--n-e0a050); padding: 4px 8px; font-size: 14px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace;}
.ͼ1 .cm-properties-add {margin-top: 6px;}
.ͼ1 .cm-properties-add-button {display: inline-flex; align-items: center; gap: 6px; background: none; border: none; border-radius: 5px; padding: 4px 6px 4px 2px; color: var(--n-999999); font: inherit; font-size: 14px; cursor: pointer;}
.ͼ1 .cm-properties-add-button:hover {color: var(--n-dadada); background: var(--nrgba-255-255-255-0-04);}
.ͼ1 .cm-properties-plus {display: inline-flex;}
.ͼ1 .cm-properties-new {flex: 0 0 auto; width: 200px;}
.ͼ1 .cm-properties-broken {color: var(--n-e06c75);}
.ͼ1 .cm-properties-broken-title {font-weight: 600; margin-bottom: 4px;}
.ͼ1 .cm-properties-broken pre {margin: 0 0 4px; white-space: pre-wrap; font-size: 12px; color: var(--n-999999);}
.ͼ1 .cm-properties-hint {color: var(--n-666666); font-size: 11.5px;}
.ͼ1 .cm-dashboard-header {display: flex; align-items: center; gap: 8px; margin: 2px 0 8px;}
.ͼ1 .cm-dashboard-title {flex: 1; font-weight: 600; font-size: 15px;}
.ͼ1 .cm-dashboard-range {font: inherit; font-size: 12px; padding: 2px 6px; border-radius: 2px; border: 1px solid var(--chart-border, var(--n-2a2d33)); background: var(--chart-tooltip, var(--n-22252b)); color: var(--chart-text, var(--n-ccccdc));}
.ͼ1 .cm-dashboard-grid {display: grid; gap: 8px;}
.ͼ1 .cm-dashboard-cell {min-width: 0;}
.ͼ1 .cm-dashboard-cell .cm-chart {margin: 0; height: 100%; box-sizing: border-box;}
.ͼ1 .cm-dashboard-note {color: var(--chart-muted, var(--n-9fa1b0)); font-size: 12px; min-height: 80px;}
.ͼ1 .cm-dashboard-note.error {color: var(--chart-bad, var(--n-f2495c)); white-space: pre-wrap;}
.ͼ1 .cm-block-chart:has(> .cm-chart), .ͼ1 .cm-block-dashboard:has(> .cm-dashboard) {padding: 0; border: none; background: none;}
.ͼ1 .cm-chart {margin: 0;}
.ͼ1 .cm-chart-tools {display: flex; justify-content: flex-end; gap: 4px;}
.ͼ1 .cm-dataview-scroll {overflow-x: auto;}
.ͼ1 .cm-block-dataview table {border-collapse: collapse; width: 100%; font-size: 12.5px;}
.ͼ1 .cm-block-dataview th {text-align: left; padding: 4px 10px 4px 0; border-bottom: 1px solid var(--n-303030); color: var(--n-999999); font-weight: 500; white-space: nowrap;}
.ͼ1 .cm-block-dataview td {padding: 4px 10px 4px 0; border-bottom: 1px solid var(--n-242424); vertical-align: top;}
.ͼ1 .cm-block-dataview tr:last-child td {border-bottom: none;}
.ͼ1 .cm-dataview-link {background: none; border: none; padding: 0; font: inherit; color: var(--n-8b6cef); cursor: pointer; text-align: left;}
.ͼ1 .cm-dataview-link:hover {text-decoration: underline;}
.ͼ1 .cm-dataview-number {font-variant-numeric: tabular-nums;}
.ͼ1 .cm-dataview-yes {color: var(--n-8fce9b);}
.ͼ1 .cm-dataview-no {color: var(--n-e06c75);}
.ͼ1 .cm-dataview-empty {color: var(--n-666666);}
.ͼ1 .cm-dataview-group {margin: 10px 0 4px; color: var(--n-dadada); font-weight: 600;}
.ͼ1 .cm-dataview-group:first-child {margin-top: 0;}
.ͼ1 .cm-dataview-foot {margin-top: 8px; color: var(--n-666666); font-size: 11.5px;}
.ͼ1 .cm-block-slot {padding: 6px 0;}
.ͼ1 .cm-block {padding: 10px 12px; border: 1px solid var(--n-303030); border-radius: 6px; background: var(--n-1a1a1a); font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; font-size: 13px;}
.ͼ1 .cm-block-note {color: var(--n-999999);}
.ͼ1 .cm-block-error {color: var(--n-e06c75);}
.ͼ1 .cm-block-error-title {font-weight: 600; margin-bottom: 4px;}
.ͼ1 .cm-block-error pre {margin: 0; white-space: pre-wrap; font-size: 12px; color: var(--n-999999);}
.ͼ1f .cm-content {max-width: 900px; margin: 0 auto;}
.ͼr {color: var(--n-dadada); background-color: var(--n-1e1e1e); height: 100%; font-size: 16px;}
.ͼr .cm-scroller {font-family: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace; line-height: 1.5; padding: 40px 0 40vh 0;}
.ͼr .cm-content {caret-color: var(--n-dadada); padding: 0 24px;}
.ͼr .cm-line {padding: 0;}
.ͼr.cm-focused {outline: none;}
.ͼr .cm-cursor, .ͼr .cm-dropCursor {border-left: 2px solid var(--n-dadada);}
.ͼr .cm-selectionBackground, .ͼr .cm-content ::selection {background-color: var(--nrgba-139-108-239-0-30);}
.ͼr.cm-focused .cm-selectionBackground {background-color: var(--nrgba-139-108-239-0-30);}
.ͼr .cm-activeLine {background-color: var(--nrgba-255-255-255-0-03);}
.ͼr .cm-gutters {background-color: var(--n-1e1e1e); color: var(--n-666666); border: none; padding-right: 8px; font-size: 13px;}
.ͼr .cm-activeLineGutter {background-color: transparent; color: var(--n-999999);}
.ͼr .cm-selectionMatch {background-color: var(--nrgba-139-108-239-0-15);}
.ͼr .cm-searchMatch {background-color: var(--nrgba-139-108-239-0-25); outline: 1px solid var(--n-8b6cef55);}
.ͼr .cm-panels {background-color: var(--n-1a1a1a); color: var(--n-dadada); border-top: 1px solid var(--n-363636); font-size: 13px;}
.ͼr .cm-panels input, .ͼr .cm-panels button {background-color: var(--n-242424); color: var(--n-dadada); border: 1px solid var(--n-363636); border-radius: 4px; padding: 3px 7px;}
.ͼr .cm-wikilink {color: var(--n-8b6cef); text-decoration: none; cursor: text;}
.ͼr .cm-wikilink-brackets {color: var(--n-8b6cef66);}
.ͼr .cm-hashtag {color: var(--n-8b6cef); background-color: var(--n-8b6cef1f); border-radius: 10px; padding: 1px 6px; cursor: text;}
.ͼr.noita-mod-held .cm-wikilink, .ͼr.noita-mod-held .cm-wikilink-brackets, .ͼr.noita-mod-held .cm-hashtag {cursor: pointer; text-decoration: underline; text-decoration-color: var(--n-8b6cef88); text-underline-offset: 3px;}
.ͼs {color: var(--n-dadada); font-weight: 700; font-size: 1.618em;}
.ͼt {color: var(--n-dadada); font-weight: 600; font-size: 1.462em;}
.ͼu {color: var(--n-dadada); font-weight: 600; font-size: 1.318em;}
.ͼv {color: var(--n-dadada); font-weight: 600; font-size: 1.188em;}
.ͼw {color: var(--n-dadada); font-weight: 600; font-size: 1.076em;}
.ͼx {color: var(--n-dadada); font-weight: 600;}
.ͼy {color: var(--n-dadada); font-weight: 600;}
.ͼz {color: var(--n-dadada); font-style: italic;}
.ͼ10 {text-decoration: line-through; color: var(--n-999999);}
.ͼ11 {color: var(--n-dadada);}
.ͼ12 {color: var(--n-8b6cef); text-decoration: underline; text-decoration-color: var(--n-8b6cef66);}
.ͼ13 {color: var(--n-dadada);}
.ͼ14 {color: var(--n-dadada);}
.ͼ15 {color: var(--n-666666);}
.ͼ16 {color: var(--n-666666); font-style: italic;}
.ͼ17 {color: var(--n-8b6cef);}
.ͼ18 {color: var(--n-a3be8c);}
.ͼ19 {color: var(--n-d08770);}
.ͼ1a {color: var(--n-e06c75);}
.ͼ1b {cursor: auto;}
.ͼ1b .cm-content {caret-color: transparent;}
.ͼ1b .cm-cursorLayer, .ͼ1b .cm-dropCursor {display: none !important;}
.ͼ1b .cm-activeLine {background-color: transparent;}
.ͼo .cm-content {font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; font-size: 16px; line-height: 1.5;}
.ͼo .cm-md-h1, .ͼo .cm-md-h2, .ͼo .cm-md-h3 {padding-top: 0.6em; padding-bottom: 0.15em;}
.ͼo .cm-md-h4, .ͼo .cm-md-h5, .ͼo .cm-md-h6 {padding-top: 0.4em; padding-bottom: 0.1em;}
.ͼo .cm-md-quote {--quote-rule: var(--n-8b6cef); background-repeat: no-repeat; padding-left: var(--quote-indent) !important;}
.ͼo .cm-md-quote-1 {--quote-indent: 16px; background-image: linear-gradient(var(--quote-rule), var(--quote-rule)); background-size: 2px 100%; background-position: 0 0;}
.ͼo .cm-md-quote-2, .ͼo .cm-md-quote-3, .ͼo .cm-md-quote-4 {background-image: linear-gradient(var(--quote-rule), var(--quote-rule)), linear-gradient(var(--quote-rule), var(--quote-rule)), linear-gradient(var(--quote-rule), var(--quote-rule)), linear-gradient(var(--quote-rule), var(--quote-rule)); background-size: 2px 100%, 2px 100%, 2px 100%, 2px 100%;}
.ͼo .cm-md-quote-2 {--quote-indent: 32px; background-position: 0 0, 16px 0, 0 0, 0 0;}
.ͼo .cm-md-quote-3 {--quote-indent: 48px; background-position: 0 0, 16px 0, 32px 0, 0 0;}
.ͼo .cm-md-quote-4 {--quote-indent: 64px; background-position: 0 0, 16px 0, 32px 0, 48px 0;}
.ͼo .cm-callout {background-color: rgba(var(--callout-color), 0.1); padding-left: 24px !important; padding-right: 12px !important;}
.ͼo .cm-callout-first {border-top-left-radius: 4px; border-top-right-radius: 4px; padding-top: 12px; padding-bottom: 10px;}
.ͼo .cm-callout-last {border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; padding-bottom: 12px;}
.ͼo .cm-callout-head {display: inline-flex; align-items: center; gap: 6px; color: rgb(var(--callout-color)); font-weight: 600; margin-right: 6px; vertical-align: top;}
.ͼo .cm-callout-icon, .ͼo .cm-callout-fold {display: inline-flex; width: 18px; height: 1.5em; align-items: center;}
.ͼo .cm-callout-icon svg, .ͼo .cm-callout-fold svg {width: 18px; height: 18px;}
.ͼo .cm-callout-title, .ͼo .cm-callout-title * {color: rgb(var(--callout-color)); font-weight: 600;}
.ͼo .cm-callout-fold {color: rgb(var(--callout-color)); margin-left: 6px; cursor: pointer; vertical-align: top; transition: transform 100ms ease-in-out; transform: rotate(90deg);}
.ͼo .cm-callout-fold.folded {transform: none;}
.ͼo .cm-md-code {background-color: var(--n-232323); font-family: ui-monospace, SFMono-Regular, 'Cascadia Mono', 'Roboto Mono', 'DejaVu Sans Mono', Menlo, monospace; font-size: 14px; line-height: 1.5; padding-left: 16px !important; padding-right: 16px !important;}
.ͼo .cm-md-code-open {border-top-left-radius: 4px; border-top-right-radius: 4px; padding-top: 8px;}
.ͼo .cm-md-code-close {border-bottom-left-radius: 4px; border-bottom-right-radius: 4px; padding-bottom: 8px;}
.ͼo .cm-md-fence {position: relative; font-size: 8px; line-height: 1; padding-top: 0; padding-bottom: 0;}
.ͼo .cm-code-label {position: absolute; top: 6px; right: 12px; display: flex; align-items: center; gap: 8px; font-family: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif; font-size: 12px; line-height: 1; color: var(--n-666666); z-index: 1;}
.ͼo .cm-code-language {text-transform: capitalize;}
.ͼo .cm-code-copy {display: inline-flex; cursor: pointer; opacity: 0; transition: opacity 120ms;}
.ͼo .cm-md-code:hover .cm-code-copy, .ͼo .cm-code-copy.copied {opacity: 1;}
.ͼo .cm-code-copy:hover {color: var(--n-dadada);}
.ͼo .cm-code-copy.copied {color: var(--n-8b6cef);}
.ͼo .cm-code-copy svg {width: 15px; height: 15px;}
.ͼo .cm-inline-code {background-color: var(--n-232323); border-radius: 4px; padding: 0.15em 0.3em; font-family: ui-monospace, SFMono-Regular, 'Cascadia Mono', 'Roboto Mono', 'DejaVu Sans Mono', Menlo, monospace; font-size: 0.875em;}
.ͼo .cm-highlight {background-color: var(--nrgba-255-208-0-0-4); color: var(--n-dadada);}
.ͼo .cm-comment, .ͼo .cm-comment * {color: var(--n-666666) !important; font-style: normal;}
.ͼo .cm-footref {color: var(--n-8b6cef); font-size: 0.75em; line-height: 0; vertical-align: super; padding: 0 1px;}
.ͼo .cm-footnote-def {font-size: 0.875em; color: var(--n-b3b3b3);}
.ͼo .cm-footdef-label {color: var(--n-8b6cef); font-size: 0.8em; vertical-align: super; line-height: 0; margin-right: 4px;}
.ͼo .cm-math {font-size: 1.1em;}
.ͼo .cm-math-source {font-family: ui-monospace, SFMono-Regular, 'Cascadia Mono', 'Roboto Mono', 'DejaVu Sans Mono', Menlo, monospace; font-size: 0.875em; color: var(--n-b3b3b3);}
.ͼo .cm-html-kbd {font-family: ui-monospace, SFMono-Regular, 'Cascadia Mono', 'Roboto Mono', 'DejaVu Sans Mono', Menlo, monospace; font-size: 0.85em; padding: 0.1em 0.4em; border: 1px solid var(--n-3f3f3f); border-bottom-width: 2px; border-radius: 4px; background-color: var(--n-262626);}
.ͼo .cm-html-mark {background-color: var(--nrgba-255-208-0-0-4);}
.ͼo .cm-html-u {text-decoration: underline;}
.ͼo .cm-html-sup {vertical-align: super; font-size: 0.8em;}
.ͼo .cm-html-sub {vertical-align: sub; font-size: 0.8em;}
.ͼo .cm-html-b, .ͼo .cm-html-strong {font-weight: 600;}
.ͼo .cm-html-i, .ͼo .cm-html-em {font-style: italic;}
.ͼo .cm-html-s, .ͼo .cm-html-del {text-decoration: line-through;}
.ͼo .cm-html-small {font-size: 0.85em;}
.ͼo .cm-heading-fold {position: relative; display: inline-block; width: 0;}
.ͼo .cm-heading-fold-icon {position: absolute; right: 6px; top: -0.35em; transform: translateY(-50%) rotate(90deg); display: inline-flex; color: var(--n-666666); cursor: pointer; opacity: 0; transition: opacity 120ms, transform 100ms;}
.ͼo .cm-heading-fold-icon svg {width: 16px; height: 16px;}
.ͼo .cm-line:hover .cm-heading-fold-icon, .ͼo .cm-heading-fold-icon.folded {opacity: 1;}
.ͼo .cm-heading-fold-icon.folded {transform: translateY(-50%);}
.ͼo .cm-heading-fold-icon:hover {color: var(--n-dadada);}
.ͼo .cm-heading-folded-rest {display: inline-block; margin-left: 8px; padding: 0 6px; border-radius: 4px; background: var(--n-2a2a2a); color: var(--n-999999); font-size: 0.7em; line-height: 1.5; vertical-align: middle; cursor: pointer;}
.ͼo .cm-bullet {color: var(--n-666666); padding-right: 6px;}
.ͼo .cm-rule {display: inline-block; width: 100%; border: none; border-top: 1px solid var(--n-363636); vertical-align: middle; margin: 0;}
.ͼo .cm-task {appearance: none; -webkit-appearance: none; width: 15px; height: 15px; margin: 0 6px 0 0; border: 1px solid var(--n-666666); border-radius: 4px; background-color: transparent; vertical-align: -2px; cursor: pointer;}
.ͼo .cm-task:hover {border-color: var(--n-999999);}
.ͼo .cm-task:checked {border-color: var(--n-8b6cef); background-color: var(--n-8b6cef); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E"); background-size: 11px; background-position: center; background-repeat: no-repeat;}
.ͼo .cm-task-done {color: var(--n-999999); text-decoration: line-through;}
.ͼ4 .cm-line ::selection, .ͼ4 .cm-line::selection {background-color: transparent !important;}
.ͼ4 .cm-line {caret-color: transparent !important;}
.ͼ4 .cm-content :focus::selection, .ͼ4 .cm-content :focus ::selection {background-color: Highlight !important;}
.ͼ4 .cm-content :focus {caret-color: initial !important;}
.ͼ4 .cm-content {caret-color: transparent !important;}


.noita-hover-card {
  position: fixed;
  z-index: 1000;
  width: 480px;
  max-width: calc(100vw - 16px);
  display: flex;
  flex-direction: column;
  max-height: min(420px, calc(100vh - 16px));
  background: var(--n-1e1e1e);
  border: 1px solid var(--n-363636);
  border-radius: 8px;
  box-shadow: 0 10px 30px var(--nrgba-0-0-0-0-5);
  color: var(--n-dadada);
  font-size: 14px;
  overflow: hidden;
}
.noita-hover-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px 6px 20px;
  border-bottom: 1px solid var(--n-2a2a2a);
  flex: none;
}
.noita-hover-card-title {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-weight: 600;
  color: var(--n-dadada);
  cursor: pointer;
}
.noita-hover-card-title:hover { color: var(--n-a68af9); }
.noita-hover-card-open {
  flex: none;
  display: inline-flex;
  width: 16px;
  height: 16px;
  color: var(--n-999);
  cursor: pointer;
}
.noita-hover-card-open:hover { color: var(--n-dadada); }
.noita-hover-card-open svg { width: 16px; height: 16px; }
.noita-hover-card-body {
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 8px 20px 12px;
  color: var(--n-999);
  min-height: 24px;
}
.noita-hover-card-body .cm-content { font-size: 14px; }
.noita-hover-card-note { color: var(--n-777); font-style: italic; padding: 4px 0; }
.noita-hover-card-image { display: block; max-width: 100%; max-height: 360px; margin: 0 auto; }

/* noita's static site: the frame around a published page.
 *
 * The page body is the reading view's own DOM, styled by the CSS the editor
 * bundle injects (appended to this file at export). What is here is the frame
 * -- header, file tree, side column -- in the app's palette, and the few
 * overrides that turn a scrolling editor pane into a page that scrolls with
 * the document.
 */

:root {
  --base-00: #1e1e1e;
  --base-10: #161616;
  --base-20: #242424;
  --base-25: #2a2a2a;
  --base-30: #303030;
  --base-40: #3f3f3f;
  --base-50: #666666;
  --base-70: #999999;
  --base-100: #dadada;
  --accent: #8b6cef;
  --accent-hover: #a78bfa;
  --hover: rgba(255, 255, 255, 0.075);
  --radius-s: 4px;
  --radius-m: 6px;
  --font-ui-small: 12px;
  --nav: 260px;
  --side: 320px;
  color-scheme: dark;

  /* The graph renderer reads these at paint time (js/graph.js), as in the app. */
  --graph-bg: var(--base-00);
  --graph-node: var(--base-70);
  --graph-link: #6b6b6b;
  --graph-text: var(--base-100);
  --graph-accent: var(--accent);
  --shadow: rgba(0, 0, 0, 0.4);
  /* Headings stand out from the text they head. */
  --heading: #f4f4f4;
}

/* The light theme: the reader's system's choice unless the page is pinned
   dark, or the page set light by the toggle or by `[publish] theme`. The two
   blocks hold the same values. */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) {
    --base-00: #ffffff;
    --base-10: #f6f6f6;
    --base-20: #f2f2f2;
    --base-25: #ebebeb;
    --base-30: #e0e0e0;
    --base-40: #d0d0d0;
    --base-50: #8a8a8a;
    --base-70: #5c5c5c;
    --base-100: #222222;
    --accent: #6d4ae0;
    --accent-hover: #5734cc;
    --hover: rgba(0, 0, 0, 0.05);
    --graph-link: #b4b4b4;
    --shadow: rgba(0, 0, 0, 0.15);
    --heading: #111111;
    color-scheme: light;
    --chart-1: #56A64B;
    --chart-2: #8F7000;
    --chart-3: #3274D9;
    --chart-4: #FA6400;
    --chart-5: #C4162A;
    --chart-6: #8F3BB8;
    --chart-7: #5794F2;
    --chart-8: #D9367A;
    --chart-9: #843B61;
    --chart-10: #128F71;
    --chart-11: #884117;
    --chart-12: #1A9CB8;
    --chart-text: #24292e;
    --chart-muted: #5f6570;
    --chart-grid: #e4e6ea;
    --chart-surface: #ffffff;
    --chart-border: #dcdee3;
    --chart-tooltip: #ffffff;
    --chart-on-series: #ffffff;
    --chart-sequential: #FA6400;
    --chart-good: #56A64B;
    --chart-warn: #FA6400;
    --chart-bad: #C4162A;
  }
}
:root[data-theme="light"] {
  --chart-1: #56A64B;
  --chart-2: #8F7000;
  --chart-3: #3274D9;
  --chart-4: #FA6400;
  --chart-5: #C4162A;
  --chart-6: #8F3BB8;
  --chart-7: #5794F2;
  --chart-8: #D9367A;
  --chart-9: #843B61;
  --chart-10: #128F71;
  --chart-11: #884117;
  --chart-12: #1A9CB8;
  --chart-text: #24292e;
  --chart-muted: #5f6570;
  --chart-grid: #e4e6ea;
  --chart-surface: #ffffff;
  --chart-border: #dcdee3;
  --chart-tooltip: #ffffff;
  --chart-on-series: #ffffff;
  --chart-sequential: #FA6400;
  --chart-good: #56A64B;
  --chart-warn: #FA6400;
  --chart-bad: #C4162A;
  --base-00: #ffffff;
  --base-10: #f6f6f6;
  --base-20: #f2f2f2;
  --base-25: #ebebeb;
  --base-30: #e0e0e0;
  --base-40: #d0d0d0;
  --base-50: #8a8a8a;
  --base-70: #5c5c5c;
  --base-100: #222222;
  --accent: #6d4ae0;
  --accent-hover: #5734cc;
  --hover: rgba(0, 0, 0, 0.05);
  --graph-link: #b4b4b4;
  --shadow: rgba(0, 0, 0, 0.15);
  --heading: #111111;
  color-scheme: light;
}
/* Mermaid draws its light theme and the dark page inverts it (as the window
   does); a light page shows it as drawn. */
@media (prefers-color-scheme: light) {
  :root:not([data-theme="dark"]) .cm-mermaid > svg { filter: none; }
}
:root[data-theme="light"] .cm-mermaid > svg { filter: none; }

/* The theme switch in the header. */
.site-theme {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; margin-left: 8px; padding: 0;
  border: 1px solid var(--base-30); border-radius: var(--radius-m);
  background: transparent; color: var(--base-70); cursor: pointer;
}
.site-theme:hover { color: var(--base-100); background: var(--hover); }
.site-theme[hidden] { display: none; }

* { box-sizing: border-box; }

html, body {
  margin: 0;
  background: var(--base-00);
  color: var(--base-100);
  font: 14px/1.6 Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--accent); text-decoration: none; }
a:hover { color: var(--accent-hover); text-decoration: underline; }

/* ------------------------------------------------------------------ frame */

.site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  display: flex;
  align-items: center;
  gap: 16px;
  height: 48px;
  padding: 0 16px;
  background: var(--base-10);
  border-bottom: 1px solid var(--base-30);
}
.site-title { color: var(--base-100); font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.site-search { margin-left: auto; position: relative; }

.site-frame {
  display: grid;
  grid-template-columns: var(--nav) minmax(0, 1fr) var(--side);
  grid-template-areas: "nav page side";
  align-items: start;
}
/* The page comes first in the document; the grid puts the tree beside it. */
.site-page { grid-area: page; }
.site-nav { grid-area: nav; }
.site-side { grid-area: side; }

/* The phone menu: a checkbox, out of sight but focusable, and its label in
   the header. Hidden until the screen is narrow. */
.site-menu-toggle { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.site-menu-button {
  display: none; align-items: center; justify-content: center;
  width: 30px; height: 30px; margin-right: -4px;
  border-radius: var(--radius-m); color: var(--base-70); cursor: pointer;
}
.site-menu-button:hover { color: var(--base-100); background: var(--hover); }
.site-menu-toggle:focus-visible ~ .site-header .site-menu-button { outline: 2px solid var(--accent); }

.site-nav, .site-side {
  position: sticky;
  top: 48px;
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: 16px 12px;
  font-size: 13px;
}
.site-nav { background: var(--base-10); border-right: 1px solid var(--base-30); min-height: calc(100vh - 48px); }

/* The file tree's toggle, by the site's name (`js/site-files.js`). Folded,
   the tree's column closes and the page takes its width; the text keeps its
   own column (`--content-width`), centred in the wider page, unless that is
   fluid. The tree turns invisible once its column has closed, so neither a
   tab nor a screen reader lands in it. A phone has its own menu instead. */
.site-files-toggle {
  display: inline-flex; align-items: center; justify-content: center;
  flex: none; width: 30px; height: 30px; margin-right: -8px; padding: 0;
  border: 0; border-radius: var(--radius-m);
  background: transparent; color: var(--base-70); cursor: pointer;
}
.site-files-toggle:hover { color: var(--base-100); background: var(--hover); }
.site-files-toggle[hidden] { display: none; }
@media (min-width: 761px) {
  .site-frame { transition: grid-template-columns 0.18s ease; }
  .site-nav { transition: visibility 0s; }
  :root[data-files="closed"] .site-frame { --nav: 0px; }
  :root[data-files="closed"] .site-nav {
    visibility: hidden;
    overflow: hidden;
    padding-left: 0;
    padding-right: 0;
    border-right-width: 0;
    transition: visibility 0s 0.18s;
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-frame, .site-nav { transition: none !important; }
}
/* The side column reads like a page's margin: room to its right, larger
   text, and its sections headed as the page's headings are. */
.site-side { padding: 28px 36px 28px 20px; font-size: 14.5px; }

.site-tree, .site-tree ul { list-style: none; margin: 0; padding: 0; }
.site-tree ul { padding-left: 14px; border-left: 1px solid var(--base-25); margin-left: 6px; }
.site-tree a, .site-tree summary {
  display: block;
  padding: 2px 6px;
  border-radius: var(--radius-s);
  color: var(--base-70);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.site-tree summary { cursor: pointer; list-style: none; }
.site-tree summary::-webkit-details-marker { display: none; }
.site-tree summary::before {
  content: "";
  display: inline-block;
  width: 0;
  height: 0;
  margin: 0 7px 1px 0;
  border-left: 4px solid currentColor;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  transition: transform 0.1s;
}
.site-tree details[open] > summary::before { transform: rotate(90deg); }
.site-tree summary a { display: inline; padding: 0; color: inherit; }
.site-tree a:hover, .site-tree summary:hover { background: var(--hover); color: var(--base-100); text-decoration: none; }
.site-tree a[aria-current="page"] { background: var(--base-25); color: var(--base-100); }

.site-page { min-width: 0; padding: 24px 32px 96px; }

.site-side h2 {
  margin: 0 0 10px;
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--heading);
}
.site-side section + section { margin-top: 30px; }
.site-side ul { list-style: none; margin: 0; padding: 0; }
.site-side li a { display: block; padding: 3px 0; color: var(--base-70); line-height: 1.45; }
.site-side li a:hover { color: var(--base-100); }
.site-outline .level-2 { padding-left: 14px; }
.site-outline .level-3 { padding-left: 28px; }
.site-outline .level-4, .site-outline .level-5, .site-outline .level-6 { padding-left: 42px; }
.site-side .site-graph-host { height: 260px; }

/* The trail above a page, lined up with what it is above: a listing's
   column, or the text of a note (the reading view's 700px column, inside
   its 24px of padding). */
.site-crumbs { max-width: 900px; margin: 0 auto 8px; font-size: 13px; color: var(--base-50); }
.site-page:has(> .site-note > .cm-editor) .site-crumbs { max-width: var(--content-width, 700px); padding: 0 24px; }
.site-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.site-crumbs li + li::before { content: "›"; margin-right: 4px; color: var(--base-40); }
.site-crumbs a { color: var(--base-70); }
.site-crumbs a:hover { color: var(--base-100); }
.site-details { margin: 2px 0 14px; font-size: 13px; color: var(--base-50); }

.site-listing { max-width: 900px; margin: 0 auto; }

/* A table's cells break between words, not inside them: the reading view's
   lines may break anywhere (`overflow-wrap: anywhere`), which a table inherits
   and then sizes a column holding `--regexp=PATTERN` one letter wide. */
.site-page table { overflow-wrap: break-word; word-break: normal; }
.site-page td code, .site-page th code { overflow-wrap: break-word; word-break: normal; }
.site-listing h1 { font-size: 1.8em; margin: 0.4em 0 0.6em; }
.site-listing ul { padding-left: 1.2em; }

/* ------------------------------------------------- the editor, as a page */

/* Headings, sized for a page someone reads rather than a note someone
   writes: a clear step from each level to the next, heavier, and in a colour
   a shade brighter than the text. The editor's highlighter sizes the words
   inside a heading; here they take the line's size instead. */
.site-page .cm-inline-title {
  font-size: 2.15em; font-weight: 750; line-height: 1.15;
  letter-spacing: -0.02em; color: var(--heading);
}
.site-page .cm-line.cm-md-h1, .site-page .cm-line.cm-md-h2, .site-page .cm-line.cm-md-h3,
.site-page .cm-line.cm-md-h4, .site-page .cm-line.cm-md-h5, .site-page .cm-line.cm-md-h6 {
  line-height: 1.25; color: var(--heading); padding-bottom: 0.3em;
}
.site-page .cm-line.cm-md-h1 { font-size: 2em; font-weight: 750; letter-spacing: -0.02em; padding-top: 1em; }
.site-page .cm-line.cm-md-h2 { font-size: 1.55em; font-weight: 700; letter-spacing: -0.015em; padding-top: 0.95em; }
.site-page .cm-line.cm-md-h3 { font-size: 1.25em; font-weight: 700; padding-top: 0.8em; }
.site-page .cm-line.cm-md-h4 { font-size: 1.1em; font-weight: 650; padding-top: 0.7em; }
.site-page .cm-line.cm-md-h5, .site-page .cm-line.cm-md-h6 { font-size: 1em; font-weight: 650; padding-top: 0.6em; }
/* A heading that opens the page sits under the breadcrumbs, not a gap below. */
.site-page .cm-content > .cm-line:first-child:is(.cm-md-h1, .cm-md-h2, .cm-md-h3) { padding-top: 0.15em; }
.site-page .cm-scroller { padding-top: 8px !important; }
/* A fenced block written straight against a line of prose, with no blank line
   between, still stands apart from it, as a <pre> after a <p> does. A blank
   line is the gap already, so it gets none added. */
.site-page .cm-line:not(.cm-md-code):not(:has(> br:only-child)) + .cm-md-code-open,
.site-page .cm-md-code-close + .cm-md-code-open,
.site-page .cm-md-code-close + .cm-line:not(.cm-md-code):not(:has(> br:only-child)) { margin-top: 0.75em; }
.site-page .cm-line:is(.cm-md-h1, .cm-md-h2, .cm-md-h3, .cm-md-h4, .cm-md-h5, .cm-md-h6) span:not(.cm-inline-code) {
  font-size: inherit; font-weight: inherit; color: inherit;
}

.site-page .cm-editor { height: auto; background: transparent; }
.site-page .cm-scroller { overflow: visible !important; }
.site-page .cm-editor.cm-focused { outline: none; }
/* The editor's gutter holds fold markers, and a page folds nothing. */
.site-page .cm-gutters { display: none; }
/* Nothing on a published page is under a cursor. */
.site-page .cm-cursorLayer, .site-page .cm-selectionLayer { display: none; }

/* Links the reading view draws as anchors on a published page. */
.site-page a.cm-wikilink, .site-page a.cm-link, .site-page a.cm-hashtag,
.site-page a.cm-table-wikilink, .site-page a.cm-table-tag,
.site-page a.cm-dataview-link, .site-page a.cm-properties-link,
.site-page a.cm-properties-tag, .site-page a.cm-embed-title,
.site-page a.noita-island-place { color: var(--accent); cursor: pointer; }
/* The highlighter's spans inside a link (a list item's text colour) would
   otherwise paint over the link's own. */
.site-page a[href] span { color: inherit; }
.site-page .cm-wikilink-missing { opacity: 0.6; }
/* A chip's link wears the chip's colours, as its text does in the window. */
.site-page .cm-properties-chip a { color: inherit; }
.site-page [id] { scroll-margin-top: 64px; }

/* ------------------------------------------------------------------ graphs */

/* The menu bar: Back, Home, Graph, Tags. */
.site-menu { display: flex; align-items: center; gap: 2px; flex: none; }
.site-menu-item {
  display: inline-flex; align-items: center; gap: 6px;
  height: 30px; padding: 0 10px;
  border: 0; border-radius: var(--radius-m);
  background: transparent; color: var(--base-70);
  font: inherit; font-size: 13px; cursor: pointer;
}
.site-menu-item:hover { background: var(--hover); color: var(--base-100); text-decoration: none; }
.site-menu-item[hidden] { display: none; }
.site-menu-item svg { flex: none; }
.site-graph-host { position: relative; height: 220px; border: 1px solid var(--base-30); border-radius: var(--radius-m); overflow: hidden; background: var(--graph-bg); }
/* js/graph.js stacks three canvases: regions, then links and nodes, then labels. */
.graph-canvas-el, .graph-gl-el, .graph-region-el { position: absolute; top: 0; left: 0; display: block; }
.site-graph-all { display: inline-block; margin-top: 6px; font-size: 12px; }
/* The whole site's graph is the page: no frame around it. */
.site-graph-page .site-graph-host { height: calc(100vh - 100px); border: 0; border-radius: 0; }
.site-graph-page .noita-island[data-drawn] > .noita-island-fallback { display: none; }

/* ---------------------------------------------------------------- canvases */

.site-canvas {
  margin: 12px 0 20px;
  max-height: 80vh;
  overflow: auto;
  border: 1px solid var(--base-30);
  border-radius: 8px;
  background: var(--base-00);
}
.site-canvas .cm-editor { height: auto; display: block; }
/* The board is the page's, not an overlay on an editor. */
.site-canvas .cm-canvas-board { position: relative; inset: auto; overflow: hidden; }
.site-canvas.fitted { overflow: hidden; cursor: grab; touch-action: none; }
.site-canvas.fitted.dragging { cursor: grabbing; }
.site-listing .site-canvas + p { color: var(--base-70); }
.site-card { white-space: pre-wrap; }

/* ----------------------------------------------------------------- islands */

.noita-island-source, .site-card {
  margin: 0;
  padding: 12px 14px;
  background: var(--base-20);
  border-radius: var(--radius-m);
  overflow-x: auto;
  font: 12.5px/1.5 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}
.noita-island-table { border-collapse: collapse; width: 100%; font-size: 13px; }
.noita-island-table caption { text-align: left; font-weight: 600; padding-bottom: 6px; }
.noita-island-table th, .noita-island-table td {
  border-bottom: 1px solid var(--base-30);
  padding: 4px 8px;
  text-align: left;
}
.noita-island-places { margin: 0; padding-left: 1.2em; }
/* Leaflet's own stylesheet loads after this one, when a map is drawn; its
   grey `.leaflet-container` would win a tie. */
.map-block .map-leaflet.leaflet-container { background: var(--base-00); }
/* A drawn map, styled as the window styles one: copied from app.css's map
   section, which assumes the window's frame and so cannot be linked whole. */
.map-canvas { flex: 1; position: relative; min-width: 0; min-height: 0; overflow: hidden; }
.map-leaflet { position: absolute; inset: 0; background: var(--base-00); font: inherit; }
.map-leaflet .leaflet-control-attribution {
  background: color-mix(in srgb, var(--base-10) 85%, transparent);
  color: var(--base-70);
  font-size: 11px;
}
.map-leaflet .leaflet-control-attribution a { color: var(--accent); }
.map-cluster {
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 80%, transparent);
  color: #fff; font-weight: 600; font-size: 12px;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 30%, transparent);
}
.map-tooltip { background: var(--base-10); color: var(--base-100); border: 1px solid var(--base-30); box-shadow: none; }
.map-tooltip::before { display: none; }
.map-card { display: grid; gap: 2px; font-size: var(--font-ui-small); }
.map-card-row { display: flex; gap: 8px; justify-content: space-between; }
.map-card-row span:first-child { color: var(--base-50); }
.map-file { display: inline-flex; align-items: center; gap: 6px; color: var(--base-70); }
.map-photo-icon { background: none; border: none; }
.map-photo {
  position: relative; width: 100%; height: 100%; box-sizing: border-box;
  border: 3px solid var(--ring, var(--accent)); border-radius: 50%;
  background: var(--ring, var(--accent));
  box-shadow: 0 2px 8px rgb(0 0 0 / 0.45);
  transition: transform 0.12s;
}
/* Through the marker pane: Leaflet's own `.leaflet-marker-pane img`
   rule sets `width: auto`, which would let a photo that is not square keep
   its shape and spill out of the ring as an oval. */
.leaflet-container .leaflet-marker-pane .map-photo img { display: block; width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.map-photo-icon:hover { z-index: 1000 !important; }
.map-photo-icon:hover .map-photo { transform: scale(1.12); }
.map-photo-count {
  position: absolute; top: -6px; right: -6px; min-width: 20px; height: 20px; padding: 0 5px;
  box-sizing: border-box; border-radius: 10px; border: 2px solid var(--base-00);
  background: var(--accent); color: #fff; font-size: 11px; font-weight: 600; line-height: 16px; text-align: center;
}

.map-block { display: grid; gap: 4px; }
.map-block-map { position: relative; height: 320px; border-radius: var(--radius-m); overflow: hidden; }
.map-block-notice { margin: 0; color: var(--base-70); font-size: 12px; }
.noita-island[data-drawn] > .noita-island-fallback { display: none; }

/* ------------------------------------------------------------------ narrow */

@media (max-width: 1100px) {
  .site-frame { grid-template-columns: var(--nav) minmax(0, 1fr); grid-template-areas: "nav page"; }
  .site-side { display: none; }
}

/* A phone: the page alone, its side column after it, and the tree over
   everything while the menu is open. */
@media (max-width: 760px) {
  .site-header { gap: 10px; padding: 0 12px; }
  .site-menu-button { display: inline-flex; }
  .site-files-toggle { display: none; }
  /* Icons alone, and no Home: the site's name already leads there. */
  .site-menu-item { padding: 0 7px; }
  .site-menu-item span, .site-menu-home { display: none; }
  .site-frame { display: block; }
  .site-nav { display: none; }
  .site-menu-toggle:checked ~ .site-frame .site-nav {
    display: block;
    position: fixed;
    inset: 48px 0 0 0;
    z-index: 9;
    max-height: none;
    min-height: 0;
    border-right: 0;
    padding: 12px 16px;
  }
  .site-page { padding: 16px 16px 32px; }
  .site-side {
    display: block;
    position: static;
    max-height: none;
    padding: 16px 16px 48px;
    border-top: 1px solid var(--base-30);
  }
  .site-crumbs { margin-bottom: 4px; }
  .site-page:has(> .site-note > .cm-editor) .site-crumbs { padding: 0; }
  /* The page's gutter is the only one: the editor's own padding goes. */
  .site-page .cm-content { max-width: 100%; padding-left: 0; padding-right: 0; }
  /* Wide things scroll inside themselves, never the page. */
  .site-page table, .site-page pre, .site-page .cm-md-code { overflow-x: auto; }
}

@media print {
  .site-header, .site-nav, .site-side { display: none; }
  .site-frame { display: block; }
  html, body { background: #fff; color: #000; }
}

/* ------------------------------------------------------- search and cards */

.site-search input {
  width: 240px;
  padding: 5px 10px;
  border: 1px solid var(--base-30);
  border-radius: var(--radius-m);
  background: var(--base-20);
  color: var(--base-100);
  font: inherit;
}
.site-search input:focus { outline: 1px solid var(--accent); }
.site-search-results {
  position: absolute;
  right: 0;
  top: calc(100% + 6px);
  width: 420px;
  max-height: 70vh;
  overflow-y: auto;
  margin: 0;
  padding: 4px;
  list-style: none;
  background: var(--base-20);
  border: 1px solid var(--base-30);
  border-radius: var(--radius-m);
  box-shadow: 0 10px 30px var(--shadow);
}
.site-search-results a { display: block; padding: 6px 8px; border-radius: var(--radius-s); color: var(--base-70); }
.site-search-results a:hover, .site-search-results a:focus { background: var(--hover); text-decoration: none; }
.site-search-results strong { display: block; color: var(--base-100); font-weight: 600; }
.site-search-results span { display: block; font-size: 12px; }

.site-card-preview {
  position: absolute;
  z-index: 20;
  width: 380px;
  padding: 10px 14px;
  background: var(--base-20);
  border: 1px solid var(--base-30);
  border-radius: 8px;
  box-shadow: 0 10px 30px var(--shadow);
  font-size: 13px;
  color: var(--base-70);
}
.site-card-preview strong { color: var(--base-100); }
.site-card-preview p { margin: 6px 0 0; }
/* The linked page as it renders, in a window onto its start. */
.site-card-rendered {
  width: 440px;
  max-width: calc(100vw - 16px);
  max-height: 340px;
  overflow: auto;
  padding: 4px 16px 12px;
  background: var(--base-00);
  color: var(--base-100);
}
.site-card-rendered .cm-content { padding: 0; max-width: none; }
.site-card-rendered .cm-inline-title { font-size: 1.4em; }
.site-card-rendered .noita-island-fallback { display: block; }

@media (max-width: 760px) {
  .site-search input { width: 140px; }
  .site-search-results { width: calc(100vw - 32px); }
}
