Creature Collection
GLM 5.3 Flash · full

Reviews & generation details
Reviews
No human review yet. Unreviewed does not mean unsuccessful.
Generation context
Imported historical artifact. Its exact original instructions and lineage are not known.
Generation prompt · exact text unavailable
See the current prompt for reference. It may differ from the instructions used to generate this artifact.
Inspect original source 12,351 bytes · SHA-256 766a7a3dce97
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1,user-scalable=no">
<title>Emberveil — Shards of the Luminous Wilds</title>
<style>
:root{
--ink:#eaf2ff; --ink-dim:#9fb2cc; --glass:rgba(16,24,44,.72); --glass2:rgba(30,42,72,.55);
--edge:rgba(140,180,255,.25); --gold:#ffd98a; --hp:#5ee08a; --hp-low:#ff7a6b; --xp:#7ec8ff;
--pyra:#ff8a5c; --tide:#5cb8ff; --verd:#7ee08a; --storm:#c9a7ff; --umbra:#8a7bd8; --radi:#ffe08a; --aegis:#a8b8c8;
--vignette:transparent;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%;overflow:hidden;background:#070b16;color:var(--ink);
font-family:"Segoe UI",system-ui,sans-serif;user-select:none}
canvas{display:block;image-rendering:pixelated}
#game{position:fixed;inset:0}
#stage{position:absolute;inset:0}
#vignette{position:absolute;inset:0;pointer-events:none;background:var(--vignette);
transition:background 1.2s;mix-blend-mode:multiply;z-index:5}
#flash{position:absolute;inset:0;pointer-events:none;background:#fff;opacity:0;z-index:6}
#shakeWrap{position:absolute;inset:0}
/* ---------- generic UI ---------- */
.glass{background:var(--glass);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
border:1px solid var(--edge);border-radius:16px;box-shadow:0 8px 40px rgba(0,0,0,.5)}
button{font-family:inherit;color:var(--ink);cursor:pointer;border:1px solid var(--edge);
background:var(--glass2);border-radius:10px;padding:9px 16px;font-size:15px;transition:.15s}
button:hover{background:rgba(90,130,220,.35);transform:translateY(-1px)}
button:disabled{opacity:.4;pointer-events:none}
button.primary{background:linear-gradient(135deg,#3a6df0,#7a4df0);border-color:rgba(160,190,255,.5);font-weight:600}
button.danger{background:linear-gradient(135deg,#a03a3a,#703050)}
.overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;z-index:20}
.hidden{display:none!important}
/* ---------- title ---------- */
#title{flex-direction:column;gap:26px;background:radial-gradient(ellipse at 50% 30%,#1a2a55 0%,#0a0f22 65%,#05070f 100%);z-index:40}
#title h1{font-size:clamp(38px,8vw,74px);letter-spacing:.14em;font-weight:800;
background:linear-gradient(180deg,#fff6d8,#ffd98a 45%,#e08a4a);-webkit-background-clip:text;background-clip:text;color:transparent;
text-shadow:0 0 60px rgba(255,200,120,.25);animation:titleGlow 4s ease-in-out infinite}
@keyframes titleGlow{50%{filter:brightness(1.25)}}
#title .sub{color:var(--ink-dim);letter-spacing:.35em;font-size:13px;text-transform:uppercase}
#title .btns{display:flex;flex-direction:column;gap:12px;width:260px}
#title .btns button{font-size:18px;padding:14px}
#titleHint{color:var(--ink-dim);font-size:12px;max-width:420px;text-align:center;line-height:1.6}
/* ---------- HUD ---------- */
#hud{position:absolute;top:10px;left:10px;right:10px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none;z-index:10}
#hud .glass{padding:8px 14px;pointer-events:auto;font-size:13px}
#zoneName{font-weight:700;letter-spacing:.08em}
#objective{margin-top:3px;color:var(--ink-dim);font-size:11.5px}
#hudBtns{display:flex;gap:8px;pointer-events:auto}
#hudBtns button{padding:8px 12px;font-size:14px}
/* ---------- dialogue / cutin ---------- */
#dialog{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);width:min(680px,92vw);
padding:16px 20px;z-index:25;font-size:15.5px;line-height:1.55;cursor:pointer}
#dialog .who{color:var(--gold);font-weight:700;font-size:12.5px;letter-spacing:.15em;text-transform:uppercase;margin-bottom:5px}
#dialog .more{float:right;color:var(--ink-dim);font-size:11px;animation:pulse 1.2s infinite}
@keyframes pulse{50%{opacity:.3}}
#cutin{position:absolute;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;
background:rgba(4,6,14,.6);opacity:0;transition:opacity .8s;pointer-events:none}
#cutin.show{opacity:1}
#cutin .card{max-width:560px;padding:34px 38px;text-align:center;font-size:17px;line-height:1.7;animation:cutinIn 1s}
@keyframes cutinIn{from{transform:scale(.92) translateY(20px);opacity:0}}
/* ---------- battle ---------- */
#battle{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column}
#battleCanvas{position:absolute;inset:0;width:100%;height:100%}
#bTop{position:relative;z-index:2;padding:12px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}
.foeCard{min-width:210px;max-width:300px;padding:10px 14px;font-size:13px}
.foeCard .nm{font-weight:700;display:flex;justify-content:space-between;gap:8px}
.bar{height:9px;background:rgba(0,0,0,.45);border-radius:5px;overflow:hidden;margin-top:5px;border:1px solid rgba(255,255,255,.12)}
.bar>i{display:block;height:100%;border-radius:5px;background:var(--hp);transition:width .5s cubic-bezier(.2,.8,.3,1)}
.bar.xp>i{background:var(--xp)}
.stTags{margin-top:4px;display:flex;gap:5px;flex-wrap:wrap}
.stTag{font-size:10px;padding:1px 6px;border-radius:6px;background:rgba(255,255,255,.14)}
#bBottom{position:relative;z-index:2;margin-top:auto;padding:12px;display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}
#allyCard{min-width:250px;max-width:330px;padding:10px 14px;font-size:13px}
#bMenu{margin-left:auto;display:flex;flex-direction:column;gap:8px;min-width:230px}
#bMenu .row{display:flex;gap:8px}
#bMenu button{flex:1;padding:11px 8px;font-size:15px}
#moveList{position:absolute;right:12px;bottom:12px;z-index:3;display:flex;flex-direction:column;gap:7px;width:min(360px,90vw)}
#moveList button{text-align:left;display:flex;justify-content:space-between;gap:10px;font-size:13.5px;padding:9px 12px}
#moveList .mv-t{font-size:11px;padding:1px 7px;border-radius:6px;align-self:center}
#moveList .pp{color:var(--ink-dim);font-size:11px;align-self:center}
#battleLog{position:absolute;left:12px;top:64px;z-index:3;max-width:420px;padding:10px 16px;font-size:14px;line-height:1.5}
#battleLog div{animation:logIn .3s}
@keyframes logIn{from{opacity:0;transform:translateY(6px)}}
#switchList,#bagList{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:4;
padding:18px;width:min(480px,94vw);max-height:80vh;overflow:auto}
.listRow{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--edge);
border-radius:10px;margin-bottom:7px;background:rgba(20,30,55,.5);cursor:pointer;font-size:14px}
.listRow:hover{background:rgba(80,120,220,.25)}
.listRow small{color:var(--ink-dim)}
.hpNum{font-size:11px;color:var(--ink-dim)}
/* damage numbers / particles are canvas-drawn */
/* ---------- menus ---------- */
#menu{position:absolute;inset:0;z-index:35;display:flex;align-items:center;justify-content:center;background:rgba(5,8,18,.6)}
#menuBox{width:min(860px,96vw);height:min(600px,92vh);display:flex;flex-direction:column;overflow:hidden}
#menuTabs{display:flex;gap:6px;padding:12px 14px 0}
#menuTabs button{border-radius:10px 10px 0 0;border-bottom:none;font-size:14px}
#menuTabs button.on{background:rgba(100,140,240,.4)}
#menuBody{flex:1;overflow:auto;padding:16px 18px}
.teamGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.creatureCard{padding:13px;border:1px solid var(--edge);border-radius:14px;background:rgba(22,32,60,.55);font-size:13px}
.creatureCard h4{display:flex;justify-content:space-between;font-size:15px}
.tchip{font-size:10.5px;padding:1px 8px;border-radius:8px;color:#0a0e18;font-weight:700}
.cardBars{margin-top:7px}
.cardBars .bar{height:7px}
.miniRow{display:flex;gap:6px;margin-top:9px;flex-wrap:wrap}
.miniRow button{padding:5px 10px;font-size:12px}
.abList{margin-top:7px;font-size:11.5px;color:var(--ink-dim);line-height:1.6}
.dexGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px}
.dexCell{padding:11px;border:1px solid var(--edge);border-radius:12px;background:rgba(22,32,60,.5);font-size:12.5px}
.dexCell .unk{color:#44506a;letter-spacing:.2em}
.dexCell .lore{color:var(--ink-dim);font-size:11.5px;margin-top:5px;line-height:1.5}
#mapWrap canvas{width:100%;border-radius:12px;border:1px solid var(--edge)}
.shopRow{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;border:1px solid var(--edge);border-radius:10px;margin-bottom:7px;font-size:13.5px}
/* ---------- capture minigame ---------- */
#capture{position:absolute;inset:0;z-index:26;display:flex;align-items:center;justify-content:center;background:rgba(5,8,18,.55)}
#capture .glass{padding:26px 34px;text-align:center;width:min(520px,94vw)}
#capBar{position:relative;height:34px;border-radius:9px;overflow:hidden;margin:16px 0;
background:linear-gradient(90deg,#3a1a2a,#1a2a4a,#3a1a2a);border:1px solid var(--edge)}
#capZone{position:absolute;top:0;bottom:0;background:linear-gradient(180deg,rgba(120,255,180,.55),rgba(120,255,180,.25));border-radius:8px}
#capPin{position:absolute;top:-3px;bottom:-3px;width:5px;background:#fff;box-shadow:0 0 12px #fff;border-radius:3px}
#capHits{font-size:20px;letter-spacing:.3em;color:var(--gold);height:26px}
/* ---------- touch controls ---------- */
#touch{position:absolute;left:16px;bottom:16px;z-index:12;display:none;grid-template-columns:repeat(3,58px);grid-template-rows:repeat(3,58px);gap:5px;opacity:.85}
#touch button{font-size:22px;border-radius:14px}
@media (pointer:coarse){#touch{display:grid}}
#toast{position:absolute;top:70px;left:50%;transform:translateX(-50%);z-index:50;padding:9px 20px;font-size:14px;
opacity:0;transition:opacity .3s;pointer-events:none}
#toast.show{opacity:1}
#muteBtn{position:absolute;bottom:12px;right:12px;z-index:36;padding:7px 11px;font-size:15px}
kbd{background:rgba(255,255,255,.12);border-radius:5px;padding:1px 7px;font-size:12px}
::-webkit-scrollbar{width:9px}::-webkit-scrollbar-thumb{background:rgba(120,160,255,.3);border-radius:5px}
</style>
</head>
<body>
<div id="stage">
<canvas id="world"></canvas>
<div id="vignette"></div>
<div id="flash"></div>
</div>
<div id="hud" class="hidden">
<div class="glass"><div id="zoneName"></div><div id="objective"></div></div>
<div id="hudBtns">
<button id="btnMenu">☰ Menu</button>
</div>
</div>
<div id="touch">
<span></span><button data-d="U">▲</button><span></span>
<button data-d="L">◀</button><span></span><button data-d="R">▶</button>
<span></span><button data-d="D">▼</button><span></span>
</div>
<div id="dialog" class="glass hidden"><div class="who"></div><div class="txt"></div><span class="more">▼</span></div>
<div id="cutin"><div class="card glass"></div></div>
<div id="battle" class="hidden">
<canvas id="battleCanvas"></canvas>
<div id="bTop"><div class="foeCard glass" id="foeCard"></div></div>
<div id="battleLog" class="glass"></div>
<div id="bBottom"><div class="glass" id="allyCard"></div>
<div id="bMenu"><div class="row"><button id="bFight">Fight</button><button id="bBag">Bag</button></div>
<div class="row"><button id="bSwitch">Switch</button><button id="bRun">Flee</button></div></div>
</div>
<div id="moveList" class="hidden"></div>
<div id="switchList" class="glass hidden"></div>
<div id="bagList" class="glass hidden"></div>
</div>
<div id="capture" class="hidden"><div class="glass">
<h3 id="capTitle">Bind the wild one</h3>
<div id="capBar"><div id="capZone"></div><div id="capPin"></div></div>
<div id="capHits"></div>
<p style="color:var(--ink-dim);font-size:13px">Tap <kbd>Space</kbd> (or click) when the light crosses the green band — 3 times.</p>
</div></div>
<div id="menu" class="hidden"><div id="menuBox" class="glass">
<div id="menuTabs"></div><div id="menuBody"></div>
<div style="padding:10px 14px;display:flex;justify-content:space-between">
<span style="color:var(--ink-dim);font-size:12px" id="menuFoot"></span>
<button id="menuClose">Close</button></div>
</div></div>
<div id="title" class="overlay">
<div class="sub">A creature-binding journey</div>
<h1>EMBERVEIL</h1>
<div class="btns"><button class="primary" id="btnNew">New Binding</button><button id="btnCont">Continue</button></div>
<div id="titleHint">The wilds remember every shard. Move with <kbd>WASD</kbd> / arrows. Rest at shrines. Bind what you defeat.</div>
</div>
<div id="toast" class="glass"></div>
<script>
"use strict";
</script>
</body>
</html>