/* GAME LAYER — sprites, cards, dialogue, HUD bars, inventory. Everything here is
   pixel-honest: no smoothing, no radii, motion in steps or springs only. */
.ag-sprite{display:inline-block;line-height:0}
.ag-sprite canvas,.ag-sprite img{image-rendering:pixelated;display:block}
.ag-sprite[data-bob="true"]{animation:ag-bob 2.4s steps(6,end) infinite}
.ag-sprite[data-shadow="true"]{position:relative}
.ag-sprite[data-shadow="true"]::after{content:"";position:absolute;left:12%;right:12%;bottom:-4px;height:6px;background:var(--w-shadow)}
.ag-card{position:relative;width:248px;background:var(--ink-800);border:var(--bw) solid var(--line-strong);clip-path:var(--clip-notch-8);box-shadow:var(--shadow-3);cursor:pointer;transition:transform var(--dur-3) var(--ease-spring),box-shadow var(--dur-3) var(--ease-swift),border-color var(--t-hover)}
.ag-card:hover{transform:translate3d(0,-6px,0) rotate(-.6deg);box-shadow:var(--shadow-3),var(--glow-soft);border-color:var(--accent)}
.ag-card[data-rarity="published"]{border-color:color-mix(in oklab,var(--violet-400) 55%,var(--line-strong))}
.ag-card[data-rarity="published"]:hover{border-color:var(--violet-400);box-shadow:var(--shadow-3),var(--glow-violet)}
.ag-card[data-rarity="private"]{border-style:dashed}
.ag-card__art{position:relative;height:132px;display:grid;place-items:center;background:linear-gradient(180deg,var(--ink-700),var(--ink-900));border-bottom:var(--bw-hair) solid var(--line);overflow:hidden}
.ag-card__art::before{content:"";position:absolute;inset:0;background:var(--tex-dots);opacity:.25}
.ag-card__art::after{content:"";position:absolute;inset:0;background:var(--tex-scanline);opacity:.4;mix-blend-mode:overlay}
.ag-card__shine{position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,color-mix(in oklab,#fff 14%,transparent) 48%,transparent 60%);background-size:220% 100%;opacity:0}
.ag-card:hover .ag-card__shine{opacity:1;animation:ag-sweep var(--dur-6) var(--ease-swift)}
.ag-card__no{position:absolute;top:var(--sp-2);left:var(--sp-2);font:var(--type-hud);letter-spacing:var(--ls-hud);color:var(--text-faint)}
.ag-card__rarity{position:absolute;top:var(--sp-2);right:var(--sp-2)}
.ag-card__body{padding:var(--sp-4);display:grid;gap:var(--sp-2)}
.ag-card__title{font:var(--type-pixel-title);font-size:var(--fs-caption);letter-spacing:var(--ls-pixel);color:var(--text-strong);text-transform:uppercase;line-height:1.5}
.ag-card__line{font-size:var(--fs-body-s);color:var(--text-body);line-height:var(--lh-ui)}
.ag-card__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);padding:var(--sp-2) var(--sp-4) var(--sp-4);font:var(--type-label);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--text-faint)}
.ag-dlg{display:flex;gap:var(--sp-4);padding:var(--sp-4);background:color-mix(in oklab,var(--ink-800) 92%,transparent);border:var(--bw) solid var(--line-strong);clip-path:var(--clip-notch-8);box-shadow:var(--shadow-3)}
.ag-dlg__avatar{flex:0 0 auto;width:56px;height:56px;background:var(--ink-700);border:var(--bw-hair) solid var(--line);display:grid;place-items:center;overflow:hidden}
.ag-dlg__avatar img,.ag-dlg__avatar canvas{image-rendering:pixelated;width:100%;height:100%;object-fit:cover}
.ag-dlg__main{flex:1 1 auto;min-width:0}
.ag-dlg__who{font:var(--type-hud);letter-spacing:var(--ls-hud);text-transform:uppercase;color:var(--accent);margin-bottom:var(--sp-2)}
.ag-dlg__text{font-size:var(--fs-body-s);line-height:var(--lh-body);color:var(--text-strong);min-height:2.6em}
.ag-dlg__caret{display:inline-block;width:8px;height:8px;background:var(--accent);margin-left:4px;animation:ag-blink 1s steps(2,end) infinite;vertical-align:baseline}
.ag-dlg__foot{display:flex;align-items:center;justify-content:space-between;margin-top:var(--sp-3)}
.ag-slot{position:relative;width:64px;height:64px;background:var(--surface-sunken);border:var(--bw-hair) solid var(--line);box-shadow:var(--shadow-sunken);display:grid;place-items:center;cursor:pointer;transition:border-color var(--t-hover),background-color var(--t-hover),transform var(--t-press)}
.ag-slot:hover{border-color:var(--accent);background:var(--ink-700);transform:var(--lift-hover)}
.ag-slot[data-locked="true"]{cursor:not-allowed;opacity:.5}
.ag-slot[data-locked="true"]:hover{border-color:var(--line);transform:none}
.ag-slot canvas,.ag-slot img{image-rendering:pixelated}
.ag-slot__n{position:absolute;bottom:2px;right:3px;font:var(--type-hud);color:var(--text-faint)}
.ag-slot[data-active="true"]{border-color:var(--accent);box-shadow:var(--shadow-sunken),0 0 0 1px var(--accent)}
.ag-dpad{display:grid;grid-template-columns:repeat(3,40px);grid-template-rows:repeat(3,40px);gap:2px}
.ag-dpad button{background:var(--surface-raised);border:var(--bw-hair) solid var(--line-strong);color:var(--text-body);display:grid;place-items:center;cursor:pointer;clip-path:var(--clip-notch-4);transition:background-color var(--t-hover),color var(--t-hover),transform var(--t-press)}
.ag-dpad button:active,.ag-dpad button[data-held="true"]{background:var(--accent);color:var(--accent-ink);transform:scale(var(--scale-press))}
.ag-hud{display:flex;align-items:center;gap:var(--sp-4);height:var(--hud-h);padding:0 var(--sp-4);background:color-mix(in oklab,var(--ink-1000) 78%,transparent);border:var(--bw-hair) solid var(--line);backdrop-filter:var(--blur-glass);-webkit-backdrop-filter:var(--blur-glass);clip-path:var(--clip-notch-4)}
