@font-face{font-family:PaperCharter;src:url(fonts/XCharter-Roman.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:PaperCharter;src:url(fonts/XCharter-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:PaperCharter;src:url(fonts/XCharter-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:PaperCharter;src:url(fonts/XCharter-BoldItalic.woff2) format("woff2");font-weight:700;font-style:italic;font-display:swap}
@font-face{font-family:PaperCochineal;src:url(fonts/Cochineal-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}
:root{color-scheme:light;--ink:#303030;--muted:#686868;--rule:#dedede;--paper:#fff;--link:#f5aa4e;--title:#ffefd6;--body:PaperCharter,Charter,"Bitstream Charter",Georgia,serif;--sans:Arial,Helvetica,sans-serif;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}
*{box-sizing:border-box}html{scroll-padding-top:24px}body{margin:0;background:var(--paper);color:var(--ink);font:18px/1.6 var(--body);-webkit-text-size-adjust:100%;font-kerning:normal}a{color:var(--link);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}a:hover{text-decoration-thickness:2px}img{max-width:100%;height:auto}[hidden]{display:none!important}:focus-visible{outline:2px solid #9b6726;outline-offset:3px}.reading{max-width:740px;margin-left:auto;margin-right:auto}.masthead{max-width:740px;height:52px;margin:auto;display:flex;align-items:center;justify-content:flex-end;font:12px var(--sans)}.skip-link{position:fixed;top:-90px;left:10px;background:white;z-index:20}.skip-link:focus{top:8px}
.paper-title{margin-top:18px;text-align:center;background:var(--title);padding:34px 34px 0;border-radius:10px;overflow:hidden}.paper-title h1{font:700 36px/1.15 PaperCochineal,var(--body);margin:0 0 17px;letter-spacing:0}.authors{font-size:16px;font-weight:700;line-height:1.7}.author-row{display:flex;flex-wrap:wrap;justify-content:center;column-gap:1.1em;row-gap:0;margin:3px 0}.author-row span{white-space:nowrap}.affiliation{margin:8px 0 24px;font-size:16px}.abstract{text-align:left;font-size:17px;line-height:1.55}.abstract p{margin:0}.paper-links{display:flex;justify-content:center;gap:24px;margin:18px 0 4px;font:14px var(--mono)}.hero-island{margin:0 -34px;line-height:0}.hero-island img{display:block;width:100%}.contribution{font-size:12px;margin-top:12px;margin-bottom:30px;color:var(--muted)}
.hero-island{aspect-ratio:2/1;overflow:hidden}.hero-island img{width:114%;max-width:none;margin-left:-9%;transform:translateY(-2%)}
article{display:flow-root;max-width:740px;margin:auto;padding-bottom:64px}article>h1{font:700 25px/1.3 var(--sans);margin:38px 0 17px}article>h1:first-child{margin-top:0}article>h2{font:700 20px/1.35 var(--sans);margin:30px 0 13px}article>h3{font:700 18px/1.4 var(--sans);margin:25px 0 10px}.section-number{margin-right:10px}article p{margin:0 0 19px}article ul,article ol{padding-left:1.5em}article li{margin-bottom:8px}article blockquote{margin:20px 0 20px 30px;padding:0 0 0 18px;border-left:2px solid var(--rule)}article blockquote p:last-child{margin-bottom:0}article>blockquote:first-of-type{margin:0 0 26px 32%;padding:0;border:0;text-align:right;font-size:16px;line-height:1.5}article>blockquote:first-of-type p{margin-bottom:7px}article code{font:83% var(--mono);overflow-wrap:anywhere}pre{font:12px/1.5 var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;max-width:100%;overflow:auto;padding:15px;background:#f7f7f7;border:1px solid var(--rule);border-radius:3px;tab-size:4}pre code{font:inherit}math[display=block]{display:block;max-width:100%;overflow-x:auto;padding:12px 0;margin:20px 0}
.paper-figure{width:calc(100% + 120px);max-width:none;margin:30px 0 30px -60px;break-inside:avoid}.original-figure>p{margin:0}.original-figure img{display:block;width:100%;height:auto}.original-figure>figure{margin:18px 0}.paper-figure figcaption{font-size:15px;line-height:1.5;margin-top:12px}.fig-number{font-weight:700}.original-figure pre{font-size:12px}.table-scroll{max-width:100%;overflow:auto;margin:20px 0;overscroll-behavior-x:contain}table{border-collapse:collapse;min-width:100%;font-size:14px;line-height:1.45}caption{text-align:left;margin-bottom:12px}th{text-align:left;border-top:1.5px solid var(--ink);border-bottom:1px solid var(--ink);font-weight:700}th,td{padding:8px 10px;vertical-align:top}tbody tr:last-child td{border-bottom:1.5px solid var(--ink)}table p{margin:0 0 7px}
.catalogue{width:calc(100% + 220px);margin:30px 0 30px -110px}.catalogue figcaption{font-size:15px;line-height:1.5}.catalogue-controls{display:flex;flex-wrap:wrap;align-items:end;gap:12px;padding:16px 0;font:12px/1.4 var(--sans)}.catalogue-controls label{display:flex;flex-direction:column;gap:6px}.catalogue-controls input,.catalogue-controls select{font:14px var(--sans);padding:9px;color:var(--ink);border:1px solid #ccc;border-radius:3px;background:white;min-height:40px}.catalogue-controls input{width:260px}.catalogue-controls output{padding-bottom:11px;color:var(--muted)}.catalogue .table-scroll{max-height:80vh;border-bottom:1px solid var(--rule)}.catalogue table{min-width:1000px;table-layout:fixed;font-size:13px}.catalogue th{position:sticky;top:0;background:white;z-index:1}.catalogue th:nth-child(1){width:75px}.catalogue th:nth-child(2){width:85px}.catalogue th:nth-child(3){width:80px}.catalogue th:nth-child(4){width:60px}.catalogue th:nth-child(5){width:230px}.catalogue th:nth-child(6){width:470px}.catalogue td{border-bottom:1px solid var(--rule)}.catalogue tr.agent-start td{border-top:1.5px solid var(--ink)}.catalogue td:nth-child(6){line-height:1.6}.csl-entry{margin-bottom:15px;font-size:15px;line-height:1.5;overflow-wrap:anywhere}.footnotes{font-size:14px;line-height:1.5;border-top:1px solid var(--rule);margin-top:35px}.footnotes hr{display:none}.footnotes a{overflow-wrap:anywhere}.csl-left-margin{float:left;margin-right:7px}.csl-right-inline{margin-left:24px}
.math-scroll{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;margin:20px 0}.math-scroll math{max-width:none;width:max-content;min-width:100%;overflow:visible;margin:0}.numbered-equation{display:flex;align-items:center;gap:12px;margin:20px 0;max-width:100%}.numbered-equation .math-scroll{flex:1;min-width:0;margin:0}.equation-number{flex:none}
.mobile-artwork,.figure-scroll-hint{display:none}.figure-pan{display:block}.source-excerpt{margin:16px 0;border:1px solid var(--rule);border-radius:4px;background:#fafafa}.source-excerpt summary{padding:13px 16px;cursor:pointer;font:14px/1.5 var(--sans);color:var(--ink)}.source-excerpt summary:hover{background:#f3f3f3}.source-excerpt pre{margin:0;border:0;border-top:1px solid var(--rule);border-radius:0;background:transparent}.source-excerpt[open]>summary{border-radius:4px 4px 0 0}
.paper-contents{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:24px;margin-bottom:30px;font:15px/1.5 var(--sans)}.paper-contents summary{cursor:pointer;padding:16px 0;min-height:48px}.paper-contents nav{padding-bottom:16px}.paper-contents ol{list-style:none;padding:0;margin:0}.paper-contents li{margin:0}.paper-contents a{display:block;padding:8px 0;color:#3d658b;text-decoration:none}.paper-contents a:hover{text-decoration:underline}.paper-contents .toc-level-2{padding-left:20px}.paper-contents .toc-level-3{padding-left:36px}.catalogue-pagination{display:flex;gap:18px;align-items:center;justify-content:center;font:14px/1.5 var(--sans);margin:18px 0 28px}.catalogue-pagination button{font:inherit;padding:10px 16px;min-height:44px;border:1px solid #ccd6df;border-radius:4px;background:#edf4fa;color:#274c70;cursor:pointer}.catalogue-pagination button:disabled{opacity:.45;cursor:default}
@media(max-width:1020px){.catalogue{width:100%;margin-left:0}}
@media(max-width:900px){article,.reading,.masthead{max-width:none;margin-left:24px;margin-right:24px}.paper-figure{width:100%;margin-left:0}.paper-title{max-width:740px;margin-left:auto;margin-right:auto}.contribution{max-width:740px;margin-left:auto;margin-right:auto}}
@media(max-width:788px){.paper-title,.contribution{margin-left:24px;margin-right:24px}.paper-title{padding:28px 22px 0}.hero-island{margin:0 -22px}}
@media screen and (max-width:700px){
  body{font-size:18px;line-height:1.65}
  .masthead{height:40px;margin:0 20px}
  article,.reading{margin-left:20px;margin-right:20px}
  .paper-title{margin:0;padding:28px 20px 0;border-radius:0}
  .paper-title h1{font-size:32px;line-height:1.15}
  .authors{font-size:15px;line-height:1.7}.author-row{column-gap:1.2em;row-gap:4px}
  .abstract{font-size:18px;line-height:1.65}.hero-island{margin:0 -20px}
  .affiliation{margin-bottom:26px}.paper-links{margin:22px 0 8px;gap:36px}.paper-links a{padding:6px 0}
  .contribution{font-size:12.5px;line-height:1.5;margin-top:14px;margin-bottom:32px}
  article>h1{font-size:24px;line-height:1.35;margin-top:38px}
  article>h2{font-size:20px;line-height:1.4}article>h3{font-size:18px}
  article p{overflow-wrap:break-word}article blockquote{margin-left:0;padding-left:16px}
  article>blockquote:first-of-type{margin:0 0 28px;text-align:left;font-size:17px;line-height:1.6}
  .paper-figure{margin:30px 0;width:100%}.paper-figure figcaption,.catalogue figcaption{font-size:16px;line-height:1.6}
  .desktop-artwork{display:none}.mobile-artwork{display:block}
  .mobile-artwork{font:15px/1.6 var(--sans)}
  .paper-figure.mobile-reflow{
    background:#fff;
    border:2px solid #e4c18e;border-radius:8px;padding:17px 9px;margin-left:-10px;width:calc(100% + 20px)
  }
  .paper-figure.mobile-reflow::before{content:attr(data-figure-label);display:block;font:700 12px/1.4 var(--sans);color:#896648;letter-spacing:.02em;margin-bottom:20px}
  .paper-figure.mobile-reflow>figcaption{border-top:1px solid #eedcc4;padding-top:16px;margin-top:20px}
  .mobile-artwork h3{font:700 15px/1.4 var(--sans);margin:0 0 14px}
  .mobile-artwork .panel-letter{font:700 16px/1.2 var(--sans);margin:28px 0 14px;color:#4f4942}.mobile-artwork>.panel-letter:first-child{margin-top:0}
  .mobile-artwork h4{font:700 14px/1.4 var(--sans);margin:0 0 12px}
  .mobile-artwork p{margin:12px 0}.mobile-artwork img{display:block;width:100%;height:auto}
  .figure-story{padding:24px 0;border-top:1px solid var(--rule)}
  .figure-story:first-child{padding-top:16px}
  .story-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:center}
  .story-photos img{border-radius:10px}
  .story-photos img:only-child{grid-column:1/-1;width:auto;max-width:100%;max-height:320px;justify-self:center;object-fit:contain}
  .figure-panel{margin:26px auto;max-width:360px}
  .figure-photo{margin:20px 0 28px}.figure-photo img{max-height:390px;object-fit:contain}.figure-photo h4{line-height:1.5}
  .pattern-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.pattern-gallery .figure-photo{margin:0}.pattern-gallery h4{font-size:13px;margin-bottom:8px}
  .memory-panels{margin:24px 0}.memory-panels>img{margin:18px 0}.figure-legend{width:100px;margin:16px auto 28px}
  .figure-excerpts{margin:28px 0;padding:20px 0;border-top:1px solid var(--rule)}
  .figure-excerpts h4{margin-top:24px}.figure-excerpts p{overflow-wrap:anywhere}
  .figure-experiment{margin:20px 0 32px}.figure-experiment>img:last-child{max-width:380px;margin:24px auto}
  .figure-phase{position:relative;border:1px solid #d6d7dc;border-radius:6px;background:#f8f8fa;margin:0 0 32px;padding:18px}
  .figure-phase:not(:last-child)::after{content:'↓';position:absolute;bottom:-29px;left:calc(50% - 8px);font:22px/1 var(--sans);color:#7c7b84}
  .figure-phase h4{color:#454250}.figure-phase p:first-of-type{font-style:italic}
  .figure-phase p:last-child{font:13px/1.5 var(--sans);color:var(--muted);margin-bottom:0}
  .figure-comparison{padding:20px 0;border-top:1px solid var(--rule)}
  .figure-score{font:13px/1.5 var(--sans);color:var(--muted)}
  .figure-code{white-space:pre-wrap;overflow-wrap:anywhere;font:13px/1.6 var(--mono);padding:16px;background:#f7f7f7;border:1px solid var(--rule);border-radius:4px;margin:12px 0 24px}
  .figure-pan{width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;border:1px solid #eee;border-radius:3px}
  .figure-pan img{max-width:none;width:var(--figure-reading-width);height:auto}
  .figure-scroll-hint{display:block;font:12px/1.5 var(--sans);color:var(--muted);text-align:right;margin:0 0 8px}
  .source-excerpt summary{font-size:15px;min-height:48px}.source-excerpt pre,.original-figure pre{font-size:13px;line-height:1.65;padding:16px}
  .csl-entry{font-size:16px;line-height:1.55}.footnotes{font-size:15px;line-height:1.6}
  .table-scroll,.catalogue .table-scroll{overflow:visible;max-height:none;border:0}
  table,.catalogue table{display:block;min-width:0;width:100%;table-layout:auto;font-size:16px;line-height:1.6}
  table caption{display:block;font-size:16px;line-height:1.6;margin-bottom:20px}
  table thead{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  table tbody{display:block}table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:20px;row-gap:16px;padding:22px 0;border-top:1px solid var(--rule)}
  table tbody td{display:block;padding:0!important;border:0!important;min-width:0;overflow-wrap:anywhere;text-align:left!important}
  table tbody td::before{content:attr(data-label);display:block;font:12px/1.5 var(--sans);color:var(--muted);margin-bottom:5px}
  table tbody td:nth-child(n+3){grid-column:1/-1}
  .catalogue table tbody td:nth-child(3),.catalogue table tbody td:nth-child(4){grid-column:auto}
  .catalogue table tbody td:nth-child(6){font-size:18px;line-height:1.65}
  table tbody td p{margin:0 0 8px}table tbody td p:last-child{margin-bottom:0}
  table .empty-cell,table .table-subheading{display:none}
  .catalogue-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;font-size:13px;align-items:start}
  .catalogue-controls label{min-width:0}.catalogue-controls label:first-child{grid-column:1/-1}
  .catalogue-controls input,.catalogue-controls select{width:100%;min-width:0;font-size:16px;min-height:46px}
  .catalogue-controls output{grid-column:1/-1;padding:0;font-size:13px}
  .catalogue tr.agent-start{border-top:2px solid var(--ink)}
}
@media print{.masthead,.catalogue-controls,.skip-link{display:none!important}body{font-size:10pt}article,.reading{max-width:none;margin:0}.paper-title{padding-top:20px}.paper-title h1{font-size:24pt}.hero-island{max-height:220px;overflow:hidden}.paper-figure,.catalogue{width:100%;margin:20px 0}.table-scroll,.catalogue .table-scroll{max-height:none;overflow:visible}.catalogue table{min-width:0;font-size:7pt}.catalogue th{position:static}.catalogue th:nth-child(n){width:auto}}
