.glim-sprite {
  display:block; width:100%; height:100%; background-image:url('character.png');
  background-size:300% 200%; background-repeat:no-repeat; background-position:0 0;
  pointer-events:none; user-select:none; -webkit-user-select:none;
}
.glim-sprite[data-pose=welcome] { background-position:50% 0; }
.glim-sprite[data-pose=happy] { background-position:100% 0; }
.glim-sprite[data-pose=curious] { background-position:0 100%; }
.glim-sprite[data-pose=alert] { background-position:50% 100%; }
.glim-sprite[data-pose=rest] { background-position:100% 100%; }
.glim-widget {
  position:fixed; width:112px; height:112px; z-index:40;
  font-family:'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  user-select:none; -webkit-user-select:none; isolation:isolate;
}
.glim-widget[data-context=app] { width:96px; height:96px; }
.glim-widget .glim-pet {
  appearance:none; -webkit-appearance:none; display:block; position:relative;
  width:100%; height:100%; min-height:0; padding:0; margin:0; border:0; border-radius:34%;
  background:transparent; box-shadow:none; cursor:pointer; touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.glim-widget[data-pet=true] .glim-pet { cursor:grab; touch-action:none; }
.glim-widget.glim-dragging .glim-pet { cursor:grabbing; }
.glim-pet>.glim-sprite { filter:drop-shadow(0 8px 7px #0005); }
.glim-widget .glim-pet:focus-visible { outline:2px solid #9acbff; outline-offset:0; }
.glim-count {
  position:absolute; right:6px; top:9px; display:grid; place-items:center;
  min-width:22px; height:22px; padding:0 5px; border:2px solid #111924; border-radius:50%;
  background:#cee8ff; color:#102945; font:600 11px/1 -apple-system,BlinkMacSystemFont,sans-serif;
}
.glim-card {
  --glim-surface:#141a23; --glim-ink:#eef4fc; --glim-muted:#a5b4c7; --glim-line:#ffffff15;
  position:fixed; z-index:41; width:min(306px,calc(100vw - 24px));
  max-height:calc(100dvh - 24px); overflow-y:auto; overscroll-behavior:contain;
  padding:18px; border:1px solid #7890ab38; border-radius:20px;
  color:var(--glim-ink); background:var(--glim-surface);
  box-shadow:0 18px 65px #0005,0 1px 0 #ffffff0a inset;
  font:400 13px/1.5 'DM Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  text-align:left; box-sizing:border-box;
}
.glim-card *,.glim-widget *,.glim-preference * { box-sizing:border-box; }
.glim-card h2 { font:500 20px/1.3 'Sora',-apple-system,BlinkMacSystemFont,sans-serif; letter-spacing:-.04em; margin:10px 0 6px; color:var(--glim-ink); }
.glim-card p { margin:0; }
.glim-card .glim-copy { color:var(--glim-muted); font-size:12px; line-height:1.6; }
.glim-card-head { display:flex; justify-content:space-between; align-items:center; }
.glim-kicker { font-size:8px; font-weight:600; letter-spacing:.13em; color:#91b7e1; }
.glim-card button,.glim-card a { font:inherit; text-decoration:none; cursor:pointer; color:inherit; }
.glim-card .glim-close {
  display:grid; place-items:center; flex:none; width:32px; height:32px; padding:0;
  border:0; border-radius:50%; font:400 21px/1 -apple-system,BlinkMacSystemFont,sans-serif;
  color:var(--glim-muted); background:#ffffff08; box-shadow:none;
}
.glim-card .glim-close:hover { background:#ffffff16; color:var(--glim-ink); }
.glim-greeting { color:#91b7e1; font-size:11px; margin-top:12px; }
.glim-links { display:flex; gap:7px; margin:18px 0; }
.glim-links>a { flex:1; padding:10px 4px; border-radius:9px; text-align:center; background:#ffffff09; border:1px solid var(--glim-line); font-size:11px; }
.glim-links>a:hover { background:#5f9dde20; }
.glim-setting { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid var(--glim-line); padding-top:15px; margin-top:18px; }
.glim-setting strong { font-size:12px; font-weight:500; }
.glim-setting small { display:block; color:var(--glim-muted); font-size:10px; margin-top:3px; }
.glim-switch,.glim-card .glim-switch {
  appearance:none; -webkit-appearance:none; position:relative; flex-shrink:0; width:34px; height:20px;
  min-height:0; padding:2px; border:0; border-radius:12px; background:#6c7782;
  box-shadow:inset 0 1px 2px #0002; cursor:pointer;
}
.glim-switch>span { display:block; width:16px; height:16px; border-radius:50%; background:#fff; box-shadow:0 1px 2px #0003; transition:transform .18s; }
.glim-switch[aria-checked=true] { background:#2879d7; }
.glim-switch[aria-checked=true]>span { transform:translateX(14px); }
.glim-card .glim-actions { display:flex; gap:8px; margin-top:17px; }
.glim-card .glim-actions button { min-height:34px; border:1px solid var(--glim-line); border-radius:8px; padding:7px 10px; background:#ffffff09; font-size:11px; box-shadow:none; }
.glim-card .glim-actions button:hover { background:#709aca23; }
.glim-card .glim-actions button:disabled { opacity:.4; cursor:default; }
.glim-card .glim-actions .glim-primary { background:#b5d8ff; border-color:#b5d8ff; color:#132b48; }
.glim-card .glim-note { font-size:9px; color:var(--glim-muted); line-height:1.6; margin-top:14px; }
.glim-card .glim-hide { padding:10px 0 0; background:transparent; border:0; color:var(--glim-muted); font-size:10px; box-shadow:none; }
.glim-card button:focus-visible,.glim-card a:focus-visible,.glim-switch:focus-visible { outline:2px solid #84bfff; outline-offset:3px; }
.glim-sample { border:1px solid var(--glim-line); background:#69aaff09; border-radius:12px; padding:13px; margin-top:16px; }
.glim-sample>span { display:block; color:#a0c4ef; font-size:9px; margin-bottom:7px; }
.glim-sample>strong { display:block; font-size:12px; font-weight:500; }
.glim-sample>p { font-size:11px; color:var(--glim-muted); margin-top:5px; line-height:1.6; }
.glim-sr { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.glim-widget[hidden],.glim-card[hidden],.glim-card [hidden],.glim-widget [hidden] { display:none!important; }
.glim-celebrate .glim-sprite { animation:glim-delight .65s cubic-bezier(.2,.8,.3,1); transform-origin:50% 85%; }
.glim-welcome .glim-sprite { animation:glim-hello 1.1s ease-in-out; transform-origin:50% 85%; }
@keyframes glim-hello { 0%,100%{transform:rotate(0)} 25%{transform:rotate(-7deg)} 60%{transform:rotate(5deg)} 80%{transform:rotate(-2deg)} }
@keyframes glim-delight { 0%{transform:scale(1)} 20%{transform:scale(1.06,.93)} 55%{transform:translateY(-9px) rotate(-5deg) scale(.97,1.04)} 80%{transform:rotate(3deg)} 100%{transform:scale(1)} }
.glim-dragging .glim-sprite { transform:rotate(-5deg); }
.toolbar .tools>.glim-launcher { width:32px; padding:0; }
.glim-launcher .glim-sprite { width:30px; height:30px; }
.glim-preference-row { display:flex; align-items:center; gap:14px; padding:12px 16px; border:1px solid var(--line); border-radius:10px; background:var(--panel); }
.glim-preference-row>.glim-sprite { width:60px; height:60px; flex-shrink:0; }
.glim-preference-row>span:nth-child(2) { flex:1; }
.glim-preference-row b { display:block; font-size:12px; font-weight:500; }
.glim-preference-row small { display:block; max-width:340px; margin-top:4px; color:var(--muted); line-height:1.5; }
[data-theme=light] .glim-card { --glim-surface:#f6f8fc; --glim-ink:#17283b; --glim-muted:#566577; --glim-line:#33465e20; border-color:#c5d0df; box-shadow:0 18px 65px #243b532a; }
[data-theme=light] .glim-card .glim-kicker,[data-theme=light] .glim-sample>span { color:#326ba9; }
[data-theme=light] .glim-links>a,[data-theme=light] .glim-card .glim-actions button { background:#21375b08; }
[data-theme=light] .glim-card .glim-actions .glim-primary { background:#216bc4; color:#fff; }
.glim-widget[data-paused=true] .glim-sprite { animation:none!important; transform:none!important; }
:root[data-motion=paused] .glim-switch>span { transition:none; }
@media(max-width:600px) { .glim-widget { width:92px; height:92px; } .glim-card button,.glim-card .glim-actions button { min-height:40px; } .glim-card .glim-switch { min-height:20px; } }
@media(prefers-reduced-motion:reduce) { .glim-widget *,.glim-card *,.glim-preference * { animation:none!important; transition:none!important; } .glim-dragging .glim-sprite { transform:none; } }
@media(forced-colors:active) { .glim-card,.glim-count,.glim-switch { border:1px solid ButtonText; } .glim-switch[aria-checked=true] { background:Highlight; } }
