@font-face{font-family:"Space Mono";src:url('/fonts/space-mono-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Space Mono";src:url('/fonts/space-mono-latin-700-normal.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Courier Prime";src:url('/fonts/courier-prime-latin-400-normal.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Courier Prime";src:url('/fonts/courier-prime-latin-700-normal.woff2') format('woff2');font-style:normal;font-weight:700;font-display:swap}
@font-face{font-family:"Courier Prime";src:url('/fonts/courier-prime-latin-400-italic.woff2') format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"Courier Prime";src:url('/fonts/courier-prime-latin-700-italic.woff2') format('woff2');font-style:italic;font-weight:700;font-display:swap}
:root{--ink:#191919;--muted:#707070;--accent:#b32424;--paper:white;font-family:"Space Mono","Courier Prime",monospace;color:var(--ink);font-size:14px}
*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;background:var(--paper);line-height:1.55}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible,summary:focus-visible,button:focus-visible,input:focus-visible{outline:2px dotted var(--accent);outline-offset:3px}img{max-width:100%;height:auto;border-radius:0!important}p{line-height:1.65}h1,h2,h3{line-height:1.3}button,input{font:inherit}
.site-header{display:flex;align-items:center;padding:20px 3.5% 12px}.brand{font-weight:bold;font-size:18px}.brand span{font-weight:normal}
main{padding:10px 3.5% 90px;min-height:100vh}.menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0}.menu-column{min-width:0;padding:0 13px 0 0;margin-right:13px;border-right:1px dotted #999}.menu-column:last-child{border:0;margin:0}.menu-column h2{font-size:clamp(17px,1.9vw,28px);font-weight:400;padding:0 0 9px;margin:0 0 10px;border-bottom:1px dotted #555;white-space:nowrap}.tree-list{list-style:none;margin:0;padding:0 0 0 8px}.tree-root{padding:0}.tree-list li{position:relative;min-width:0}.tree-line{display:flex;align-items:baseline;border-bottom:1px dotted #ccc;padding:4px 0;font-size:12px;overflow-wrap:anywhere}.tree-branch{white-space:pre;flex:none;color:#888}.tree-line a{display:inline-block}.tree-line a span{color:var(--accent)}
.post-window{position:fixed;z-index:5;inset:44px max(4vw,36px) 46px;background:white;border:2px dashed #353535;overflow-y:auto;overscroll-behavior:contain;padding:42px clamp(24px,5vw,80px) 55px;box-shadow:0 6px 40px #0002}.window-close{position:sticky;top:0;float:right;z-index:6;display:block;background:white;padding:4px 8px;border:1px dashed var(--muted);font-weight:bold}.post{max-width:850px;margin:auto}.post h1{font-weight:400;font-size:clamp(23px,3vw,38px);margin:0 0 30px;padding:0 60px 10px 0;border-bottom:1px dotted #888}.post-body{line-height:1.7;overflow-wrap:anywhere}.post-body p{margin:0 0 20px}.post-body img{display:block;margin:12px auto;max-height:75vh;width:auto}.post-body a:not([data-pswp-width]){text-decoration:underline;text-decoration-style:dotted}.post-body .gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:28px 0}.gallery figure{margin:0}.gallery img{width:100%;height:auto;max-height:none;object-fit:cover}.gallery figcaption{font-size:11px}.post-body iframe,.lite-embed,.drive-preview{display:block;width:100%;aspect-ratio:16/9;border:0;margin:24px 0;background:#111}.drive-preview iframe{width:100%;height:100%;border:0}.lite-embed button{width:100%;height:100%;cursor:pointer;background:#151515;color:white;border:1px dotted #aaa}.post-tags{font-size:11px;color:var(--muted);margin:40px 0}.post-press{border-top:1px dotted #999;margin-top:48px;padding-top:12px}.post-press h2{font-size:18px;font-weight:400}.post-press ul{list-style:none;padding:0}.post-press li{padding:7px 0;border-bottom:1px dotted #ddd}.post-press a span{color:var(--accent)}
.site-footer{position:fixed;z-index:6;bottom:0;left:0;right:0;display:flex;align-items:center;gap:9px;min-height:36px;background:transparent;border-top:1px dashed #000;text-align:left;font-size:11px;padding:3px 9px;white-space:nowrap}.site-footer .docs-kit{flex:none;border:1px solid #333;background:transparent;padding:5px 9px;font-size:11px}.footer-logo{flex:none;display:grid;place-items:center;width:26px;height:26px}.footer-logo img{width:24px;height:24px;display:block}.footer-copy{display:flex;align-items:center;gap:12px;min-width:0}.footer-copy span{margin:0}.post a:not([data-pswp-width]){text-decoration:underline;text-decoration-style:dotted}
@media(max-width:850px){.menu-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:28px}.menu-column:nth-child(2){border:0}.menu-column h2{font-size:21px}}
@media(max-width:600px){.site-header{padding:12px 15px}.brand{font-size:13px}.brand span{display:block}.menu-grid{display:block}.menu-column,.menu-column:nth-child(2){border:0;border-bottom:1px dotted #777;margin:0 0 24px;padding:0 0 15px}.menu-column h2{font-size:23px}.tree-line{font-size:13px}.post-window{inset:0;z-index:10;border:0;width:100vw;height:100dvh;padding:55px 17px 55px}.window-close{top:-40px}.post h1{font-size:23px}.post-body .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer{z-index:11;font-size:9px;gap:7px;padding:3px 7px}.site-footer .docs-kit{font-size:10px;padding:5px 7px}.footer-copy{display:block;white-space:normal;line-height:1.25}.footer-copy span{display:block;margin:0}.footer-logo{width:24px;height:24px}.footer-logo img{width:22px;height:22px}}
@media(min-width:601px){.site-header{display:none}main{padding:7px 0 90px}.post-window{inset:37px 0 37px;box-shadow:none;padding:65px clamp(24px,18.75vw,240px) 55px}}
.tree-list .tree-list{padding-left:0}

.news-group>summary{cursor:pointer;list-style:none}.news-group>summary::-webkit-details-marker{display:none}.news-group>summary h2{display:block}.news-group>summary h2::after{content:' +';color:var(--muted);font-size:.55em}.news-group[open]>summary h2::after{content:' -'}.news-all{display:block;font-size:12px;border-bottom:1px dotted #aaa;padding:5px 0}
.tag-overlay{position:absolute;top:13%;left:0;right:0;z-index:5;pointer-events:none;padding:0 0 85px}.tag-overlay article{margin:0 0 55px}.tag-overlay article h2{font-size:clamp(52px,6.2vw,105px);font-weight:400;line-height:1.7;margin:0;overflow-wrap:anywhere}.tag-overlay article a{pointer-events:auto;color:#000}.tag-overlay p{font-size:24px;padding:20px;pointer-events:auto}
::selection{color:#000;background:#000}::-moz-selection{color:#000;background:#000}
@media(max-width:600px){.tag-overlay{top:150px;padding:0 12px 90px}.tag-overlay article{margin-bottom:30px}.tag-overlay article h2{font-size:clamp(38px,11vw,55px);line-height:1.45}}
.menu-grid{position:relative;z-index:3}
.menu-grid summary.tree-line{cursor:pointer;list-style:none}.menu-grid summary.tree-line::-webkit-details-marker{display:none}.menu-grid summary.tree-line::after{content:' /';color:var(--muted)}.menu-grid details[open]>summary.tree-line::after{content:' \\';color:var(--accent)}
.menu-grid :is(.menu-column h2,.tree-line):is(:has(>a:is(:hover,:focus-visible))),.menu-grid summary.tree-line:is(:hover,:focus-visible),.menu-grid .news-group>summary:is(:hover,:focus-visible),.menu-grid .news-all:is(:hover,:focus-visible){background:#000;color:#000}
.menu-grid :is(.menu-column h2,.tree-line):is(:has(>a:is(:hover,:focus-visible))) :is(a,.tree-branch,span),.menu-grid summary.tree-line:is(:hover,:focus-visible) :is(a,.tree-branch,span),.menu-grid .news-group>summary:is(:hover,:focus-visible) h2,.menu-grid .news-all:is(:hover,:focus-visible){color:#000;text-decoration:none}
.menu-grid .tree-line:is(:hover,:focus-visible,:has(>a:is(:hover,:focus-visible)))::after,.menu-grid .news-group>summary:is(:hover,:focus-visible) h2::after{color:#000}
.menu-grid a:is(:hover,:focus-visible){color:#000;text-decoration:none}.menu-grid a:focus-visible{outline:none}.menu-grid :is(.menu-column h2,.tree-line):has(>a:focus-visible),.menu-grid summary.tree-line:focus-visible,.menu-grid .news-group>summary:focus-visible,.menu-grid .news-all:focus-visible{outline:2px dotted var(--accent);outline-offset:2px}
.tag-overlay article a:is(:hover,:focus-visible){background:#000;color:#000;text-decoration:none}.tag-overlay article a:focus-visible{outline:2px dotted var(--accent);outline-offset:2px}
.menu-grid details[open]>summary.tree-line:is(:hover,:focus-visible,:has(>a:is(:hover,:focus-visible)))::after{color:#000}
.menu-grid a:is(:hover,:focus-visible){background:#000;color:#000;text-decoration:none}
.menu-grid{pointer-events:none}.menu-grid :is(.menu-column h2,.tree-line,.news-group>summary,.news-all){pointer-events:auto}
.work-manifest{margin:0 0 25px;padding:10px 0;border-top:1px dotted #777;border-bottom:1px dotted #777;font-family:"Courier Prime","Space Mono",monospace;white-space:pre-wrap}
.manifest-line{line-height:1.7}
.post-body .featured-image{margin:0 0 24px}.post-body .featured-image picture{display:block}.post-body .featured-image img{width:100%;height:auto;max-height:none;margin:0;border-radius:0}
.lite-embed{position:relative;overflow:hidden}.lite-embed>img{position:absolute;inset:0;width:100%;height:100%;max-height:none;margin:0;object-fit:cover}.lite-embed button{position:relative;display:flex;align-items:center;justify-content:center;gap:1em;background:#0008;border:0;font-family:"Space Mono",monospace;font-size:clamp(14px,2vw,22px);text-shadow:0 1px 3px #000}.lite-embed button:focus-visible{outline:2px dotted white;outline-offset:-6px}
.not-found-logo{display:block;width:90px;height:90px;margin:0 0 24px}
@media (prefers-reduced-motion:no-preference){html:is(.keyhole-intro,.intro-capture) body{--reveal-size:220px;--reveal-x:calc(25vw - 110px);--reveal-y:calc(15vh - 110px);mask-image:url('/keyhole.svg');mask-repeat:no-repeat;animation:keyhole-reveal .8s ease-in-out both}@keyframes keyhole-reveal{from{mask-size:var(--reveal-size) var(--reveal-size);mask-position:var(--reveal-x) var(--reveal-y)}to{mask-size:190vmax 190vmax;mask-position:calc(50vw - 95vmax) calc(50vh - 95vmax)}}}
@media (max-width:600px) and (prefers-reduced-motion:no-preference){html:is(.keyhole-intro,.intro-capture) body{--reveal-size:220px;--reveal-x:calc(23vw - 110px);--reveal-y:calc(21vh - 110px)}}
:root{font-size:13pt}body{line-height:1.65}
@media(max-width:1680px){:root{font-size:11pt}}
@media(max-width:1280px){:root{font-size:10pt}}
@media(max-width:360px){:root{font-size:9pt}}
.menu-grid{gap:16px}.menu-column{padding:0;margin:0;border-right:0}.menu-column h2{font-size:33px;font-weight:400;line-height:1.65;letter-spacing:normal;padding:0;margin:0 15px 0;white-space:normal}
.tree-line{font-size:13px;font-weight:400;line-height:1.65;letter-spacing:normal;padding:0}.tree-branch{font-size:13px}.tree-list .tree-list{padding-left:12px;border-left:1px dotted #aaa}
.menu-column[data-column="works"] .year-heading{position:sticky;top:0;z-index:4;background:transparent;font-size:20px;font-weight:400;line-height:1.65}.menu-column[data-column="works"] .year-heading.is-stuck{font-size:48px;font-weight:400}.menu-column[data-column="works"] .year-heading .tree-branch{font-size:13px}
.menu-grid .menu-column[data-column="works"] .year-heading:is(:hover,:focus-visible,:has(>a:is(:hover,:focus-visible))){background:#000;color:#000}.menu-grid .menu-column[data-column="works"] .year-heading:is(:hover,:focus-visible,:has(>a:is(:hover,:focus-visible))) :is(a,.tree-branch){color:#000}
.post,.post-window{font-family:"Courier Prime","Space Mono",monospace}.tag-overlay,.menu-grid,.site-footer{font-family:"Space Mono","Courier Prime",monospace}.post h1{font-size:2.1em;font-weight:400;line-height:1.25;letter-spacing:normal}.post-body,.work-manifest{font-size:inherit;font-weight:400;line-height:1.65;letter-spacing:normal}.manifest-line{line-height:1.65}
.menu-column h2{border-bottom:2px solid #000}
.site-footer{font-size:11px;line-height:1.65;letter-spacing:normal}.footer-name,.site-footer .docs-kit{font-weight:700}.footer-license{font-weight:400}.site-footer .docs-kit{font-size:11px;line-height:1.65}
@media(max-width:600px){.menu-grid{display:block}.menu-column,.menu-column:nth-child(2){border:0;border-bottom:1px dotted #777;margin:0 0 24px;padding:0 0 15px}.menu-column[data-column="works"] h2{font-size:22px}.post h1{font-size:1.6em}.site-footer{font-size:11px}.site-footer .docs-kit{font-size:11px}.footer-copy{line-height:1.65}}

/* Large keyhole figure at the end of the home menu, full width as on the live site (artist, 2026-10-02). */
.home-keyhole{display:block;width:100%;margin:48px 0 -90px}.home-keyhole img{display:block;width:100%;height:auto;max-height:none}

/* Group pages: the giant titles sit above the menu (and the stuck year, z-index 4) so a click on a title, shown black on hover, opens that title and never the menu row underneath; gaps between titles still reach the menu (artist, 2026-10-02). */

/* Artist, 2026-10-02: giant group titles in Courier Prime (regular weight, artist 2026-10-02); the active menu row is no longer a black bar (it hid the titles); hover and focus still black out. */
.tag-overlay article h2,.tag-overlay article h2 a{font-family:"Courier Prime","Space Mono",monospace;font-weight:400}
