.charger-launch{display:block;color:#fff;text-decoration:none;cursor:pointer;isolation:isolate;-webkit-tap-highlight-color:transparent}
.charger-launch video{pointer-events:none;transition:filter .35s ease}
.charger-launch-cue{position:absolute;right:0;bottom:8px;display:flex;align-items:center;gap:14px;min-height:56px;padding:8px 0;background:#0a0a0acc;color:#fff}
.charger-launch-icon{display:grid;place-items:center;width:44px;height:44px;border:1px solid #ffffff70;transition:background .25s,color .25s,transform .35s}
.charger-launch-title,.charger-launch-hint{display:block}
.charger-launch-title{font-family:var(--font-display,'Space Grotesk',sans-serif);font-size:16px;line-height:1.4}
.charger-launch-hint{margin-top:4px;font-family:var(--font-mono,'IBM Plex Mono',monospace);font-size:12px;line-height:1.4;color:#b7b7b7}
.charger-touch-hint{display:none}
.charger-launch:focus-visible{outline:2px solid #fff;outline-offset:10px}
.charger-launch:is(:hover,:focus-visible) .charger-launch-icon{background:#fff;color:#0a0a0a;transform:scale(1.06)}
.charger-launch:is(:hover,:focus-visible) video{filter:brightness(1.12)}
.charger-dialog{position:fixed;inset:0;width:calc(100% - 40px);max-width:1680px;height:calc(100dvh - 40px);max-height:calc(100dvh - 40px);margin:auto;padding:0;border:1px solid #ffffff35;background:#0a0a0a;color:#fff;overflow:hidden;box-shadow:0 30px 110px #0009;transform-origin:var(--charger-origin,70% 35%);font-family:'Space Grotesk',sans-serif;overscroll-behavior:contain}
.charger-dialog:not([open]){display:none}
.charger-dialog[open]{display:flex;flex-direction:column;animation:charger-enter .48s cubic-bezier(.16,1,.3,1) both}
.charger-dialog::backdrop{background:#000b;backdrop-filter:blur(12px);animation:charger-backdrop-in .4s ease both}
.charger-dialog.is-closing{animation:charger-exit .22s ease both;pointer-events:none}
.charger-dialog.is-closing::backdrop{animation:charger-backdrop-out .22s ease both}
.charger-dialog-bar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:0 0 auto;min-height:72px;padding:12px clamp(20px,3.5vw,56px);border-bottom:1px solid #ffffff2e}
.charger-dialog-bar h2{margin:0;color:inherit;font-size:16px;font-weight:500;line-height:1.4;letter-spacing:.04em}
.charger-dialog-bar h2 span{margin-left:12px;color:#aaa;font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:400;letter-spacing:0}
.charger-dialog-bar button{display:flex;align-items:center;gap:20px;min-height:44px;min-width:90px;padding:6px 0 6px 12px;border:0;background:none;color:inherit;font:14px 'Space Grotesk',sans-serif;cursor:pointer}
.charger-dialog-bar button span{font-size:28px;line-height:1;font-weight:300}
.charger-dialog-bar button:hover{color:#bbb}
.charger-dialog-bar button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.charger-dialog-content{position:relative;flex:1;min-height:0}
#charger-frame{display:block;width:100%;height:100%;border:0;background:#0a0a0a}
#charger-launch-status{position:absolute;inset:0;display:grid;place-items:center;margin:0;background:#0a0a0a;color:#aaa;font:14px 'IBM Plex Mono',monospace;pointer-events:none}
#charger-launch-status[hidden]{display:none}
@keyframes charger-enter{from{opacity:0;transform:translateY(20px) scale(.94)}to{opacity:1;transform:none}}
@keyframes charger-exit{to{opacity:0;transform:translateY(12px) scale(.98)}}
@keyframes charger-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes charger-backdrop-out{to{opacity:0}}
@media(pointer:coarse){.charger-pointer-hint{display:none}.charger-touch-hint{display:inline}}
@media(max-width:860px){.charger-launch{margin-bottom:24px}}
@media(max-width:740px){.charger-dialog{width:100%;height:100dvh;max-height:100dvh;max-width:100%;border:0}.charger-dialog-bar{min-height:64px;padding:8px 20px;padding-top:max(8px,env(safe-area-inset-top))}.charger-dialog-bar h2 span{display:none}.charger-dialog-content{padding-bottom:env(safe-area-inset-bottom)}}
@media(prefers-reduced-motion:reduce){.charger-launch video,.charger-launch-icon{transition:none}.charger-dialog[open],.charger-dialog.is-closing,.charger-dialog::backdrop{animation:none}}
