/* Physical D-Vault shell overrides. Kept separate from the legacy stylesheet. */
.device-window[data-shell="classic"] .physical-controls {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0 !important;
}

.device-window[data-shell="classic"] .physical-controls button {
  width: 100% !important;
  height: 25% !important;
}

/* All six approved shells share an exact LCD viewport and three-button column. */
.device-window[data-shell="classic"],
.device-window[data-shell="smoke"],
.device-window[data-shell="ice-blue"],
.device-window[data-shell="d3-blue"],
.device-window[data-shell="cyber-lime"],
.device-window[data-shell="mintmaker"] {
  aspect-ratio: 1.614 / 1 !important;
  min-height: 0 !important;
  border: 0 !important;
  box-shadow: none !important;
}

.device-window[data-shell="classic"] { background: transparent url('/assets/vault/shells/classic-shell-v1.png') center / contain no-repeat !important; }
.device-window[data-shell="smoke"] { background: transparent url('/assets/vault/shells/smoke-shell-v1.png') center / contain no-repeat !important; }
.device-window[data-shell="ice-blue"] { background: transparent url('/assets/vault/shells/ice-blue-shell-v1.png') center / contain no-repeat !important; }
.device-window[data-shell="d3-blue"] { background: transparent url('/assets/vault/shells/d3-blue-shell-v1.png') center / contain no-repeat !important; }
.device-window[data-shell="cyber-lime"] { background: transparent url('/assets/vault/shells/cyber-lime-shell-v1.png') center / contain no-repeat !important; }
.device-window[data-shell="mintmaker"] { background: transparent url('/assets/vault/shells/mintmaker-shell-v1.png') center / contain no-repeat !important; }

.device-window[data-shell] h2 { display: none; }

.device-window[data-shell] .device-slots {
  left: 19.9% !important;
  top: 27.8% !important;
  width: 56.7% !important;
  height: 42.1% !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(#57caec, #bdebf7 54%, #70c95e 55%, #baf08b) !important;
}

.device-window[data-shell] .physical-controls {
  z-index: 5;
  left: 81.2% !important;
  right: auto !important;
  top: 25.5% !important;
  width: 11.5% !important;
  height: 44.5% !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 0 !important;
}

.device-window[data-shell] .physical-controls button {
  width: 100% !important;
  height: 25% !important;
  border: 0 !important;
  border-radius: 50% !important;
  background: transparent !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.device-window[data-shell] .physical-controls button:focus-visible {
  outline: 2px solid #9fd65c !important;
  outline-offset: 3px !important;
}

.device-window[data-shell] .shell-menu { z-index: 6; right: 9% !important; bottom: 9% !important; }
.device-window[data-shell] .device-menu { z-index: 7; left: 21% !important; right: 25% !important; bottom: 31% !important; border-width: 1px !important; }

@media (max-width: 780px) {
  .device-window[data-shell] { aspect-ratio: 1.614 / 1 !important; }
}

/* One shared watching screen, like the physical WiFiCom rather than two web cards. */
.device-window[data-shell] .device-slots { display: block !important; overflow: hidden !important; }
.device-window[data-shell] .device-slot { position: absolute !important; inset: 0 !important; display: block !important; min-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; background: transparent !important; pointer-events: none !important; }
.device-window[data-shell] .device-slot > span:not(.device-slot-sprite) { display: none !important; }
.device-window[data-shell] .device-slot-sprite { position: absolute !important; width: clamp(34px, 11vw, 64px) !important; height: clamp(34px, 11vw, 64px) !important; top: 0; left: 0; background-size: 1200% 100% !important; animation: none !important; transition: left 480ms linear, top 480ms linear, transform 120ms steps(1, end) !important; image-rendering: pixelated; }

.device-window[data-wallpaper="green-field"] .device-slots { background-image: url('/assets/vault/wallpapers/green-field.png?v=20260718-02') !important; background-size: cover !important; }
.device-window[data-wallpaper="purple-dusk"] .device-slots { background-image: url('/assets/vault/wallpapers/purple-dusk.png?v=20260718-02') !important; background-size: cover !important; }
.device-window[data-wallpaper="sunset"] .device-slots { background-image: url('/assets/vault/wallpapers/sunset.png?v=20260718-02') !important; background-size: cover !important; }

.firmware-menu { display: grid !important; place-items: center; gap: 2px; padding: 7px !important; background: rgba(211, 239, 158, .94) !important; color: #101b11 !important; text-align: center; font: 700 clamp(8px, 1.1vw, 13px) ui-monospace, monospace !important; }
.firmware-menu-head { position: absolute; top: 5px; right: 6px; font-size: .8em; }
.firmware-menu-title { position: absolute; top: 5px; left: 6px; font-size: .8em; }
.firmware-menu-icon { width: clamp(32px, 8vw, 54px); height: clamp(32px, 8vw, 54px); object-fit: contain; image-rendering: pixelated; }
.firmware-menu strong { font-size: 1.08em; }
.firmware-menu-help { font-size: .72em; white-space: nowrap; }
.device-window .shell-menu, .device-window .shell-picker { display: none !important; }
.device-window[data-lights-off="true"] .device-slots { background: #090b0c !important; }
.device-window[data-lights-off="true"] .device-slot-sprite { filter: brightness(.34) saturate(.25); }
.cloud-attention { position:absolute; z-index:6; right:4%; top:5%; width:clamp(20px,4.5vw,34px); height:clamp(20px,4.5vw,34px); object-fit:contain; image-rendering:pixelated; animation:attention-pop 600ms steps(1,end) infinite; pointer-events:none; }
.cloud-poop-layer { position:absolute; z-index:4; right:8%; bottom:8%; display:flex; align-items:flex-end; gap:clamp(4px,1vw,9px); pointer-events:none; }
.cloud-poop-layer img { display:block; width:clamp(25px,7vw,42px); height:auto; image-rendering:pixelated; }
.cloud-poop-arrival { position:absolute; z-index:8; inset:0; overflow:hidden; pointer-events:none; }
.cloud-poop-arrival i { position:absolute; display:block; top:52%; width:clamp(38px,14%,66px); aspect-ratio:1; background-repeat:no-repeat; background-size:1200% 100%; image-rendering:pixelated; transform:translate(-50%,-50%); }
.device-window[data-lights-off="true"] .device-slots::after { content: ''; position: absolute; right: 8%; top: 12%; width: clamp(22px,5vw,38px); aspect-ratio:1; background: center/contain no-repeat url('/assets/vault/emotes/sleep-1.png'); image-rendering: pixelated; animation: cloud-sleep-emote 900ms steps(1,end) infinite; }
.device-window[data-lights-off="true"] .device-slots:has(.cloud-pack-sleep)::after { display:none; }
.cloud-pack-sleep,.cloud-pack-attention { position:absolute; inset:0; z-index:5; pointer-events:none; }
.cloud-pack-sleep-pets,.cloud-pack-attention-pets,.pack-emotion { position:absolute; inset:0; }
.cloud-pack-sleep-pets i,.cloud-pack-attention-pets i,.pack-emotion i { position:absolute; display:block; width:clamp(34px,9vw,58px); height:clamp(34px,9vw,58px); background-repeat:no-repeat; background-size:1200% 100%; image-rendering:pixelated; }
.cloud-pack-sleep-pets i:nth-child(1),.cloud-pack-attention-pets i:nth-child(1),.pack-emotion i:nth-child(1) { left:18%; top:30%; }
.cloud-pack-sleep-pets i:nth-child(2),.cloud-pack-attention-pets i:nth-child(2),.pack-emotion i:nth-child(2) { right:18%; top:30%; }
.cloud-pack-attention-pets i { animation: attention-pack-bob 360ms steps(1,end) infinite; }
@keyframes attention-pack-bob { 0%,49%{transform:translateY(0)}50%,100%{transform:translateY(-4px)} }
@keyframes cloud-sleep-emote { 0%,49% { background-image:url('/assets/vault/emotes/sleep-1.png'); transform:translateY(0) } 50%,100% { background-image:url('/assets/vault/emotes/sleep-2.png'); transform:translateY(-3px) } }
.device-slots:has(> .cloud-sick-idle) > .device-slot,.device-slots:has(> .cloud-sick-idle) > .device-slot-sprite,.device-slots:has(> .cloud-pack-sleep) > .device-slot,.device-slots:has(> .cloud-pack-sleep) > .device-slot-sprite{visibility:hidden!important}
.firmware-emotion{position:absolute;z-index:9;inset:0;overflow:hidden;pointer-events:none;color:#111b13;font:800 clamp(9px,1.8vw,17px) ui-monospace,monospace;text-align:center}.cloud-sick-idle{z-index:5}.firmware-emotion-pets{position:absolute;inset:0}.firmware-emotion-pet{position:absolute;display:block;top:52%;left:28%;width:clamp(38px,14%,66px);aspect-ratio:1;background-repeat:no-repeat;background-size:1200% 100%;image-rendering:pixelated;transform:translate(-50%,-50%)}.firmware-emotion-pet:nth-child(2){left:68%;transform:translate(-50%,-50%) scaleX(-1)}.firmware-emotion-pets:has(.firmware-emotion-pet:only-child) .firmware-emotion-pet{left:43%}.firmware-emotion-emotes{position:absolute;top:22%;right:8%;width:clamp(32px,13%,58px);aspect-ratio:1}.firmware-emotion-emotes img{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.firmware-emotion-emotes img:last-child{animation:emote-swap 480ms steps(1,end) infinite}.firmware-emotion[data-emotion="sad"] .firmware-emotion-emotes img:last-child{animation-duration:520ms}.firmware-emotion[data-emotion="sick"] .firmware-emotion-emotes img:last-child,.firmware-emotion[data-emotion="sleepy"] .firmware-emotion-emotes img:last-child{animation-duration:600ms}.firmware-emotion strong{position:absolute;z-index:2;top:8%;left:0;right:0;text-shadow:1px 1px 0 #d9ef83}.cloud-sick-idle strong{top:auto;bottom:7%;left:6%;right:auto;text-shadow:none}

.cloud-action-screen { z-index: 8 !important; display: grid !important; place-items: center; align-content: center; gap: 3px; overflow: hidden; padding: 8px !important; background: rgba(205, 239, 151, .95) !important; color: #101b11 !important; text-align: center; font: 700 clamp(8px, 1.15vw, 13px) ui-monospace, monospace !important; }
.cloud-action-screen pre { margin: 0; white-space: pre-wrap; font: inherit; line-height: 1.4; }
.vault-account summary{cursor:pointer;color:#9fce61;font-weight:800}.vault-account[open] summary{margin-bottom:14px}.battle-controls select{display:block;width:100%;margin-top:6px;padding:11px;border:1px solid #3a4741;border-radius:6px;background:#0d1213;color:#f4f7f0;font:15px ui-monospace,monospace}.device-layout-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px;padding:10px;border:1px solid #2a3531;border-radius:9px;background:#121819;color:#c9d2cc;font-size:12px}.device-layout-controls select{max-width:180px;padding:7px;border:1px solid #3a4741;border-radius:5px;background:#0d1213;color:#edf2e8;font:inherit}.device-deck{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:1180px!important}.device-window[data-layout-slot]{grid-column:auto!important}.device-layout-empty{min-height:180px;border:1px dashed #3a4741;border-radius:12px;display:grid;place-items:center;color:#748178;font-size:12px}@media(max-width:780px){.device-deck{grid-template-columns:1fr!important}.device-layout-empty{display:none}.vault-layout .panel#account{margin-bottom:12px}}
.sidebar-toggle{border:1px solid #3a4741;border-radius:6px;background:#121819;color:#9fce61;padding:7px 9px;cursor:pointer}@media(min-width:981px){.vault-auth-header{position:fixed;inset:0 auto 0 0;width:218px;min-height:100vh;flex-direction:column;align-items:stretch;justify-content:flex-start;padding:22px 14px;gap:16px}.vault-auth-header nav{flex:0;display:grid;gap:4px}.vault-auth-header .account-link{margin:0;max-width:none}.vault-auth-header~.site-main{width:min(1180px,calc(100% - 270px));margin-left:242px;padding-top:36px}.vault-auth-header~.site-footer{margin-left:218px;padding-left:24px}.sidebar-collapsed .vault-auth-header{width:62px;padding:20px 10px}.sidebar-collapsed .vault-auth-header .brand span,.sidebar-collapsed .vault-auth-header nav,.sidebar-collapsed .vault-auth-header .account-link{display:none}.sidebar-collapsed .vault-auth-header~.site-main{width:min(1320px,calc(100% - 112px));margin-left:86px}.sidebar-collapsed .vault-auth-header~.site-footer{margin-left:62px}}
.workspace-collapsible{order:2;border:1px solid #2a3531;border-radius:10px;background:#121819;color:#c9d2cc}.workspace-collapsible summary{padding:12px 14px;cursor:pointer;color:#9fce61;font-weight:800}.workspace-collapsible[open] summary{border-bottom:1px solid #2a3531}.workspace-collapsible .device-layout-controls{margin:0;border:0;border-radius:0}.battle-collapsible{order:3}.battle-collapsible .battle-panel{margin:0;border:0;border-radius:0}.site-main:has(.device-deck){display:flex;flex-direction:column;gap:14px}.site-main:has(.device-deck) .vault-intro{display:none}.site-main:has(.device-deck) .device-deck{order:1;margin-top:0}.site-main:has(.device-deck) #account{order:4;margin:0}.site-main:has(.device-deck) .vault-layout{display:contents}.site-main:has(.device-deck) .battle-panel{margin-top:0}.site-main:has(.device-deck) .vault-layout .panel#account>h2{margin-bottom:0}.site-main:has(.device-deck) .vault-account{margin-top:10px}@media(max-width:980px){.vault-auth-header{position:fixed;z-index:30;inset:0 auto 0 0;width:62px;min-height:100vh;padding:14px 10px;flex-direction:column;align-items:center;justify-content:flex-start}.vault-auth-header .brand{font-size:0}.vault-auth-header .brand::first-letter{font-size:16px}.vault-auth-header .brand span,.vault-auth-header nav,.vault-auth-header .account-link{display:none}.vault-auth-header .sidebar-toggle{margin-top:8px}.vault-auth-header~.site-main{width:calc(100% - 82px);margin-left:72px;margin-right:10px;padding-top:18px}.vault-auth-header~.site-footer{margin-left:62px;padding-left:14px}.site-main:has(.device-deck){gap:10px}.device-layout-controls{display:grid}.workspace-collapsible summary{font-size:12px}.battle-collapsible .battle-panel{padding:14px}.battle-collapsible .battle-panel>div:first-child{display:none}}
.device-layout-empty{display:none!important}.workspace-collapsible .device-layout-controls-inner{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:10px 14px;color:#c9d2cc;font-size:12px}.workspace-collapsible .device-layout-controls-inner strong,.workspace-collapsible .device-layout-controls-inner span{display:none}.workspace-collapsible .device-layout-controls-inner select{max-width:180px;padding:7px;border:1px solid #3a4741;border-radius:5px;background:#0d1213;color:#edf2e8;font:inherit}@media(max-width:980px){.workspace-collapsible .device-layout-controls-inner{display:grid;padding:12px}.workspace-collapsible .device-layout-controls-inner select{max-width:none;width:100%}}
.cloud-device-stage{order:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;width:100%;margin:0}.cloud-device-stage .device-window{display:block!important}.cloud-device-stage .device-slots{display:block!important}.cloud-device-stage .device-slot-sprite{position:absolute!important}.cloud-device-stage .device-slot-sprite:nth-child(1){left:22%!important;top:36%!important}.cloud-device-stage .device-slot-sprite:nth-child(2){left:54%!important;top:36%!important}@media(max-width:780px){.cloud-device-stage{grid-template-columns:1fr}.cloud-device-stage .device-window:nth-child(n+3){display:none!important}}
@media(max-width:780px){.device-deck>[data-layout-slot="3"],.device-deck>[data-layout-slot="4"]{display:none!important}}
.cloud-status-screen{align-content:space-evenly!important}.cloud-status-screen pre{font-size:1.08em;line-height:1.55}.cloud-status-sprites{display:flex;gap:18px;align-items:center;justify-content:center}.cloud-status-sprites i{display:block;width:clamp(30px,7vw,48px);height:clamp(30px,7vw,48px);background-repeat:no-repeat;background-size:1200% 100%;image-rendering:pixelated}
.firmware-symbol { width: clamp(34px, 9vw, 58px); height: clamp(34px, 9vw, 58px); image-rendering: pixelated; }
.firmware-eating { position:absolute; z-index:8; inset:0; overflow:hidden; pointer-events:none; }
.eating-pets { position:absolute; inset:0; }
.eating-pet { --eat-facing:-1; position:absolute; top:55%; left:30%; width:clamp(34px,14%,64px); aspect-ratio:1; background-repeat:no-repeat; background-size:1200% 100%; image-rendering:pixelated; animation:eating-bob 260ms steps(1,end) infinite; }
.eating-pet:nth-child(2){--eat-facing:1;left:70%}
.eating-pets:has(.eating-pet:only-child) .eating-pet{left:35%}
.eating-food { position:absolute; z-index:2; left:52%; top:var(--food-top,58%); width:clamp(28px,11%,52px); height:auto; image-rendering:pixelated; transform:translate(-50%,-50%); }
.firmware-eating:has(.eating-pet:only-child) .eating-food{left:58%}
.cloud-emote { font-size: clamp(36px, 8vw, 66px); color: #d99400; animation: happy-pop 240ms steps(2, end) infinite; }
.firmware-cleaning { position:absolute; z-index:8; inset:0; overflow:hidden; pointer-events:none; }

/* Complementary D-Vault transfer scene. Uploads travel toward the web target;
   downloads mirror the same procedural pixels back toward the device. */
.device-slots.digi-link-active > :not(.digi-link-transfer){visibility:hidden!important}
.digi-link-transfer{--link-progress:.04;position:absolute;z-index:14;inset:0;overflow:hidden;pointer-events:none;background:linear-gradient(#041a35,#06284a 64%,#031426);color:#7fffee;font:800 clamp(8px,1.8vw,16px) ui-monospace,monospace;image-rendering:pixelated}
.digi-link-transfer::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent 0 7px,rgba(67,181,255,.08) 7px 8px);animation:digi-link-scan 520ms steps(4,end) infinite}
.digi-link-transfer[data-stage="1"]{--link-progress:.3}.digi-link-transfer[data-stage="2"]{--link-progress:.72}.digi-link-transfer[data-stage="3"]{--link-progress:1}
.digi-link-title{position:absolute;z-index:3;top:8%;left:0;right:0;text-align:center;letter-spacing:.08em}
.digi-link-track{position:absolute;z-index:2;left:13%;right:13%;top:52%;height:3px;background:#0c4c78;box-shadow:0 0 5px #0c4c78}
.digi-link-beam{position:absolute;inset:-1px 0;height:5px;background:#5ff9ff;box-shadow:0 0 3px #fff,0 0 11px #19cfff;transform:scaleX(var(--link-progress));transition:transform 180ms steps(4,end)}
.digi-link-transfer[data-direction="right"] .digi-link-beam{transform-origin:left}.digi-link-transfer[data-direction="left"] .digi-link-beam{transform-origin:right}
.digi-link-source,.digi-link-target{position:absolute;z-index:4;top:52%;width:14px;height:14px;transform:translate(-50%,-50%);border:3px solid #72ffe4;background:#05213b;box-shadow:0 0 7px #4fffdc}
.digi-link-target{width:18px;height:18px;border-color:#ffe545;box-shadow:0 0 5px #fff39a,0 0 15px #ffd21f;animation:digi-target-pulse 260ms steps(2,end) infinite}
.digi-link-target::before,.digi-link-target::after{content:"";position:absolute;background:#ffe545;left:50%;top:50%;transform:translate(-50%,-50%)}.digi-link-target::before{width:34px;height:3px}.digi-link-target::after{width:3px;height:34px}
.digi-link-transfer[data-direction="right"] .digi-link-source{left:13%}.digi-link-transfer[data-direction="right"] .digi-link-target{left:87%}.digi-link-transfer[data-direction="left"] .digi-link-source{left:87%}.digi-link-transfer[data-direction="left"] .digi-link-target{left:13%}
.digi-link-packets{position:absolute;z-index:5;left:16%;right:16%;top:31%;height:22px;opacity:0}.digi-link-transfer[data-stage="1"] .digi-link-packets,.digi-link-transfer[data-stage="2"] .digi-link-packets{opacity:1}
.digi-link-packets i{position:absolute;display:grid;place-items:center;width:18px;height:18px;border:2px solid #52ffcf;background:#041629;color:#9effdb;font-style:normal;box-shadow:0 0 5px #26dcb5}.digi-link-packets i:nth-child(1){left:12%}.digi-link-packets i:nth-child(2){left:43%}.digi-link-packets i:nth-child(3){left:74%}
.digi-link-transfer[data-direction="right"] .digi-link-packets i{animation:digi-packet-right 360ms steps(3,end) infinite}.digi-link-transfer[data-direction="left"] .digi-link-packets i{animation:digi-packet-left 360ms steps(3,end) infinite}
.digi-link-status{position:absolute;z-index:5;left:0;right:0;bottom:10%;text-align:center;color:#7fffee;text-shadow:0 0 6px #18cfff}.digi-link-transfer.is-success .digi-link-status{color:#9cff7d}.digi-link-transfer.is-failed .digi-link-status{color:#ff746e}
.digi-link-transfer.is-success .digi-link-target{animation:digi-target-success 180ms steps(2,end) 4}.digi-link-transfer.is-failed .digi-link-beam{background:#ff5b64;box-shadow:0 0 7px #ff2c3b}.digi-link-transfer.is-failed .digi-link-target{border-color:#ff5b64;box-shadow:0 0 10px #ff2c3b}
.digi-link-particles{position:absolute;z-index:4;inset:0;display:none}.digi-link-transfer.is-success .digi-link-particles{display:block}.digi-link-particles i{position:absolute;top:52%;width:5px;height:5px;background:#8bffe4;animation:digi-particle-burst 440ms steps(4,end) infinite}.digi-link-transfer[data-direction="right"] .digi-link-particles i{left:87%}.digi-link-transfer[data-direction="left"] .digi-link-particles i{left:13%}.digi-link-particles i:nth-child(1){--dx:-24px;--dy:-22px}.digi-link-particles i:nth-child(2){--dx:18px;--dy:-28px}.digi-link-particles i:nth-child(3){--dx:27px;--dy:12px}.digi-link-particles i:nth-child(4){--dx:-22px;--dy:25px}.digi-link-particles i:nth-child(5){--dx:4px;--dy:31px}.digi-link-floating{position:relative;min-height:230px;margin:0 0 16px;border:1px solid #28566f;border-radius:10px;overflow:hidden}.digi-link-floating .digi-link-transfer{display:block}
@keyframes digi-link-scan{to{transform:translateY(8px)}}@keyframes digi-target-pulse{50%{filter:brightness(1.8);transform:translate(-50%,-50%) scale(1.18)}}@keyframes digi-target-success{50%{transform:translate(-50%,-50%) scale(1.45);filter:brightness(2)}}@keyframes digi-packet-right{to{transform:translateX(16px)}}@keyframes digi-packet-left{to{transform:translateX(-16px)}}@keyframes digi-particle-burst{0%{transform:translate(0,0);opacity:1}100%{transform:translate(var(--dx),var(--dy));opacity:0}}
.cleaning-pile { position:absolute; inset:0; }
.cleaning-wave,.cleaning-poop { position:absolute; left:68%; width:clamp(24px,8%,38px); height:auto; image-rendering:pixelated; transform:translate(-50%,-50%); }
.cleaning-wave { opacity:.75; }
.cleaning-pile:nth-child(2) .cleaning-wave,.cleaning-pile:nth-child(2) .cleaning-poop { left:82%; }
.training-lanes { position: relative; width: 88%; height: 56%; border: 2px solid #17251b; background: linear-gradient(#60cbed 49%, #80d367 50%); overflow: hidden; }
.training-lanes::before, .training-lanes::after { content: ''; position: absolute; left: 0; right: 0; height: 2px; background: #1b3424; top: 28%; }
.training-lanes::after { top: 70%; }
.training-target, .training-shot { position: absolute; width: 13px; height: 13px; background: #d93a1b; border: 2px solid #1a1715; border-radius: 50%; }
.training-target { right: 15%; transition: top 300ms steps(1, end); }
.training-shot { left: 8%; opacity: 0; }
.training-target.top { top: 18%; }.training-target.bottom { top: 61%; }.training-shot.top { top: 18%; }.training-shot.bottom { top: 61%; }.training-shot.shot { opacity: 1; animation: training-shot 1.1s linear forwards; }
@keyframes cloud-sleep { from { transform: translateY(0); opacity: .45; } to { transform: translateY(-7px); opacity: 1; } }
@keyframes eating-bob { 0%,49% { transform:translate(-50%,-50%) scaleX(var(--eat-facing)); } 50%,100% { transform:translate(-50%,calc(-50% - 4px)) scaleX(var(--eat-facing)); } }
@keyframes attention-pop { 0%,49%{transform:translateY(0)}50%,100%{transform:translateY(-3px)} }
@keyframes happy-pop { from { transform: scale(.8) rotate(-8deg); } to { transform: scale(1.08) rotate(8deg); } }
@keyframes training-shot { from { left: 8%; } to { left: 72%; } }
 .firmware-emotes{position:relative;width:clamp(38px,9vw,62px);height:clamp(38px,9vw,62px)}.firmware-emotes img{position:absolute;inset:0;width:100%;height:100%;image-rendering:pixelated}.firmware-emotes img:last-child{animation:emote-swap 240ms steps(1,end) infinite}.cloud-text-list{width:88%;padding:3px 7px;border:1px solid #1a2d1e;background:#bfe584;text-align:left;font-size:.88em;line-height:1.32}@keyframes emote-swap{0%,49%{opacity:0}50%,100%{opacity:1}}

/* Keep account controls compact and give the device deck a deliberate dashboard structure. */
.vault-layout { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(300px, 370px); gap: 22px; align-items: start; max-width: 1240px; margin: 0 auto 24px; }
.vault-intro { padding: 10px 0; }
.vault-intro h1 { margin: 0 0 8px !important; }
.vault-intro > p { display: block !important; max-width: 52ch; margin: 0; }
.vault-layout > .panel { margin: 0 !important; }
.device-deck { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; max-width: 1240px; margin: 0 auto !important; }
@media (max-width: 780px) { .vault-layout { grid-template-columns: 1fr; margin-bottom: 14px; } .device-deck { grid-template-columns: 1fr !important; } .firmware-menu-help { font-size: .63em; } }

/* Stable emulator baseline: one renderer owns the device panel and its A/B/C controls. */
.cloud-device-stage { display: none !important; }

/* Dashboard layout only: these rules never move, rebuild, or otherwise touch an emulator panel. */
.site-main:has(.device-deck) { display: flex !important; flex-direction: column; gap: 14px; }
.site-main:has(.device-deck) .vault-layout { display: contents !important; }
.site-main:has(.device-deck) .vault-intro { display: none !important; }
.site-main:has(.device-deck) .device-deck { order: 1; width: 100%; margin: 0 auto !important; }
.site-main:has(.device-deck) .battle-collapsible { order: 2; width: 100%; }
.site-main:has(.device-deck) #account { order: 3; width: 100%; margin: 0 !important; }
.battle-collapsible .battle-panel { margin: 0; border: 0; border-radius: 0; }

@media (max-width: 780px) {
  .site-main:has(.device-deck) { gap: 10px; }
  .site-main:has(.device-deck) .device-deck { grid-template-columns: 1fr !important; }
}
.cloud-pet-pair{display:flex;align-items:center;justify-content:center;gap:18px;min-height:106px}.cloud-pet-pair .pixel-pet[hidden]{display:none}.cloud-account-pet{display:block;width:100%;margin:0 0 9px;padding:10px 12px;border:1px solid #35443d;border-radius:7px;background:#0d1313;color:#d6dfd8;text-align:left;white-space:pre-line;font:13px/1.45 system-ui,sans-serif;cursor:pointer}.cloud-account-pet[aria-pressed="true"]{border-color:var(--green);box-shadow:inset 3px 0 0 var(--green)}.cloud-transfer-note{display:block;color:#e4b636;margin-top:5px}
.cloud-recovery-row{display:grid;gap:8px;margin-top:10px;padding:12px;border:1px solid #755f28;border-radius:7px;background:#1c1910;color:#f0d98a;font:13px/1.4 system-ui,sans-serif}.cloud-recovery-row.error{border-color:var(--danger);color:var(--danger)}.cloud-recovery-button{width:100%;padding:9px 12px;font-size:12px}
