:root{--bg:#f4f1ea;--fg:#1c1b19;--muted:#8a857a;--font-sans:"Inter", system-ui, -apple-system, "Helvetica Neue", sans-serif;--font-mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;--space:1rem;--measure:60ch}@media (prefers-color-scheme:dark){:root{--bg:#161513;--fg:#e9e5da;--muted:#7d786d}}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:inherit;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted);text-underline-offset:3px}a:hover,a:focus-visible{-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page{max-width:76rem;margin:0 auto;padding:8vh 1.5rem 6rem 1rem}.page--narrow{max-width:44rem;padding-inline:1rem}.layout{gap:3rem;display:grid}@media (width<=59.99rem){.layout{grid-template-columns:minmax(0,1fr)}.plate-art{margin-inline:auto}}@media (width>=60rem){.layout{grid-template-columns:minmax(0,32rem) minmax(0,1fr);align-items:start;gap:3rem}.plate-wrap{position:sticky;top:6vh}}.ascii{font-family:var(--font-mono);color:var(--fg);-webkit-user-select:none;user-select:none;white-space:pre;margin:0;font-size:clamp(5px,1.55vw,12px);line-height:1.15;overflow:hidden}.ascii--braille{font-size:clamp(8px,2.2vw,16px);line-height:1}.plate-wrap{margin:0}.plate{padding:0;position:relative;container-type:inline-size}.plate .ascii{font-size:clamp(5px,min(2.3cqw,1.55vh),15px)}.plate .ascii--braille{font-size:clamp(6px,min(2.6cqw,1.75vh),17px)}.plate-art{width:fit-content}.ascii--wordmark{margin-top:-1.5rem}.wordmark-btn{color:inherit;font:inherit;cursor:pointer;text-align:left;background:0 0;border:0;margin:0;padding:0;display:block}.wordmark-btn:focus-visible{outline:1px dashed var(--muted);outline-offset:4px}.notes{font-family:var(--font-mono);color:var(--fg);font-size:.875rem}.tagline{white-space:pre-line;max-width:46ch;margin:0 0 .75rem}.tw{display:grid}.tw>*{grid-area:1/1}.tw-ghost{visibility:hidden}.cursor{margin-left:1px;animation:1.1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.now,.stamp{margin:0}.now{margin-bottom:2rem}.stamp{margin-top:1rem}.rule{font-family:var(--font-mono);white-space:nowrap;-webkit-user-select:none;user-select:none;opacity:.35;margin:1.75rem 0;font-size:.75rem;line-height:1;overflow:hidden}.section-label{font-size:inherit;font-weight:inherit;margin:0 0 .75rem}.list{margin:0;padding:0;list-style:none}.list li{flex-wrap:wrap;align-items:baseline;gap:.6rem;display:flex}.arrow{transition:transform .15s;display:inline-block}.list li:hover .arrow,.list li:focus-within .arrow{transform:translate(4px)}.empty{font-family:var(--font-mono);margin:0;font-size:.875rem}.notes .empty{font-size:inherit}@media (prefers-reduced-motion:reduce){.cursor{animation:none}.arrow{transition:none}}@media (width<=59.99rem){.list li{padding-left:1.6em;display:block;position:relative}.list .arrow{position:absolute;left:0}.list .meta{margin-left:.5em}.list li{min-height:2.75rem;padding-block:.6rem}.list li .arrow{top:.6rem}.list li a:after{content:"";border-radius:4px;position:absolute;inset:0}.list li a:active:after{background:color-mix(in srgb, var(--fg) 8%, transparent)}.list li+li{margin-top:0}.notes{font-size:.94rem}.rule{margin:1.1rem 0}.now{margin-bottom:1rem}.section-label{margin-bottom:.35rem}}@media (width>=60rem){.page{padding-top:clamp(1.5rem,5vh,4rem);padding-bottom:clamp(1rem,3vh,3rem)}.notes{line-height:1.5}.tagline{margin-bottom:clamp(.25rem,1vh,.75rem)}.now{margin-bottom:clamp(.5rem,1.6vh,2rem)}.rule{margin:clamp(.6rem,2vh,1.75rem) 0}.section-label{margin-bottom:clamp(.35rem,1vh,.75rem)}.stamp{margin-top:clamp(.4rem,1vh,1rem)}}@media (width>=60rem) and (height<=700px){.notes{line-height:1.35}.page{padding-top:1.25rem}}:root{--leak-warm:#ff602829;--leak-amber:#ffb2501a;--leak-cool:#3caa8212;--vignette:#2814002e;--grain:.09;--halo:#ff5a3200;--leak-blend:multiply;--flicker:#28190a0d;--dust:#1e191480}@media (prefers-color-scheme:dark){:root{--leak-warm:#ff461e21;--leak-amber:#ffaa4614;--leak-cool:#28be8c0f;--vignette:#0000008c;--grain:.11;--halo:#ff5a3261;--leak-blend:screen;--flicker:#0000001f;--dust:#f0e6d28c}}.film-layer{pointer-events:none;z-index:10;contain:strict;position:fixed;inset:0;overflow:hidden}.film-layer>*{position:absolute}.film-leak{mix-blend-mode:var(--leak-blend);filter:blur(24px);will-change:transform, opacity}.film-leak--warm{background:radial-gradient(ellipse at center, var(--leak-warm), transparent 68%);width:70vw;height:60vh;animation:37s ease-in-out infinite wander-a,11s ease-in-out infinite breathe;top:4vh;left:-8vw}.film-leak--amber{background:radial-gradient(ellipse at center, var(--leak-amber), transparent 70%);width:90vw;height:26vh;animation:53s ease-in-out infinite wander-b,17s ease-in-out -6s infinite breathe;top:32vh;left:-15vw}.film-leak--cool{background:radial-gradient(ellipse at center, var(--leak-cool), transparent 68%);width:60vw;height:60vh;animation:61s ease-in-out infinite wander-c,23s ease-in-out -9s infinite breathe;bottom:-16vh;right:-14vw}@keyframes wander-a{0%,to{transform:translate(0,0)scale(1)}30%{transform:translate(9vw,5vh)scale(1.1)}60%{transform:translate(3vw,12vh)scale(.94)}80%{transform:translate(-4vw,4vh)scale(1.04)}}@keyframes wander-b{0%,to{transform:translate(0,0)scaleX(1)}40%{transform:translate(14vw,-6vh)scaleX(1.15)}70%{transform:translate(5vw,7vh)scaleX(.9)}}@keyframes wander-c{0%,to{transform:translate(0,0)scale(1)}35%{transform:translate(-12vw,-9vh)scale(1.12)}65%{transform:translate(-5vw,-18vh)scale(.92)}}@keyframes breathe{0%,to{opacity:1}50%{opacity:.55}}.film-flicker{background:var(--flicker);opacity:0;animation:9.7s step-end infinite flicker;inset:0}@keyframes flicker{0%,to{opacity:0}13%{opacity:.5}14%{opacity:0}47%{opacity:.3}47.6%{opacity:.7}48.2%{opacity:0}81%{opacity:.4}81.8%{opacity:0}}.film-dust{opacity:0;background:radial-gradient(circle at 18% 27%, var(--dust) 0 1.2px, transparent 2px), radial-gradient(circle at 63% 71%, var(--dust) 0 1px, transparent 1.8px), radial-gradient(ellipse 2px 7px at 81% 22%, var(--dust), transparent), radial-gradient(circle at 37% 88%, var(--dust) 0 1.5px, transparent 2.4px);animation:5.3s step-end infinite dust;inset:0}@keyframes dust{0%,to{opacity:0;transform:translate(0)}21%{opacity:.8;transform:translate(0)}23%{opacity:0}52%{opacity:.7;transform:translate(-23vw,-31vh)}54%{opacity:0}77%{opacity:.9;transform:translate(14vw,9vh)rotate(40deg)}78.5%{opacity:0}}.film-vignette{background:radial-gradient(ellipse 85% 80% at 50% 45%, transparent 55%, var(--vignette));inset:0}.film-grain{opacity:var(--grain);mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 2.2 -.6'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:.66s steps(8,end) infinite grain;inset:-50%}@keyframes grain{0%{transform:translate(0)}12%{transform:translate(-7%,4%)}25%{transform:translate(5%,-9%)}37%{transform:translate(-11%,-3%)}50%{transform:translate(8%,7%)}62%{transform:translate(-3%,11%)}75%{transform:translate(10%,-5%)}87%{transform:translate(-9%,-10%)}to{transform:translate(0)}}.film .ascii{text-shadow:0 0 .35em var(--halo), 0 0 1.2em var(--halo)}.film .notes{text-shadow:0 0 .6em color-mix(in srgb, var(--halo) 45%, transparent)}@media (prefers-reduced-motion:reduce){.film-leak,.film-grain,.film-flicker,.film-dust{animation:none}}@media (hover:none){.film-leak{filter:none;will-change:auto}}.art-root{color:#1a1a1a;background:#fdfdfc;padding:2.5rem 1.5rem 5rem;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;position:fixed;inset:0;overflow-y:auto}@media (prefers-color-scheme:dark){.art-root{color:#e8e6e2;background:#0a0a0a}}.art-head,.art-medium,.art-back{letter-spacing:.02em;opacity:.6;max-width:1400px;margin:0 auto;font-size:.85rem}.art-medium{margin:3rem auto 0}.art-medium+.art-back{margin-top:.4rem}.art-back{margin-top:3rem}.art-head a,.art-back a{color:inherit;text-decoration:none}.art-head a:hover,.art-back a:hover,.art-head a:focus-visible,.art-back a:focus-visible{text-decoration:underline}.art-empty{text-align:center;opacity:.6;max-width:1400px;margin:4rem auto}.art-grid{column-width:300px;column-gap:1.5rem;max-width:1400px;margin:2rem auto 0}.art-tile{break-inside:avoid;cursor:zoom-in;text-align:left;width:100%;font:inherit;color:inherit;background-color:#eee;background-position:50%;background-size:cover;border:0;margin:0 0 1.5rem;padding:0;display:block;position:relative}.art-tile:focus-visible{outline-offset:3px;outline:2px solid}.art-tile--featured{column-span:all;max-width:640px;margin-block:.5rem 2rem;margin-inline:auto}.art-tile img{opacity:0;width:100%;height:auto;display:block}.art-tile--rotated{overflow:hidden;container-type:size}.art-tile--rotated img{width:100cqh;height:100cqw;translate:-50% -50%;rotate:var(--tile-rotate,0deg);position:absolute;top:50%;left:50%}.art-tile img.is-loaded{opacity:1}@media (prefers-reduced-motion:no-preference){.art-tile img{transition:opacity .4s}}.art-tile-caption{color:#fff;opacity:0;background:linear-gradient(#0000,#0009);padding:1.5rem .85rem .6rem;font-size:.85rem;position:absolute;inset:auto 0 0}@media (prefers-reduced-motion:no-preference){.art-tile-caption{transition:opacity .2s}}.art-tile:hover .art-tile-caption,.art-tile:focus-visible .art-tile-caption{opacity:1}@media (hover:none){.art-tile-caption{display:none}}@media (width<=640px){.art-grid{column-width:100%}.art-tile--featured{max-width:none}}.art-lightbox-backdrop{z-index:100;background:#000000f0;justify-content:center;align-items:center;padding:2rem 1rem;display:flex;position:fixed;inset:0}@media (prefers-reduced-motion:no-preference){.art-lightbox-backdrop{animation:.15s art-fade-in}}@keyframes art-fade-in{0%{opacity:0}}.art-lightbox{flex-direction:column;align-items:center;width:100%;max-width:1400px;max-height:100%;display:flex;position:relative;overflow-y:auto}.art-lightbox-figure{flex-direction:column;align-items:center;max-width:100%;margin:0;display:flex}.art-lightbox-figure img{object-fit:contain;width:auto;max-width:90vw;height:auto;max-height:72vh;display:block}.art-lightbox-info{color:#f0efec;text-align:center;max-width:44rem;padding:1.25rem 1rem 0}.art-lightbox-info h2{margin:0 0 .35rem;font-size:1.15rem;font-weight:600}.art-lightbox-meta{opacity:.7;margin:0 0 .75rem;font-size:.85rem}.art-lightbox-desc{opacity:.9;margin:0;font-size:.9rem;line-height:1.6}.art-lightbox-close,.art-lightbox-nav{color:#f0efec;cursor:pointer;background:0 0;border:0;padding:.5rem;font-size:1.75rem;line-height:1;position:fixed}.art-lightbox-close:hover,.art-lightbox-nav:hover,.art-lightbox-close:focus-visible,.art-lightbox-nav:focus-visible{opacity:.7}.art-lightbox-close{font-size:2rem;top:.75rem;right:1rem}.art-lightbox-nav{top:50%;transform:translateY(-50%)}.art-lightbox-nav--prev{left:.5rem}.art-lightbox-nav--next{right:.5rem}@media (width<=640px){.art-lightbox-nav{display:none}}.br-bg{background:#fdfdfc;transition:background-color .2s;position:fixed;inset:0;overflow:auto}.br-bg.br-dark{background:#161513}.br-page .ascii{color:#1a2a6e;filter:contrast(1.8);text-shadow:0 0 .4px,0 0 .4px,0 0 .4px}.br-page .empty a{color:#1a2a6e}.br-dark .br-page .ascii{color:#e9e5da;filter:none;text-shadow:none}.br-dark .br-page .empty a{color:#e9e5da}.br-theme-btn{z-index:2;color:#1a2a6e;cursor:pointer;opacity:.7;background:0 0;border:1px dotted;padding:.35rem .7rem;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.75rem;position:fixed;top:1rem;right:1rem}.br-theme-btn:hover,.br-theme-btn:focus-visible{opacity:1;outline:none}.br-dark .br-theme-btn{color:#e9e5da}.viz{font-family:var(--font-mono);color:var(--fg);font-size:.875rem}.viz-layout{flex-direction:column;gap:2rem;padding:6vh 1rem 4rem;display:flex}.viz-stage-col{display:flex}.viz-stage{border:0;width:100%;height:min(65vh,44rem);min-height:18rem;position:relative;overflow:hidden}@media (width>=60rem){.viz{height:100vh;overflow:hidden}.viz-layout{grid-template-columns:minmax(0,1fr) 26rem;gap:0;height:100%;padding:0;display:grid}.viz-stage-col,.viz-stage{height:100%}.viz-rail{border-left:1px dotted var(--muted);height:100%;padding:4vh 1.75rem 3rem;overflow-y:auto}}.viz-rail{font-size:.8rem}.viz-rail p{margin:.5rem 0}.viz-head{margin:0 0 1.5rem}.viz-embed{aspect-ratio:16/9;border:1px dotted var(--muted);position:relative}.viz-embed iframe{border:0;width:100%;height:100%;position:absolute;inset:0}.viz-volume{align-items:center;gap:.75rem;margin:.75rem 0 0;display:flex}.viz-volume button{color:var(--muted);flex:none}.viz-volume button[aria-pressed=true]{color:var(--fg)}.viz-volume input[type=range]{appearance:none;background:var(--muted);outline:none;flex:1;height:1px}.viz-volume input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--fg);cursor:pointer;border-radius:0;width:.7rem;height:.7rem}.viz-volume input[type=range]::-moz-range-thumb{background:var(--fg);cursor:pointer;border:0;border-radius:0;width:.7rem;height:.7rem}.viz-volume input[type=range]:focus-visible::-webkit-slider-thumb{outline:1px dashed var(--muted);outline-offset:2px}.viz-link{gap:.35rem;margin:1rem 0 .5rem;display:grid}.viz input{font:inherit;color:var(--fg);border:0;border-bottom:1px dotted var(--fg);background:0 0;border-radius:0;outline:none;width:100%;padding:.25rem 0;font-size:.8rem}.viz input:focus-visible{border-bottom-style:solid}.viz input::placeholder,.viz-note{color:var(--muted)}.viz-canvas{width:100%;height:100%;display:block}.viz-gate{text-align:center;place-content:center;justify-items:center;gap:1rem;padding:1rem;display:grid;position:absolute;inset:0}.viz-gate button,.viz-modes button{font:inherit;color:var(--fg);cursor:pointer;background:0 0;border:0;padding:0}.viz-gate-btn{font-size:1rem!important}.viz-gate button:disabled,.viz-modes button:disabled{cursor:not-allowed;opacity:.4}.viz-message{max-width:44ch;margin:0}.viz-dev{color:var(--muted)!important}.viz button:focus-visible{outline:1px dashed var(--muted);outline-offset:3px}.viz-modes{flex-direction:column;align-items:flex-start;gap:.35rem;display:flex}.viz-modes button{text-align:left;padding:.1rem 0}.viz-modes button.is-active{background:var(--fg);color:var(--bg);margin-inline:-.3rem;padding-inline:.3rem}.viz-mode-desc{color:var(--muted);border-left:1px dotted var(--muted);margin:.6rem 0 0;padding-left:.5rem;font-size:.75rem}.viz-status{color:var(--muted);min-height:1.6em}.viz-host{position:absolute;inset:0}.viz-debug{pointer-events:none;position:absolute;top:.5rem;left:.5rem}.viz-licences{color:var(--muted);margin-top:2rem;font-size:.7rem}.viz-stage:fullscreen{background:var(--bg)}.rh-page{height:100vh;font-family:var(--font-mono);color:var(--fg);flex-direction:column;font-size:.875rem;display:flex;overflow:hidden}.rh-head{flex:none;margin:0;padding:4vh 1.5rem 1rem}.rh-stage{flex:1;min-height:0}.rh-stage rabbit-hole-graph{width:100%;height:100%;display:block}.dr-head{font-family:var(--font-mono);margin:0 0 .5rem;font-size:.875rem}.dr-intro{max-width:var(--measure);color:var(--muted);margin:0 0 2rem}.dr-form{max-width:42rem;margin:0 0 2rem}.dr-form textarea{width:100%;font:inherit;font-family:var(--font-mono);color:var(--fg);border:1px dotted var(--muted);resize:vertical;background:0 0;border-radius:0;outline:none;padding:.75rem;font-size:.875rem}.dr-form textarea:focus-visible{border-style:solid}.dr-form textarea::placeholder{color:var(--muted)}.dr-form textarea:disabled{opacity:.5}.dr-form-row{align-items:center;gap:1rem;margin-top:.75rem;display:flex}.dr-form-row button{font:inherit;font-family:var(--font-mono);color:var(--fg);border:1px dotted var(--muted);cursor:pointer;background:0 0;padding:.45rem .9rem;font-size:.8rem}.dr-form-row button:hover,.dr-form-row button:focus-visible{border-color:var(--fg);outline:none}.dr-form-row button:disabled{cursor:not-allowed;opacity:.4}.dr-clear{border-style:dotted;color:var(--muted)!important}.dr-note{font-family:var(--font-mono);color:var(--muted);margin:.75rem 0 0;font-size:.78rem}.dr-note--error{color:var(--fg)}.dr-piece{max-width:34rem;margin:0 0 2rem}.dr-piece-canvas{aspect-ratio:1;border:1px dotted var(--muted);width:100%;position:relative;overflow:hidden}.dr-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.dr-canvas-overlay{mix-blend-mode:screen;pointer-events:none}.dr-emotions,.dr-symbols{font-family:var(--font-mono);color:var(--muted);margin:.6rem 0 0;font-size:.75rem}.dr-piece-text{color:var(--muted);max-width:var(--measure);margin:.5rem 0 0;font-size:.875rem;font-style:italic}.dr-rating{flex-wrap:wrap;align-items:center;gap:.6rem;margin:.85rem 0 0;display:flex}.dr-rating-label{font-family:var(--font-mono);color:var(--muted);font-size:.7rem}.dr-rating button{font:inherit;font-family:var(--font-mono);color:var(--fg);border:1px dotted var(--muted);cursor:pointer;background:0 0;padding:.3rem .6rem;font-size:.72rem}.dr-rating button:hover,.dr-rating button:focus-visible{border-color:var(--fg);outline:none}.dr-rating button:disabled{cursor:not-allowed;opacity:.35}.dr-rating-debug-btn{margin-left:auto;color:var(--muted)!important}.dr-weights{border:1px dotted var(--muted);font-family:var(--font-mono);color:var(--muted);gap:.25rem;margin:.6rem 0 0;padding:.6rem .75rem;font-size:.7rem;list-style:none;display:grid}.dr-weights li.is-current{color:var(--fg)}.dr-gallery-list{flex-wrap:wrap;gap:.6rem;margin:1rem 0 0;padding:0;list-style:none;display:flex}.dr-thumb{border:1px dotted var(--muted);cursor:pointer;background:0 0;width:4.5rem;height:4.5rem;padding:0;display:block;overflow:hidden}.dr-thumb.is-active{border:1px solid var(--fg)}.dr-thumb:hover,.dr-thumb:focus-visible{border-color:var(--fg);outline:none}.dr-thumb-img{object-fit:cover;width:100%;height:100%;display:block}.dr-thumb-empty{background:var(--muted);opacity:.15;width:100%;height:100%;display:block}.hall-root{color:#cfe0ff;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Cg stroke='%23cfe0ff' stroke-width='2'%3E%3Cline x1='10' y1='2' x2='10' y2='7'/%3E%3Cline x1='10' y1='13' x2='10' y2='18'/%3E%3Cline x1='2' y1='10' x2='7' y2='10'/%3E%3Cline x1='13' y1='10' x2='18' y2='10'/%3E%3C/g%3E%3C/svg%3E") 10 10,crosshair;background:#0a0718;font-family:ui-monospace,Courier New,Courier,monospace;position:fixed;inset:0;overflow:hidden}.hall-gate{background:teal;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hall-dialog{color:#000;background:silver;border:2px solid #000;border-color:#fff #000 #000 #fff;width:300px;font-family:Tahoma,Geneva,MS Sans Serif,sans-serif;box-shadow:1px 1px #000}.hall-dialog-title{color:#fff;background:linear-gradient(90deg,navy,#1084d0);padding:4px 8px;font-size:13px;font-weight:700}.hall-dialog-body{padding:16px 18px 18px;font-size:13px;line-height:1.5}.hall-dialog-sub{color:#333;font-size:12px}.hall-dialog-ok{width:88px;height:26px;font:inherit;cursor:pointer;background:silver;border:2px solid #000;border-color:#fff #000 #000 #fff;margin:16px auto 0;font-size:13px;display:block}.hall-dialog-ok:active{border-color:#000 #fff #fff #000}.hall-viewport{background:#0a0718;position:absolute;inset:0}.hall-viewport canvas{image-rendering:pixelated;image-rendering:-moz-crisp-edges;image-rendering:crisp-edges}.hall-hud{z-index:2;pointer-events:none;flex-wrap:wrap;align-items:center;gap:10px;font-size:11px;display:flex;position:absolute;bottom:12px;left:12px;right:12px}.hall-hud>*{pointer-events:auto}.hall-hud-link,.hall-hud button{font:inherit;color:inherit;cursor:pointer;background:#0a07188c;border:1px solid #cfe0ff66;padding:4px 8px;text-decoration:none}.hall-hud-link:hover,.hall-hud button:hover{border-color:#cfe0ff}.hall-hud-hint{opacity:.65}.hall-hud-secret{color:#cfe0ff;animation:1.6s ease-in-out infinite hall-pulse}@keyframes hall-pulse{0%,to{opacity:.45}50%{opacity:1}}.ink-root{color:#ddd5c8;box-sizing:border-box;background:#0c0a14;min-height:100vh;padding:3.5rem 1.5rem 6rem;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif}.ink-head{color:#6f6a5c;margin:0 0 1.25rem;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.78rem}.ink-head a{color:inherit}.ink-title{letter-spacing:.03em;color:#ddd5c8;margin:0 0 .4rem;font-size:1.35rem;font-weight:400}.ink-desc{color:#837c69;max-width:38rem;margin:0;font-size:.85rem;line-height:1.55}.ink-credits{color:#6f6a5c;margin:.9rem 0 0;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.72rem}.ink-foot{margin-top:3rem}.ink-gallery-head{justify-content:space-between;align-items:baseline;margin:1.25rem 0 0;display:flex}.ink-gallery-label{letter-spacing:.05em;text-transform:uppercase;color:#6f6a5c;margin:0;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.8rem;font-weight:400}.ink-sort{gap:.4rem;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.75rem;display:flex}.ink-sort button{color:#837c69;cursor:pointer;background:0 0;border:1px solid #2a2636;padding:.3rem .7rem}.ink-sort button.is-active{color:#ddd5c8;border-color:#6f6a5c}.ink-grid{--seam:2.5rem;isolation:isolate;padding:var(--seam);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:0;margin:0;list-style:none;display:grid}.ink-tile{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;padding:0;display:block}.ink-tile-art{width:calc(100% + 2 * var(--seam));margin:calc(-1 * var(--seam));aspect-ratio:1;mix-blend-mode:plus-lighter;--feather-x:linear-gradient(to right, transparent, #000 calc(2 * var(--seam)), #000 calc(100% - 2 * var(--seam)), transparent);--feather-y:linear-gradient(to bottom, transparent, #000 calc(2 * var(--seam)), #000 calc(100% - 2 * var(--seam)), transparent);-webkit-mask-image:var(--feather-x), var(--feather-y);-webkit-mask-composite:source-in;-webkit-mask-image:var(--feather-x), var(--feather-y);mask-image:var(--feather-x), var(--feather-y);transition:filter .2s;display:block;overflow:hidden;-webkit-mask-composite:source-in;mask-composite:intersect}.ink-tile:hover .ink-tile-art{filter:brightness(1.15)}.ink-tile:focus-visible{outline-offset:-4px;outline:1px dashed #6f6a5c}.ink-tile-art img,.ink-tile-art canvas{object-fit:cover;width:100%;height:100%;display:block}.ink-tile-empty{width:100%;height:100%;display:block}.ink-swatches{gap:.3rem;margin:.55rem 0 0;padding:0;list-style:none;display:flex}.ink-swatches li{border:1px solid #ffffff1a;border-radius:50%;width:.9rem;height:.9rem}.ink-modal-backdrop{z-index:10;background:#040308db;justify-content:center;align-items:center;padding:2rem 1.25rem;display:flex;position:fixed;inset:0}.ink-modal{background:#0f0d18;border:1px solid #2a2636;grid-template-columns:minmax(0,1fr);gap:0;width:min(68rem,100%);max-height:calc(100vh - 4rem);display:grid;position:relative;overflow:auto}@media (width>=60rem){.ink-modal{grid-template-columns:min(42rem,55%) minmax(0,1fr)}}.ink-modal-close{z-index:1;color:#ddd5c8;cursor:pointer;background:0 0;border:none;padding:.25rem .5rem;font-size:1.6rem;line-height:1;position:fixed;top:.6rem;right:.75rem}.ink-modal-canvas{aspect-ratio:1;background:#050408}.ink-modal-canvas canvas{width:100%;height:100%;display:block}.ink-modal-info{flex-direction:column;min-height:0;padding:1.5rem 1.5rem 2rem;display:flex}.ink-modal-info h2{margin:0 0 .3rem;font-size:1.15rem;font-weight:400}.ink-modal-meta{color:#6f6a5c;margin:0 0 .6rem;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.75rem}.ink-controls{color:#ada695;flex-wrap:wrap;align-items:center;gap:.6rem;margin:.9rem 0 0;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.75rem;display:flex}.ink-controls button,.ink-controls select{color:#ddd5c8;cursor:pointer;font:inherit;background:#17141f;border:1px solid #2a2636;padding:.35rem .6rem}.ink-controls input[type=range]{flex:1;min-width:6rem}.ink-move-label{text-align:right;font-variant-numeric:tabular-nums;min-width:6rem}.ink-controls--toggles label{align-items:center;gap:.3rem;display:inline-flex}.ink-blurb{color:#ada695;margin:1rem 0;font-size:.85rem;line-height:1.6}.ink-move-list{border-top:1px solid #201d2a;flex-wrap:wrap;gap:.25rem;margin:0;padding:.6rem 0 0;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.72rem;list-style:none;display:flex;overflow-y:auto}.ink-move-list button{color:#837c69;cursor:pointer;background:0 0;border:none;padding:.1rem .15rem}.ink-move-list button.is-active{color:#ddd5c8;text-decoration:underline}.ink-back{margin:1.5rem 0 0;font-family:ui-monospace,SF Mono,JetBrains Mono,Menlo,Consolas,monospace;font-size:.85rem}.ink-back a{color:#6f6a5c}.ink-back a:hover,.ink-back a:focus-visible{color:#ddd5c8}.clingy-root{color:#ffe9ee;box-sizing:border-box;background:radial-gradient(at 50% 30%,#2a1620 0%,#180d13 70%);align-items:center;gap:clamp(1.5rem,5vw,4rem);padding:2rem;font-family:-apple-system,BlinkMacSystemFont,ui-rounded,Segoe UI,system-ui,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}.clingy-stage{background:radial-gradient(at 50% 30%,#301a25 0%,#1d0f16 75%);border-radius:6px;flex:none;width:60vw;height:calc(100vh - 4rem);position:relative;overflow:hidden;box-shadow:0 0 0 1px #ff8fa32e,0 20px 60px #00000073}.clingy-stage--playing{cursor:none}.clingy-canvas{touch-action:none;width:100%;height:100%;display:block}.clingy-side{pointer-events:none;-webkit-user-select:none;user-select:none;flex-direction:column;flex:1;align-items:flex-start;gap:.2rem;min-width:10rem;display:flex}.clingy-score{font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:#ff8fa3;font-size:clamp(3rem,9vw,8rem);font-weight:700;line-height:1}.clingy-score-unit{color:#b98c96;letter-spacing:.04em;font-size:.95rem}.clingy-side-best{color:#7d5c64;margin-top:1rem;font-size:.85rem}.clingy-speech{color:#3a1420;white-space:nowrap;pointer-events:none;background:#fff0f3;border-radius:999px;padding:.35rem .65rem;font-size:.85rem;font-weight:600;position:absolute;top:0;left:0;translate:-50% -100%;box-shadow:0 2px 10px #00000059}@media (prefers-reduced-motion:no-preference){.clingy-speech{animation:.18s clingy-pop}}@keyframes clingy-pop{0%{opacity:0;scale:.6}}.clingy-overlay{text-align:center;cursor:auto;flex-direction:column;justify-content:center;align-items:center;gap:.6rem;padding:2rem 1.5rem;display:flex;position:absolute;inset:0}.clingy-title{color:#ff8fa3;margin:0 0 .25rem;font-size:clamp(1.8rem,6vw,3rem)}.clingy-verdict{color:#ff8fa3;text-transform:lowercase;margin:0;font-size:clamp(1.4rem,5vw,2.2rem)}.clingy-score-final{font-variant-numeric:tabular-nums;margin:0;font-size:2rem}.clingy-blurb{color:#ecc7ce;max-width:30rem;margin:0 0 .5rem}.clingy-best-preview,.clingy-best{color:#b98c96;margin:0 0 .5rem;font-size:.9rem}.clingy-hint{color:#7d5c64;margin-top:1.5rem;font-size:.8rem}.clingy-btn{appearance:none;color:#2a0e16;cursor:pointer;background:#ff5c7a;border:none;border-radius:999px;padding:.7rem 2rem;font-size:1.05rem;font-weight:700;text-decoration:none;display:inline-block}.clingy-btn:hover,.clingy-btn:focus-visible{background:#ff7690}@media (prefers-reduced-motion:no-preference){.clingy-btn{transition:background-color .15s}}.clingy-back{opacity:.55;pointer-events:auto;margin:0;font-size:.8rem;position:absolute;bottom:.9rem;left:1rem}.clingy-back a{color:inherit;text-decoration:none}.clingy-back a:hover,.clingy-back a:focus-visible{text-decoration:underline}.kk{--paper:#fbfaf6;--ink:#1d1c1a;--soft:#6e6a62;--faint:#a7a298;--rule:#e2ded4;--accent:#27408b;--accent-wash:#eef1f9;--ok:#2c6e3f;--bad:#a3321f;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Book Antiqua", Georgia, serif;--sans:-apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--gutter:max(1.25rem, calc((100% - 34rem) / 2));box-sizing:border-box;min-height:100svh;padding:1.1rem var(--gutter) 3.5rem;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-tap-highlight-color:transparent;font-variant-numeric:oldstyle-nums;font-size:.95rem;line-height:1.5}@media (prefers-color-scheme:dark){.kk{--paper:#161614;--ink:#ebe7de;--soft:#a29d92;--faint:#6d695f;--rule:#2c2b27;--accent:#9db1ee;--accent-wash:#1e2230;--ok:#7fbf8f;--bad:#e58e7c}}.kk *,.kk :before,.kk :after{box-sizing:border-box}.kk a{color:inherit;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);text-underline-offset:3px}.kk button{font:inherit;color:inherit;-webkit-tap-highlight-color:transparent}.kk button:focus-visible,.kk input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.kk-top{color:var(--soft);justify-content:space-between;gap:1rem;font-size:.78rem;display:flex}.kk-top-stats{white-space:nowrap}.kk-dot{color:var(--faint);margin:0 .45em}.kk-goal{background:var(--rule);height:2px;margin-top:.55rem}.kk-goal>span{background:var(--accent);height:100%;transition:width .4s;display:block}.kk-entry{border-bottom:1px solid var(--rule);padding:3.2rem 0 1.6rem}.kk-headword{font-family:var(--serif);letter-spacing:-.01em;margin:0;font-size:clamp(2.6rem,11vw,3.4rem);font-weight:600;line-height:1}.kk-def{font-family:var(--serif);margin:.7rem 0 0;font-size:1.15rem}.kk-def i{color:var(--soft);margin-right:.25em}.kk-lede{max-width:30rem;color:var(--soft);margin:1rem 0 0}.kk-review{text-align:left;border:0;border-bottom:1px solid var(--rule);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;gap:1rem;width:100%;margin:0;padding:1.1rem 0;display:flex}.kk-review>span:first-child{gap:.1rem;display:grid}.kk-review-title{font-family:var(--serif);color:var(--accent);font-size:1.25rem;font-weight:600}.kk-review-meta{color:var(--soft);font-size:.85rem}.kk-review:disabled{cursor:default}.kk-review:disabled .kk-review-title{color:var(--faint)}.kk-arrow{color:var(--accent);font-size:1.3rem;transition:transform .15s}.kk-review:hover:not(:disabled) .kk-arrow{transform:translate(4px)}.kk-section{margin-top:2.6rem}.kk-h2{letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:0 0 .4rem;font-size:.72rem;font-weight:600}.kk-section-note{color:var(--faint);margin:0 0 .4rem;font-size:.82rem;font-style:italic}.kk-toc{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.kk-toc>li{border-bottom:1px solid var(--rule)}.kk-chapter{grid-template-columns:2.1rem 1fr;grid-template-areas:"num body"".side";gap:.55rem .4rem;padding:1rem 0 1.05rem;display:grid}@media (width>=30rem){.kk-chapter{grid-template-columns:2.4rem 1fr auto;grid-template-areas:"num body side";align-items:center}}.kk-num{font-family:var(--serif);color:var(--faint);grid-area:num;padding-top:.12rem;font-size:1rem}.kk-chapter-body{grid-area:body;gap:.05rem;min-width:0;display:grid}.kk-chapter-title{font-family:var(--serif);text-transform:capitalize;flex-wrap:wrap;align-items:baseline;gap:.5rem;font-size:1.2rem;font-weight:600;display:flex}.kk-chapter-blurb{color:var(--soft);font-size:.84rem}.kk-chapter-side{grid-area:side;align-items:center;gap:.9rem;display:flex}.kk-count{color:var(--faint);text-align:right;min-width:2.3rem;font-size:.8rem}.kk-chapter--final .kk-chapter-title{font-style:italic}.kk-marks{gap:.4rem;display:flex}.kk-mark{border:1px solid var(--rule);width:2.3rem;height:2.3rem;font-family:var(--serif);cursor:pointer;background:0 0;border-radius:3px;place-items:center;font-size:.95rem;transition:border-color .15s,background-color .15s;display:grid}.kk-mark:hover{border-color:var(--ink)}.kk-mark.is-done{background:color-mix(in srgb, var(--ink) 9%, transparent);color:var(--soft);border-color:#0000}.kk-mark.is-next{border-color:var(--accent);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.kk-exercise{text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:1fr auto;align-items:center;gap:1rem;width:100%;padding:.95rem 0;display:grid}.kk-exercise:hover .kk-chapter-title{color:var(--accent)}.kk-exercise .kk-chapter-body{grid-area:auto}.kk-draft{font-family:var(--sans);text-transform:none;color:var(--faint);font-size:.7rem;font-style:italic;font-weight:400}.kk-footer{color:var(--faint);margin-top:3rem;font-size:.8rem}.kk-footer p{max-width:32rem;margin:0 0 .6rem}.kk-link{text-decoration:underline;-webkit-text-decoration-color:var(--faint);text-decoration-color:var(--faint);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0}.kk--lesson{padding-bottom:0}.kk-lesson{flex-direction:column;min-height:calc(100svh - 1.1rem);display:flex}.kk-lesson-top{align-items:center;gap:1rem;padding-top:.3rem;display:flex}.kk-quit{color:var(--soft);cursor:pointer;background:0 0;border:0;padding:.4rem 0;font-size:.82rem}.kk-quit:hover{color:var(--ink)}.kk-meter--lesson{background:var(--rule);flex:1;height:2px;display:block}.kk-meter--lesson>span{background:var(--accent);height:100%;transition:width .3s;display:block}.kk-hearts{letter-spacing:.12em;color:var(--bad);white-space:nowrap;font-size:.85rem}.kk-hearts-gone{color:var(--rule)}.kk-lesson-title{color:var(--faint);text-transform:capitalize;margin:.6rem 0 0;font-size:.75rem}.kk-q{flex:1;padding:2.4rem 0 1.6rem;animation:.25s kk-in}@keyframes kk-in{0%{opacity:0}}.kk-instruction{color:var(--soft);align-items:baseline;gap:.6rem;margin:0 0 .8rem;font-size:.8rem;display:flex}.kk-new{font-family:var(--serif);color:var(--accent);font-size:.85rem;font-style:italic}.kk-prompt{font-family:var(--serif);overflow-wrap:anywhere;margin:0 0 .5rem;font-size:clamp(2rem,9vw,2.6rem);font-weight:600;line-height:1.15}.kk-prompt--long{font-size:1.35rem;font-weight:400;line-height:1.45}.kk-gap{border-bottom:1.5px solid var(--accent);color:#0000;min-width:4.2rem;margin:0 .15rem;display:inline-block}.kk-note{font-family:var(--serif);color:var(--soft);margin:0;font-style:italic}.kk-options{border-top:1px solid var(--rule);margin:1.8rem 0 0;padding:0;list-style:none;display:grid}.kk-opt{text-align:left;border:0;border-bottom:1px solid var(--rule);cursor:pointer;overflow-wrap:anywhere;background:0 0;align-items:baseline;gap:.8rem;width:100%;min-height:3.2rem;padding:.85rem .6rem;transition:background-color .12s,color .12s;display:flex}.kk-opt:hover:not(:disabled){background:color-mix(in srgb, var(--ink) 3%, transparent)}.kk-opt-key{width:1.2rem;font-family:var(--serif);color:var(--faint);flex:none;font-style:italic;display:inline-block}.kk-opt.is-picked{background:var(--accent-wash);box-shadow:inset 2px 0 0 var(--accent)}.kk-opt.is-picked .kk-opt-key{color:var(--accent)}.kk-opt.is-right .kk-opt-key{color:var(--ok)}.kk-opt.is-wrong .kk-opt-key{color:var(--bad)}.kk-opt.is-right{color:var(--ok);box-shadow:inset 2px 0 0 var(--ok);background:color-mix(in srgb, var(--ok) 8%, transparent)}.kk-opt.is-wrong{color:var(--bad);box-shadow:inset 2px 0 0 var(--bad);background:color-mix(in srgb, var(--bad) 7%, transparent);text-decoration:line-through;text-decoration-thickness:1px}.kk-opt:disabled{cursor:default}.kk-match{grid-template-columns:1fr 1fr;column-gap:1.2rem;margin-top:1.4rem;display:grid}.kk-match-col{border-top:1px solid var(--rule);align-content:start;display:grid}.kk-match .kk-opt{justify-content:flex-start}.kk-match-col:first-child .kk-opt{font-family:var(--serif);font-size:1.05rem}.kk-opt.is-matched{color:var(--faint);box-shadow:none;text-decoration:line-through;-webkit-text-decoration-color:var(--rule);text-decoration-color:var(--rule);background:0 0}.kk-match .kk-opt.is-wrong{text-decoration:none;animation:.3s kk-shake}@keyframes kk-shake{25%{transform:translate(-3px)}75%{transform:translate(3px)}}.kk-input{width:100%;font-family:var(--serif);color:var(--ink);border:0;border-bottom:1.5px solid var(--ink);background:0 0;border-radius:0;margin-top:1.8rem;padding:.5rem 0;font-size:1.6rem}.kk-input::placeholder{color:var(--faint);font-style:italic}.kk-input:focus{border-bottom-color:var(--accent);outline:none}.kk .kk-input:focus-visible{outline:none}.kk-foot{margin:0 calc(-1 * var(--gutter));padding:1rem var(--gutter) calc(1.1rem + env(safe-area-inset-bottom));background:var(--paper);border-top:1px solid var(--rule);gap:.8rem;display:grid;position:sticky;bottom:0}.kk-foot.is-ok{border-top:2px solid var(--ok)}.kk-foot.is-bad{border-top:2px solid var(--bad)}.kk-feedback p{margin:0 0 .15rem}.kk-feedback-head{font-family:var(--serif);font-size:1.3rem;font-weight:600}.is-ok .kk-feedback-head{color:var(--ok)}.is-bad .kk-feedback-head{color:var(--bad)}.kk-feedback strong{font-family:var(--serif);font-size:1.05rem;font-weight:600}.kk-explain{font-family:var(--serif);color:var(--soft);font-style:italic}.kk-btn{background:var(--ink);width:100%;min-height:3.1rem;color:var(--paper);letter-spacing:.01em;cursor:pointer;border:0;border-radius:4px;padding:.75rem 1.2rem;font-size:1rem;font-weight:500;transition:opacity .15s,background-color .15s}.kk .kk-btn{color:var(--paper)}.kk-btn:hover:not(:disabled){opacity:.88}.kk .kk-btn:disabled{background:var(--rule);color:var(--faint);cursor:default}.is-ok .kk-btn{background:var(--ok);color:var(--paper)}.is-bad .kk-btn{background:var(--bad);color:var(--paper)}.kk-end{justify-content:center;gap:.3rem}.kk-end-title{font-family:var(--serif);margin:0;font-size:2.6rem;font-weight:600}.kk-end-sub{max-width:26rem;color:var(--soft);margin:0 0 1.8rem}.kk-end .kk-btn{max-width:20rem}@media (prefers-reduced-motion:reduce){.kk-q,.kk-match .kk-opt.is-wrong{animation:none}.kk-goal>span,.kk-meter--lesson>span{transition:none}}
