148 lines
4.0 KiB
HTML
148 lines
4.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<title>Project — Biohazard VFX</title>
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
<link rel="stylesheet" href="css/styles.css">
|
|
<style>
|
|
#project.content-block {
|
|
max-width: 2000px;
|
|
margin: 0 auto;
|
|
padding: 12vh var(--gutter-x) 8vh;
|
|
font-family: "SpaceMono", monospace;
|
|
color: var(--acid);
|
|
text-shadow: 0 0 2px var(--acid);
|
|
border-bottom: 1px solid var(--graphite);
|
|
background: none;
|
|
min-height: 60vh;
|
|
}
|
|
.project-title {
|
|
font-family: "ArchiveCond", sans-serif;
|
|
font-size: 1.8rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.04em;
|
|
color: var(--hot);
|
|
margin-bottom: 1.2rem;
|
|
margin-top: 0;
|
|
text-align: center;
|
|
text-shadow: 0 0 2px var(--acid);
|
|
}
|
|
.project-embed {
|
|
width: 100%;
|
|
aspect-ratio: 16/9;
|
|
max-height: 70vh;
|
|
border: 0;
|
|
border-radius: 8px;
|
|
background: #181818;
|
|
box-shadow: 0 4px 18px rgba(0,0,0,0.28);
|
|
margin-bottom: 2.5rem;
|
|
display: block;
|
|
}
|
|
.project-section {
|
|
margin-top: 2.5rem;
|
|
background: var(--graphite);
|
|
border-radius: 8px;
|
|
box-shadow: 0 2px 10px rgba(0,0,0,0.18);
|
|
padding: 2rem 1.5rem 1.2rem;
|
|
color: var(--acid);
|
|
font-family: "SpaceMono", monospace;
|
|
max-width: 1200px;
|
|
margin-left: auto;
|
|
margin-right: auto;
|
|
}
|
|
.project-section h2 {
|
|
font-family: "ArchiveCond", sans-serif;
|
|
font-size: 1.1rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.04em;
|
|
color: var(--hot);
|
|
margin-bottom: 0.7rem;
|
|
margin-top: 0;
|
|
text-align: left;
|
|
}
|
|
.project-section p {
|
|
font-size: 1rem;
|
|
color: var(--acid);
|
|
opacity: 0.88;
|
|
margin: 0;
|
|
line-height: 1.5;
|
|
padding-left: 0.2em;
|
|
}
|
|
|
|
@media (max-width: 900px) {
|
|
#project.content-block {
|
|
padding: 7vh var(--gutter-x) 3vh;
|
|
}
|
|
.project-section {
|
|
padding: 1.2rem 0.7rem 0.7rem;
|
|
}
|
|
}
|
|
@media (max-width: 600px) {
|
|
#project.content-block {
|
|
padding: 4vh 8px 2vh;
|
|
font-size: 1rem;
|
|
}
|
|
.project-title {
|
|
font-size: 1.2rem;
|
|
}
|
|
}
|
|
</style>
|
|
</head>
|
|
<body>
|
|
<div id="nav-placeholder"></div>
|
|
<main id="project" class="content-block">
|
|
<a href="index.html#projects" class="back-btn">
|
|
← Back to Projects
|
|
</a>
|
|
</main>
|
|
<div id="socials-placeholder"></div>
|
|
<footer>
|
|
<p>© 2025 Biohazard VFX. All Rights Reserved.</p>
|
|
</footer>
|
|
<script src="js/ui.js" defer></script>
|
|
<script src="js/project.js"></script>
|
|
<script>
|
|
// Inject nav fragment
|
|
fetch('fragments/nav.html')
|
|
.then(r => r.text())
|
|
.then(html => {
|
|
document.getElementById('nav-placeholder').outerHTML = html;
|
|
});
|
|
// Inject socials fragment
|
|
fetch('fragments/socials.html')
|
|
.then(r => r.text())
|
|
.then(html => {
|
|
document.getElementById('socials-placeholder').outerHTML = html;
|
|
});
|
|
// Enhance project.js output for new style
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const container = document.getElementById('project');
|
|
// Wait for project.js to populate
|
|
const observer = new MutationObserver(() => {
|
|
// Style the title
|
|
const h1 = container.querySelector('h1');
|
|
if (h1) {
|
|
h1.className = 'project-title';
|
|
}
|
|
// Style the embed
|
|
const iframe = container.querySelector('iframe');
|
|
if (iframe) {
|
|
iframe.className = 'project-embed';
|
|
}
|
|
// Style info/credits
|
|
['info', 'credits'].forEach(id => {
|
|
const sec = container.querySelector(`#${id}`);
|
|
if (sec) {
|
|
sec.className = 'project-section';
|
|
const h2 = sec.querySelector('h2');
|
|
if (h2) h2.className = '';
|
|
}
|
|
});
|
|
});
|
|
observer.observe(container, { childList: true, subtree: true });
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|