/* Pixelify Sans — SIL Open Font License, served from our own server */
@font-face { font-family: "Pixelify Sans"; font-weight: 500; font-display: swap; src: url("/static/games/craft/fonts/pixelify-sans-latin-500-normal.woff2") format("woff2"); }
@font-face { font-family: "Pixelify Sans"; font-weight: 700; font-display: swap; src: url("/static/games/craft/fonts/pixelify-sans-latin-700-normal.woff2") format("woff2"); }
/* Scribble Craft Survival */
.craft-body { margin: 0; background: #0E1222; overflow: hidden; height: 100vh; height: 100dvh; }
.craft { position: relative; height: 100vh; height: 100dvh; overflow: hidden; color: #fff; font-family: "Baloo 2", system-ui, sans-serif;
  background: radial-gradient(ellipse at 50% 110%, #2E7D32 0 18%, transparent 19%), linear-gradient(180deg, #5BA7F0 0%, #9ED0FF 55%, #6FBF73 56%, #3E8E41 100%); user-select: none; }
.craft::before { content: ''; position: absolute; inset: auto 0 0 0; height: 44%; pointer-events: none;
  background: repeating-linear-gradient(90deg, #00000014 0 48px, transparent 48px 96px), repeating-linear-gradient(0deg, #00000014 0 48px, transparent 48px 96px); }
.craft-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; z-index: 1; outline: none; }
.cmenu { position: absolute; inset: 0; z-index: 10; display: grid; place-items: center; padding: 16px; background: #0E122266; backdrop-filter: blur(3px); }
.cmenu.cm-home, .cmenu.cm-loading { background: #0E122233; }
.cpanel { width: min(440px, 100%); max-height: 92%; overflow: auto; display: grid; gap: 10px; padding: 22px; border-radius: 18px; background: linear-gradient(180deg, #1D2440f2, #141A30f2); border: 2px solid #3B4A7A; box-shadow: 0 0 0 4px #0B0F1D, 0 18px 40px #0008; }
.clogo { font: 900 clamp(2rem, 8vw, 2.9rem)/0.95 "Baloo 2", system-ui, sans-serif; text-align: center; letter-spacing: .02em; color: #FFD23F; text-shadow: 0 4px 0 #8A5400, 0 8px 18px #0008; }
.clogo-sub { text-align: center; font: 900 1.4rem "Baloo 2", sans-serif; letter-spacing: .45em; color: #9BE7C4; margin-top: -6px; text-shadow: 0 3px 0 #1E5E44; }
.ctag { text-align: center; margin: 0 0 6px; color: #C9D3F5; font-weight: 700; }
.cbtn { font: 800 1.05rem "Baloo 2", system-ui, sans-serif; color: #fff; background: linear-gradient(180deg, #44558F, #33406C); border: 2px solid #0B0F1D; border-radius: 12px; padding: 10px 14px; box-shadow: inset 0 2px 0 #ffffff26, 0 4px 0 #0B0F1D; cursor: pointer; text-align: center; }
.cbtn:hover { filter: brightness(1.1); } .cbtn:active { transform: translateY(3px); box-shadow: inset 0 2px 0 #ffffff26, 0 1px 0 #0B0F1D; }
.cbtn.primary { background: linear-gradient(180deg, #5CC95C, #2E9A3E); }
.cbtn.ghost { background: transparent; box-shadow: none; border-color: #3B4A7A; }
.cbtn.soon { opacity: .7; } .cbtn.soon::after { content: ' · soon'; font-size: .8rem; color: #FFD23F; }
.cbtn.danger { background: linear-gradient(180deg, #E5484D, #B4232A); }
.cbtn.sm { font-size: .85rem; padding: 4px 10px; }
.cnote { margin: 0; padding: 8px 10px; border-radius: 10px; background: #FFD23F1f; color: #FFE69A; font-weight: 600; font-size: .9rem; }
.cwho { margin: 4px 0 0; text-align: center; color: #9BA8D6; font-size: .9rem; }
.cback { text-align: center; color: #9BA8D6; font-weight: 700; }
.cpanel h2 { margin: 0 0 4px; font-size: 1.5rem; color: #FFD23F; }
.cform { display: grid; gap: 10px; } .cform label { display: grid; gap: 4px; font-weight: 700; color: #C9D3F5; }
.cform input, .cform select { font: 600 1rem system-ui, sans-serif; padding: 9px 10px; border-radius: 10px; border: 2px solid #3B4A7A; background: #0E1222; color: #fff; }
.wrow { display: grid; gap: 4px; padding: 10px; border-radius: 12px; background: #0E1222; border: 1px solid #3B4A7A; }
.wname { font-weight: 800; font-size: 1.1rem; } .wrow small { color: #9BA8D6; } .wacts { display: flex; gap: 6px; flex-wrap: wrap; }
.clist { margin: 0; padding-left: 18px; display: grid; gap: 6px; color: #DDE3FA; }
.cset { display: grid; gap: 4px; font-weight: 700; color: #C9D3F5; } .cset input { width: 100%; accent-color: #5CC95C; }
.load-msg { text-align: center; color: #DDE3FA; font-weight: 700; margin: 0; }
.load-bar { height: 14px; border-radius: 8px; background: #0E1222; border: 2px solid #3B4A7A; overflow: hidden; } .load-bar i { display: block; height: 100%; width: 0; background: linear-gradient(90deg, #5CC95C, #FFD23F); transition: width .2s; }
/* HUD */
.hud { position: absolute; inset: 0; z-index: 5; pointer-events: none; }
.crosshair { position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; transform: translate(-50%, -50%); }
.crosshair::before, .crosshair::after { content: ''; position: absolute; background: #fff; box-shadow: 0 0 0 1px #0008; }
.crosshair::before { left: 10px; top: 0; width: 2px; height: 22px; } .crosshair::after { top: 10px; left: 0; width: 22px; height: 2px; }
.hud-top { position: absolute; top: 10px; left: 12px; right: 12px; display: flex; gap: 12px; align-items: center; font-weight: 800; text-shadow: 0 2px 0 #0009; }
.hud-day { background: #0E1222b3; padding: 2px 10px; border-radius: 8px; } .hud-info { color: #DDE3FA; font-size: .9rem; } .hud-save { margin-left: auto; color: #9BE7C4; }
.break-bar { position: absolute; left: 50%; top: calc(50% + 22px); width: 90px; height: 8px; transform: translateX(-50%); border-radius: 5px; background: #0008; border: 1px solid #fff8; overflow: hidden; }
.break-bar i { display: block; height: 100%; width: 0; background: #FFD23F; }
.hotbar { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); display: flex; gap: 4px; padding: 5px; border-radius: 12px; background: #0E1222c0; border: 2px solid #3B4A7A; pointer-events: auto; }
.slot { position: relative; width: 46px; height: 46px; border-radius: 8px; border: 2px solid #2A3560; display: grid; place-items: center; cursor: pointer; background: #1D2440; }
.slot.on { border-color: #FFD23F; box-shadow: 0 0 0 2px #FFD23F66; transform: translateY(-3px); }
.slot .ico { width: 30px; height: 30px; image-rendering: pixelated; border-radius: 3px; box-shadow: inset 0 0 0 1px #0004; }
.slot b { position: absolute; top: 1px; left: 4px; font-size: .7rem; color: #C9D3F5; }
.hud-hint { position: absolute; left: 50%; bottom: 74px; transform: translateX(-50%); font-size: .78rem; color: #DDE3FA; background: #0E122299; padding: 3px 10px; border-radius: 8px; white-space: nowrap; }
.ctoast { position: absolute; z-index: 20; left: 50%; bottom: 90px; transform: translateX(-50%); background: #0E1222ee; border: 2px solid #3B4A7A; padding: 8px 14px; border-radius: 12px; font-weight: 700; }
.craft-seo { background: #fff; color: #1D1A3F; }
@media (max-width: 640px) { .hud-hint { display: none; } .slot { width: 36px; height: 36px; } .slot .ico { width: 24px; height: 24px; } }

/* ---------- title screen (pixel style) ---------- */
.cmenu.cm-home { background: radial-gradient(ellipse at 50% 45%, #0E122200 0%, #0E122244 65%, #0E1222aa 100%); backdrop-filter: none; align-content: center; }
.cmenu.cm-home .cpanel { background: none; border: 0; box-shadow: none; width: min(640px, 100%); gap: 22px; overflow: visible; padding: 8px; justify-items: center; }
.tlogo { margin: 0 0 22px; display: grid; justify-items: center; gap: 4px; line-height: .9; font: 700 clamp(2.8rem, 8.6vw, 6.2rem) "Pixelify Sans", "Courier New", monospace; letter-spacing: .02em; text-transform: uppercase; }
.tlogo .row { display: block; white-space: nowrap; }
.tlogo span span, .tlogo .row > span { -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-stroke: 2px #1A0E05; paint-order: stroke fill;
  filter: drop-shadow(0 4px 0 #2A1608) drop-shadow(0 8px 0 #140A03) drop-shadow(0 0 18px var(--glow)) drop-shadow(0 0 30px var(--glow)); }
.tlogo .t1 { background-image: linear-gradient(180deg, #FFF0A0 0%, #FFD23F 35%, #FF9F1C 65%, #E2571B 100%); --glow: #ffb34788; }
.tlogo .t2 { background-image: linear-gradient(180deg, #E6FDFF 0%, #7FE6FF 35%, #2FA9E0 70%, #1B5FB8 100%); --glow: #3dd6e888; }
.tlogo .t3 { background-image: linear-gradient(180deg, #CFF7FF 0%, #4FB7FF 40%, #1E6FE0 65%, #3FCF6A 100%); --glow: #4fb7ff88; }
.mbtn { position: relative; display: flex; align-items: center; justify-content: center; width: min(440px, 92vw); min-height: 72px; padding: 6px 54px; cursor: pointer;
  font: 700 clamp(1.25rem, 3.4vw, 1.9rem) "Pixelify Sans", "Courier New", monospace; letter-spacing: .03em;
  border: 4px solid #1B1308; border-radius: 3px; background: var(--fill);
  box-shadow: inset 0 0 0 3px var(--rim), inset 0 4px 0 6px #ffffff2a, inset 0 -6px 0 3px #0000002e, 0 0 0 5px #6E5B3E, 0 0 0 9px #2B2112, 0 0 30px 8px var(--glow); }
.mbtn .ml { color: var(--ink); text-shadow: 0 2px 0 var(--ink-shadow); }
.mbtn .mi { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; }
.mbtn .pxi { width: 100%; height: 100%; display: block; filter: drop-shadow(0 2px 0 #0005); }
.mbtn .rivet { position: absolute; width: 6px; height: 6px; background: #C9B48C; box-shadow: inset -1px -1px 0 #6E5B3E; }
.mbtn .tl { top: -11px; left: -11px; } .mbtn .tr { top: -11px; right: -11px; } .mbtn .bl { bottom: -11px; left: -11px; } .mbtn .br { bottom: -11px; right: -11px; }
.mbtn:hover { filter: brightness(1.12); } .mbtn:active { transform: translateY(3px); }
.mbtn.gold { --fill: linear-gradient(180deg, #FFD95A, #F2A81D); --rim: #FFE9A0; --ink: #5A3200; --ink-shadow: #FFE9A0; --glow: #ffcf4d99; }
.mbtn.green { --fill: linear-gradient(180deg, #8BD86A, #3D9B34); --rim: #B8F29A; --ink: #123D0E; --ink-shadow: #B8F29A; --glow: #6ee06599; }
.mbtn.teal { --fill: linear-gradient(180deg, #7DE3C4, #24A07A); --rim: #B5F5E2; --ink: #0B3A2C; --ink-shadow: #B5F5E2; --glow: #4fe0b099; }
.mbtn.cyan { --fill: linear-gradient(180deg, #7FDFFF, #2493D1); --rim: #BDF0FF; --ink: #062E4A; --ink-shadow: #BDF0FF; --glow: #3dd6e899; }
.mbtn.purple { --fill: linear-gradient(180deg, #D79BFF, #8E3FD6); --rim: #EDD0FF; --ink: #FBE7FF; --ink-shadow: #3A1260; --glow: #b77bff99; }
.cmenu-corner { position: absolute; left: 14px; right: 14px; bottom: 10px; display: flex; align-items: flex-end; justify-content: space-between; pointer-events: none; }
.cmenu-corner .ver { font: 500 1rem "Pixelify Sans", "Courier New", monospace; color: #fff; text-shadow: 0 2px 0 #000c; }
.ctools { display: flex; gap: 18px; pointer-events: auto; }
.ctool { display: grid; justify-items: center; gap: 4px; border: 0; background: none; color: #fff; cursor: pointer; font: 700 .95rem "Pixelify Sans", "Courier New", monospace; letter-spacing: .04em; text-transform: uppercase; text-shadow: 0 2px 0 #000c; }
.ctool span { width: 30px; height: 30px; } .ctool .pxi { width: 100%; height: 100%; filter: drop-shadow(0 2px 0 #000a); }
.ctool:hover { transform: translateY(-2px); }
.cguide { color: #DDE3FA; font-size: .95rem; } .cguide h2, .cguide h3 { color: #FFD23F; margin: 12px 0 4px; font-size: 1.1rem; } .cguide p { margin: 0 0 8px; }
@media (max-height: 640px) { .mbtn { min-height: 50px; } .tlogo { font-size: clamp(2rem, 6vw, 3.4rem); } }

/* ---------- account / login / SC store inside Scribble Craft: game style ---------- */
.craft-body .soc { background: #05081280; }
.craft-body .soc-panel { background: linear-gradient(180deg, #1D2440, #141A30); color: #EEF1FF; border: 4px solid #0B0F1D; box-shadow: 0 0 0 4px #6E5B3E, 0 0 0 8px #2B2112, 0 18px 40px #000a; border-radius: 6px; font-family: "Pixelify Sans", "Baloo 2", system-ui, sans-serif; }
.craft-body .soc-head { background: #0E1222; border-bottom: 3px solid #3B4A7A; }
.craft-body .soc-head h2 { color: #FFD23F; font: 700 1.4rem "Pixelify Sans", monospace; letter-spacing: .03em; }
.craft-body .soc-head .icon-btn { background: #33406C; color: #fff; border: 2px solid #0B0F1D; border-radius: 4px; }
.craft-body .soc-body, .craft-body .soc-body p, .craft-body .soc-body label, .craft-body .soc-body small, .craft-body .soc-body h3, .craft-body .soc-body h4 { color: #DDE3FA; }
.craft-body .soc-body h4 { color: #FFD23F; font-family: "Pixelify Sans", monospace; letter-spacing: .03em; }
.craft-body .soc-body input, .craft-body .soc-body select, .craft-body .soc-body textarea { background: #0E1222; color: #fff; border: 3px solid #3B4A7A; border-radius: 4px; font-family: "Pixelify Sans", system-ui, sans-serif; }
.craft-body .soc-body .stabs { background: #0E1222; border: 3px solid #3B4A7A; border-radius: 4px; }
.craft-body .soc-body .tab { color: #C9D3F5; font-family: "Pixelify Sans", monospace; border-radius: 2px; }
.craft-body .soc-body .tab.on, .craft-body .soc-body .tab[aria-selected="true"] { background: linear-gradient(180deg, #FFD95A, #F2A81D); color: #5A3200; }
.craft-body .soc-body .btn, .craft-body #sheet .btn { font-family: "Pixelify Sans", monospace; letter-spacing: .03em; border: 3px solid #1B1308; border-radius: 3px; background: linear-gradient(180deg, #44558F, #33406C); color: #fff; box-shadow: inset 0 2px 0 #ffffff33, 0 0 0 3px #6E5B3E, 0 4px 0 #1A140A; }
.craft-body .soc-body .btn-primary, .craft-body .soc-body .btn.primary { background: linear-gradient(180deg, #FFD95A, #F2A81D); color: #5A3200; box-shadow: inset 0 2px 0 #ffffff55, 0 0 0 3px #6E5B3E, 0 4px 0 #1A140A, 0 0 16px #ffcf4d66; }
.craft-body .soc-body .pcard, .craft-body .soc-body .wbal, .craft-body .soc-body .scpack, .craft-body .soc-body .nlist li, .craft-body .soc-body .plistx li, .craft-body .soc-body .sandbox { background: #0E1222; border: 3px solid #3B4A7A; color: #EEF1FF; box-shadow: none; border-radius: 4px; }
.craft-body .soc-body .wbal { background: linear-gradient(180deg, #2B2650, #1D1A3F); border-color: #A86A00; }
.craft-body .soc-body .scpack small, .craft-body .soc-body .sctotal { color: #FFE69A; }
.craft-body .soc-body .serr { color: #ff8a8a; }
.craft-body #sheet { background: #141A30; color: #EEF1FF; border: 4px solid #0B0F1D; }
.craft-body #sheet h3 { color: #FFD23F; }

/* ---------- bag, crafting, chests, shop ---------- */
.cpanel.wide, .cmenu.cm-shop .cpanel { width: min(900px, 100%); }
.cpanel h3 { margin: 6px 0 4px; color: #9BE7C4; font: 700 1rem "Pixelify Sans", monospace; letter-spacing: .04em; }
.bagcols { display: grid; grid-template-columns: auto 1fr; gap: 18px; align-items: start; }
.igrid { display: grid; grid-template-columns: repeat(9, 44px); gap: 4px; }
.igrid.hot { margin-top: 4px; padding-top: 6px; border-top: 2px dashed #3B4A7A; } .igrid.chest { margin-bottom: 8px; }
.islot { position: relative; width: 44px; height: 44px; padding: 0; border-radius: 4px; border: 2px solid #2A3560; background: #0E1222; cursor: pointer; display: grid; place-items: center; }
.islot:hover { border-color: #8EA2E6; } .islot.picked { border-color: #FFD23F; box-shadow: 0 0 0 2px #FFD23F88; }
.islot .ico, .slot .ico { width: 28px; height: 28px; image-rendering: pixelated; display: block; }
.islot em, .slot em { position: absolute; right: 3px; bottom: 1px; font: 700 .75rem "Pixelify Sans", monospace; font-style: normal; color: #fff; text-shadow: 1px 1px 0 #000; }
.craftcol { display: grid; gap: 6px; max-height: 420px; overflow: auto; padding-right: 4px; }
.recipe { display: grid; grid-template-columns: 1fr auto; gap: 2px 8px; align-items: center; padding: 6px 8px; border-radius: 6px; background: #0E1222; border: 2px solid #2A3560; opacity: .75; }
.recipe.ok { opacity: 1; border-color: #3FAE3F; }
.recipe .rout { display: flex; align-items: center; gap: 6px; } .recipe .rout .ico { width: 24px; height: 24px; }
.recipe small { grid-column: 1; color: #9BA8D6; } .recipe .cbtn { grid-row: 1 / span 2; grid-column: 2; }
.cnote.small { font-size: .8rem; margin-top: 6px; }
.row2 { display: flex; gap: 8px; margin: 6px 0; }
.shopbal { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 6px; background: linear-gradient(180deg, #2B2650, #1D1A3F); border: 3px solid #A86A00; font: 700 1.05rem "Pixelify Sans", monospace; }
.shopbal b { color: #FFE69A; font-size: 1.3rem; }
.shopgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px; }
.skin { position: relative; display: grid; justify-items: center; gap: 4px; padding: 12px 8px 10px; border-radius: 6px; background: #0E1222; border: 3px solid #3B4A7A; text-align: center; }
.skin.rare { border-color: #3DD6E8; } .skin.epic { border-color: #B77BFF; } .skin.legendary { border-color: #FFD23F; box-shadow: 0 0 16px #ffd23f55; }
.skin.eq { outline: 3px solid #5CC95C; }
.skin .outfit { width: 64px; height: 128px; image-rendering: pixelated; filter: drop-shadow(0 4px 0 #0008); }
.skin b { font: 700 1.05rem "Pixelify Sans", monospace; } .skin small { color: #9BA8D6; min-height: 2.4em; }
.skin .rar { font: 700 .7rem "Pixelify Sans", monospace; text-transform: uppercase; letter-spacing: .1em; color: #C9D3F5; }
.skin .feat { position: absolute; top: -10px; background: #D7263D; color: #fff; font: 700 .65rem "Pixelify Sans", monospace; font-style: normal; padding: 1px 8px; border-radius: 3px; }
@media (max-width: 760px) { .bagcols { grid-template-columns: 1fr; } .igrid { grid-template-columns: repeat(9, 34px); } .islot { width: 34px; height: 34px; } }
/* health, hunger, death */
.vitals { position: absolute; left: 50%; bottom: 74px; transform: translateX(-50%); width: 470px; display: flex; justify-content: space-between; pointer-events: none; font-size: 15px; filter: drop-shadow(0 2px 0 #000a); }
.vitals i { font-style: normal; margin: 0 1px; }
.hurt-flash { position: absolute; inset: 0; pointer-events: none; box-shadow: inset 0 0 120px 40px #d7263d00; }
.hurt-flash.on { animation: hurtf .5s ease-out; }
@keyframes hurtf { 0% { box-shadow: inset 0 0 120px 40px #d7263daa; } 100% { box-shadow: inset 0 0 120px 40px #d7263d00; } }
.cmenu.cm-dead { background: #5a0b0bcc; }
.dead-title { text-align: center; font: 700 3rem "Pixelify Sans", monospace !important; color: #ff6b6b !important; text-shadow: 0 4px 0 #3a0000; }
.hud-hint { bottom: 100px; }
@media (max-width: 640px) { .vitals { width: 92vw; font-size: 12px; } }
