.goose-companion{--pet-size:132px;position:fixed!important;left:calc(100vw - 148px);top:calc(100dvh - 165px);width:var(--pet-size);height:149px;z-index:850;isolation:isolate;color:var(--reading-ink);font-family:var(--font-body);pointer-events:none}
.goose-companion[hidden],.goose-companion-panel[hidden],.goose-companion-bubble[hidden],.goose-companion-food[hidden],.goose-companion-restore[hidden]{display:none!important}
.goose-companion button{font-family:inherit;cursor:pointer}.goose-companion-character{position:absolute;inset:0 0 20px;width:100%;height:129px;border:0;background:none;padding:0;cursor:grab!important;touch-action:none;pointer-events:auto;color:inherit;-webkit-tap-highlight-color:transparent}.goose-companion-character:focus-visible,.goose-companion-toggle:focus-visible{outline:2px solid var(--reading-metal);outline-offset:3px;border-radius:18px}.goose-companion-character:active{cursor:grabbing!important}.goose-companion-art{display:block;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 4px 3px #38304b22);transform:scaleX(var(--pet-facing,1));pointer-events:none}.goose-companion-custom{height:100%;max-width:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 4px #38304b30)}
.goose-companion-shadow{position:absolute;bottom:24px;left:25%;width:50%;height:9px;pointer-events:none;background:radial-gradient(ellipse,#51446838,transparent 72%);border-radius:50%}.goose-companion-toggle{position:absolute;bottom:0;left:50%;transform:translateX(-50%);display:flex;gap:7px;align-items:center;white-space:nowrap;pointer-events:auto;padding:3px 12px;font-size:11px;border-radius:20px;border:1px solid var(--reading-metal-soft);background:var(--reading-paper);color:var(--reading-accent);box-shadow:0 3px 9px var(--reading-shadow)}
.goose-companion-bubble{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);width:max-content;max-width:190px;padding:9px 13px;border:1px solid var(--reading-metal-soft);border-radius:14px;background:var(--reading-paper);color:var(--reading-secondary);font-size:12px;line-height:1.7;box-shadow:0 5px 15px var(--reading-shadow);pointer-events:none}.goose-companion-bubble::after{content:"";position:absolute;bottom:-5px;left:50%;width:8px;height:8px;transform:rotate(45deg);background:var(--reading-paper);border-bottom:1px solid var(--reading-metal-soft);border-right:1px solid var(--reading-metal-soft)}
.goose-companion-panel{position:fixed;width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - 30px);overflow:auto;padding:18px;border:1px solid var(--reading-metal-soft);border-radius:21px;background:var(--reading-paper);box-shadow:inset 0 1px 0 #ffffff44,0 18px 50px var(--reading-hover-shadow);pointer-events:auto;color:var(--reading-ink);z-index:2}.goose-companion-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}.goose-companion-panel header small{font-size:9px;letter-spacing:1px;color:var(--reading-accent);display:block}.goose-companion-panel header b{font-size:16px;line-height:1.6;display:block}.goose-companion-panel header button{width:28px;height:28px;border-radius:50%;background:var(--reading-inset);border:1px solid var(--reading-line);color:var(--reading-secondary)}
.companion-fullness{display:flex;gap:10px;align-items:center;font-size:12px;color:var(--reading-secondary)}.companion-fullness meter{width:100%;flex:1;min-width:0;height:8px}.companion-fullness meter::-webkit-meter-bar{border:0;border-radius:10px;background:var(--reading-inset)}.companion-fullness meter::-webkit-meter-optimum-value{background:var(--reading-metal)}.companion-fullness meter::-moz-meter-bar{background:var(--reading-metal)}.companion-fullness small{font-size:11px}
.companion-feeding{display:flex;gap:8px;margin:15px 0}.companion-feeding button{display:flex;justify-content:center;align-items:center;gap:6px;flex:1;border-radius:12px;border:1px solid var(--reading-metal-soft);background:var(--reading-inset);color:var(--reading-accent);padding:9px 7px;font-size:12px;white-space:nowrap}.companion-feeding img{width:25px;height:25px}.companion-feeding button:hover{border-color:var(--reading-metal)}
.companion-action-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.companion-action-grid button{border:1px solid var(--reading-line);border-radius:9px;background:var(--reading-paper);color:var(--reading-secondary);font-size:12px;padding:8px 0}.companion-action-grid button[aria-pressed=true]{border-color:var(--reading-metal);background:var(--reading-inset);color:var(--reading-accent)}.companion-wander-label{display:flex;gap:8px;align-items:center;font-size:12px;color:var(--reading-secondary);margin:15px 0 0;cursor:pointer}.companion-wander-label input{accent-color:var(--reading-metal)}.companion-links{display:flex;flex-wrap:wrap;gap:7px 13px;padding-top:13px;margin-top:13px;border-top:1px solid var(--reading-line)}.companion-links a{color:var(--reading-accent);font-size:12px;text-decoration:none}.goose-companion-panel footer{margin:14px 0 0;padding:12px 0 0;border-top:1px solid var(--reading-line);background:none;text-align:left;display:flex;justify-content:space-between;gap:8px;align-items:center}.goose-companion-panel footer span{font-size:11px;color:var(--reading-muted)}.goose-companion-panel footer button{background:none;border:0;color:var(--reading-accent);font-size:12px}
.companion-links{position:static;inset:auto;padding:13px 0 0;z-index:auto;backdrop-filter:none;background:none;border-bottom:0;justify-content:flex-start}
.goose-companion-food{position:fixed;width:30px;height:30px;z-index:849;pointer-events:none;filter:drop-shadow(0 3px 2px #4a386b30)}.goose-companion-restore{position:fixed;bottom:16px;right:16px;z-index:850;display:flex;align-items:center;gap:5px;padding:5px 12px 5px 5px;border:1px solid var(--reading-metal-soft);border-radius:30px;color:var(--reading-accent);background:var(--reading-paper);font:12px var(--font-body);box-shadow:0 5px 18px var(--reading-shadow);cursor:pointer}.goose-companion-restore img{width:28px;height:28px}
.companion-wing-left{transform-origin:106px 220px}.companion-wing-right{transform-origin:216px 220px}.companion-head{transform-origin:160px 198px}.companion-foot-left{transform-origin:134px 268px}.companion-foot-right{transform-origin:187px 268px}.companion-pose{transform-origin:160px 280px}.companion-eyes{transform-box:fill-box;transform-origin:center}.companion-closed-eyes,.companion-sleep,.companion-joy,.companion-snack{display:none}
[data-action=blink] .companion-eyes,[data-action=sleep] .companion-eyes,[data-action=cheer] .companion-eyes,[data-action=eat] .companion-eyes{display:none}[data-action=blink] .companion-closed-eyes,[data-action=sleep] .companion-closed-eyes,[data-action=cheer] .companion-closed-eyes,[data-action=eat] .companion-closed-eyes{display:block}
[data-action=wave] .companion-wing-right{transform:rotate(-45deg)}[data-action=walk] .companion-foot-left{transform:rotate(20deg)}[data-action=walk] .companion-foot-right{transform:rotate(-20deg)}[data-action=hop] .companion-pose{transform:translateY(-18px)}[data-action=cheer] .companion-wing-left{transform:rotate(65deg)}[data-action=cheer] .companion-wing-right{transform:rotate(-65deg)}[data-action=cheer] .companion-joy{display:block}[data-action=eat] .companion-snack{display:block}[data-action=eat] .companion-beak{transform:translateY(3px)}[data-action=sleep] .companion-head{transform:rotate(9deg)}[data-action=sleep] .companion-sleep{display:block}[data-action=pout] .companion-cheeks{transform:scale(1.15);transform-origin:center;opacity:.9}[data-action=pout] .companion-brows{transform:translateY(4px)}[data-action=fly] .companion-wing-left{transform:rotate(50deg)}[data-action=fly] .companion-wing-right{transform:rotate(-50deg)}[data-action=fly] .companion-pose{transform:translateY(-12px)}
@keyframes companion-breathe{50%{transform:translateY(-3px)}}@keyframes companion-wave{50%{transform:rotate(-80deg)}}@keyframes companion-foot-l{50%{transform:rotate(-23deg)}}@keyframes companion-foot-r{50%{transform:rotate(23deg)}}@keyframes companion-hop{0%,100%{transform:translateY(0)}45%,60%{transform:translateY(-28px) rotate(-3deg)}}@keyframes companion-cheer{50%{transform:translateY(-7px) rotate(3deg)}}@keyframes companion-munch{50%{transform:translateY(4px) scaleY(1.25)}}@keyframes companion-snack{0%,20%{opacity:1;transform:translateY(20px)}55%{opacity:1;transform:translateY(-5px) scale(.8)}100%{opacity:0;transform:translateY(-5px) scale(.4)}}@keyframes companion-flap-l{50%{transform:rotate(-25deg)}}@keyframes companion-flap-r{50%{transform:rotate(25deg)}}@keyframes companion-sleep{50%{opacity:.5;transform:translateY(-9px)}}
[data-motion=rich] .goose-companion[data-active=true][data-action=idle] .companion-head{animation:companion-breathe 3.4s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=wave] .companion-wing-right{animation:companion-wave .5s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=walk] .companion-foot-left{animation:companion-foot-l .4s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=walk] .companion-foot-right{animation:companion-foot-r .4s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=walk] .companion-head{animation:companion-breathe .4s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=hop] .companion-pose{animation:companion-hop .8s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=cheer] .companion-pose{animation:companion-cheer .7s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=eat] .companion-beak{animation:companion-munch .24s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=eat] .companion-snack{animation:companion-snack 1.8s ease-in-out both}[data-motion=rich] .goose-companion[data-active=true][data-action=sleep] .companion-sleep{animation:companion-sleep 3s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=fly] .companion-wing-left{animation:companion-flap-l .23s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=fly] .companion-wing-right{animation:companion-flap-r .23s ease-in-out infinite}[data-motion=rich] .goose-companion[data-active=true][data-action=fly] .companion-pose{animation:companion-breathe .8s ease-in-out infinite}
@media(max-width:600px){.goose-companion{--pet-size:100px;height:116px}.goose-companion-character{height:96px}.goose-companion-panel{width:286px;padding:16px}.goose-companion-bubble{max-width:150px;font-size:11px}.goose-companion-shadow{bottom:24px}.goose-companion-restore{bottom:12px;right:12px}}
@media(prefers-reduced-motion:reduce){.goose-companion svg *{animation:none!important}}
