Last modified by Veronika Kocher on Friday, 04 Sep 2026 14:45

Show last authors
1 {{html clean="false"}}
2 <style>
3 .ido{max-width:1400px;margin:0 auto;color:#322f2b}.ido *{box-sizing:border-box}
4 .ido-card{border:1px solid #e3ded6;border-radius:11px;background:#fcfbf8;box-shadow:0 1px 3px rgba(0,0,0,.035)}
5 .ido-eye{font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase}
6 .ido-hero{height:125px;overflow:hidden;background:#f1eee9}.ido-hero img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block}
7 .ido-sec{margin:0 0 30px}.ido-sec h3{font-size:22px;margin:0 0 7px;color:#35312d}.ido-sec>p{color:#6a655e;line-height:1.58;max-width:1180px}
8 .ido-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(270px,1fr));gap:14px}
9 .ido-type{padding:15px 16px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8}.ido-type h4{font-size:17px;margin:0 0 6px;color:#35312d}.ido-type p{margin:0;color:#625d56;line-height:1.5}.ido-type ul{margin:8px 0 0 19px;padding:0;color:#625d56;line-height:1.5}
10 .ido-check{position:relative;padding:12px 13px 12px 37px;border:1px solid #e3ded6;border-radius:8px;background:#fffdf9;color:#504a44;line-height:1.5}.ido-check:before{content:"✓";position:absolute;left:13px;top:10px;color:#e94b13;font-weight:800}
11 .ido-info{padding:15px 17px;border:1px solid #c7e5ed;border-left:5px solid #21b6d7;background:#eaf6f9;border-radius:8px;color:#365e68;line-height:1.55}.ido-info strong{color:#2d5661}
12 .ido-warn{padding:15px 17px;border:1px solid #efd9cc;border-left:5px solid #e94b13;background:#fff6f1;border-radius:8px;color:#67564e;line-height:1.55}.ido-warn strong{color:#744531}
13 .ido-rights{padding:15px 17px;border:1px solid #efdca7;border-left:5px solid #f0aa00;background:#fff9e9;border-radius:8px;color:#665a38;line-height:1.55}.ido-rights strong{color:#6d571c}
14 .ido-store{padding:15px 17px;border:1px solid #cfe8d8;border-left:5px solid #38b76a;background:#eff9f2;border-radius:8px;color:#45614e;line-height:1.55}.ido-store strong{color:#35543f}
15 .ido-tablewrap{overflow-x:auto;border-radius:9px}.ido-tbl{width:100%;border-collapse:collapse;background:#fffdf9;min-width:820px}.ido-tbl th,.ido-tbl td{border:1px solid #e3ded6;padding:10px 11px;vertical-align:top;text-align:left;line-height:1.45}.ido-tbl th{background:#f3efe8;color:#403b36}.ido-tbl td{color:#56504a}
16 .ido-step{padding:15px 16px;border:1px solid #e3ded6;border-top:4px solid #e94b13;border-radius:9px;background:#fcfbf8}.ido-step .n{font-size:12px;font-weight:800;color:#8a4d36;letter-spacing:.06em}.ido-step h4{font-size:17px;margin:3px 0 6px;color:#35312d}.ido-step p{margin:0;color:#625d56;line-height:1.5}
17 .ido-example{padding:15px 16px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8}.ido-example h4{font-size:17px;margin:0 0 6px;color:#35312d}.ido-example p{margin:0;color:#625d56;line-height:1.5}
18 .ido-linkgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:8px}.ido-navlink{display:block;padding:10px 11px;border:1px solid #e9e4dc;border-left:3px solid #e94b13;border-radius:6px;background:#fffdf9;color:#252321;text-decoration:none;font-weight:600;line-height:1.35}.ido-navlink:hover,.ido-navlink:focus{background:#fff7f1;text-decoration:none}
19 .ido-service{display:block;padding:14px 15px;border:1px solid #e3ded6;border-radius:9px;background:#fcfbf8;color:#322f2b;text-decoration:none}.ido-service:hover,.ido-service:focus{background:#fffdf9;text-decoration:none}.ido-service strong{display:block;margin-bottom:4px}.ido-service span{display:block;color:#625d56;line-height:1.45;font-weight:400}
20 .ido-chip{display:inline-block;padding:4px 8px;margin:3px 4px 3px 0;border-radius:14px;background:#f3efe8;border:1px solid #e3ded6;color:#5c5650;font-size:12px;text-decoration:none}
21 @media(max-width:680px){.ido-hero{height:105px}.ido-sec h3{font-size:20px}}
22 </style>
23
24 <div class="ido">
25
26 <section class="ido-card" style="margin-bottom:18px;overflow:hidden;border-left:6px solid #e94b13;">
27 <div class="ido-hero"><img src="https://xwiki.uni-ak.ac.at/bin/download/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/WebHome/enable.png" alt="Research materials, documentation and project outputs"></div>
28 <div style="padding:18px 21px 20px">
29 <div class="ido-eye" style="color:#8a4d36;margin-bottom:5px">PREPARE · IDENTIFY DATA &amp; RESEARCH OUTPUTS</div>
30 <h2 style="font-size:27px;line-height:1.2;margin:0 0 8px;color:#2c2926">Know what your project creates, collects, reuses and needs to keep</h2>
31 <p style="margin:0;color:#5e5953;line-height:1.6;max-width:1160px">Before you can plan storage, rights, data protection, documentation, publication or preservation, you need a realistic inventory of the materials and outputs your project will work with. In artistic research this often includes much more than conventional “research data”: source material, physical objects, sketches, recordings, software, process documentation, performances, installations and the records that make them understandable later.</p>
32 </div>
33 </section>
34
35 <div class="ido-info" style="margin-bottom:16px"><strong>Start with types, not individual files.</strong> You do not need to list every photograph or document now. Identify the categories your project will create, collect or reuse, then record how each category needs to be handled.</div>
36
37 <div class="ido-rights" style="margin-bottom:28px"><strong>Do not force everything into the label “data”.</strong> Different disciplines and funders use the term differently. For planning purposes, inventory <strong>data, materials, documentation and research/artistic outputs</strong> together, then distinguish what each item actually is and what rules apply to it.</div>
38
39 <section class="ido-sec">
40 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">STEP 1 · MAP THE MATERIAL LANDSCAPE</div>
41 <h3>Identify five kinds of project material</h3>
42 <p>A single item can belong to more than one category. The purpose is not perfect classification; it is to make sure nothing important disappears from your planning.</p>
43 <div class="ido-grid">
44
45 <div class="ido-type" style="border-top:4px solid #21b6d7">
46 <h4>1 · Inputs &amp; reused source material</h4>
47 <p>Material that already exists before your project uses it.</p>
48 <ul>
49 <li>texts, images, films, music, archives and collections</li>
50 <li>existing datasets, databases and corpora</li>
51 <li>third-party code, software, models or templates</li>
52 <li>found material, objects, samples or reference works</li>
53 </ul>
54 </div>
55
56 <div class="ido-type" style="border-top:4px solid #21b6d7">
57 <h4>2 · Data or evidence created / collected</h4>
58 <p>Recorded material produced through your research or artistic process.</p>
59 <ul>
60 <li>interviews, surveys, observations and field notes</li>
61 <li>audio, video, photographs and scans</li>
62 <li>measurements, sensor logs and experimental records</li>
63 <li>annotations, transcripts, structured datasets or databases</li>
64 </ul>
65 </div>
66
67 <div class="ido-type" style="border-top:4px solid #e94b13">
68 <h4>3 · Process &amp; project documentation</h4>
69 <p>Records that explain how the work developed and how decisions were made.</p>
70 <ul>
71 <li>sketches, notebooks, rehearsal records and drafts</li>
72 <li>production files, technical plans and installation instructions</li>
73 <li>decision logs, version histories and provenance records</li>
74 <li>documentation of methods, workflows and transformations</li>
75 </ul>
76 </div>
77
78 <div class="ido-type" style="border-top:4px solid #f0aa00">
79 <h4>4 · Research &amp; artistic outputs</h4>
80 <p>What the project intends to deliver, publish, present or make available.</p>
81 <ul>
82 <li>artworks, performances, exhibitions and installations</li>
83 <li>publications, articles, books, catalogues and theses</li>
84 <li>films, audio works, scores, designs and prototypes</li>
85 <li>datasets, software, code, models, websites or teaching resources</li>
86 </ul>
87 </div>
88
89 <div class="ido-type" style="border-top:4px solid #38b76a">
90 <h4>5 · Administrative &amp; evidential records</h4>
91 <p>Records that may not be research outputs but are still needed for accountability or project closure.</p>
92 <ul>
93 <li>agreements, consent records and permissions</li>
94 <li>funder deliverables and reporting evidence</li>
95 <li>procurement, equipment or partner documentation</li>
96 <li>records of approvals, responsibilities and handover</li>
97 </ul>
98 </div>
99
100 </div>
101 </section>
102
103 <section class="ido-sec">
104 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">STEP 2 · BUILD A WORKING INVENTORY</div>
105 <h3>Record one row for each material or output type</h3>
106 <p>Your inventory is the bridge between the project idea and the practical decisions that follow. It should be specific enough to reveal risks, dependencies and responsibilities, but simple enough to maintain.</p>
107
108 <div class="ido-tablewrap">
109 <table class="ido-tbl">
110 <thead>
111 <tr><th>Inventory field</th><th>Record</th><th>Why it matters</th></tr>
112 </thead>
113 <tbody>
114 <tr><td><strong>Type / name</strong></td><td>A recognisable category such as “interview recordings”, “installation CAD files” or “final exhibition documentation”.</td><td>Creates a shared vocabulary for the team.</td></tr>
115 <tr><td><strong>Origin</strong></td><td>Created, collected, commissioned, received from a partner, or reused from a third party.</td><td>Origin affects rights, provenance and responsibilities.</td></tr>
116 <tr><td><strong>Format / material</strong></td><td>File formats, software dependencies, physical material, analogue carrier or specialist equipment needed.</td><td>Reveals technical and preservation dependencies.</td></tr>
117 <tr><td><strong>Scale</strong></td><td>Approximate quantity, duration, file size, number of objects or expected growth.</td><td>Helps plan storage, transfer, backup and costs.</td></tr>
118 <tr><td><strong>People &amp; sensitivity</strong></td><td>Whether it contains personal, confidential, culturally sensitive, restricted or otherwise sensitive material.</td><td>Determines access and protection requirements.</td></tr>
119 <tr><td><strong>Rights / permissions</strong></td><td>Who owns it, what licence applies, what permissions or consent exist, and what is still unresolved.</td><td>Determines what can be reused, published or shared.</td></tr>
120 <tr><td><strong>Working location</strong></td><td>Where the active copy is stored or the physical item is kept.</td><td>Makes responsibility and risk visible.</td></tr>
121 <tr><td><strong>Master / authoritative version</strong></td><td>Which file, object or record is the master and how it is distinguished from working or derivative copies.</td><td>Prevents ambiguity at handover and publication.</td></tr>
122 <tr><td><strong>Metadata / provenance</strong></td><td>What information is needed to understand source, creator, date, context, method, version and relationships.</td><td>Makes the material interpretable and reusable later.</td></tr>
123 <tr><td><strong>Lifecycle decision</strong></td><td>Keep, discard, restrict, share, publish, deposit, archive or preserve — and who decides.</td><td>Connects current work to project closure and long-term access.</td></tr>
124 </tbody>
125 </table>
126 </div>
127
128 <div class="ido-info" style="margin-top:14px"><strong>Useful minimum:</strong> if you can answer <em>what it is, where it came from, who is responsible, where the master is, whether it is sensitive, what rights apply and what should happen to it at project end</em>, you already have a strong first inventory.</div>
129 </section>
130
131 <section class="ido-sec">
132 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">STEP 3 · MAKE ARTISTIC PROCESSES VISIBLE</div>
133 <h3>Identify the documentation that will make the work understandable later</h3>
134 <p>For performative, spatial, process-based, participatory or otherwise ephemeral work, the work itself and its documentation are not the same thing. Decide deliberately what needs to be captured and what status that documentation has.</p>
135
136 <div class="ido-grid">
137 <div class="ido-example">
138 <h4>Performance / live work</h4>
139 <p>Possible records include score or script, rehearsal material, technical rider, stage or spatial plan, photographs, audio/video documentation, performer credits, audience/participant permissions and a description of the realised event.</p>
140 </div>
141 <div class="ido-example">
142 <h4>Installation / exhibition</h4>
143 <p>Possible records include concept material, plans, CAD/3D files, component lists, media masters, installation instructions, equipment dependencies, views of the installed work, labels/credits and de-installation or re-installation information.</p>
144 </div>
145 <div class="ido-example">
146 <h4>Design / architecture / making</h4>
147 <p>Possible records include research sources, drawings, models, prototypes, material tests, fabrication files, technical specifications, photographs, iterations, decisions and final presentation files.</p>
148 </div>
149 <div class="ido-example">
150 <h4>Participatory / interview-based work</h4>
151 <p>Possible records include recruitment or participant information, consent/permissions, recordings, transcripts, participant-created material, field notes, coding/analysis, access restrictions and public-facing outputs.</p>
152 </div>
153 <div class="ido-example">
154 <h4>Digital / computational work</h4>
155 <p>Possible records include source code, dependencies, configuration, datasets, training or processing inputs, documentation, build/export files, version information, licences and the environment needed to reproduce or understand the work.</p>
156 </div>
157 <div class="ido-example">
158 <h4>Publication / film / audio</h4>
159 <p>Possible records include research material, source assets, edit/project files, rights documentation, captions/subtitles, credits, high-resolution or preservation masters, distribution derivatives and publication metadata.</p>
160 </div>
161 </div>
162 </section>
163
164 <section class="ido-sec">
165 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">STEP 4 · DISTINGUISH WHAT MUST NOT BE MIXED</div>
166 <h3>These distinctions prevent problems later</h3>
167 <div class="ido-grid">
168 <div class="ido-rights"><strong>Created vs. reused.</strong><br>Material you create and third-party material may have very different rights and licence conditions.</div>
169 <div class="ido-info"><strong>Working file vs. master.</strong><br>A convenient editing copy is not automatically the authoritative or preservation-quality version.</div>
170 <div class="ido-info"><strong>Documentation vs. artwork/output.</strong><br>A photograph of a performance may document the work without being the work itself. Record the relationship explicitly.</div>
171 <div class="ido-warn"><strong>Public vs. restricted.</strong><br>A project may publish some outputs while keeping personal, confidential, embargoed or rights-restricted source material closed.</div>
172 <div class="ido-store"><strong>Storage vs. preservation.</strong><br>A file being stored today does not mean it can still be opened, understood or trusted years later.</div>
173 <div class="ido-rights"><strong>Retention vs. sharing.</strong><br>You may need to retain material for accountability while having no permission or reason to make it public.</div>
174 </div>
175 </section>
176
177 <section class="ido-sec">
178 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">STEP 5 · RUN THE PROJECT INVENTORY</div>
179 <h3>A practical sequence for the team</h3>
180 <div class="ido-grid">
181 <div class="ido-step"><div class="n">01</div><h4>List expected types</h4><p>Start from the proposal, work packages, methods, artistic process, deliverables and public outputs.</p></div>
182 <div class="ido-step"><div class="n">02</div><h4>Add reused material</h4><p>Include archives, existing datasets, third-party images/media, code, partner material and other inputs.</p></div>
183 <div class="ido-step"><div class="n">03</div><h4>Mark sensitive categories</h4><p>Identify personal, confidential, restricted, culturally sensitive or otherwise protected material early.</p></div>
184 <div class="ido-step"><div class="n">04</div><h4>Identify masters</h4><p>Decide which files or objects will be authoritative and how versions/derivatives will be distinguished.</p></div>
185 <div class="ido-step"><div class="n">05</div><h4>Record rights &amp; permissions</h4><p>Note ownership, licences, consent, partner terms and unresolved rights before dissemination is planned.</p></div>
186 <div class="ido-step"><div class="n">06</div><h4>Estimate scale &amp; dependencies</h4><p>Flag large volumes, specialist formats, software, hardware, equipment, physical storage and transfer needs.</p></div>
187 <div class="ido-step"><div class="n">07</div><h4>Connect to storage &amp; DMP</h4><p>Use the inventory to assign working locations, access rules, backup, documentation and lifecycle actions.</p></div>
188 <div class="ido-step"><div class="n">08</div><h4>Review at milestones</h4><p>Update the inventory when methods, partners, outputs, formats, rights, people or publication plans change.</p></div>
189 </div>
190 </section>
191
192 <section class="ido-sec">
193 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">KEY QUESTIONS</div>
194 <h3>Questions every project should be able to answer</h3>
195 <div class="ido-grid">
196 <div class="ido-check">What existing material will we reuse, and under what conditions?</div>
197 <div class="ido-check">What new data, records, objects or documentation will we create or collect?</div>
198 <div class="ido-check">Which outputs are contractual/funder deliverables and which are additional project outputs?</div>
199 <div class="ido-check">What is digital, analogue, physical, spatial or dependent on specialist software/equipment?</div>
200 <div class="ido-check">Which material contains personal, confidential, restricted or sensitive information?</div>
201 <div class="ido-check">Who owns or controls each type, and what permissions/licences are needed?</div>
202 <div class="ido-check">Which version will be the master or authoritative record?</div>
203 <div class="ido-check">What metadata or contextual information is needed to understand the material later?</div>
204 <div class="ido-check">What should be shared, restricted, retained, discarded, deposited or preserved at project end?</div>
205 <div class="ido-check">Who is responsible for each decision and for the final handover?</div>
206 </div>
207 </section>
208
209 <section class="ido-sec">
210 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">STOP &amp; CHECK</div>
211 <h3>Common inventory gaps</h3>
212 <div class="ido-grid">
213 <div class="ido-warn"><strong>Only final deliverables are listed.</strong><br>Source material, process documentation and research evidence are missing from the plan.</div>
214 <div class="ido-warn"><strong>“Everything is in the cloud.”</strong><br>No one has identified the actual service, owner, access model, backup or master copy.</div>
215 <div class="ido-warn"><strong>Ephemeral work has no documentation strategy.</strong><br>The project may finish without enough information to understand, present or preserve what happened.</div>
216 <div class="ido-warn"><strong>Third-party material has no provenance.</strong><br>Source, creator, licence or permission cannot be reconstructed later.</div>
217 <div class="ido-warn"><strong>Personal or confidential material is mixed with publication files.</strong><br>Access decisions become difficult and accidental disclosure becomes more likely.</div>
218 <div class="ido-warn"><strong>The master is unclear.</strong><br>Several exports or copies exist but no authoritative version has been designated.</div>
219 <div class="ido-warn"><strong>Physical objects are absent from the data plan.</strong><br>Location, ownership, condition, documentation or handover responsibilities have not been recorded.</div>
220 <div class="ido-warn"><strong>Specialist formats are treated as self-explanatory.</strong><br>Software, hardware, plugins or context needed to reopen the work are not documented.</div>
221 </div>
222 </section>
223
224 <section class="ido-sec">
225 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">SERVICES &amp; TOOLS</div>
226 <h3>Use the inventory to involve the right support</h3>
227 <div class="ido-grid">
228 <a class="ido-service" href="https://www.dieangewandte.at/universitaet/organisation/planung_service_und_verwaltung/support_kunst_und_forschung" target="_blank" rel="noopener"><strong>Support Kunst und Forschung ↗</strong><span>Use for project/funder requirements, deliverables, proposal planning and project coordination.</span></a>
229 <a class="ido-service" href="https://www.dieangewandte.at/universitaetsbibliothek" target="_blank" rel="noopener"><strong>University Library ↗</strong><span>Use for research/discovery support and questions around publication, repository and information resources.</span></a>
230 <a class="ido-service" href="https://phaidra.bibliothek.uni-ak.ac.at/" target="_blank" rel="noopener"><strong>Angewandte Repository ↗</strong><span>Explore the institutional repository route for digital research and artistic outputs that are suitable for deposit.</span></a>
231 <a class="ido-service" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Plan%20Your%20Data%20Management/"><strong>Plan Your Data Management</strong><span>Turn the inventory into decisions about storage, access, backup, documentation, sharing and preservation.</span></a>
232 <a class="ido-service" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Data%20Protection%20%26%20Ethics/"><strong>Data Protection &amp; Ethics</strong><span>Use when people, personal data, consent, participants or ethical questions are involved.</span></a>
233 <a class="ido-service" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Copyright%2C%20Rights%20%26%20Licences/"><strong>Copyright, Rights &amp; Licences</strong><span>Clarify ownership, third-party material, permissions, licences and reuse conditions.</span></a>
234 </div>
235 </section>
236
237 <section class="ido-sec">
238 <div class="ido-eye" style="color:#8a4d36;margin-bottom:4px">NEXT · TURN THE INVENTORY INTO A PLAN</div>
239 <h3>Related Service Navigator topics</h3>
240 <div class="ido-linkgrid">
241 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Plan%20Your%20Data%20Management/">Plan Your Data Management</a>
242 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/File%20Organisation%20%26%20Naming/">File Organisation &amp; Naming</a>
243 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Storage%2C%20Backup%20%26%20Security/">Storage, Backup &amp; Security</a>
244 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Enable/Infrastructure%2C%20Services%20%26%20Tools/">Infrastructure, Services &amp; Tools</a>
245 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Document%20Metadata%20%26%20Provenance/">Document Processes, Metadata &amp; Provenance</a>
246 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Work%20%26%20Manage/Manage%20Versions%20%26%20Master%20Files/">Manage Versions &amp; Master Files</a>
247 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Decide%20What%20to%20Share/">Decide What to Share</a>
248 <a class="ido-navlink" href="https://xwiki.uni-ak.ac.at/bin/view/Service%20Navigator/Art%20%26%20Research%20Services%20Navigator/Publish%20%26%20Share/Preserve%20Data%20%26%20Artistic%20Outputs/">Preserve Data &amp; Artistic Outputs</a>
249 </div>
250 </section>
251
252 <div class="ido-info" style="margin-bottom:14px"><strong>Need help deciding what belongs in the inventory?</strong> Bring a one-paragraph project description, your planned methods/activities, expected outputs, likely source material and any funder requirements. For funded art/research projects, Support Kunst und Forschung can help connect these elements to the wider project plan.</div>
253
254 <!-- ARSN_TRAINING_WORKSHOPS_V2_START -->
255 <section class="arsn-training-workshops" data-arsn-training-workshops="v2" style="margin:27px 0 22px 0;">
256 <div style="padding:16px 18px;background:#eef8fa;border:1px solid #cfe8ef;border-left:5px solid #21b6d7;border-radius:9px;">
257 <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#3f6871;margin-bottom:5px;">TRAINING &amp; WORKSHOPS</div>
258 <h3 style="font-size:20px;line-height:1.3;margin:0 0 7px;color:#35312d;text-align:left;">Training, workshops &amp; consultation sessions</h3>
259 <p style="margin:0 0 10px;color:#5e5953;line-height:1.55;">Relevant opportunities for this topic will be shown here automatically from the central calendar.</p>
260 <span data-arsn-coming-soon="true" style="display:inline-block;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;line-height:1.2;">COMING SOON</span>
261 </div>
262 </section>
263 <!-- ARSN_TRAINING_WORKSHOPS_V2_END -->
264
265 <!-- ARSN_PRACTICAL_RESOURCES_V2_START -->
266 <section class="arsn-practical-resources" data-arsn-practical-resources="v2" style="margin:0 0 27px;">
267 <div style="font-size:12px;font-weight:700;letter-spacing:.075em;text-transform:uppercase;color:#8a4d36;margin-bottom:4px;">USEFUL MATERIALS</div>
268 <h3 style="font-size:22px;line-height:1.25;margin:0 0 8px;color:#35312d;text-align:left;">Practical Resources</h3>
269 <p style="margin:0 0 12px;color:#5e5953;line-height:1.55;">Use practical resources when you need a concise overview, a step-by-step procedure or a ready-to-use project aid.</p>
270 <div class="arsn-resource-grid" style="display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;">
271 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #21b6d7;border-radius:9px;"><strong>Info Sheets</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Short reference guides for common questions and decisions.</div></div>
272 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #e94b13;border-radius:9px;"><strong>Tutorials</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Step-by-step guidance for specific tasks and workflows.</div></div>
273 <div style="padding:15px 16px;background:#fcfbf8;border:1px solid #e3ded6;border-top:3px solid #38b76a;border-radius:9px;"><strong>Checklists &amp; Templates</strong><br><span data-arsn-coming-soon="true" style="display:inline-block;margin:6px 0 8px;padding:4px 9px;border-radius:14px;background:#fff4ee;border:1px solid #efd9cc;color:#8a4d36;font-size:11px;font-weight:700;letter-spacing:.065em;">COMING SOON</span><div style="color:#625d56;line-height:1.45;">Ready-to-use checklists and templates for planning, managing and closing projects.</div></div>
274 </div>
275 <style>@media(max-width:767px){.arsn-resource-grid{grid-template-columns:1fr!important}}</style>
276 </section>
277 <!-- ARSN_PRACTICAL_RESOURCES_V2_END -->
278
279 <!-- ARSN_SEARCH_TERMS_START -->
280 <details style="margin-top:24px;padding-top:10px;border-top:1px solid #e3ded6">
281 <summary style="cursor:pointer;color:#6a655e;font-size:13px">Search terms &amp; related topics</summary>
282 <div style="margin-top:9px;color:#5c5650;font-size:12px;line-height:1.7">research data · artistic research data · research outputs · artistic outputs · project materials · source material · reused data · third-party material · documentation · process documentation · performance documentation · installation documentation · interviews · recordings · photographs · video · audio · datasets · databases · software · source code · models · prototypes · physical objects · analogue material · master files · authoritative version · provenance · metadata · rights · copyright · licences · consent · personal data · sensitive data · confidential data · file formats · storage · backup · preservation · repository · data management plan · DMP · deliverables · funder requirements · project inventory · output inventory · handover</div>
283 </details>
284 <!-- ARSN_SEARCH_TERMS_END -->
285
286 </div>
287 {{/html}}
288
289 {{html clean="false"}}
290 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_START -->
291
292 <style data-sn-service-navigator-master="1">
293 /* =========================================================
294 MASTER TYPOGRAPHY
295 ========================================================= */
296 #xwikicontent h1,
297 #xwikicontent h2,
298 #xwikicontent h3,
299 #xwikicontent h4,
300 #xwikicontent h5,
301 #xwikicontent h6,
302 #xwikicontent .box-title,
303 #xwikicontent [role="heading"],
304 #xwikicontent h1 a,
305 #xwikicontent h2 a,
306 #xwikicontent h3 a,
307 #xwikicontent h4 a,
308 #xwikicontent h5 a,
309 #xwikicontent h6 a,
310 #xwikicontent .box-title a,
311 #xwikicontent [role="heading"] a{
312 text-align:left!important;
313 text-justify:auto!important;
314 word-spacing:normal!important;
315 }
316
317 /* =========================================================
318 COMING SOON / IN VORBEREITUNG
319 ========================================================= */
320 .sn-coming-soon-badge{
321 display:inline-block;
322 vertical-align:middle;
323 margin-left:10px;
324 padding:4px 8px;
325 border-radius:14px;
326 border:1px solid #efd9cc;
327 background:#fff4ee;
328 color:#8a4d36;
329 font-size:11px;
330 font-weight:700;
331 letter-spacing:.055em;
332 line-height:1.2;
333 white-space:nowrap;
334 }
335
336 /* =========================================================
337 NATIVE / DETAIL CALLOUT GEOMETRY
338 Preserve existing backgrounds.
339 ========================================================= */
340 #xwikicontent .arsn-info,
341 #xwikicontent .dmp-info,
342 #xwikicontent .ido-info,
343 #xwikicontent .pp-info,
344 #xwikicontent .infomessage{
345 box-sizing:border-box!important;
346 border-left:4px solid #21b6d7!important;
347 border-radius:8px;
348 text-align:left!important;
349 word-spacing:normal!important;
350 }
351
352 #xwikicontent .arsn-warn,
353 #xwikicontent .dmp-warn,
354 #xwikicontent .ido-warn,
355 #xwikicontent .pp-warn,
356 #xwikicontent .warn,
357 #xwikicontent .warning,
358 #xwikicontent .warningmessage,
359 #xwikicontent .errormessage{
360 box-sizing:border-box!important;
361 border-left:4px solid #e94b13!important;
362 border-radius:8px;
363 text-align:left!important;
364 word-spacing:normal!important;
365 }
366
367 [data-sn-master-equal-height],
368 [data-sn-master-first-row]{
369 box-sizing:border-box;
370 }
371
372 /* =========================================================
373 FULL-WIDTH THREE-LINE NUMBER / TITLE / SUBTITLE BLOCKS
374 ========================================================= */
375 #xwikicontent .arsn-area-label[data-sn-three-line="1"]{
376 display:grid!important;
377 grid-template-columns:minmax(0,1fr)!important;
378 grid-auto-rows:auto!important;
379 width:100%!important;
380 max-width:none!important;
381 box-sizing:border-box!important;
382 justify-items:start!important;
383 align-items:start!important;
384 gap:2px!important;
385 text-align:left!important;
386 text-align-last:left!important;
387 text-justify:auto!important;
388 word-spacing:normal!important;
389 white-space:normal!important;
390 }
391 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-number,
392 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .sn-area-label-title,
393 #xwikicontent .arsn-area-label[data-sn-three-line="1"] > .arsn-area-action{
394 display:block!important;
395 width:100%!important;
396 margin:0!important;
397 text-align:left!important;
398 text-align-last:left!important;
399 text-justify:auto!important;
400 word-spacing:normal!important;
401 white-space:normal!important;
402 }
403 </style>
404
405 <script data-sn-service-navigator-master="1">
406 (function(){
407 "use strict";
408
409 var PAGE_KIND="detail";
410 var PLACEHOLDER=false;
411 var PLACEHOLDER_LABEL="COMING SOON";
412
413 var MOBILE_MAX=767;
414 var ROW_TOLERANCE=6;
415 var RESIZE_DEBOUNCE=220;
416
417 var root=
418 document.getElementById("xwikicontent")||
419 document.querySelector(".xwiki-rendering-content")||
420 document.querySelector("main")||
421 document.body;
422
423 if(!root)return;
424
425 var managedHeight=new Set();
426 var managedMargin=new Set();
427 var originalHeight=new WeakMap();
428 var originalMargin=new WeakMap();
429
430 var resizeTimer=0;
431 var running=false;
432
433 var THEMES=[
434 {
435 name:"BLUE",
436 accent:"#21b6d7",
437 bg:"#eaf7fb",
438 text:"#315d68",
439 labels:[
440 "HIER STARTEN",
441 "ENTSCHEIDEN",
442 "ÜBERPRÜFEN & ANPASSEN",
443 "START HERE",
444 "DECIDE",
445 "REVIEW & ADAPT"
446 ]
447 },
448 {
449 name:"RED",
450 accent:"#e94b13",
451 bg:"#fff1ec",
452 text:"#8a4d36",
453 labels:[
454 "PLANEN & ORGANISIEREN",
455 "ORGANISIEREN & DOKUMENTIEREN",
456 "PUBLIZIEREN & PRÄSENTIEREN",
457 "PLAN & ORGANISE",
458 "PLAN & ORGANIZE",
459 "ORGANISE & DOCUMENT",
460 "ORGANIZE & DOCUMENT",
461 "PUBLISH & PRESENT"
462 ]
463 },
464 {
465 name:"YELLOW",
466 accent:"#f0aa00",
467 bg:"#fff8e7",
468 text:"#785b17",
469 labels:[
470 "SCHÜTZEN & KLÄREN",
471 "STANDARDISIEREN & IDENTIFIZIEREN",
472 "ÖFFNEN, NACHNUTZEN & AUFFINDBAR MACHEN",
473 "PROTECT & CLARIFY",
474 "STANDARDISE & IDENTIFY",
475 "STANDARDIZE & IDENTIFY",
476 "OPEN, REUSE & MAKE FINDABLE"
477 ]
478 },
479 {
480 name:"GREEN",
481 accent:"#38b76a",
482 bg:"#edf9f1",
483 text:"#3f7451",
484 labels:[
485 "INFRASTRUKTUR EINRICHTEN",
486 "INFRASTRUKTUR & ZUSAMMENARBEIT EINRICHTEN",
487 "SPEICHERN & ZUGRIFF STEUERN",
488 "REPOSITORIUM, ERHALTEN & ÜBERGEBEN",
489 "SET UP INFRASTRUCTURE",
490 "SET UP INFRASTRUCTURE & COLLABORATION",
491 "STORE & CONTROL ACCESS",
492 "REPOSITORY, PRESERVE & HAND OVER"
493 ]
494 }
495 ];
496
497 function num(value){
498 var n=parseFloat(value);
499 return Number.isFinite(n)?n:0;
500 }
501
502 function norm(value){
503 return String(value||"")
504 .replace(/\s+/g," ")
505 .trim()
506 .toUpperCase();
507 }
508
509 function visible(el){
510 if(!el||el.nodeType!==1)return false;
511
512 var style=getComputedStyle(el);
513 var rect=el.getBoundingClientRect();
514
515 return (
516 style.display!=="none"&&
517 style.visibility!=="hidden"&&
518 rect.width>20&&
519 rect.height>4
520 );
521 }
522
523 function saveStyle(el,map,property){
524 if(map.has(el))return;
525
526 map.set(el,{
527 value:el.style.getPropertyValue(property),
528 priority:el.style.getPropertyPriority(property)
529 });
530 }
531
532 function restoreStyle(el,map,property){
533 var original=map.get(el);
534
535 if(original&&original.value){
536 el.style.setProperty(
537 property,
538 original.value,
539 original.priority||""
540 );
541 }else{
542 el.style.removeProperty(property);
543 }
544 }
545
546 function resetRuntime(){
547 managedHeight.forEach(function(el){
548 restoreStyle(
549 el,
550 originalHeight,
551 "min-height"
552 );
553 el.removeAttribute(
554 "data-sn-master-equal-height"
555 );
556 });
557
558 managedMargin.forEach(function(el){
559 restoreStyle(
560 el,
561 originalMargin,
562 "margin-top"
563 );
564 el.removeAttribute(
565 "data-sn-master-first-row"
566 );
567 });
568
569 managedHeight.clear();
570 managedMargin.clear();
571 }
572
573 function themeFor(text){
574 var value=norm(text);
575
576 for(var i=0;i<THEMES.length;i++){
577 for(var j=0;j<THEMES[i].labels.length;j++){
578 var label=THEMES[i].labels[j];
579
580 if(
581 value===label||
582 value.indexOf(label+" ")===0||
583 value.indexOf(label+" -")===0||
584 value.indexOf(label+" ·")===0
585 ){
586 return THEMES[i];
587 }
588 }
589 }
590
591 return null;
592 }
593
594 /* =======================================================
595 BORDERLESS FILLED RED/ORANGE CTA BUTTONS
596 ======================================================= */
597
598 function colourDistance(a,b){
599 return Math.sqrt(
600 Math.pow(a[0]-b[0],2)+
601 Math.pow(a[1]-b[1],2)+
602 Math.pow(a[2]-b[2],2)
603 );
604 }
605
606 function makeFilledRedOrangeCTAsBorderless(){
607 var RED_ORANGE=[233,75,19];
608
609 Array.from(
610 root.querySelectorAll(
611 'a,button,[role="button"],input[type="submit"],input[type="button"]'
612 )
613 ).forEach(function(el){
614 if(!visible(el))return;
615
616 var style=getComputedStyle(el);
617 var rgb=parseRGB(style.backgroundColor);
618
619 if(!rgb)return;
620
621 if(
622 colourDistance(
623 rgb,
624 RED_ORANGE
625 )>55
626 ){
627 return;
628 }
629
630 var rect=el.getBoundingClientRect();
631
632 if(
633 rect.width<80||
634 rect.height<24
635 ){
636 return;
637 }
638
639 el.style.setProperty(
640 "border",
641 "none",
642 "important"
643 );
644
645 el.style.setProperty(
646 "border-left",
647 "none",
648 "important"
649 );
650
651 el.style.setProperty(
652 "border-top",
653 "none",
654 "important"
655 );
656
657 el.style.setProperty(
658 "border-right",
659 "none",
660 "important"
661 );
662
663 el.style.setProperty(
664 "border-bottom",
665 "none",
666 "important"
667 );
668
669 el.style.setProperty(
670 "box-shadow",
671 "none",
672 "important"
673 );
674 });
675 }
676
677 /* =======================================================
678 FULL-WIDTH THREE-LINE AREA LABELS
679 ======================================================= */
680
681 function compactText(value){
682 return String(value||"")
683 .replace(/\s+/g," ")
684 .trim();
685 }
686
687 function makeThreeLineAreaLabels(){
688 Array.from(
689 root.querySelectorAll(
690 ".arsn-area-label"
691 )
692 ).forEach(function(label){
693 if(
694 label.getAttribute(
695 "data-sn-three-line"
696 )==="1"
697 ){
698 return;
699 }
700
701 var number=
702 label.querySelector(
703 ":scope > .arsn-area-number"
704 );
705
706 var action=
707 label.querySelector(
708 ":scope > .arsn-area-action"
709 );
710
711 if(
712 !number||
713 !action
714 ){
715 return;
716 }
717
718 var clone=
719 label.cloneNode(true);
720
721 var cloneNumber=
722 clone.querySelector(
723 ":scope > .arsn-area-number"
724 );
725
726 var cloneAction=
727 clone.querySelector(
728 ":scope > .arsn-area-action"
729 );
730
731 if(cloneNumber){
732 cloneNumber.remove();
733 }
734
735 if(cloneAction){
736 cloneAction.remove();
737 }
738
739 var titleText=
740 compactText(
741 clone.textContent
742 );
743
744 if(!titleText){
745 return;
746 }
747
748 var numberNode=
749 number.cloneNode(true);
750
751 var actionNode=
752 action.cloneNode(true);
753
754 var titleNode=
755 document.createElement(
756 "span"
757 );
758
759 titleNode.className=
760 "sn-area-label-title";
761
762 titleNode.textContent=
763 titleText;
764
765 while(label.firstChild){
766 label.removeChild(
767 label.firstChild
768 );
769 }
770
771 label.appendChild(
772 numberNode
773 );
774
775 label.appendChild(
776 titleNode
777 );
778
779 label.appendChild(
780 actionNode
781 );
782
783 label.setAttribute(
784 "data-sn-three-line",
785 "1"
786 );
787
788 var head=
789 label.closest(
790 ".arsn-area-head"
791 );
792
793 if(head){
794 head.style.setProperty(
795 "width",
796 "100%",
797 "important"
798 );
799
800 head.style.setProperty(
801 "max-width",
802 "100%",
803 "important"
804 );
805
806 head.style.setProperty(
807 "box-sizing",
808 "border-box",
809 "important"
810 );
811 }
812 });
813 }
814
815 /* =======================================================
816 PLACEHOLDER BADGE
817 ======================================================= */
818
819 function applyPlaceholderBadge(){
820 if(!PLACEHOLDER)return;
821
822 if(
823 document.querySelector(
824 ".sn-coming-soon-badge"
825 )
826 ){
827 return;
828 }
829
830 var title=
831 document.querySelector(
832 "#document-title"
833 )||
834 document.querySelector(
835 "h1"
836 );
837
838 if(!title)return;
839
840 var badge=
841 document.createElement(
842 "span"
843 );
844
845 badge.className=
846 "sn-coming-soon-badge";
847
848 badge.textContent=
849 PLACEHOLDER_LABEL;
850
851 badge.setAttribute(
852 "aria-label",
853 PLACEHOLDER_LABEL
854 );
855
856 title.appendChild(
857 badge
858 );
859 }
860
861 /* =======================================================
862 DETAIL PAGE OWN-ACCENT PROPAGATION
863 ======================================================= */
864
865 function parseRGB(value){
866 var match=String(value||"").match(
867 /rgba?\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)/i
868 );
869
870 if(!match)return null;
871
872 return [
873 Number(match[1]),
874 Number(match[2]),
875 Number(match[3])
876 ];
877 }
878
879 function distance(a,b){
880 return Math.sqrt(
881 Math.pow(a[0]-b[0],2)+
882 Math.pow(a[1]-b[1],2)+
883 Math.pow(a[2]-b[2],2)
884 );
885 }
886
887 function paletteMatch(cssColor){
888 var rgb=parseRGB(cssColor);
889
890 if(!rgb)return null;
891
892 var palette=[
893 {hex:"#21b6d7",rgb:[33,182,215]},
894 {hex:"#e94b13",rgb:[233,75,19]},
895 {hex:"#f0aa00",rgb:[240,170,0]},
896 {hex:"#38b76a",rgb:[56,183,106]}
897 ];
898
899 var best=null;
900 var bestDistance=Infinity;
901
902 palette.forEach(function(item){
903 var d=distance(rgb,item.rgb);
904
905 if(d<bestDistance){
906 best=item;
907 bestDistance=d;
908 }
909 });
910
911 return bestDistance<=30
912 ?best
913 :null;
914 }
915
916 function propagateDetailAccents(){
917 if(PAGE_KIND!=="detail")return;
918
919 Array.from(
920 root.querySelectorAll(
921 ".arsn-call,.dmp-call,.ido-call,.pp-call,"+
922 ".arsn-source,.dmp-source,.ido-source,.pp-source"
923 )
924 ).forEach(function(el){
925 if(!visible(el))return;
926
927 var style=getComputedStyle(el);
928
929 if(
930 num(style.borderTopWidth)>=2
931 ){
932 var match=
933 paletteMatch(
934 style.borderTopColor
935 );
936
937 if(match){
938 el.style.setProperty(
939 "border-left",
940 "4px solid "+match.hex,
941 "important"
942 );
943 }
944 }
945 });
946
947 // Warning families: explicit safety override.
948 Array.from(
949 root.querySelectorAll(
950 ".arsn-warn,.dmp-warn,.ido-warn,.pp-warn,"+
951 ".warn,.warning,.warningmessage,.errormessage"
952 )
953 ).forEach(function(el){
954 if(!visible(el))return;
955
956 el.style.setProperty(
957 "border-left",
958 "4px solid #e94b13",
959 "important"
960 );
961 });
962
963 // Info families: explicit orientation override.
964 Array.from(
965 root.querySelectorAll(
966 ".arsn-info,.dmp-info,.ido-info,.pp-info,.infomessage"
967 )
968 ).forEach(function(el){
969 if(!visible(el))return;
970
971 el.style.setProperty(
972 "border-left",
973 "4px solid #21b6d7",
974 "important"
975 );
976 });
977 }
978
979 /* =======================================================
980 OVERVIEW SEMANTIC THEME PALETTE
981 ======================================================= */
982
983 function smallestThemeHeaders(){
984 return Array.from(
985 root.querySelectorAll(
986 "div,span,p,strong,h3,h4,h5,h6"
987 )
988 ).filter(function(el){
989 if(!visible(el))return false;
990 if(!themeFor(el.textContent))return false;
991
992 return !Array.from(
993 el.children||[]
994 ).some(function(child){
995 return !!themeFor(
996 child.textContent
997 );
998 });
999 });
1000 }
1001
1002 function findOverviewCard(header){
1003 var node=header.parentElement;
1004 var candidates=[];
1005
1006 while(node&&node!==root){
1007 var rect=node.getBoundingClientRect();
1008 var style=getComputedStyle(node);
1009
1010 var border=
1011 num(style.borderTopWidth)+
1012 num(style.borderRightWidth)+
1013 num(style.borderBottomWidth)+
1014 num(style.borderLeftWidth);
1015
1016 if(
1017 rect.width>=220&&
1018 rect.width<=800&&
1019 rect.height>=120&&
1020 border>=1
1021 ){
1022 candidates.push(node);
1023 }
1024
1025 node=node.parentElement;
1026 }
1027
1028 if(!candidates.length)return null;
1029
1030 candidates.sort(function(a,b){
1031 return (
1032 b.getBoundingClientRect().height-
1033 a.getBoundingClientRect().height
1034 );
1035 });
1036
1037 return candidates[0];
1038 }
1039
1040 function rowCandidates(link,card){
1041 var result=[];
1042 var cardRect=
1043 card.getBoundingClientRect();
1044
1045 var node=link;
1046
1047 while(node&&node!==card){
1048 if(visible(node)){
1049 var rect=
1050 node.getBoundingClientRect();
1051
1052 if(
1053 rect.height<=105&&
1054 rect.width>=
1055 cardRect.width*.50&&
1056 rect.width<=
1057 cardRect.width*1.03
1058 ){
1059 result.push(node);
1060 }
1061 }
1062
1063 node=node.parentElement;
1064 }
1065
1066 return result;
1067 }
1068
1069 function chooseOuterRow(
1070 candidates,
1071 link
1072 ){
1073 if(!candidates.length){
1074 return link;
1075 }
1076
1077 var bordered=
1078 candidates.filter(function(el){
1079 return (
1080 num(
1081 getComputedStyle(el)
1082 .borderLeftWidth
1083 )>=1
1084 );
1085 });
1086
1087 var pool=
1088 bordered.length
1089 ?bordered
1090 :candidates;
1091
1092 pool.sort(function(a,b){
1093 var ar=
1094 a.getBoundingClientRect();
1095
1096 var br=
1097 b.getBoundingClientRect();
1098
1099 return (
1100 ar.left-br.left||
1101 br.width-ar.width
1102 );
1103 });
1104
1105 return pool[0]||link;
1106 }
1107
1108 function applyOverviewPalette(){
1109 if(PAGE_KIND!=="overview"){
1110 return [];
1111 }
1112
1113 var headers=
1114 smallestThemeHeaders()
1115 .map(function(el){
1116 return {
1117 el:el,
1118 theme:
1119 themeFor(
1120 el.textContent
1121 ),
1122 card:
1123 findOverviewCard(
1124 el
1125 )
1126 };
1127 })
1128 .filter(function(row){
1129 return !!row.card;
1130 });
1131
1132 var unique=[];
1133 var seenHeaders=new Set();
1134
1135 headers.forEach(function(row){
1136 var key=
1137 row.theme.name+
1138 "|"+
1139 Math.round(
1140 row.card
1141 .getBoundingClientRect()
1142 .left
1143 )+
1144 "|"+
1145 Math.round(
1146 row.el
1147 .getBoundingClientRect()
1148 .top
1149 );
1150
1151 if(!seenHeaders.has(key)){
1152 seenHeaders.add(key);
1153 unique.push(row);
1154 }
1155 });
1156
1157 unique.forEach(function(row){
1158 var headerRect=
1159 row.el
1160 .getBoundingClientRect();
1161
1162 row.el.style.setProperty(
1163 "background",
1164 row.theme.bg,
1165 "important"
1166 );
1167
1168 row.el.style.setProperty(
1169 "color",
1170 row.theme.text,
1171 "important"
1172 );
1173
1174 row.el.style.setProperty(
1175 "text-align",
1176 "left",
1177 "important"
1178 );
1179
1180 row.el.style.setProperty(
1181 "word-spacing",
1182 "normal",
1183 "important"
1184 );
1185
1186 var later=
1187 unique
1188 .filter(function(other){
1189 return (
1190 other.card===row.card&&
1191 other.el
1192 .getBoundingClientRect()
1193 .top>
1194 headerRect.top+2
1195 );
1196 })
1197 .sort(function(a,b){
1198 return (
1199 a.el
1200 .getBoundingClientRect()
1201 .top-
1202 b.el
1203 .getBoundingClientRect()
1204 .top
1205 );
1206 });
1207
1208 var stopTop=
1209 later.length
1210 ?later[0].el
1211 .getBoundingClientRect()
1212 .top
1213 :Infinity;
1214
1215 Array.from(
1216 row.card.querySelectorAll("a")
1217 ).forEach(function(link){
1218 if(!visible(link))return;
1219
1220 var rect=
1221 link.getBoundingClientRect();
1222
1223 if(
1224 rect.top<=
1225 headerRect.bottom-2||
1226 rect.top>=
1227 stopTop-2
1228 ){
1229 return;
1230 }
1231
1232 var candidates=
1233 rowCandidates(
1234 link,
1235 row.card
1236 );
1237
1238 var target=
1239 chooseOuterRow(
1240 candidates,
1241 link
1242 );
1243
1244 candidates.forEach(function(el){
1245 el.style.setProperty(
1246 "border-left",
1247 "0 solid transparent",
1248 "important"
1249 );
1250 });
1251
1252 target.style.setProperty(
1253 "border-left",
1254 "3px solid "+
1255 row.theme.accent,
1256 "important"
1257 );
1258
1259 target.style.setProperty(
1260 "box-sizing",
1261 "border-box",
1262 "important"
1263 );
1264 });
1265 });
1266
1267 return unique;
1268 }
1269
1270 /* =======================================================
1271 OVERVIEW CARD HEIGHT + FIRST THEMATIC ROW
1272 ======================================================= */
1273
1274 function alignOverviewCards(headers){
1275 if(
1276 PAGE_KIND!=="overview"||
1277 window.innerWidth<=MOBILE_MAX
1278 ){
1279 return;
1280 }
1281
1282 var cards=[];
1283 var seen=new Set();
1284
1285 headers.forEach(function(row){
1286 if(!seen.has(row.card)){
1287 seen.add(row.card);
1288 cards.push(row.card);
1289 }
1290 });
1291
1292 if(cards.length<2){
1293 return;
1294 }
1295
1296 // Group cards by actual top position.
1297 var groups=[];
1298
1299 cards.forEach(function(card){
1300 var top=
1301 card.getBoundingClientRect().top;
1302
1303 var group=null;
1304
1305 for(var i=0;i<groups.length;i++){
1306 if(
1307 Math.abs(
1308 groups[i].top-top
1309 )<=ROW_TOLERANCE
1310 ){
1311 group=groups[i];
1312 break;
1313 }
1314 }
1315
1316 if(!group){
1317 group={
1318 top:top,
1319 cards:[]
1320 };
1321 groups.push(group);
1322 }
1323
1324 group.cards.push(card);
1325 });
1326
1327 groups.forEach(function(group){
1328 if(group.cards.length<2){
1329 return;
1330 }
1331
1332 var firstHeaders=
1333 group.cards.map(function(card){
1334 var candidates=
1335 headers
1336 .filter(function(row){
1337 return row.card===card;
1338 })
1339 .sort(function(a,b){
1340 return (
1341 a.el
1342 .getBoundingClientRect()
1343 .top-
1344 b.el
1345 .getBoundingClientRect()
1346 .top
1347 );
1348 });
1349
1350 return candidates.length
1351 ?candidates[0]
1352 :null;
1353 });
1354
1355 if(
1356 !firstHeaders.some(function(row){
1357 return !row;
1358 })
1359 ){
1360 var targetTop=
1361 Math.max.apply(
1362 Math,
1363 firstHeaders.map(function(row){
1364 return (
1365 row.el
1366 .getBoundingClientRect()
1367 .top-
1368 row.card
1369 .getBoundingClientRect()
1370 .top
1371 );
1372 })
1373 );
1374
1375 firstHeaders.forEach(function(row){
1376 var relativeTop=
1377 row.el
1378 .getBoundingClientRect()
1379 .top-
1380 row.card
1381 .getBoundingClientRect()
1382 .top;
1383
1384 var delta=
1385 targetTop-relativeTop;
1386
1387 if(delta>1){
1388 saveStyle(
1389 row.el,
1390 originalMargin,
1391 "margin-top"
1392 );
1393
1394 var current=
1395 num(
1396 getComputedStyle(
1397 row.el
1398 ).marginTop
1399 );
1400
1401 row.el.style.setProperty(
1402 "margin-top",
1403 (
1404 current+delta
1405 )+"px"
1406 );
1407
1408 row.el.setAttribute(
1409 "data-sn-master-first-row",
1410 "1"
1411 );
1412
1413 managedMargin.add(
1414 row.el
1415 );
1416 }
1417 });
1418 }
1419
1420 var maxHeight=0;
1421
1422 group.cards.forEach(function(card){
1423 maxHeight=
1424 Math.max(
1425 maxHeight,
1426 card
1427 .getBoundingClientRect()
1428 .height
1429 );
1430 });
1431
1432 maxHeight=
1433 Math.ceil(maxHeight);
1434
1435 group.cards.forEach(function(card){
1436 saveStyle(
1437 card,
1438 originalHeight,
1439 "min-height"
1440 );
1441
1442 card.style.setProperty(
1443 "min-height",
1444 maxHeight+"px"
1445 );
1446
1447 card.setAttribute(
1448 "data-sn-master-equal-height",
1449 "1"
1450 );
1451
1452 managedHeight.add(
1453 card
1454 );
1455 });
1456 });
1457 }
1458
1459 /* =======================================================
1460 DETAIL GRID EQUAL HEIGHT, DESKTOP ONLY
1461 ======================================================= */
1462
1463 function equaliseDetailGrids(){
1464 if(
1465 PAGE_KIND!=="detail"||
1466 window.innerWidth<=MOBILE_MAX
1467 ){
1468 return;
1469 }
1470
1471 var selectors=[
1472 ".arsn-grid",
1473 ".arsn-grid-2",
1474 ".arsn-grid-3",
1475 ".dmp-grid",
1476 ".ido-grid",
1477 ".pp-grid"
1478 ];
1479
1480 selectors.forEach(function(selector){
1481 Array.from(
1482 root.querySelectorAll(selector)
1483 ).forEach(function(grid){
1484 var children=
1485 Array.from(
1486 grid.children||[]
1487 ).filter(visible);
1488
1489 if(children.length<2){
1490 return;
1491 }
1492
1493 var groups=[];
1494
1495 children.forEach(function(child){
1496 var top=
1497 child
1498 .getBoundingClientRect()
1499 .top;
1500
1501 var group=null;
1502
1503 for(var i=0;i<groups.length;i++){
1504 if(
1505 Math.abs(
1506 groups[i].top-top
1507 )<=ROW_TOLERANCE
1508 ){
1509 group=groups[i];
1510 break;
1511 }
1512 }
1513
1514 if(!group){
1515 group={
1516 top:top,
1517 items:[]
1518 };
1519 groups.push(group);
1520 }
1521
1522 group.items.push(child);
1523 });
1524
1525 groups.forEach(function(group){
1526 if(group.items.length<2){
1527 return;
1528 }
1529
1530 var maxHeight=0;
1531
1532 group.items.forEach(function(item){
1533 maxHeight=
1534 Math.max(
1535 maxHeight,
1536 item
1537 .getBoundingClientRect()
1538 .height
1539 );
1540 });
1541
1542 maxHeight=
1543 Math.ceil(maxHeight);
1544
1545 group.items.forEach(function(item){
1546 saveStyle(
1547 item,
1548 originalHeight,
1549 "min-height"
1550 );
1551
1552 item.style.setProperty(
1553 "min-height",
1554 maxHeight+"px"
1555 );
1556
1557 item.setAttribute(
1558 "data-sn-master-equal-height",
1559 "1"
1560 );
1561
1562 managedHeight.add(item);
1563 });
1564 });
1565 });
1566 });
1567 }
1568
1569 /* =======================================================
1570 RUN / RESPONSIVE SCHEDULING
1571 ======================================================= */
1572
1573 function run(){
1574 if(running)return;
1575
1576 running=true;
1577
1578 try{
1579 resetRuntime();
1580 applyPlaceholderBadge();
1581 propagateDetailAccents();
1582
1583 var headers=
1584 applyOverviewPalette();
1585
1586 makeThreeLineAreaLabels();
1587 makeFilledRedOrangeCTAsBorderless();
1588
1589 if(
1590 window.innerWidth>
1591 MOBILE_MAX
1592 ){
1593 alignOverviewCards(
1594 headers
1595 );
1596
1597 equaliseDetailGrids();
1598 }
1599 }finally{
1600 running=false;
1601 }
1602 }
1603
1604 function onResize(){
1605 if(resizeTimer){
1606 clearTimeout(
1607 resizeTimer
1608 );
1609 }
1610
1611 resizeTimer=
1612 setTimeout(
1613 function(){
1614 resizeTimer=0;
1615 run();
1616 },
1617 RESIZE_DEBOUNCE
1618 );
1619 }
1620
1621 async function waitForReady(){
1622 if(
1623 document.readyState!=="complete"
1624 ){
1625 await new Promise(function(resolve){
1626 window.addEventListener(
1627 "load",
1628 resolve,
1629 {once:true}
1630 );
1631 });
1632 }
1633
1634 if(
1635 document.fonts&&
1636 document.fonts.ready
1637 ){
1638 try{
1639 await document.fonts.ready;
1640 }catch(error){}
1641 }
1642
1643 var images=
1644 Array.from(
1645 root.querySelectorAll("img")
1646 );
1647
1648 await Promise.all(
1649 images.map(function(img){
1650 if(img.complete){
1651 return Promise.resolve();
1652 }
1653
1654 return new Promise(function(resolve){
1655 var done=function(){
1656 resolve();
1657 };
1658
1659 img.addEventListener(
1660 "load",
1661 done,
1662 {once:true}
1663 );
1664
1665 img.addEventListener(
1666 "error",
1667 done,
1668 {once:true}
1669 );
1670 });
1671 })
1672 );
1673
1674 run();
1675 }
1676
1677 window.addEventListener(
1678 "resize",
1679 onResize,
1680 {passive:true}
1681 );
1682
1683 waitForReady();
1684 })();
1685 </script>
1686
1687 <!-- SN_SERVICE_NAVIGATOR_MASTER_STYLE_END -->
1688 {{/html}}