summaryrefslogtreecommitdiffstats
path: root/templates
diff options
context:
space:
mode:
authorLeonardo Bishop <me@leonardobishop.net>2026-02-13 17:07:34 +0000
committerLeonardo Bishop <me@leonardobishop.net>2026-02-13 17:08:01 +0000
commitbbe07c2788b00711e011f7805e14fa0933bf2d73 (patch)
tree7a80a05fd793fe572b901e442576ccbf5f3accc2 /templates
Initial commitHEADmaster
Diffstat (limited to 'templates')
-rw-r--r--templates/presenter.html67
1 files changed, 67 insertions, 0 deletions
diff --git a/templates/presenter.html b/templates/presenter.html
new file mode 100644
index 0000000..010393c
--- /dev/null
+++ b/templates/presenter.html
@@ -0,0 +1,67 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <title>Presenter mode</title>
+ <link href="/plugins/ctfd-presenter/assets/presenter.css" rel="stylesheet" />
+</head>
+
+<body>
+ <iframe
+ id="scoreboard-frame"
+ src="/scoreboard"
+ loading="eager">
+ </iframe>
+
+ <div id="solve-overlay">
+ <div id="solve-text">
+ <div id="solve-first">
+ <img src="/plugins/ctfd-presenter/assets/first-blood.png" />
+ <div class="sparkler-light">
+ <div class="spark" style="--spark-rotate: 10deg; --spark-delay: 223ms; --spark-duration: 750ms"></div>
+ <div class="spark" style="--spark-rotate: 20deg; --spark-delay: 844ms; --spark-duration: 775ms"></div>
+ <div class="spark" style="--spark-rotate: 30deg; --spark-delay: 130ms; --spark-duration: 780ms"></div>
+ <div class="spark" style="--spark-rotate: 40deg; --spark-delay: 747ms; --spark-duration: 725ms"></div>
+ <div class="spark" style="--spark-rotate: 50deg; --spark-delay: 928ms; --spark-duration: 740ms"></div>
+ <div class="spark" style="--spark-rotate: 60deg; --spark-delay: 392ms; --spark-duration: 770ms"></div>
+ <div class="spark" style="--spark-rotate: 70deg; --spark-delay: 483ms; --spark-duration: 735ms"></div>
+ <div class="spark" style="--spark-rotate: 80deg; --spark-delay: 621ms; --spark-duration: 755ms"></div>
+ <div class="spark" style="--spark-rotate: 90deg; --spark-delay: 814ms; --spark-duration: 715ms"></div>
+ <div class="spark" style="--spark-rotate: 100deg; --spark-delay: 802ms; --spark-duration: 730ms"></div>
+ <div class="spark" style="--spark-rotate: 110deg; --spark-delay: 837ms; --spark-duration: 785ms"></div>
+ <div class="spark" style="--spark-rotate: 120deg; --spark-delay: 238ms; --spark-duration: 790ms"></div>
+ <div class="spark" style="--spark-rotate: 130deg; --spark-delay: 642ms; --spark-duration: 740ms"></div>
+ <div class="spark" style="--spark-rotate: 140deg; --spark-delay: 58ms; --spark-duration: 715ms"></div>
+ <div class="spark" style="--spark-rotate: 150deg; --spark-delay: 404ms; --spark-duration: 775ms"></div>
+ <div class="spark" style="--spark-rotate: 160deg; --spark-delay: 576ms; --spark-duration: 725ms"></div>
+ <div class="spark" style="--spark-rotate: 170deg; --spark-delay: 944ms; --spark-duration: 755ms"></div>
+ <div class="spark" style="--spark-rotate: 180deg; --spark-delay: 635ms; --spark-duration: 785ms"></div>
+ <div class="spark" style="--spark-rotate: 190deg; --spark-delay: 205ms; --spark-duration: 770ms"></div>
+ <div class="spark" style="--spark-rotate: 200deg; --spark-delay: 91ms; --spark-duration: 795ms"></div>
+ <div class="spark" style="--spark-rotate: 210deg; --spark-delay: 829ms; --spark-duration: 745ms"></div>
+ <div class="spark" style="--spark-rotate: 220deg; --spark-delay: 369ms; --spark-duration: 730ms"></div>
+ <div class="spark" style="--spark-rotate: 230deg; --spark-delay: 861ms; --spark-duration: 780ms"></div>
+ <div class="spark" style="--spark-rotate: 240deg; --spark-delay: 201ms; --spark-duration: 735ms"></div>
+ <div class="spark" style="--spark-rotate: 250deg; --spark-delay: 173ms; --spark-duration: 755ms"></div>
+ <div class="spark" style="--spark-rotate: 260deg; --spark-delay: 967ms; --spark-duration: 765ms"></div>
+ <div class="spark" style="--spark-rotate: 270deg; --spark-delay: 548ms; --spark-duration: 715ms"></div>
+ <div class="spark" style="--spark-rotate: 280deg; --spark-delay: 392ms; --spark-duration: 775ms"></div>
+ <div class="spark" style="--spark-rotate: 290deg; --spark-delay: 973ms; --spark-duration: 740ms"></div>
+ <div class="spark" style="--spark-rotate: 300deg; --spark-delay: 6ms; --spark-duration: 725ms"></div>
+ <div class="spark" style="--spark-rotate: 310deg; --spark-delay: 1ms; --spark-duration: 760ms"></div>
+ <div class="spark" style="--spark-rotate: 320deg; --spark-delay: 854ms; --spark-duration: 735ms"></div>
+ <div class="spark" style="--spark-rotate: 330deg; --spark-delay: 159ms; --spark-duration: 750ms"></div>
+ <div class="spark" style="--spark-rotate: 340deg; --spark-delay: 60ms; --spark-duration: 780ms"></div>
+ <div class="spark" style="--spark-rotate: 350deg; --spark-delay: 986ms; --spark-duration: 765ms"></div>
+ <div class="spark" style="--spark-rotate: 360deg; --spark-delay: 559ms; --spark-duration: 740ms"></div>
+ </div>
+ </div>
+ <div id="solve-team" class="glitch"></div>
+ <div id="solve-value" class="glitch"></div>
+ <div id="solve-challenge" class="glitch"></div>
+ </div>
+ <div class="scanlines"></div>
+ </div>
+
+ <script src="/plugins/ctfd-presenter/assets/presenter.js"></script>
+</body>
+</html>