diff --git a/docs/Sass.md b/docs/Sass.md
index 1915e46..91a685d 100644
--- a/docs/Sass.md
+++ b/docs/Sass.md
@@ -1,12 +1,23 @@
# Sass
-Running Sass
+## Docker
+There is a dockerfile in the sass directory you can build an image with.
+
+```bash
+cd sass
+docker build -t sass-container .
```
+
+## Running Sass
+
+```bash
sudo docker run --rm -v $(pwd):/usr/src/app -w /usr/src/app sass-container sass novaconium/sass/project.sass novaconium/public/css/novaconium.css
```
Compressed:
-```
-sudo docker run --rm -v $(pwd):/usr/src/app -w /usr/src/app sass-container sass --style=compressed novaconium/sass/project.sass novaconium/public/css/novaconium.css
+```bash
+# Build Novaconium (compressed)
+docker run --rm -v "$(pwd):/usr/src/app" -w /usr/src/app sass-container --style=compressed sass/novaconium.sass skeleton/novaconium/public/css/novaconium.css
+
```
\ No newline at end of file
diff --git a/sass/Dockerfile b/sass/Dockerfile
new file mode 100644
index 0000000..f7cfa23
--- /dev/null
+++ b/sass/Dockerfile
@@ -0,0 +1,12 @@
+# Use an official Node.js image as a base
+FROM node:16-slim
+
+# Install Sass globally
+RUN npm install -g sass \
+ && npm cache clean --force
+
+# Set working directory inside container
+WORKDIR /usr/src/app
+
+# Set entrypoint to Sass CLI
+ENTRYPOINT ["sass"]
diff --git a/sass/base/_background.sass b/sass/base/_background.sass
index 4454b18..378a09e 100644
--- a/sass/base/_background.sass
+++ b/sass/base/_background.sass
@@ -1,6 +1,6 @@
// base/_background.sass
// svg from https://heropatterns.com/
-body
+body.novaconium
background-color: #000000;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 304 304' width='304' height='304'%3E%3Cpath fill='%231f2c17' fill-opacity='0.4' d='M44.1 224a5 5 0 1 1 0 2H0v-2h44.1zm160 48a5 5 0 1 1 0 2H82v-2h122.1zm57.8-46a5 5 0 1 1 0-2H304v2h-42.1zm0 16a5 5 0 1 1 0-2H304v2h-42.1zm6.2-114a5 5 0 1 1 0 2h-86.2a5 5 0 1 1 0-2h86.2zm-256-48a5 5 0 1 1 0 2H0v-2h12.1zm185.8 34a5 5 0 1 1 0-2h86.2a5 5 0 1 1 0 2h-86.2zM258 12.1a5 5 0 1 1-2 0V0h2v12.1zm-64 208a5 5 0 1 1-2 0v-54.2a5 5 0 1 1 2 0v54.2zm48-198.2V80h62v2h-64V21.9a5 5 0 1 1 2 0zm16 16V64h46v2h-48V37.9a5 5 0 1 1 2 0zm-128 96V208h16v12.1a5 5 0 1 1-2 0V210h-16v-76.1a5 5 0 1 1 2 0zm-5.9-21.9a5 5 0 1 1 0 2H114v48H85.9a5 5 0 1 1 0-2H112v-48h12.1zm-6.2 130a5 5 0 1 1 0-2H176v-74.1a5 5 0 1 1 2 0V242h-60.1zm-16-64a5 5 0 1 1 0-2H114v48h10.1a5 5 0 1 1 0 2H112v-48h-10.1zM66 284.1a5 5 0 1 1-2 0V274H50v30h-2v-32h18v12.1zM236.1 176a5 5 0 1 1 0 2H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30a5 5 0 1 1 0-2H274v44.1a5 5 0 1 1-2 0V146h-10.1zm-64 96a5 5 0 1 1 0-2H208v-80h16v-14h-42.1a5 5 0 1 1 0-2H226v18h-16v80h-12.1zm86.2-210a5 5 0 1 1 0 2H272V0h2v32h10.1zM98 101.9V146H53.9a5 5 0 1 1 0-2H96v-42.1a5 5 0 1 1 2 0zM53.9 34a5 5 0 1 1 0-2H80V0h2v34H53.9zm60.1 3.9V66H82v64H69.9a5 5 0 1 1 0-2H80V64h32V37.9a5 5 0 1 1 2 0zM101.9 82a5 5 0 1 1 0-2H128V37.9a5 5 0 1 1 2 0V82h-28.1zm16-64a5 5 0 1 1 0-2H146v44.1a5 5 0 1 1-2 0V18h-26.1zm102.2 270a5 5 0 1 1 0 2H98v14h-2v-16h124.1zM242 149.9V160h16v34h-16v62h48v48h-2v-46h-48v-66h16v-30h-16v-12.1a5 5 0 1 1 2 0zM53.9 18a5 5 0 1 1 0-2H64V2H48V0h18v18H53.9zm112 32a5 5 0 1 1 0-2H192V0h50v2h-48v48h-28.1zm-48-48a5 5 0 0 1-9.8-2h2.07a3 3 0 1 0 5.66 0H178v34h-18V21.9a5 5 0 1 1 2 0V32h14V2h-58.1zm0 96a5 5 0 1 1 0-2H137l32-32h39V21.9a5 5 0 1 1 2 0V66h-40.17l-32 32H117.9zm28.1 90.1a5 5 0 1 1-2 0v-76.51L175.59 80H224V21.9a5 5 0 1 1 2 0V82h-49.59L146 112.41v75.69zm16 32a5 5 0 1 1-2 0v-99.51L184.59 96H300.1a5 5 0 0 1 3.9-3.9v2.07a3 3 0 0 0 0 5.66v2.07a5 5 0 0 1-3.9-3.9H185.41L162 121.41v98.69zm-144-64a5 5 0 1 1-2 0v-3.51l48-48V48h32V0h2v50H66v55.41l-48 48v2.69zM50 53.9v43.51l-48 48V208h26.1a5 5 0 1 1 0 2H0v-65.41l48-48V53.9a5 5 0 1 1 2 0zm-16 16V89.41l-34 34v-2.82l32-32V69.9a5 5 0 1 1 2 0zM12.1 32a5 5 0 1 1 0 2H9.41L0 43.41V40.6L8.59 32h3.51zm265.8 18a5 5 0 1 1 0-2h18.69l7.41-7.41v2.82L297.41 50H277.9zm-16 160a5 5 0 1 1 0-2H288v-71.41l16-16v2.82l-14 14V210h-28.1zm-208 32a5 5 0 1 1 0-2H64v-22.59L40.59 194H21.9a5 5 0 1 1 0-2H41.41L66 216.59V242H53.9zm150.2 14a5 5 0 1 1 0 2H96v-56.6L56.6 162H37.9a5 5 0 1 1 0-2h19.5L98 200.6V256h106.1zm-150.2 2a5 5 0 1 1 0-2H80v-46.59L48.59 178H21.9a5 5 0 1 1 0-2H49.41L82 208.59V258H53.9zM34 39.8v1.61L9.41 66H0v-2h8.59L32 40.59V0h2v39.8zM2 300.1a5 5 0 0 1 3.9 3.9H3.83A3 3 0 0 0 0 302.17V256h18v48h-2v-46H2v42.1zM34 241v63h-2v-62H0v-2h34v1zM17 18H0v-2h16V0h2v18h-1zm273-2h14v2h-16V0h2v16zm-32 273v15h-2v-14h-14v14h-2v-16h18v1zM0 92.1A5.02 5.02 0 0 1 6 97a5 5 0 0 1-6 4.9v-2.07a3 3 0 1 0 0-5.66V92.1zM80 272h2v32h-2v-32zm37.9 32h-2.07a3 3 0 0 0-5.66 0h-2.07a5 5 0 0 1 9.8 0zM5.9 0A5.02 5.02 0 0 1 0 5.9V3.83A3 3 0 0 0 3.83 0H5.9zm294.2 0h2.07A3 3 0 0 0 304 3.83V5.9a5 5 0 0 1-3.9-5.9zm3.9 300.1v2.07a3 3 0 0 0-1.83 1.83h-2.07a5 5 0 0 1 3.9-3.9zM97 100a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-48 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 96a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-144a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM49 36a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM33 68a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 240a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm80-176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm112 176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 180a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 84a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'%3E%3C/path%3E%3C/svg%3E")
\ No newline at end of file
diff --git a/sass/framework/_forms.sass b/sass/framework/_forms.sass
index 6960820..8cb500f 100644
--- a/sass/framework/_forms.sass
+++ b/sass/framework/_forms.sass
@@ -3,59 +3,60 @@
@use '../abstracts' as *
@use '../base' as *
-#edit-page-form-novaconium
- // Form groups: Spacing
- .form-group
- margin-bottom: space('md') // 1rem
+body.novaconium
+ #edit-page-form-novaconium
+ // Form groups: Spacing
+ .form-group
+ margin-bottom: space('md') // 1rem
- &.fullwidth textarea
- width: 100%
- resize: vertical
+ &.fullwidth textarea
+ width: 100%
+ resize: vertical
- .checkbox-group
- margin-top: space('lg') // 1.5rem
+ .checkbox-group
+ margin-top: space('lg') // 1.5rem
- // Inputs: Dark bg, green focus
- input[type="text"],
- input[type="number"],
- textarea,
- select
- background-color: color('bg-darker') // Deeper green-black
- border: 1px solid color('border-light')
- color: $text-light
- padding: space('sm')
- border-radius: 4px
- font-family: 'VT323', $mono-font // Matrix monospace
+ // Inputs: Dark bg, green focus
+ input[type="text"],
+ input[type="number"],
+ textarea,
+ select
+ background-color: color('bg-darker') // Deeper green-black
+ border: 1px solid color('border-light')
+ color: $text-light
+ padding: space('sm')
+ border-radius: 4px
+ font-family: 'VT323', $mono-font // Matrix monospace
- &:focus
- border-color: $accent-light // Lime focus
- box-shadow: 0 0 0 space('xs') rgba($accent-light, 0.3) // Glow ring
- outline: none
+ &:focus
+ border-color: $accent-light // Lime focus
+ box-shadow: 0 0 0 space('xs') rgba($accent-light, 0.3) // Glow ring
+ outline: none
- input[type="checkbox"]
- accent-color: $accent-light // Green checkbox
+ input[type="checkbox"]
+ accent-color: $accent-light // Green checkbox
- // Submit button: Green primary
- button[type="submit"]
- background-color: $accent-light
- color: color('bg-dark') // Dark text on green
- border: none
- padding: space('sm') space('md')
- border-radius: 4px
- cursor: pointer
- font-family: 'VT323', $mono-font
+ // Submit button: Green primary
+ button[type="submit"]
+ background-color: $accent-light
+ color: color('bg-dark') // Dark text on green
+ border: none
+ padding: space('sm') space('md')
+ border-radius: 4px
+ cursor: pointer
+ font-family: 'VT323', $mono-font
- &:hover, &:focus
- background-color: hsl(120, 100%, 30%) // Darker green (35% L -5%)
- box-shadow: 0 0 4px rgba($accent-light, 0.5)
+ &:hover, &:focus
+ background-color: hsl(120, 100%, 30%) // Darker green (35% L -5%)
+ box-shadow: 0 0 4px rgba($accent-light, 0.5)
- // Text/links: Muted with hover
- p
- color: $text-muted
+ // Text/links: Muted with hover
+ p
+ color: $text-muted
- a
- color: $accent-light
+ a
+ color: $accent-light
- &:hover
- color: $text-lighter // Brighter green
- text-decoration: underline
\ No newline at end of file
+ &:hover
+ color: $text-lighter // Brighter green
+ text-decoration: underline
\ No newline at end of file
diff --git a/sass/framework/_login_form.sass b/sass/framework/_login_form.sass
index 8539c11..b88c8b4 100644
--- a/sass/framework/_login_form.sass
+++ b/sass/framework/_login_form.sass
@@ -2,7 +2,7 @@
@use '../abstracts' as *
-#login
+body.novaconium #login
// No background or border—use parent's ambient styling
padding: 0 // Or keep minimal if needed; adjust to 2rem if you want internal space
// No centering: left-aligned by default
diff --git a/sass/framework/_logo.sass b/sass/framework/_logo.sass
index 4ac8955..e112e60 100644
--- a/sass/framework/_logo.sass
+++ b/sass/framework/_logo.sass
@@ -1,78 +1,79 @@
-#biglogo
- position: relative
- display: inline-block
- padding: 20px 0
- border-radius: 0 // Keep it sharp, no curves
- overflow: hidden
+body.novaconium
+ #biglogo
+ position: relative
+ display: inline-block
+ padding: 20px 0
+ border-radius: 0 // Keep it sharp, no curves
+ overflow: hidden
- &::before
- content: ''
- position: absolute
- top: 0
- left: 0
- right: 0
- bottom: 0
- background-image: linear-gradient(rgba(0, 255, 0, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 0, 0.02) 1px, transparent 1px)
- background-size: 20px 20px
- opacity: 0.1 // Subtle grid/matrix rain hint
- pointer-events: none
+ &::before
+ content: ''
+ position: absolute
+ top: 0
+ left: 0
+ right: 0
+ bottom: 0
+ background-image: linear-gradient(rgba(0, 255, 0, 0.02) 1px, transparent 1px), linear-gradient(90deg, rgba(0, 255, 0, 0.02) 1px, transparent 1px)
+ background-size: 20px 20px
+ opacity: 0.1 // Subtle grid/matrix rain hint
+ pointer-events: none
- // Scan lines for extra flicker
- &::after
- content: ''
- position: absolute
- top: 0
- left: 0
- right: 0
- height: 1px
- background: linear-gradient(90deg, transparent, #00ff00, transparent)
- opacity: 0.05
- animation: scan 3s linear infinite
+ // Scan lines for extra flicker
+ &::after
+ content: ''
+ position: absolute
+ top: 0
+ left: 0
+ right: 0
+ height: 1px
+ background: linear-gradient(90deg, transparent, #00ff00, transparent)
+ opacity: 0.05
+ animation: scan 3s linear infinite
- .main
- display: block
- font-family: 'Orbitron', sans-serif // Cyberpunk geometric punch
- font-size: 4.5rem // Chunky figlet scale
- font-weight: 900 // Black weight for max angular depth
- color: #fff
- letter-spacing: 0.1em // Slightly looser for Orbitron's geometry
- line-height: 0.85 // Compact height like figlet blocks
- text-transform: uppercase
-
- // Multi-layer shadow to mimic ansishadow's depth: base shadow + edge glow
- text-shadow: 4px 4px 0 #222, 5px 5px 0 #111, -1px -1px 0 #00ff00, 1px 1px 20px rgba(0, 255, 0, 0.3) // Main drop shadow, deeper offset, subtle green edge highlight for cyber pop, glow for security flair
- filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.8)) // Browser shadow boost
-
- .sub
- display: block
- font-family: 'Orbitron', sans-serif // Match for cohesion, or swap to monospace if you want contrast
- font-size: 2.5rem
- font-weight: 700 // Bold but not overpowering
- color: #fff
- letter-spacing: 0.15em // Wider for emphasis
- margin-top: 0.5rem
- text-shadow: 2px 2px 0 #222, -1px -1px 0 #00ff00, 1px 1px 10px rgba(0, 255, 0, 0.2) // Lighter shadow, subtle green edge, glow
- filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.6))
-
- // Optional: Glitch animation on hover for that hacked feel
- &:hover
.main
- animation: glitch 0.3s infinite
+ display: block
+ font-family: 'Orbitron', sans-serif // Cyberpunk geometric punch
+ font-size: 4.5rem // Chunky figlet scale
+ font-weight: 900 // Black weight for max angular depth
+ color: #fff
+ letter-spacing: 0.1em // Slightly looser for Orbitron's geometry
+ line-height: 0.85 // Compact height like figlet blocks
+ text-transform: uppercase
+
+ // Multi-layer shadow to mimic ansishadow's depth: base shadow + edge glow
+ text-shadow: 4px 4px 0 #222, 5px 5px 0 #111, -1px -1px 0 #00ff00, 1px 1px 20px rgba(0, 255, 0, 0.3) // Main drop shadow, deeper offset, subtle green edge highlight for cyber pop, glow for security flair
+ filter: drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.8)) // Browser shadow boost
-@keyframes scan
- 0%
- top: -1px
- 100%
- top: 100%
+ .sub
+ display: block
+ font-family: 'Orbitron', sans-serif // Match for cohesion, or swap to monospace if you want contrast
+ font-size: 2.5rem
+ font-weight: 700 // Bold but not overpowering
+ color: #fff
+ letter-spacing: 0.15em // Wider for emphasis
+ margin-top: 0.5rem
+ text-shadow: 2px 2px 0 #222, -1px -1px 0 #00ff00, 1px 1px 10px rgba(0, 255, 0, 0.2) // Lighter shadow, subtle green edge, glow
+ filter: drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.6))
-@keyframes glitch
- 0%, 100%
- transform: translate(0)
- 20%
- transform: translate(-2px, 2px)
- 40%
- transform: translate(-2px, -2px)
- 60%
- transform: translate(2px, 2px)
- 80%
- transform: translate(2px, -2px)
\ No newline at end of file
+ // Optional: Glitch animation on hover for that hacked feel
+ &:hover
+ .main
+ animation: glitch 0.3s infinite
+
+ @keyframes scan
+ 0%
+ top: -1px
+ 100%
+ top: 100%
+
+ @keyframes glitch
+ 0%, 100%
+ transform: translate(0)
+ 20%
+ transform: translate(-2px, 2px)
+ 40%
+ transform: translate(-2px, -2px)
+ 60%
+ transform: translate(2px, 2px)
+ 80%
+ transform: translate(2px, -2px)
\ No newline at end of file
diff --git a/sass/framework/_main.sass b/sass/framework/_main.sass
index 4159cfb..1dcdebb 100644
--- a/sass/framework/_main.sass
+++ b/sass/framework/_main.sass
@@ -3,59 +3,60 @@
@use '../abstracts' as *
@use '../base' as *
-// Main page wrapper: Centered flex
-#page .container
- display: flex
- padding: 0
- justify-content: center
- align-items: flex-start
- padding-top: space('lg')
-
-// Article content: Fixed width, no shrink
-article
- width: 1140px
- flex-shrink: 0
- padding: 3rem
- margin: 0
- background-color: $bg-dark
- border: 1px solid $bg-darker
-
-ul#leftnav
- width: 320px
- flex-shrink: 0
- list-style: none
- padding: 0
- margin: 0 space('xl') 0 0 // Right margin preserved (overrides the 0 for other sides)
- background-color: $bg-dark
- border: 1px solid $bg-darker
-
-#leftnav li
- border-bottom: 1px solid color('border-light')
-
- &:last-child
- border-bottom: none
-
-#leftnav a
- display: block
- padding: space('sm') space('md') // Consistent spacing
- text-decoration: none
- color: $text-light // Theme text
-
- &:hover, &:focus
- background-color: rgba($accent-light, 0.1) // Green hover tint
- color: $accent-light // Accent on hover
- border-radius: 4px
-
-// Responsive: Stack on mobile (add to themes/ for media queries)
-@media (max-width: 1280px) // Your xl breakpoint
+body.novaconium
+ // Main page wrapper: Centered flex
#page .container
- flex-direction: column
- align-items: center
+ display: flex
+ padding: 0
+ justify-content: center
+ align-items: flex-start
+ padding-top: space('lg')
- article, #leftnav
- width: 100%
- max-width: 900px
- margin: space('md') 0
+ // Article content: Fixed width, no shrink
+ article
+ width: 1140px
+ flex-shrink: 0
+ padding: 3rem
+ margin: 0
+ background-color: $bg-dark
+ border: 1px solid $bg-darker
- #leftnav
- margin-right: 0
\ No newline at end of file
+ ul#leftnav
+ width: 320px
+ flex-shrink: 0
+ list-style: none
+ padding: 0
+ margin: 0 space('xl') 0 0 // Right margin preserved (overrides the 0 for other sides)
+ background-color: $bg-dark
+ border: 1px solid $bg-darker
+
+ #leftnav li
+ border-bottom: 1px solid color('border-light')
+
+ &:last-child
+ border-bottom: none
+
+ #leftnav a
+ display: block
+ padding: space('sm') space('md') // Consistent spacing
+ text-decoration: none
+ color: $text-light // Theme text
+
+ &:hover, &:focus
+ background-color: rgba($accent-light, 0.1) // Green hover tint
+ color: $accent-light // Accent on hover
+ border-radius: 4px
+
+ // Responsive: Stack on mobile (add to themes/ for media queries)
+ @media (max-width: 1280px) // Your xl breakpoint
+ #page .container
+ flex-direction: column
+ align-items: center
+
+ article, #leftnav
+ width: 100%
+ max-width: 900px
+ margin: space('md') 0
+
+ #leftnav
+ margin-right: 0
\ No newline at end of file
diff --git a/sass/framework/_tabs.sass b/sass/framework/_tabs.sass
index a2af2f8..6c2bd83 100644
--- a/sass/framework/_tabs.sass
+++ b/sass/framework/_tabs.sass
@@ -3,46 +3,47 @@
@use '../abstracts' as *
@use 'sass:color' // For color.adjust()—non-deprecated color tweaks
-// Simplified tab styling: Square borders, no rounds
-.tab-container
- margin: space('lg') auto
- background: $bg-dark
+body.novaconium
+ // Simplified tab styling: Square borders, no rounds
+ .tab-container
+ margin: space('lg') auto
+ background: $bg-dark
-.tab-nav
- display: flex
- background-color: $bg-darker
- border-bottom: 1px solid $border-light
+ .tab-nav
+ display: flex
+ background-color: $bg-darker
+ border-bottom: 1px solid $border-light
-.tab-button
- padding: space('sm') space('md')
- background: $bg-darker
- border: 1px solid $border-light
- border-bottom: none
- cursor: pointer
- font-size: 14px
- min-width: 120px // Makes them more square/equal
- text-align: center
- color: $text-light
- font-family: $mono-font // From vars
+ .tab-button
+ padding: space('sm') space('md')
+ background: $bg-darker
+ border: 1px solid $border-light
+ border-bottom: none
+ cursor: pointer
+ font-size: 14px
+ min-width: 120px // Makes them more square/equal
+ text-align: center
+ color: $text-light
+ font-family: $mono-font // From vars
- &:hover
- background-color: color.adjust($bg-darker, $lightness: 5%) // Modern, non-deprecated lighten equivalent
+ &:hover
+ background-color: color.adjust($bg-darker, $lightness: 5%) // Modern, non-deprecated lighten equivalent
- + .tab-button
- border-left: none // Shared borders
+ + .tab-button
+ border-left: none // Shared borders
- &.active
+ &.active
+ background-color: $bg-dark
+ border-bottom: 2px solid $accent-light
+ color: $accent-light
+ font-weight: bold
+
+ .tab-content
+ display: none
+ padding: space('lg')
background-color: $bg-dark
- border-bottom: 2px solid $accent-light
- color: $accent-light
- font-weight: bold
+ color: $text-light
+ border: none
-.tab-content
- display: none
- padding: space('lg')
- background-color: $bg-dark
- color: $text-light
- border: none
-
- &.active
- display: block
+ &.active
+ display: block
diff --git a/sass/framework/_tags.sass b/sass/framework/_tags.sass
index 82c6319..3c3b329 100644
--- a/sass/framework/_tags.sass
+++ b/sass/framework/_tags.sass
@@ -2,107 +2,108 @@
@use 'sass:color' // For color.adjust()—non-deprecated color tweaks
@use '../base' as *
-// Tags Dropdown
-.tags-dropdown
- position: absolute
- top: 100%
- left: 0
- right: 0
- max-height: 200px
- overflow-y: auto
- background: $bg-darker
- border: 1px solid $border-light
- border-top: none
- border-radius: 0 0 4px 4px
- list-style: none
- margin: 0
- padding: 0
- z-index: 10
- opacity: 0
- visibility: hidden
- transition: opacity 0.2s
-
- &[aria-expanded="true"]
- opacity: 1
- visibility: visible
-
- li
- padding: space('xs') space('sm')
- cursor: pointer
- color: $text-light
- font-size: 14px
- border-bottom: 1px solid transparent
-
- &:hover,
- &.selected
- background: color.adjust($accent-light, $alpha: -0.1)
- color: $accent-light
-
- &:last-child
- border-bottom: none
-
-.tags-input
- position: relative // For absolute dropdown
-
-// Tags Input
-.tags-input
- display: flex
- flex-wrap: wrap
- gap: space('xs')
- align-items: center
- border: 1px solid $border-light
- padding: space('xs')
- background: $bg-darker
- min-height: 40px
- grid-column: 2 // Spans input area in .form-row grid
-
- input
- border: none
- background: transparent
- color: $text-light
- font-family: $mono-font
- font-size: 14px
- flex: 1
- min-width: 100px
- outline: none
-
- &::placeholder
- color: $text-muted
-
-.tag-chip
- display: inline-flex
- align-items: center
- background: color.adjust($accent-light, $alpha: -0.2)
- color: $accent-light
- padding: space('xs') space('sm')
- border-radius: 4px
- font-size: 12px
- max-width: 150px
- overflow: hidden
- text-overflow: ellipsis
- white-space: nowrap
-
- .tag-remove
- background: none
- border: none
- color: inherit
- font-size: 16px
- margin-left: space('xs')
- cursor: pointer
+body.novaconium
+ // Tags Dropdown
+ .tags-dropdown
+ position: absolute
+ top: 100%
+ left: 0
+ right: 0
+ max-height: 200px
+ overflow-y: auto
+ background: $bg-darker
+ border: 1px solid $border-light
+ border-top: none
+ border-radius: 0 0 4px 4px
+ list-style: none
+ margin: 0
padding: 0
- line-height: 1
+ z-index: 10
+ opacity: 0
+ visibility: hidden
+ transition: opacity 0.2s
- &:hover
- opacity: 0.7
+ &[aria-expanded="true"]
+ opacity: 1
+ visibility: visible
-// Tags Autocomplete (native datalist styling)
-.tags-input input[list]
- // Existing input styles apply...
+ li
+ padding: space('xs') space('sm')
+ cursor: pointer
+ color: $text-light
+ font-size: 14px
+ border-bottom: 1px solid transparent
-#tag-suggestions
- // Native datalist not directly stylable, but options can be influenced via input focus
- // For custom polyfill, add JS-generated
, but native is fine for now
+ &:hover,
+ &.selected
+ background: color.adjust($accent-light, $alpha: -0.1)
+ color: $accent-light
-// Browser-specific tweaks (Chrome/Firefox)
-.tags-input input[list]::-webkit-calendar-picker-indicator
- display: none // Hide arrow if interfering
\ No newline at end of file
+ &:last-child
+ border-bottom: none
+
+ .tags-input
+ position: relative // For absolute dropdown
+
+ // Tags Input
+ .tags-input
+ display: flex
+ flex-wrap: wrap
+ gap: space('xs')
+ align-items: center
+ border: 1px solid $border-light
+ padding: space('xs')
+ background: $bg-darker
+ min-height: 40px
+ grid-column: 2 // Spans input area in .form-row grid
+
+ input
+ border: none
+ background: transparent
+ color: $text-light
+ font-family: $mono-font
+ font-size: 14px
+ flex: 1
+ min-width: 100px
+ outline: none
+
+ &::placeholder
+ color: $text-muted
+
+ .tag-chip
+ display: inline-flex
+ align-items: center
+ background: color.adjust($accent-light, $alpha: -0.2)
+ color: $accent-light
+ padding: space('xs') space('sm')
+ border-radius: 4px
+ font-size: 12px
+ max-width: 150px
+ overflow: hidden
+ text-overflow: ellipsis
+ white-space: nowrap
+
+ .tag-remove
+ background: none
+ border: none
+ color: inherit
+ font-size: 16px
+ margin-left: space('xs')
+ cursor: pointer
+ padding: 0
+ line-height: 1
+
+ &:hover
+ opacity: 0.7
+
+ // Tags Autocomplete (native datalist styling)
+ .tags-input input[list]
+ // Existing input styles apply...
+
+ #tag-suggestions
+ // Native datalist not directly stylable, but options can be influenced via input focus
+ // For custom polyfill, add JS-generated , but native is fine for now
+
+ // Browser-specific tweaks (Chrome/Firefox)
+ .tags-input input[list]::-webkit-calendar-picker-indicator
+ display: none // Hide arrow if interfering
\ No newline at end of file
diff --git a/sass/framework/_tooltip.sass b/sass/framework/_tooltip.sass
index 4a8c1cd..80a8f05 100644
--- a/sass/framework/_tooltip.sass
+++ b/sass/framework/_tooltip.sass
@@ -2,46 +2,47 @@
@use '../base' as *
@use 'sass:color' // Already there for adjusts
-// Tooltip styling (mouse-follow version)
-.tooltip
- position: relative
- display: inline-block
- cursor: help
- font-size: 16px
- color: $accent-light // Green accent for ?
- margin-left: space('xs') // 0.25rem
- top: 2px
+body.novaconium
+ // Tooltip styling (mouse-follow version)
+ .tooltip
+ position: relative
+ display: inline-block
+ cursor: help
+ font-size: 16px
+ color: $accent-light // Green accent for ?
+ margin-left: space('xs') // 0.25rem
+ top: 2px
- .tooltiptext
- visibility: hidden
- width: 200px
- background-color: $bg-darker // Darker bg
- color: $text-light // White text
- text-align: left // Changed to left-align for better readability
- border-radius: 0 // Square
- padding: space('sm') // 0.5rem
- position: fixed // Fixed to viewport, updated by JS
- z-index: z('dropdown') // High z-index
- opacity: 0
- transition: opacity 0.3s
- font-size: 14px
- box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) // Subtle shadow
- pointer-events: none // Prevents mouse interference with tooltip
+ .tooltiptext
+ visibility: hidden
+ width: 200px
+ background-color: $bg-darker // Darker bg
+ color: $text-light // White text
+ text-align: left // Changed to left-align for better readability
+ border-radius: 0 // Square
+ padding: space('sm') // 0.5rem
+ position: fixed // Fixed to viewport, updated by JS
+ z-index: z('dropdown') // High z-index
+ opacity: 0
+ transition: opacity 0.3s
+ font-size: 14px
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2) // Subtle shadow
+ pointer-events: none // Prevents mouse interference with tooltip
- &::after
- content: ""
- position: absolute
- top: -5px // Arrow above tooltip (points up to mouse)
- left: 10px // Slight indent from left edge
- border-width: 5px
- border-style: solid
- border-color: $bg-darker transparent transparent transparent // Upward arrow
+ &::after
+ content: ""
+ position: absolute
+ top: -5px // Arrow above tooltip (points up to mouse)
+ left: 10px // Slight indent from left edge
+ border-width: 5px
+ border-style: solid
+ border-color: $bg-darker transparent transparent transparent // Upward arrow
- &:hover .tooltiptext
- visibility: visible
- opacity: 1
+ &:hover .tooltiptext
+ visibility: visible
+ opacity: 1
-// Accessibility: Hidden tooltip text for screen readers
-.tooltip-desc
- position: absolute
- left: -9999px
\ No newline at end of file
+ // Accessibility: Hidden tooltip text for screen readers
+ .tooltip-desc
+ position: absolute
+ left: -9999px
\ No newline at end of file
diff --git a/sass/framework/_ui.sass b/sass/framework/_ui.sass
index 3ac3e24..32d35bc 100644
--- a/sass/framework/_ui.sass
+++ b/sass/framework/_ui.sass
@@ -3,56 +3,57 @@
@use '../abstracts' as *
@use '../base' as *
-// Code blocks: Monospace lock-in with darker green tint
-code
- font-family: 'VT323', $mono-font // Prioritize Matrix font
- font-size: 0.875rem // Smaller for inline; reset has base
- background-color: color('bg-darker') // Deeper green-black
- color: $text-light // Lighter green text
- padding: space('xs') space('sm')
- border-radius: 4px
- border: 1px solid color('border-light')
- box-shadow: 0 0 2px rgba($accent-light, 0.1) // Subtle glow
-
-// Utility: Small text (if still needed; consider rem-based)
-.small
- font-size: 0.625rem // 10px equiv; use sparingly
-
-// Error/notice divs: Centered alerts with theme colors
-div.error, div.notice, div#debug
- margin: space('xl') auto // Top/bottom spacing from map
- width: 900px // Fixed width; add media query for mobile later
- padding: space('lg') // Generous padding
- border-radius: 6px
- border: 1px solid
-
-div.error
- background-color: rgba(color('accent-error'), 0.1) // Subtle red tint
- color: color('accent-error') // Darker red text
- border-color: color('accent-error')
-
-div.notice
- background-color: rgba(color('accent-success'), 0.1) // Green tint
- color: color('accent-success') // Heavier green text
- border-color: color('accent-success')
-
-div#debug
- background-color: color('bg-darker') // Deeper bg for debug
- color: $text-muted // Muted green
- border-color: color('border-light')
- margin-top: space('2xl')
- margin-bottom: space('2xl')
-
-// Tables: Simplified; reset handles collapse/padding
-.pages-table
- width: 100%
- border: 1px solid color('border-light') // Green border
-
- th, td
+body.novaconium
+ // Code blocks: Monospace lock-in with darker green tint
+ code
+ font-family: 'VT323', $mono-font // Prioritize Matrix font
+ font-size: 0.875rem // Smaller for inline; reset has base
+ background-color: color('bg-darker') // Deeper green-black
+ color: $text-light // Lighter green text
+ padding: space('xs') space('sm')
+ border-radius: 4px
border: 1px solid color('border-light')
- text-align: left
+ box-shadow: 0 0 2px rgba($accent-light, 0.1) // Subtle glow
- th
- background-color: rgba($accent-light, 0.05) // Subtle accent bg
- color: $text-lighter // Header green
- font-weight: 600 // Semi-bold; no bold in monospace
\ No newline at end of file
+ // Utility: Small text (if still needed; consider rem-based)
+ .small
+ font-size: 0.625rem // 10px equiv; use sparingly
+
+ // Error/notice divs: Centered alerts with theme colors
+ div.error, div.notice, div#debug
+ margin: space('xl') auto // Top/bottom spacing from map
+ width: 900px // Fixed width; add media query for mobile later
+ padding: space('lg') // Generous padding
+ border-radius: 6px
+ border: 1px solid
+
+ div.error
+ background-color: rgba(color('accent-error'), 0.1) // Subtle red tint
+ color: color('accent-error') // Darker red text
+ border-color: color('accent-error')
+
+ div.notice
+ background-color: rgba(color('accent-success'), 0.1) // Green tint
+ color: color('accent-success') // Heavier green text
+ border-color: color('accent-success')
+
+ div#debug
+ background-color: color('bg-darker') // Deeper bg for debug
+ color: $text-muted // Muted green
+ border-color: color('border-light')
+ margin-top: space('2xl')
+ margin-bottom: space('2xl')
+
+ // Tables: Simplified; reset handles collapse/padding
+ .pages-table
+ width: 100%
+ border: 1px solid color('border-light') // Green border
+
+ th, td
+ border: 1px solid color('border-light')
+ text-align: left
+
+ th
+ background-color: rgba($accent-light, 0.05) // Subtle accent bg
+ color: $text-lighter // Header green
+ font-weight: 600 // Semi-bold; no bold in monospace
\ No newline at end of file
diff --git a/skeleton/novaconium/public/css/novaconium.css b/skeleton/novaconium/public/css/novaconium.css
index b94bd16..2cba0d6 100644
--- a/skeleton/novaconium/public/css/novaconium.css
+++ b/skeleton/novaconium/public/css/novaconium.css
@@ -1 +1 @@
-:root{--bg-dark: hsl(0, 0%, 2%);--bg-darker: hsl(210, 7%, 5%);--text-light: hsl(0, 0%, 100%);--text-lighter: hsl(120, 52%, 15%);--text-muted: hsl(120, 40%, 45%);--accent-light: hsl(120, 100%, 35%);--accent-success: hsl(120, 80%, 45%);--accent-warning: hsl(60, 100%, 35%);--accent-error: hsl(0, 100%, 45%);--border-light: hsla(120, 60%, 70%, 0.2);--font-stack: Courier New, SF Mono, monospace}*{box-sizing:border-box}html{font-size:16px;line-height:1.5;scroll-behavior:smooth;background-color:hsl(0,0%,2%);color:#fff}body{margin:0;padding:0;font-family:"Courier New","SF Mono",monospace;background-color:hsl(0,0%,2%);color:#fff;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-weight:600;line-height:1.2;color:rgb(0,178.5,0)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin:0 0 1em}small{font-size:.875rem}strong,b{font-weight:700}em,i{font-style:italic}a{color:rgb(0,178.5,0);text-decoration:none;border-bottom:1px solid rgba(0,0,0,0);transition:border-color .2s ease}a:hover,a:focus{border-bottom-color:rgb(0,178.5,0);outline:none}ul,ol{margin:0 0 1em;padding-left:1.5em}li{margin-bottom:.25em}blockquote{margin:1em 0;padding:.5em 1em;border-left:4px solid rgb(0,178.5,0);background-color:hsla(0,0%,2%,.5);color:#fff}code,kbd,samp{font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace;font-size:.875em;background-color:hsla(0,0%,100%,.1);padding:.125em .25em;border-radius:3px}pre{margin:1em 0;padding:1em;overflow:auto;background-color:hsla(0,0%,100%,.1);border-radius:4px}pre code{background:none;padding:0}table{width:100%;border-collapse:collapse;margin:1em 0}th,td{padding:.75em;text-align:left;border-bottom:1px solid hsla(0,0%,100%,.2)}th{font-weight:600}input,select,textarea,button{font-family:inherit;font-size:inherit;background-color:hsla(0,0%,100%,.1);color:#fff;border:1px solid hsla(0,0%,100%,.3);border-radius:4px;padding:.5em}input:focus,select:focus,textarea:focus,button:focus{outline:none;border-color:rgb(0,178.5,0);box-shadow:0 0 0 2px rgba(0,178.5,0,.2)}button{cursor:pointer;transition:background-color .2s ease}button:disabled{opacity:.5;cursor:not-allowed}img{max-width:100%;height:auto;border-radius:4px}figure{margin:1em 0}hr{border:none;height:1px;background-color:hsla(0,0%,100%,.2);margin:2em 0}*:focus-visible{outline:2px solid rgb(0,178.5,0);outline-offset:2px}@media print{body{background:#fff !important;color:#000 !important}}::selection{background:rgba(0,178.5,0,.3);color:#fff}*::-moz-selection{background:rgba(0,178.5,0,.3);color:#fff}body{background-color:#000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 304 304' width='304' height='304'%3E%3Cpath fill='%231f2c17' fill-opacity='0.4' d='M44.1 224a5 5 0 1 1 0 2H0v-2h44.1zm160 48a5 5 0 1 1 0 2H82v-2h122.1zm57.8-46a5 5 0 1 1 0-2H304v2h-42.1zm0 16a5 5 0 1 1 0-2H304v2h-42.1zm6.2-114a5 5 0 1 1 0 2h-86.2a5 5 0 1 1 0-2h86.2zm-256-48a5 5 0 1 1 0 2H0v-2h12.1zm185.8 34a5 5 0 1 1 0-2h86.2a5 5 0 1 1 0 2h-86.2zM258 12.1a5 5 0 1 1-2 0V0h2v12.1zm-64 208a5 5 0 1 1-2 0v-54.2a5 5 0 1 1 2 0v54.2zm48-198.2V80h62v2h-64V21.9a5 5 0 1 1 2 0zm16 16V64h46v2h-48V37.9a5 5 0 1 1 2 0zm-128 96V208h16v12.1a5 5 0 1 1-2 0V210h-16v-76.1a5 5 0 1 1 2 0zm-5.9-21.9a5 5 0 1 1 0 2H114v48H85.9a5 5 0 1 1 0-2H112v-48h12.1zm-6.2 130a5 5 0 1 1 0-2H176v-74.1a5 5 0 1 1 2 0V242h-60.1zm-16-64a5 5 0 1 1 0-2H114v48h10.1a5 5 0 1 1 0 2H112v-48h-10.1zM66 284.1a5 5 0 1 1-2 0V274H50v30h-2v-32h18v12.1zM236.1 176a5 5 0 1 1 0 2H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30a5 5 0 1 1 0-2H274v44.1a5 5 0 1 1-2 0V146h-10.1zm-64 96a5 5 0 1 1 0-2H208v-80h16v-14h-42.1a5 5 0 1 1 0-2H226v18h-16v80h-12.1zm86.2-210a5 5 0 1 1 0 2H272V0h2v32h10.1zM98 101.9V146H53.9a5 5 0 1 1 0-2H96v-42.1a5 5 0 1 1 2 0zM53.9 34a5 5 0 1 1 0-2H80V0h2v34H53.9zm60.1 3.9V66H82v64H69.9a5 5 0 1 1 0-2H80V64h32V37.9a5 5 0 1 1 2 0zM101.9 82a5 5 0 1 1 0-2H128V37.9a5 5 0 1 1 2 0V82h-28.1zm16-64a5 5 0 1 1 0-2H146v44.1a5 5 0 1 1-2 0V18h-26.1zm102.2 270a5 5 0 1 1 0 2H98v14h-2v-16h124.1zM242 149.9V160h16v34h-16v62h48v48h-2v-46h-48v-66h16v-30h-16v-12.1a5 5 0 1 1 2 0zM53.9 18a5 5 0 1 1 0-2H64V2H48V0h18v18H53.9zm112 32a5 5 0 1 1 0-2H192V0h50v2h-48v48h-28.1zm-48-48a5 5 0 0 1-9.8-2h2.07a3 3 0 1 0 5.66 0H178v34h-18V21.9a5 5 0 1 1 2 0V32h14V2h-58.1zm0 96a5 5 0 1 1 0-2H137l32-32h39V21.9a5 5 0 1 1 2 0V66h-40.17l-32 32H117.9zm28.1 90.1a5 5 0 1 1-2 0v-76.51L175.59 80H224V21.9a5 5 0 1 1 2 0V82h-49.59L146 112.41v75.69zm16 32a5 5 0 1 1-2 0v-99.51L184.59 96H300.1a5 5 0 0 1 3.9-3.9v2.07a3 3 0 0 0 0 5.66v2.07a5 5 0 0 1-3.9-3.9H185.41L162 121.41v98.69zm-144-64a5 5 0 1 1-2 0v-3.51l48-48V48h32V0h2v50H66v55.41l-48 48v2.69zM50 53.9v43.51l-48 48V208h26.1a5 5 0 1 1 0 2H0v-65.41l48-48V53.9a5 5 0 1 1 2 0zm-16 16V89.41l-34 34v-2.82l32-32V69.9a5 5 0 1 1 2 0zM12.1 32a5 5 0 1 1 0 2H9.41L0 43.41V40.6L8.59 32h3.51zm265.8 18a5 5 0 1 1 0-2h18.69l7.41-7.41v2.82L297.41 50H277.9zm-16 160a5 5 0 1 1 0-2H288v-71.41l16-16v2.82l-14 14V210h-28.1zm-208 32a5 5 0 1 1 0-2H64v-22.59L40.59 194H21.9a5 5 0 1 1 0-2H41.41L66 216.59V242H53.9zm150.2 14a5 5 0 1 1 0 2H96v-56.6L56.6 162H37.9a5 5 0 1 1 0-2h19.5L98 200.6V256h106.1zm-150.2 2a5 5 0 1 1 0-2H80v-46.59L48.59 178H21.9a5 5 0 1 1 0-2H49.41L82 208.59V258H53.9zM34 39.8v1.61L9.41 66H0v-2h8.59L32 40.59V0h2v39.8zM2 300.1a5 5 0 0 1 3.9 3.9H3.83A3 3 0 0 0 0 302.17V256h18v48h-2v-46H2v42.1zM34 241v63h-2v-62H0v-2h34v1zM17 18H0v-2h16V0h2v18h-1zm273-2h14v2h-16V0h2v16zm-32 273v15h-2v-14h-14v14h-2v-16h18v1zM0 92.1A5.02 5.02 0 0 1 6 97a5 5 0 0 1-6 4.9v-2.07a3 3 0 1 0 0-5.66V92.1zM80 272h2v32h-2v-32zm37.9 32h-2.07a3 3 0 0 0-5.66 0h-2.07a5 5 0 0 1 9.8 0zM5.9 0A5.02 5.02 0 0 1 0 5.9V3.83A3 3 0 0 0 3.83 0H5.9zm294.2 0h2.07A3 3 0 0 0 304 3.83V5.9a5 5 0 0 1-3.9-5.9zm3.9 300.1v2.07a3 3 0 0 0-1.83 1.83h-2.07a5 5 0 0 1 3.9-3.9zM97 100a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-48 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 96a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-144a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM49 36a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM33 68a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 240a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm80-176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm112 176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 180a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 84a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'%3E%3C/path%3E%3C/svg%3E")}#page .container{display:flex;padding:0;justify-content:center;align-items:flex-start;padding-top:1.5rem}article{width:1140px;flex-shrink:0;padding:3rem;margin:0;background-color:hsl(0,0%,2%);border:1px solid hsl(210,7%,5%)}ul#leftnav{width:320px;flex-shrink:0;list-style:none;padding:0;margin:0 2.5rem 0 0;background-color:hsl(0,0%,2%);border:1px solid hsl(210,7%,5%)}#leftnav li{border-bottom:1px solid hsla(120,60%,70%,.2)}#leftnav li:last-child{border-bottom:none}#leftnav a{display:block;padding:.5rem 1rem;text-decoration:none;color:#fff}#leftnav a:hover,#leftnav a:focus{background-color:rgba(0,178.5,0,.1);color:rgb(0,178.5,0);border-radius:4px}@media(max-width: 1280px){#page .container{flex-direction:column;align-items:center}article,#leftnav{width:100%;max-width:900px;margin:1rem 0}#leftnav{margin-right:0}}code{font-family:"VT323","Courier New","SF Mono","Fira Code",Consolas,monospace;font-size:.875rem;background-color:hsl(210,7%,5%);color:#fff;padding:.25rem .5rem;border-radius:4px;border:1px solid hsla(120,60%,70%,.2);box-shadow:0 0 2px rgba(0,178.5,0,.1)}.small{font-size:.625rem}div.error,div.notice,div#debug{margin:2.5rem auto;width:900px;padding:1.5rem;border-radius:6px;border:1px solid}div.error{background-color:rgba(229.5,0,0,.1);color:rgb(229.5,0,0);border-color:rgb(229.5,0,0)}div.notice{background-color:hsla(120,80%,45%,.1);color:hsl(120,80%,45%);border-color:hsl(120,80%,45%)}div#debug{background-color:hsl(210,7%,5%);color:hsl(120,40%,45%);border-color:hsla(120,60%,70%,.2);margin-top:4rem;margin-bottom:4rem}.pages-table{width:100%;border:1px solid hsla(120,60%,70%,.2)}.pages-table th,.pages-table td{border:1px solid hsla(120,60%,70%,.2);text-align:left}.pages-table th{background-color:rgba(0,178.5,0,.05);color:hsl(120,52%,15%);font-weight:600}#edit-page-form-novaconium .form-group{margin-bottom:1rem}#edit-page-form-novaconium .form-group.fullwidth textarea{width:100%;resize:vertical}#edit-page-form-novaconium .checkbox-group{margin-top:1.5rem}#edit-page-form-novaconium input[type=text],#edit-page-form-novaconium input[type=number],#edit-page-form-novaconium textarea,#edit-page-form-novaconium select{background-color:hsl(210,7%,5%);border:1px solid hsla(120,60%,70%,.2);color:#fff;padding:.5rem;border-radius:4px;font-family:"VT323","Courier New","SF Mono","Fira Code",Consolas,monospace}#edit-page-form-novaconium input[type=text]:focus,#edit-page-form-novaconium input[type=number]:focus,#edit-page-form-novaconium textarea:focus,#edit-page-form-novaconium select:focus{border-color:rgb(0,178.5,0);box-shadow:0 0 0 .25rem rgba(0,178.5,0,.3);outline:none}#edit-page-form-novaconium input[type=checkbox]{accent-color:rgb(0,178.5,0)}#edit-page-form-novaconium button[type=submit]{background-color:rgb(0,178.5,0);color:hsl(0,0%,2%);border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-family:"VT323","Courier New","SF Mono","Fira Code",Consolas,monospace}#edit-page-form-novaconium button[type=submit]:hover,#edit-page-form-novaconium button[type=submit]:focus{background-color:#090;box-shadow:0 0 4px rgba(0,178.5,0,.5)}#edit-page-form-novaconium p{color:hsl(120,40%,45%)}#edit-page-form-novaconium a{color:rgb(0,178.5,0)}#edit-page-form-novaconium a:hover{color:hsl(120,52%,15%);text-decoration:underline}#login{padding:0}#login input[type=text],#login input[type=password],#login button[type=submit]{width:100%;max-width:300px;padding:1rem;margin-bottom:1rem;box-sizing:border-box;font-size:1rem;border:1px solid hsla(120,60%,70%,.2);border-radius:4px;background:hsl(0,0%,2%);color:#fff}#login input[type=text]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:1rem center;background-size:20px;padding-left:3rem}#login input[type=password]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:1rem center;background-size:20px;padding-left:3rem}#login button[type=submit]{background:rgb(0,178.5,0);border-color:rgb(0,178.5,0);cursor:pointer;transition:background .2s}#login button[type=submit]:hover{background:rgb(0,178.5,0);text-shadow:0 0 5px rgba(0,178.5,0,.5)}#login button[type=submit]::after{content:" →";margin-left:.5rem}#biglogo{position:relative;display:inline-block;padding:20px 0;border-radius:0;overflow:hidden}#biglogo::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(0, 255, 0, 0.02) 1px, transparent 1px),linear-gradient(90deg, rgba(0, 255, 0, 0.02) 1px, transparent 1px);background-size:20px 20px;opacity:.1;pointer-events:none}#biglogo::after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent, #00ff00, transparent);opacity:.05;animation:scan 3s linear infinite}#biglogo .main{display:block;font-family:"Orbitron",sans-serif;font-size:4.5rem;font-weight:900;color:#fff;letter-spacing:.1em;line-height:.85;text-transform:uppercase;text-shadow:4px 4px 0 #222,5px 5px 0 #111,-1px -1px 0 lime,1px 1px 20px rgba(0,255,0,.3);filter:drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.8))}#biglogo .sub{display:block;font-family:"Orbitron",sans-serif;font-size:2.5rem;font-weight:700;color:#fff;letter-spacing:.15em;margin-top:.5rem;text-shadow:2px 2px 0 #222,-1px -1px 0 lime,1px 1px 10px rgba(0,255,0,.2);filter:drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.6))}#biglogo:hover .main{animation:glitch .3s infinite}@keyframes scan{0%{top:-1px}100%{top:100%}}@keyframes glitch{0%,100%{transform:translate(0)}20%{transform:translate(-2px, 2px)}40%{transform:translate(-2px, -2px)}60%{transform:translate(2px, 2px)}80%{transform:translate(2px, -2px)}}.tab-container{margin:1.5rem auto;background:hsl(0,0%,2%)}.tab-nav{display:flex;background-color:hsl(210,7%,5%);border-bottom:1px solid hsla(120,60%,70%,.2)}.tab-button{padding:.5rem 1rem;background:hsl(210,7%,5%);border:1px solid hsla(120,60%,70%,.2);border-bottom:none;cursor:pointer;font-size:14px;min-width:120px;text-align:center;color:#fff;font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace}.tab-button:hover{background-color:hsl(210,7%,10%)}.tab-button+.tab-button{border-left:none}.tab-button.active{background-color:hsl(0,0%,2%);border-bottom:2px solid rgb(0,178.5,0);color:rgb(0,178.5,0);font-weight:bold}.tab-content{display:none;padding:1.5rem;background-color:hsl(0,0%,2%);color:#fff;border:none}.tab-content.active{display:block}#edit-page-title{margin-top:2rem}#edit-page-title #title{width:100%;font-size:1.9rem;padding:20px}#edit-page-title>div{font-size:.8rem;margin:8px 0 0 20px}.tooltip{position:relative;display:inline-block;cursor:help;font-size:16px;color:rgb(0,178.5,0);margin-left:.25rem;top:2px}.tooltip .tooltiptext{visibility:hidden;width:200px;background-color:hsl(210,7%,5%);color:#fff;text-align:left;border-radius:0;padding:.5rem;position:fixed;z-index:1000;opacity:0;transition:opacity .3s;font-size:14px;box-shadow:0 2px 5px rgba(0,0,0,.2);pointer-events:none}.tooltip .tooltiptext::after{content:"";position:absolute;top:-5px;left:10px;border-width:5px;border-style:solid;border-color:hsl(210,7%,5%) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}.tooltip:hover .tooltiptext{visibility:visible;opacity:1}.tooltip-desc{position:absolute;left:-9999px}.editor-container{width:100%;min-height:400px}.ace-editor{height:400px;border:1px solid rgb(0,178.5,0);font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace}.ace-editor .ace_gutter{background:hsl(210,7%,5%) !important;color:hsl(120,40%,45%) !important;border-right:1px solid rgb(0,178.5,0) !important}.ace-editor .ace_scroller{background:hsl(0,0%,2%) !important}.ace-editor .ace_text-layer .ace_print-margin{background:rgba(0,0,0,0) !important}.ace-editor .ace_marker-layer .ace_selection{background:rgba(0,178.5,0,.7) !important}.tags-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:hsl(210,7%,5%);border:1px solid hsla(120,60%,70%,.2);border-top:none;border-radius:0 0 4px 4px;list-style:none;margin:0;padding:0;z-index:10;opacity:0;visibility:hidden;transition:opacity .2s}.tags-dropdown[aria-expanded=true]{opacity:1;visibility:visible}.tags-dropdown li{padding:.25rem .5rem;cursor:pointer;color:#fff;font-size:14px;border-bottom:1px solid rgba(0,0,0,0)}.tags-dropdown li:hover,.tags-dropdown li.selected{background:rgba(0,178.5,0,.9);color:rgb(0,178.5,0)}.tags-dropdown li:last-child{border-bottom:none}.tags-input{position:relative}.tags-input{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;border:1px solid hsla(120,60%,70%,.2);padding:.25rem;background:hsl(210,7%,5%);min-height:40px;grid-column:2}.tags-input input{border:none;background:rgba(0,0,0,0);color:#fff;font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace;font-size:14px;flex:1;min-width:100px;outline:none}.tags-input input::placeholder{color:hsl(120,40%,45%)}.tag-chip{display:inline-flex;align-items:center;background:rgba(0,178.5,0,.8);color:rgb(0,178.5,0);padding:.25rem .5rem;border-radius:4px;font-size:12px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tag-chip .tag-remove{background:none;border:none;color:inherit;font-size:16px;margin-left:.25rem;cursor:pointer;padding:0;line-height:1}.tag-chip .tag-remove:hover{opacity:.7}.tags-input input[list]::-webkit-calendar-picker-indicator{display:none}/*# sourceMappingURL=novaconium.css.map */
+:root{--bg-dark: hsl(0, 0%, 2%);--bg-darker: hsl(210, 7%, 5%);--text-light: hsl(0, 0%, 100%);--text-lighter: hsl(120, 52%, 15%);--text-muted: hsl(120, 40%, 45%);--accent-light: hsl(120, 100%, 35%);--accent-success: hsl(120, 80%, 45%);--accent-warning: hsl(60, 100%, 35%);--accent-error: hsl(0, 100%, 45%);--border-light: hsla(120, 60%, 70%, 0.2);--font-stack: Courier New, SF Mono, monospace}*{box-sizing:border-box}html{font-size:16px;line-height:1.5;scroll-behavior:smooth;background-color:hsl(0,0%,2%);color:#fff}body{margin:0;padding:0;font-family:"Courier New","SF Mono",monospace;background-color:hsl(0,0%,2%);color:#fff;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0 0 .5em;font-weight:600;line-height:1.2;color:rgb(0,178.5,0)}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.75rem}h4{font-size:1.5rem}h5{font-size:1.25rem}h6{font-size:1rem}p{margin:0 0 1em}small{font-size:.875rem}strong,b{font-weight:700}em,i{font-style:italic}a{color:rgb(0,178.5,0);text-decoration:none;border-bottom:1px solid rgba(0,0,0,0);transition:border-color .2s ease}a:hover,a:focus{border-bottom-color:rgb(0,178.5,0);outline:none}ul,ol{margin:0 0 1em;padding-left:1.5em}li{margin-bottom:.25em}blockquote{margin:1em 0;padding:.5em 1em;border-left:4px solid rgb(0,178.5,0);background-color:hsla(0,0%,2%,.5);color:#fff}code,kbd,samp{font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace;font-size:.875em;background-color:hsla(0,0%,100%,.1);padding:.125em .25em;border-radius:3px}pre{margin:1em 0;padding:1em;overflow:auto;background-color:hsla(0,0%,100%,.1);border-radius:4px}pre code{background:none;padding:0}table{width:100%;border-collapse:collapse;margin:1em 0}th,td{padding:.75em;text-align:left;border-bottom:1px solid hsla(0,0%,100%,.2)}th{font-weight:600}input,select,textarea,button{font-family:inherit;font-size:inherit;background-color:hsla(0,0%,100%,.1);color:#fff;border:1px solid hsla(0,0%,100%,.3);border-radius:4px;padding:.5em}input:focus,select:focus,textarea:focus,button:focus{outline:none;border-color:rgb(0,178.5,0);box-shadow:0 0 0 2px rgba(0,178.5,0,.2)}button{cursor:pointer;transition:background-color .2s ease}button:disabled{opacity:.5;cursor:not-allowed}img{max-width:100%;height:auto;border-radius:4px}figure{margin:1em 0}hr{border:none;height:1px;background-color:hsla(0,0%,100%,.2);margin:2em 0}*:focus-visible{outline:2px solid rgb(0,178.5,0);outline-offset:2px}@media print{body{background:#fff !important;color:#000 !important}}::selection{background:rgba(0,178.5,0,.3);color:#fff}*::-moz-selection{background:rgba(0,178.5,0,.3);color:#fff}body.novaconium{background-color:#000;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 304 304' width='304' height='304'%3E%3Cpath fill='%231f2c17' fill-opacity='0.4' d='M44.1 224a5 5 0 1 1 0 2H0v-2h44.1zm160 48a5 5 0 1 1 0 2H82v-2h122.1zm57.8-46a5 5 0 1 1 0-2H304v2h-42.1zm0 16a5 5 0 1 1 0-2H304v2h-42.1zm6.2-114a5 5 0 1 1 0 2h-86.2a5 5 0 1 1 0-2h86.2zm-256-48a5 5 0 1 1 0 2H0v-2h12.1zm185.8 34a5 5 0 1 1 0-2h86.2a5 5 0 1 1 0 2h-86.2zM258 12.1a5 5 0 1 1-2 0V0h2v12.1zm-64 208a5 5 0 1 1-2 0v-54.2a5 5 0 1 1 2 0v54.2zm48-198.2V80h62v2h-64V21.9a5 5 0 1 1 2 0zm16 16V64h46v2h-48V37.9a5 5 0 1 1 2 0zm-128 96V208h16v12.1a5 5 0 1 1-2 0V210h-16v-76.1a5 5 0 1 1 2 0zm-5.9-21.9a5 5 0 1 1 0 2H114v48H85.9a5 5 0 1 1 0-2H112v-48h12.1zm-6.2 130a5 5 0 1 1 0-2H176v-74.1a5 5 0 1 1 2 0V242h-60.1zm-16-64a5 5 0 1 1 0-2H114v48h10.1a5 5 0 1 1 0 2H112v-48h-10.1zM66 284.1a5 5 0 1 1-2 0V274H50v30h-2v-32h18v12.1zM236.1 176a5 5 0 1 1 0 2H226v94h48v32h-2v-30h-48v-98h12.1zm25.8-30a5 5 0 1 1 0-2H274v44.1a5 5 0 1 1-2 0V146h-10.1zm-64 96a5 5 0 1 1 0-2H208v-80h16v-14h-42.1a5 5 0 1 1 0-2H226v18h-16v80h-12.1zm86.2-210a5 5 0 1 1 0 2H272V0h2v32h10.1zM98 101.9V146H53.9a5 5 0 1 1 0-2H96v-42.1a5 5 0 1 1 2 0zM53.9 34a5 5 0 1 1 0-2H80V0h2v34H53.9zm60.1 3.9V66H82v64H69.9a5 5 0 1 1 0-2H80V64h32V37.9a5 5 0 1 1 2 0zM101.9 82a5 5 0 1 1 0-2H128V37.9a5 5 0 1 1 2 0V82h-28.1zm16-64a5 5 0 1 1 0-2H146v44.1a5 5 0 1 1-2 0V18h-26.1zm102.2 270a5 5 0 1 1 0 2H98v14h-2v-16h124.1zM242 149.9V160h16v34h-16v62h48v48h-2v-46h-48v-66h16v-30h-16v-12.1a5 5 0 1 1 2 0zM53.9 18a5 5 0 1 1 0-2H64V2H48V0h18v18H53.9zm112 32a5 5 0 1 1 0-2H192V0h50v2h-48v48h-28.1zm-48-48a5 5 0 0 1-9.8-2h2.07a3 3 0 1 0 5.66 0H178v34h-18V21.9a5 5 0 1 1 2 0V32h14V2h-58.1zm0 96a5 5 0 1 1 0-2H137l32-32h39V21.9a5 5 0 1 1 2 0V66h-40.17l-32 32H117.9zm28.1 90.1a5 5 0 1 1-2 0v-76.51L175.59 80H224V21.9a5 5 0 1 1 2 0V82h-49.59L146 112.41v75.69zm16 32a5 5 0 1 1-2 0v-99.51L184.59 96H300.1a5 5 0 0 1 3.9-3.9v2.07a3 3 0 0 0 0 5.66v2.07a5 5 0 0 1-3.9-3.9H185.41L162 121.41v98.69zm-144-64a5 5 0 1 1-2 0v-3.51l48-48V48h32V0h2v50H66v55.41l-48 48v2.69zM50 53.9v43.51l-48 48V208h26.1a5 5 0 1 1 0 2H0v-65.41l48-48V53.9a5 5 0 1 1 2 0zm-16 16V89.41l-34 34v-2.82l32-32V69.9a5 5 0 1 1 2 0zM12.1 32a5 5 0 1 1 0 2H9.41L0 43.41V40.6L8.59 32h3.51zm265.8 18a5 5 0 1 1 0-2h18.69l7.41-7.41v2.82L297.41 50H277.9zm-16 160a5 5 0 1 1 0-2H288v-71.41l16-16v2.82l-14 14V210h-28.1zm-208 32a5 5 0 1 1 0-2H64v-22.59L40.59 194H21.9a5 5 0 1 1 0-2H41.41L66 216.59V242H53.9zm150.2 14a5 5 0 1 1 0 2H96v-56.6L56.6 162H37.9a5 5 0 1 1 0-2h19.5L98 200.6V256h106.1zm-150.2 2a5 5 0 1 1 0-2H80v-46.59L48.59 178H21.9a5 5 0 1 1 0-2H49.41L82 208.59V258H53.9zM34 39.8v1.61L9.41 66H0v-2h8.59L32 40.59V0h2v39.8zM2 300.1a5 5 0 0 1 3.9 3.9H3.83A3 3 0 0 0 0 302.17V256h18v48h-2v-46H2v42.1zM34 241v63h-2v-62H0v-2h34v1zM17 18H0v-2h16V0h2v18h-1zm273-2h14v2h-16V0h2v16zm-32 273v15h-2v-14h-14v14h-2v-16h18v1zM0 92.1A5.02 5.02 0 0 1 6 97a5 5 0 0 1-6 4.9v-2.07a3 3 0 1 0 0-5.66V92.1zM80 272h2v32h-2v-32zm37.9 32h-2.07a3 3 0 0 0-5.66 0h-2.07a5 5 0 0 1 9.8 0zM5.9 0A5.02 5.02 0 0 1 0 5.9V3.83A3 3 0 0 0 3.83 0H5.9zm294.2 0h2.07A3 3 0 0 0 304 3.83V5.9a5 5 0 0 1-3.9-5.9zm3.9 300.1v2.07a3 3 0 0 0-1.83 1.83h-2.07a5 5 0 0 1 3.9-3.9zM97 100a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-48 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 96a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-144a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm96 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM49 36a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-32 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM33 68a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 240a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm80-176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 48a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm112 176a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm-16 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 180a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0 16a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm0-32a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16 0a3 3 0 1 0 0-6 3 3 0 0 0 0 6zM17 84a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm32 64a3 3 0 1 0 0-6 3 3 0 0 0 0 6zm16-16a3 3 0 1 0 0-6 3 3 0 0 0 0 6z'%3E%3C/path%3E%3C/svg%3E")}body.novaconium #page .container{display:flex;padding:0;justify-content:center;align-items:flex-start;padding-top:1.5rem}body.novaconium article{width:1140px;flex-shrink:0;padding:3rem;margin:0;background-color:hsl(0,0%,2%);border:1px solid hsl(210,7%,5%)}body.novaconium ul#leftnav{width:320px;flex-shrink:0;list-style:none;padding:0;margin:0 2.5rem 0 0;background-color:hsl(0,0%,2%);border:1px solid hsl(210,7%,5%)}body.novaconium #leftnav li{border-bottom:1px solid hsla(120,60%,70%,.2)}body.novaconium #leftnav li:last-child{border-bottom:none}body.novaconium #leftnav a{display:block;padding:.5rem 1rem;text-decoration:none;color:#fff}body.novaconium #leftnav a:hover,body.novaconium #leftnav a:focus{background-color:rgba(0,178.5,0,.1);color:rgb(0,178.5,0);border-radius:4px}@media(max-width: 1280px){body.novaconium #page .container{flex-direction:column;align-items:center}body.novaconium article,body.novaconium #leftnav{width:100%;max-width:900px;margin:1rem 0}body.novaconium #leftnav{margin-right:0}}body.novaconium code{font-family:"VT323","Courier New","SF Mono","Fira Code",Consolas,monospace;font-size:.875rem;background-color:hsl(210,7%,5%);color:#fff;padding:.25rem .5rem;border-radius:4px;border:1px solid hsla(120,60%,70%,.2);box-shadow:0 0 2px rgba(0,178.5,0,.1)}body.novaconium .small{font-size:.625rem}body.novaconium div.error,body.novaconium div.notice,body.novaconium div#debug{margin:2.5rem auto;width:900px;padding:1.5rem;border-radius:6px;border:1px solid}body.novaconium div.error{background-color:rgba(229.5,0,0,.1);color:rgb(229.5,0,0);border-color:rgb(229.5,0,0)}body.novaconium div.notice{background-color:hsla(120,80%,45%,.1);color:hsl(120,80%,45%);border-color:hsl(120,80%,45%)}body.novaconium div#debug{background-color:hsl(210,7%,5%);color:hsl(120,40%,45%);border-color:hsla(120,60%,70%,.2);margin-top:4rem;margin-bottom:4rem}body.novaconium .pages-table{width:100%;border:1px solid hsla(120,60%,70%,.2)}body.novaconium .pages-table th,body.novaconium .pages-table td{border:1px solid hsla(120,60%,70%,.2);text-align:left}body.novaconium .pages-table th{background-color:rgba(0,178.5,0,.05);color:hsl(120,52%,15%);font-weight:600}body.novaconium #edit-page-form-novaconium .form-group{margin-bottom:1rem}body.novaconium #edit-page-form-novaconium .form-group.fullwidth textarea{width:100%;resize:vertical}body.novaconium #edit-page-form-novaconium .checkbox-group{margin-top:1.5rem}body.novaconium #edit-page-form-novaconium input[type=text],body.novaconium #edit-page-form-novaconium input[type=number],body.novaconium #edit-page-form-novaconium textarea,body.novaconium #edit-page-form-novaconium select{background-color:hsl(210,7%,5%);border:1px solid hsla(120,60%,70%,.2);color:#fff;padding:.5rem;border-radius:4px;font-family:"VT323","Courier New","SF Mono","Fira Code",Consolas,monospace}body.novaconium #edit-page-form-novaconium input[type=text]:focus,body.novaconium #edit-page-form-novaconium input[type=number]:focus,body.novaconium #edit-page-form-novaconium textarea:focus,body.novaconium #edit-page-form-novaconium select:focus{border-color:rgb(0,178.5,0);box-shadow:0 0 0 .25rem rgba(0,178.5,0,.3);outline:none}body.novaconium #edit-page-form-novaconium input[type=checkbox]{accent-color:rgb(0,178.5,0)}body.novaconium #edit-page-form-novaconium button[type=submit]{background-color:rgb(0,178.5,0);color:hsl(0,0%,2%);border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-family:"VT323","Courier New","SF Mono","Fira Code",Consolas,monospace}body.novaconium #edit-page-form-novaconium button[type=submit]:hover,body.novaconium #edit-page-form-novaconium button[type=submit]:focus{background-color:#090;box-shadow:0 0 4px rgba(0,178.5,0,.5)}body.novaconium #edit-page-form-novaconium p{color:hsl(120,40%,45%)}body.novaconium #edit-page-form-novaconium a{color:rgb(0,178.5,0)}body.novaconium #edit-page-form-novaconium a:hover{color:hsl(120,52%,15%);text-decoration:underline}body.novaconium #login{padding:0}body.novaconium #login input[type=text],body.novaconium #login input[type=password],body.novaconium #login button[type=submit]{width:100%;max-width:300px;padding:1rem;margin-bottom:1rem;box-sizing:border-box;font-size:1rem;border:1px solid hsla(120,60%,70%,.2);border-radius:4px;background:hsl(0,0%,2%);color:#fff}body.novaconium #login input[type=text]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:1rem center;background-size:20px;padding-left:3rem}body.novaconium #login input[type=password]{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2' ry='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:1rem center;background-size:20px;padding-left:3rem}body.novaconium #login button[type=submit]{background:rgb(0,178.5,0);border-color:rgb(0,178.5,0);cursor:pointer;transition:background .2s}body.novaconium #login button[type=submit]:hover{background:rgb(0,178.5,0);text-shadow:0 0 5px rgba(0,178.5,0,.5)}body.novaconium #login button[type=submit]::after{content:" →";margin-left:.5rem}body.novaconium #biglogo{position:relative;display:inline-block;padding:20px 0;border-radius:0;overflow:hidden}body.novaconium #biglogo::before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background-image:linear-gradient(rgba(0, 255, 0, 0.02) 1px, transparent 1px),linear-gradient(90deg, rgba(0, 255, 0, 0.02) 1px, transparent 1px);background-size:20px 20px;opacity:.1;pointer-events:none}body.novaconium #biglogo::after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg, transparent, #00ff00, transparent);opacity:.05;animation:scan 3s linear infinite}body.novaconium #biglogo .main{display:block;font-family:"Orbitron",sans-serif;font-size:4.5rem;font-weight:900;color:#fff;letter-spacing:.1em;line-height:.85;text-transform:uppercase;text-shadow:4px 4px 0 #222,5px 5px 0 #111,-1px -1px 0 lime,1px 1px 20px rgba(0,255,0,.3);filter:drop-shadow(2px 2px 4px rgba(0, 0, 0, 0.8))}body.novaconium #biglogo .sub{display:block;font-family:"Orbitron",sans-serif;font-size:2.5rem;font-weight:700;color:#fff;letter-spacing:.15em;margin-top:.5rem;text-shadow:2px 2px 0 #222,-1px -1px 0 lime,1px 1px 10px rgba(0,255,0,.2);filter:drop-shadow(1px 1px 2px rgba(0, 0, 0, 0.6))}body.novaconium #biglogo:hover .main{animation:glitch .3s infinite}@keyframes scan{0%{top:-1px}100%{top:100%}}@keyframes glitch{0%,100%{transform:translate(0)}20%{transform:translate(-2px, 2px)}40%{transform:translate(-2px, -2px)}60%{transform:translate(2px, 2px)}80%{transform:translate(2px, -2px)}}body.novaconium .tab-container{margin:1.5rem auto;background:hsl(0,0%,2%)}body.novaconium .tab-nav{display:flex;background-color:hsl(210,7%,5%);border-bottom:1px solid hsla(120,60%,70%,.2)}body.novaconium .tab-button{padding:.5rem 1rem;background:hsl(210,7%,5%);border:1px solid hsla(120,60%,70%,.2);border-bottom:none;cursor:pointer;font-size:14px;min-width:120px;text-align:center;color:#fff;font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace}body.novaconium .tab-button:hover{background-color:hsl(210,7%,10%)}body.novaconium .tab-button+.tab-button{border-left:none}body.novaconium .tab-button.active{background-color:hsl(0,0%,2%);border-bottom:2px solid rgb(0,178.5,0);color:rgb(0,178.5,0);font-weight:bold}body.novaconium .tab-content{display:none;padding:1.5rem;background-color:hsl(0,0%,2%);color:#fff;border:none}body.novaconium .tab-content.active{display:block}#edit-page-title{margin-top:2rem}#edit-page-title #title{width:100%;font-size:1.9rem;padding:20px}#edit-page-title>div{font-size:.8rem;margin:8px 0 0 20px}body.novaconium .tooltip{position:relative;display:inline-block;cursor:help;font-size:16px;color:rgb(0,178.5,0);margin-left:.25rem;top:2px}body.novaconium .tooltip .tooltiptext{visibility:hidden;width:200px;background-color:hsl(210,7%,5%);color:#fff;text-align:left;border-radius:0;padding:.5rem;position:fixed;z-index:1000;opacity:0;transition:opacity .3s;font-size:14px;box-shadow:0 2px 5px rgba(0,0,0,.2);pointer-events:none}body.novaconium .tooltip .tooltiptext::after{content:"";position:absolute;top:-5px;left:10px;border-width:5px;border-style:solid;border-color:hsl(210,7%,5%) rgba(0,0,0,0) rgba(0,0,0,0) rgba(0,0,0,0)}body.novaconium .tooltip:hover .tooltiptext{visibility:visible;opacity:1}body.novaconium .tooltip-desc{position:absolute;left:-9999px}.editor-container{width:100%;min-height:400px}.ace-editor{height:400px;border:1px solid rgb(0,178.5,0);font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace}.ace-editor .ace_gutter{background:hsl(210,7%,5%) !important;color:hsl(120,40%,45%) !important;border-right:1px solid rgb(0,178.5,0) !important}.ace-editor .ace_scroller{background:hsl(0,0%,2%) !important}.ace-editor .ace_text-layer .ace_print-margin{background:rgba(0,0,0,0) !important}.ace-editor .ace_marker-layer .ace_selection{background:rgba(0,178.5,0,.7) !important}body.novaconium .tags-dropdown{position:absolute;top:100%;left:0;right:0;max-height:200px;overflow-y:auto;background:hsl(210,7%,5%);border:1px solid hsla(120,60%,70%,.2);border-top:none;border-radius:0 0 4px 4px;list-style:none;margin:0;padding:0;z-index:10;opacity:0;visibility:hidden;transition:opacity .2s}body.novaconium .tags-dropdown[aria-expanded=true]{opacity:1;visibility:visible}body.novaconium .tags-dropdown li{padding:.25rem .5rem;cursor:pointer;color:#fff;font-size:14px;border-bottom:1px solid rgba(0,0,0,0)}body.novaconium .tags-dropdown li:hover,body.novaconium .tags-dropdown li.selected{background:rgba(0,178.5,0,.9);color:rgb(0,178.5,0)}body.novaconium .tags-dropdown li:last-child{border-bottom:none}body.novaconium .tags-input{position:relative}body.novaconium .tags-input{display:flex;flex-wrap:wrap;gap:.25rem;align-items:center;border:1px solid hsla(120,60%,70%,.2);padding:.25rem;background:hsl(210,7%,5%);min-height:40px;grid-column:2}body.novaconium .tags-input input{border:none;background:rgba(0,0,0,0);color:#fff;font-family:"Courier New","SF Mono","Fira Code",Consolas,monospace;font-size:14px;flex:1;min-width:100px;outline:none}body.novaconium .tags-input input::placeholder{color:hsl(120,40%,45%)}body.novaconium .tag-chip{display:inline-flex;align-items:center;background:rgba(0,178.5,0,.8);color:rgb(0,178.5,0);padding:.25rem .5rem;border-radius:4px;font-size:12px;max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.novaconium .tag-chip .tag-remove{background:none;border:none;color:inherit;font-size:16px;margin-left:.25rem;cursor:pointer;padding:0;line-height:1}body.novaconium .tag-chip .tag-remove:hover{opacity:.7}body.novaconium .tags-input input[list]::-webkit-calendar-picker-indicator{display:none}/*# sourceMappingURL=novaconium.css.map */
diff --git a/skeleton/novaconium/public/css/novaconium.css.map b/skeleton/novaconium/public/css/novaconium.css.map
new file mode 100644
index 0000000..2f4f77f
--- /dev/null
+++ b/skeleton/novaconium/public/css/novaconium.css.map
@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["../../../../sass/abstracts/_variables.sass","../../../../sass/base/_reset.sass","../../../../sass/base/_background.sass","../../../../sass/framework/_main.sass","../../../../sass/framework/_ui.sass","../../../../sass/framework/_forms.sass","../../../../sass/framework/_login_form.sass","../../../../sass/framework/_logo.sass","../../../../sass/framework/_tabs.sass","../../../../sass/framework/_edit_page.sass","../../../../sass/framework/_tooltip.sass","../../../../sass/framework/_ace.sass","../../../../sass/framework/_tags.sass"],"names":[],"mappings":"CAoEA,MACE,0BACA,8BACA,+BACA,mCACA,iCACA,oCACA,qCACA,qCACA,kCACA,yCACA,8CC1EF,EACE,sBAEF,KACE,eACA,gBACA,uBACA,iBDWQ,aCVR,MDYW,KCVb,KACE,SACA,UACA,YDgBW,kCCfX,iBDIQ,aCHR,MDKW,KCJX,iBAGF,kBACE,gBACA,gBACA,gBACA,qBAEF,GACE,iBAEF,GACE,eAEF,GACE,kBAEF,GACE,iBAEF,GACE,kBAEF,GACE,eAGF,EACE,eAEF,MACE,kBAEF,SACE,gBAEF,KACE,kBAGF,EACE,MDnCa,eCoCb,qBACA,sCACA,iCAEA,gBACE,oBDzCW,eC0CX,aAGJ,MACE,eACA,mBAEF,GACE,oBAGF,WACE,aACA,iBACA,qCACA,kCACA,MD7DW,KCgEb,cACE,YDvDU,uDCwDV,iBACA,oCACA,qBACA,kBAEF,IACE,aACA,YACA,cACA,oCACA,kBACA,SACE,gBACA,UAGJ,MACE,WACA,yBACA,aAEF,MACE,cACA,gBACA,2CAEF,GACE,gBAGF,6BACE,oBACA,kBACA,oCACA,MDpGW,KCqGX,oCACA,kBACA,aAEA,qDACE,aACA,aDxGW,eCyGX,wCAEJ,OACE,eACA,qCAEA,gBACE,WACA,mBAGJ,IACE,eACA,YACA,kBAEF,OACE,aAGF,GACE,YACA,WACA,oCACA,aAGF,gBACE,iCACA,mBAGF,aACE,KACE,2BACA,uBAEJ,YACE,8BACA,MDnJW,KCsJb,kBACE,8BACA,MDxJW,KEtBb,gBACI,sBACA,0uKCEF,iCACE,aACA,UACA,uBACA,uBACA,mBAGF,wBACE,aACA,cACA,aACA,SACA,iBHGM,aGFN,gCAEF,2BACE,YACA,cACA,gBACA,UACA,oBACA,iBHNM,aGON,gCAEF,4BACE,6CAEA,uCACE,mBAEJ,2BACE,cACA,mBACA,qBACA,MHjBS,KGmBT,kEACE,oCACA,MHlBS,eGmBT,kBAGJ,0BACE,iCACE,sBACA,mBAEF,iDACE,WACA,gBACA,cAEF,yBACE,gBCtDJ,qBACE,2EACA,kBACA,gCACA,MJcS,KIbT,qBACA,kBACA,sCACA,sCAGF,uBACE,kBAGF,+EACE,mBACA,YACA,eACA,kBACA,iBAEF,0BACE,oCACA,qBACA,4BAEF,2BACE,sCACA,uBACA,8BAEF,0BACE,gCACA,MJdS,iBIeT,kCACA,gBACA,mBAGF,6BACE,WACA,sCAEA,gEACE,sCACA,gBAEF,gCACE,qCACA,MJ/BS,iBIgCT,gBClDF,uDACE,mBAEA,0EACE,WACA,gBAEJ,2DACE,kBAGF,gOAIE,gCACA,sCACA,WACA,cACA,kBACA,2EAEA,wPACE,aLHO,eKIP,2CACA,aAEJ,gEACE,aLRS,eKWX,+DACE,iBLZS,eKaT,mBACA,YACA,mBACA,kBACA,eACA,2EAEA,0IACE,sBACA,sCAGJ,6CACE,ML3BO,iBK6BT,6CACE,ML7BS,eK+BT,mDACE,MLlCO,iBKmCP,0BCzDR,uBAEE,UAIA,+HAGE,WACA,gBACA,aACA,mBACA,sBACA,eACA,sCACA,kBACA,WNEM,aMDN,MNGS,6CMCT,uUACA,4BACA,gCACA,qBACA,kBAEF,4CACE,iVACA,4BACA,gCACA,qBACA,kBAEF,2CACE,WNZW,eMaX,aNbW,eMcX,eACA,0BAEA,iDACE,WNlBS,eMmBT,uCAGF,kDACE,aACA,kBCnDJ,yBACE,kBACA,qBACA,eACA,gBACA,gBAEA,iCACE,WACA,kBACA,MACA,OACA,QACA,SACA,gJACA,0BACA,WACA,oBAGF,gCACE,WACA,kBACA,MACA,OACA,QACA,WACA,qEACA,YACA,kCAEF,+BACE,cACA,kCACA,iBACA,gBACA,WACA,oBACA,gBACA,yBAGA,yFACA,mDAEF,8BACE,cACA,kCACA,iBACA,gBACA,WACA,qBACA,iBACA,0EACA,mDAIA,qCACE,8BAEN,gBACE,GACE,SACF,KACE,UAEJ,kBACE,QACE,uBACF,IACE,+BACF,IACE,gCACF,IACE,8BACF,IACE,gCCvEJ,+BACE,mBACA,WRcM,aQZR,yBACE,aACA,iBRWQ,eQVR,6CAEF,4BACE,mBACA,WRMQ,eQLR,sCACA,mBACA,eACA,eACA,gBACA,kBACA,WACA,YRSQ,uDQPR,kCACE,iCAEF,wCACE,iBAEF,mCACE,iBRZI,aQaJ,uCACA,MRTS,eQUT,iBAEJ,6BACE,aACA,eACA,iBRpBM,aQqBN,MRnBS,KQoBT,YAEA,oCACE,cC5CN,iBACI,gBAEA,wBACI,WACA,iBACA,aAEJ,qBACI,gBACA,oBCRN,yBACE,kBACA,qBACA,YACA,eACA,MViBW,eUhBX,mBACA,QAEA,sCACE,kBACA,YACA,iBVMM,eULN,MVMO,KULP,gBACA,gBACA,cACA,eACA,aACA,UACA,uBACA,eACA,oCACA,oBAEA,6CACE,WACA,kBACA,SACA,UACA,iBACA,mBACA,sEAEJ,4CACE,mBACA,UAGJ,8BACE,kBACA,aC1CJ,kBACE,WACA,iBAEF,YACE,aACA,gCACA,YXuBU,uDWpBV,wBACE,qCACA,kCACA,iDAEF,0BACE,mCAEF,8CACE,oCAGF,6CACE,yCCtBF,+BACE,kBACA,SACA,OACA,QACA,iBACA,gBACA,WZWQ,eYVR,sCACA,gBACA,0BACA,gBACA,SACA,UACA,WACA,UACA,kBACA,uBAEA,mDACE,UACA,mBAEF,kCACE,qBACA,eACA,MZPO,KYQP,eACA,sCAEA,mFAEE,8BACA,MZXO,eYaT,6CACE,mBAEN,4BACE,kBAGF,4BACE,aACA,eACA,WACA,mBACA,sCACA,eACA,WZ/BQ,eYgCR,gBACA,cAEA,kCACE,YACA,yBACA,MZrCO,KYsCP,YZ5BM,uDY6BN,eACA,OACA,gBACA,aAEA,+CACE,MZ3CK,iBY6CX,0BACE,oBACA,mBACA,8BACA,MZhDW,eYiDX,qBACA,kBACA,eACA,gBACA,gBACA,uBACA,mBAEA,sCACE,gBACA,YACA,cACA,eACA,mBACA,eACA,UACA,cAEA,4CACE,WAWN,2EACE","file":"novaconium.css"}
\ No newline at end of file
diff --git a/twig/head.html.twig b/twig/head.html.twig
index fb475dd..1088b1b 100644
--- a/twig/head.html.twig
+++ b/twig/head.html.twig
@@ -17,7 +17,7 @@
{# DARK MODE & THEME HINTS #}
-
+
{# OPEN GRAPH (OG) FOR SOCIAL SHARING #}
@@ -28,16 +28,23 @@
{# PWA & FAVICONS #}
-
-
+
{# GOOGLE FONTS (CDN VIA PRECONNECT) #}
-
+
{# STYLESHEET #}
-
+{% if pageclass == "novaconium" %}
+
+{% else %}
+
+{% endif %}
+
{% if editor == 'ace' %}
@@ -47,4 +54,10 @@
{# Dark theme #}
{# Autocomplete #}
-{% endif %}
\ No newline at end of file
+{% endif %}
+
+{# highlight.js #}
+
+
+
+
\ No newline at end of file
diff --git a/twig/left.html.twig b/twig/left.html.twig
index e5ee10d..05c2a85 100644
--- a/twig/left.html.twig
+++ b/twig/left.html.twig
@@ -1,15 +1,16 @@
\ No newline at end of file
+ {% if pageclass == "novaconium" %}
+
+ {% endif %}
+