Files
virtual_interdimensional_sp…/node/server/public/index.html

146 lines
3.0 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Summoner / Virtuelles interdimensionales Geisterteleportationsgerät</title>
<script type="importmap">
{
"imports": {
"three": "https://cdn.jsdelivr.net/npm/three@0.155.0/build/three.module.js",
"GLTFLoader": "https://cdn.jsdelivr.net/npm/three@0.155.0/examples/jsm/loaders/GLTFLoader.js",
"DRACOLoader": "https://cdn.jsdelivr.net/npm/three@0.155.0/examples/jsm/loaders/DRACOLoader.js"
}
}
</script>
<style>
html, body {
width: 100vw;
height: 100vh;
margin: 0;
padding: 0;
overflow: hidden;
background: #000;
}
#viewer {
position: fixed;
inset: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
background: #000;
}
canvas {
display: block;
position: absolute;
left: 50%; top: 50%;
transform: translate(-50%, -50%);
}
#spirit-info h2 {
margin: 0 0 8px 0;
font-weight: 700;
letter-spacing: 0.04em;
font-size: 1.6em;
white-space: normal;
word-break: keep-all;
overflow-wrap: normal;
}
.spirit-info-flex {
display: flex;
flex-direction: column;
gap: 18px;
}
#spirit-info {
box-sizing: border-box;
position: fixed;
overflow-x: hidden;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
background: rgba(0,0,0,0.94);
color: #fff;
border-radius: 18px;
font-family: 'Segoe UI', sans-serif;
box-shadow: 0 12px 64px #000a;
width: 600px;
max-width: calc(100vw - 48px);
min-width: 320px;
max-height: calc(100dvh - 48px);
overflow-y: auto;
padding: 40px 36px 32px 36px;
z-index: 9999;
margin: 0;
}
/* DESKTOP immer: pointer: fine */
@media (pointer: fine) {
.spirit-info-flex {
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 32px;
}
#spirit-info img {
max-width: 220px;
min-width: 120px;
width: 35vw;
max-height: 45vh;
height: auto;
object-fit: contain;
border-radius: 12px;
background: transparent;
flex-shrink: 0;
margin: 0;
display: block;
}
#spirit-info .spirit-info-content {
flex: 1 1 0;
min-width: 0;
max-width: 450px;
overflow-wrap: break-word;
word-break: break-word;
}
}
/* MOBILE immer: pointer: coarse */
@media (pointer: coarse) {
#spirit-info {
width: 90vw;
max-width: 98vw;
min-width: 0;
max-height: 82dvh;
padding: 8vw 4vw 4vw 4vw;
}
.spirit-info-flex {
display: flex;
flex-direction: column;
gap: 16px;
}
#spirit-info img {
display: block;
margin: 0 auto 18px auto;
max-width: 84vw;
max-height: 30vh;
border-radius: 12px;
width: 100%;
height: auto;
object-fit: contain;
background: transparent;
}
#spirit-info .spirit-info-content {
width: 100%;
max-width: 100%;
min-width: 0;
word-break: break-word;
}
}
</style>
</head>
<body>
<div id="viewer"></div>
<script type="module" src="app.js"></script>
</body>
</html>