/* Built-in project mockups, shared by index.html and project.html */
.mock-wrap{container-type:inline-size;width:100%;transform-style:preserve-3d}
/* mockups */
.mock{font-size:2.3cqw;aspect-ratio:16/10;border-radius:1.1em;overflow:hidden;position:relative;border:1px solid rgba(255,255,255,.12);box-shadow:0 2em 5em rgba(0,0,0,.55);color:#fff;line-height:1.3;font-family:"Space Grotesk",sans-serif}
.m-web{background:radial-gradient(circle at 80% 40%,rgba(61,139,255,.35),transparent 50%),linear-gradient(160deg,#0a1633,#0d2257)}
.m-bar{display:flex;align-items:center;gap:.45em;padding:.7em 1em;background:rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.08)}
.m-bar i{width:.65em;height:.65em;border-radius:50%;background:#ff5f57}.m-bar i:nth-child(2){background:#febc2e}.m-bar i:nth-child(3){background:#28c840}
.m-bar span{margin-left:1em;font-family:var(--mono);font-size:.72em;background:rgba(0,0,0,.3);padding:.25em 1.4em;border-radius:99px;color:#9fb3e0}
.m-web-body{display:grid;grid-template-columns:1.3fr 1fr;padding:2.2em 2.2em 0;gap:1em;align-items:center}
.m-web-l small{font-family:var(--mono);font-size:.6em;letter-spacing:.1em;color:#e3b34a}
.m-web-l b{display:block;font-family:var(--display);font-weight:800;font-size:2.6em;line-height:.95;margin:.3em 0 .55em;letter-spacing:-.03em}
.m-btns{display:flex;gap:.5em}.m-btns span{font-size:.72em;padding:.6em 1.1em;border-radius:99px;background:#e3b34a;color:#0a1633;font-weight:600}
.m-btns .ghost{background:transparent;border:1px solid rgba(255,255,255,.3);color:#fff}
.m-coins{position:relative;height:9em}
.m-coins i{position:absolute;left:50%;width:5.6em;height:1.7em;margin-left:-2.8em;border-radius:50%;background:linear-gradient(180deg,#ffe08a,#c8902a);box-shadow:0 .28em 0 #8a5d12;display:grid;place-items:center;font-style:normal;font-weight:800;color:#8a5d12}
.m-calc{position:absolute;left:2.2em;right:2.2em;bottom:1.5em;display:flex;align-items:center;gap:1em;padding:.85em 1.2em;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:.8em;font-size:.8em}
.m-slider{flex:1;height:.3em;background:rgba(255,255,255,.15);border-radius:9px;position:relative}
.m-slider i{position:absolute;left:0;top:0;bottom:0;width:62%;background:#3d8bff;border-radius:9px}
.m-slider i::after{content:"";position:absolute;right:-.5em;top:50%;width:1em;height:1em;margin-top:-.5em;border-radius:50%;background:#fff}
.m-calc b{color:#e3b34a}
.m-dc{background:#313338;padding:1.4em;display:flex;align-items:center;font-size:2.75cqw}
.dc-msg{display:flex;gap:1em;width:100%}
.dc-av{flex:none;width:2.8em;height:2.8em;border-radius:50%;display:grid;place-items:center;font-weight:700}
.dc-main{flex:1;min-width:0}
.dc-head{display:flex;align-items:center;gap:.5em;margin-bottom:.45em}
.dc-head b{font-weight:600}
.dc-tag{font-size:.58em;background:#5865f2;padding:.1em .45em;border-radius:.3em;font-weight:700}
.dc-head small{font-size:.7em;color:#949ba4}
.dc-embed{background:#2b2d31;border-left:.3em solid var(--bar);border-radius:.3em;padding:1em 1.1em;display:flex;gap:1.1em;align-items:flex-start}
.dc-embed-l{flex:1;min-width:0}
.dc-embed-l>b{display:block;margin-bottom:.65em}
.dc-fields{display:grid;grid-template-columns:repeat(var(--cols,1),1fr);gap:.6em 1em;font-size:.82em}
.dc-fields small{display:block;color:#b5bac1;font-weight:600;font-size:.85em}
.dc-qr{flex:none;width:7.4em;height:7.4em;background:#fff;border-radius:.3em;padding:.45em;display:grid;grid-template-columns:repeat(21,1fr)}
.dc-qr i{background:#111}
.dc-btns{display:flex;gap:.5em;margin-top:.9em;flex-wrap:wrap}
.dc-btns span{font-size:.74em;padding:.55em 1.1em;border-radius:.3em;background:#4e5058;font-weight:600}
.dc-btns .g{background:#248046}
.m-dcx{aspect-ratio:auto;font-size:2.05cqw;padding:1.3em 1.3em 1.4em;align-items:flex-start}
img.dc-av{object-fit:cover}
.dcx-embed{display:grid;grid-template-columns:1fr auto;gap:.2em 1em;background:#2b2d31;border-left:.28em solid #9b59ff;border-radius:.3em;padding:.9em 1em 1em}
.dcx-title{font-weight:700;font-size:1.05em;margin-bottom:.45em}
.dcx-desc{font-size:.86em}
.dcx-desc b{display:block;margin-bottom:.2em}
.dcx-rank{height:1.25em;width:auto;image-rendering:pixelated}
.dcx-thumb{width:4.4em;height:auto;align-self:start;grid-column:2;grid-row:1 / span 2}
.dcx-fields{grid-column:1;display:grid;grid-template-columns:repeat(3,1fr);gap:.85em .8em;font-size:.84em;margin-top:.7em}
.dcx-f .n{display:flex;align-items:center;gap:.3em;font-weight:700;color:#f2f3f5;margin-bottom:.15em;white-space:nowrap}
.dcx-f span{display:block;color:#dbdee1;line-height:1.4;white-space:nowrap}
.dcx-f strong{color:#fff}
.em{height:1.15em;width:auto;vertical-align:-.22em}
.dcx-foot{grid-column:1/-1;display:flex;align-items:center;gap:.45em;font-size:.72em;color:#b5bac1;margin-top:.8em}
.dcx-foot img{width:1.5em;height:1.5em;border-radius:50%}
.dcx-select{margin-top:.6em;background:#1e1f22;border:1px solid #111214;border-radius:.3em;padding:.65em .9em;display:flex;justify-content:space-between;color:#949ba4;font-size:.85em}
.dcx-btns{display:flex;gap:.45em;margin-top:.5em;flex-wrap:wrap}
.dcx-btns span{font-size:.8em;padding:.5em .95em;border-radius:.3em;background:#4e5058;font-weight:600}
.dcx-btns .g{background:#248046}.dcx-btns .b{background:#5865f2}.dcx-btns .r{background:#da373c}
.m-shot{background:#0a1633;display:flex;flex-direction:column}
.m-shot img,.m-shot video{display:block;width:100%;flex:1;min-height:0;object-fit:cover;object-position:top}
.pulse{color:#f0b232}.pulse::before{content:"● ";animation:pulse 1.4s infinite}
.g-top{position:absolute;top:1em;left:1em;right:1em;display:flex;justify-content:space-between;font-family:var(--display);font-weight:800;font-size:.85em;z-index:2}
.g-top span{background:rgba(0,0,0,.4);padding:.35em .8em;border-radius:.5em;border:1px solid rgba(255,255,255,.15)}
.m-meteor{background:radial-gradient(circle at 50% 120%,#5a1a3a,transparent 60%),linear-gradient(180deg,#0c0820,#2a0e2e)}
.g-rock{position:absolute;top:20%;left:60%;width:4.6em;height:4.6em;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffe2a8,#ff7a1a 45%,#7a1d0a);box-shadow:0 0 2em #ff8a2a,0 0 5em rgba(255,120,30,.6);animation:bob 3s ease-in-out infinite}
.g-rock::before{content:"";position:absolute;right:55%;bottom:55%;width:10em;height:1.6em;background:linear-gradient(90deg,transparent,rgba(255,170,80,.75));transform:rotate(35deg);transform-origin:right center;border-radius:99px;filter:blur(3px)}
@keyframes bob{50%{transform:translate(-.4em,.5em)}}
.g-ground{position:absolute;left:0;right:0;bottom:0;height:24%;background:linear-gradient(180deg,#3a1a2a,#160810);border-top:1px solid rgba(255,154,60,.35)}
.g-pop{position:absolute;left:1.6em;bottom:1.4em;text-align:left;z-index:2}
.g-pop small{font-family:var(--mono);font-size:.62em;letter-spacing:.12em;color:#ffd36b}
.g-pop b{display:block;font-family:var(--display);font-weight:800;font-size:2.7em;line-height:1;background:linear-gradient(90deg,#ffd36b,#ff6ad5,#7c5cff);-webkit-background-clip:text;background-clip:text;color:transparent}
.g-pop span{font-family:var(--mono);font-size:.72em;opacity:.8}
.m-pumpkin{background:radial-gradient(circle at 50% 45%,#3a1a05,#120802 70%)}
.g-pk{position:absolute;left:50%;top:42%;width:7.4em;height:5.8em;margin:-2.9em 0 0 -3.7em;border-radius:50%;background:repeating-linear-gradient(90deg,#ff7a1a 0 .9em,#e05e00 .9em 1.4em);box-shadow:inset 0 -.8em 1.4em rgba(0,0,0,.35),0 0 3em rgba(255,122,26,.35)}
.g-pk::before{content:"";position:absolute;left:50%;top:-.9em;width:.7em;height:1.2em;margin-left:-.35em;background:#3c7a2a;border-radius:.2em}
.g-smash{position:absolute;left:0;right:0;top:15%;text-align:center;transform:rotate(-4deg);font-family:var(--display);font-weight:800;font-size:1.9em;color:#ffd36b;text-shadow:0 .1em 0 #a33d00}
.g-timing{position:absolute;left:20%;right:20%;bottom:22%;height:.9em;border-radius:99px;background:rgba(255,255,255,.12)}
.g-timing::before{content:"";position:absolute;left:44%;width:14%;top:0;bottom:0;background:#3ddc84;border-radius:2px}
.g-timing i{position:absolute;top:-.25em;bottom:-.25em;width:.35em;background:#fff;border-radius:9px;animation:sweep 1.5s ease-in-out infinite alternate}
@keyframes sweep{from{left:2%}to{left:96%}}
.g-loot{position:absolute;bottom:8%;left:0;right:0;text-align:center;font-family:var(--mono);font-size:.74em;color:#ffb347}
.m-pet{background:radial-gradient(circle at 25% 45%,rgba(255,106,213,.35),transparent 45%),radial-gradient(circle at 80% 60%,rgba(69,214,255,.35),transparent 45%),#140f2a;display:flex;align-items:center;justify-content:center;gap:1em;padding-top:1.5em}
.pc{width:6.2em;padding:1em .6em;border-radius:.9em;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);text-align:center}
.pc em{display:block;font-style:normal;font-size:2.3em;line-height:1.25}
.pc b{font-size:.9em}
.pc small{display:block;font-family:var(--mono);font-size:.58em;opacity:.7;margin-top:.2em}
.pc.res{width:8em;background:linear-gradient(160deg,rgba(255,106,213,.35),rgba(69,214,255,.3));border-color:#ff6ad5;box-shadow:0 0 2.5em rgba(255,106,213,.45);transform:scale(1.08)}
.pc.res em{font-size:1.9em}
.pc.res small{color:#ffd1f2;opacity:1}
.op{font-family:var(--display);font-weight:800;font-size:1.6em;opacity:.7}
.m-grapple{background:linear-gradient(180deg,#081218 0,#10232d 55%,#0a141a 55%)}
.m-grapple::before{content:"";position:absolute;left:-30%;right:-30%;bottom:0;height:45%;background-image:linear-gradient(rgba(41,227,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(41,227,255,.22) 1px,transparent 1px);background-size:2em 2em;transform:perspective(10em) rotateX(55deg);transform-origin:bottom}
.g-block{position:absolute;bottom:45%;background:linear-gradient(180deg,#1b3442,#0f1f28);border-top:2px solid rgba(41,227,255,.5)}
.g-anchor{position:absolute;left:30%;top:22%;width:.9em;height:.9em;margin:-.45em;border-radius:50%;background:#29e3ff;box-shadow:0 0 1em #29e3ff;z-index:2}
.g-rope{position:absolute;left:30%;top:22%;width:73.5%;height:2px;background:linear-gradient(90deg,#29e3ff,rgba(41,227,255,.15));transform-origin:left center;transform:rotate(41.6deg)}
.g-cross{position:absolute;left:50%;top:50%;width:2.3em;height:2.3em;margin:-1.15em;border:2px solid rgba(255,255,255,.75);border-radius:50%}
.g-cross::before{content:"";position:absolute;left:50%;top:50%;width:.3em;height:.3em;margin:-.15em;border-radius:50%;background:#ff3d5a}
.g-feed{position:absolute;top:1em;right:1em;font-size:.72em;display:flex;flex-direction:column;gap:.35em;align-items:flex-end}
.g-feed span{background:rgba(0,0,0,.5);padding:.3em .7em;border-radius:.3em}
.g-feed b{color:#29e3ff}.g-feed i{font-style:normal;color:#ff3d5a}
.g-ammo{position:absolute;right:1em;bottom:.9em;font-family:var(--display);font-weight:800;font-size:1.5em}
.g-ammo small{font-size:.5em;opacity:.6;margin-left:.3em}
.g-hp{position:absolute;left:1em;bottom:1.3em;width:30%;height:.6em;background:rgba(255,255,255,.12);border-radius:9px;overflow:hidden}
.g-hp i{display:block;width:72%;height:100%;background:linear-gradient(90deg,#3ddc84,#c6ff3d)}

.m-blank{aspect-ratio:16/10;display:grid;place-content:center;justify-items:center;gap:.3em;text-align:center;background:radial-gradient(circle at 30% 20%,var(--a),transparent 60%),radial-gradient(circle at 80% 90%,var(--b),transparent 55%),#0c0c12}
.m-blank b{font-family:var(--display);font-size:5em;line-height:1;color:#fff}
.m-blank span{font-family:var(--display);font-weight:700;font-size:1.3em;color:#fff}
.m-blank small{font-family:"JetBrains Mono",monospace;font-size:.75em;opacity:.7;color:#fff}
