/* Little hosts, with ordinary controls and a quiet, static fallback. */
.page-greeter{--greeter-accent:#cfb1f5;--greeter-glow:#a57edc;position:relative;display:flex;gap:20px;align-items:center;width:min(660px,calc(100% - 36px));margin:45px auto;color:#f7edff;font-family:var(--sans,sans-serif)}
.page-greeter--neaura{--greeter-accent:#edb8d4;--greeter-glow:#d47ba8}
.greeter-bubble{position:relative;min-width:0;padding:18px 20px 14px;border:1px solid #cbb0ea80;border-radius:19px 19px 5px 19px;background:linear-gradient(145deg,#31243ff7,#17172bf7 78%);box-shadow:0 12px 45px #06041185,0 0 26px #ab80de16,inset 0 1px #ffffff12;backdrop-filter:blur(18px)}
.greeter-heading{display:flex;gap:8px;align-items:center;padding-right:30px;color:var(--greeter-accent);font-size:11px;font-weight:650;letter-spacing:.07em;line-height:1.5;text-transform:uppercase}
.greeter-sigil{font-size:17px;color:#f1d5a4;text-shadow:0 0 12px #f5cf9b60}
.greeter-scroll{max-height:250px;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#bb9fd477 #201b30;border-radius:5px;margin-top:8px}
.greeter-scroll:focus-visible{outline:2px solid #f3d69d;outline-offset:3px}
.greeter-words{margin:0!important;font-size:15px;line-height:1.65;overflow-wrap:anywhere;color:#f4ebfa}
.greeter-controls{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:10px}
.greeter-controls button{min-height:44px;border:0;cursor:pointer;font:550 12px/1.4 var(--sans,sans-serif);transition:background .15s,color .15s;touch-action:manipulation}
.greeter-close{position:absolute;right:4px;top:4px;display:grid;place-items:center;width:44px;border-radius:50%;background:transparent;color:#eadbed;font-size:25px!important;font-weight:400!important}
.greeter-close:hover{background:#ffffff12;color:#fff}
.greeter-play{display:flex;align-items:center;gap:8px;padding:8px 13px;border-radius:25px;background:#dcc8ef;color:#22192f}
.greeter-play:hover{background:#f0dfff}
.greeter-play:disabled{opacity:.6;cursor:default}
.greeter-pause-symbol{display:none}.greeter-play[aria-pressed=true] .greeter-play-symbol{display:none}.greeter-play[aria-pressed=true] .greeter-pause-symbol{display:inline}
.greeter-next{display:flex;align-items:center;gap:7px;padding:8px 2px;background:transparent;color:#e5d1f5;text-decoration:underline;text-underline-offset:4px}
.greeter-next:hover{color:#fff}.greeter-next:disabled{opacity:.45;cursor:default}
.greeter-note{margin:5px 0 0!important;color:#c4b5cf;font-size:10px;line-height:1.5}
.greeter-hint{display:none}.page-greeter[data-greeter-ready=true] .greeter-hint{display:inline}
.greeter-static{flex:0 0 96px}.greeter-static img{width:96px;height:128px;object-fit:contain}
/* Keep the artwork at its requested size; reserve a separate row for controls. */
.page-greeter{
 --greeter-target-image-height:314.6667px;
 --greeter-image-height:min(var(--greeter-target-image-height),max(54px,calc(100dvh - 230px)));
 --greeter-width:calc(var(--greeter-image-height) * .75);
 --greeter-character-height:calc(var(--greeter-image-height) + 27px);
 --greeter-height:calc(var(--greeter-character-height) + 44px)
}
.page-greeter--neaura{--greeter-target-image-height:196.6667px}
.greeter-character{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:end;width:var(--greeter-width);height:var(--greeter-character-height);margin:0 auto;padding:0;border:0;background:transparent;color:#f8e6ff;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent}
.greeter-character img{position:relative;z-index:1;display:block;flex:0 0 auto;width:var(--greeter-width);height:var(--greeter-image-height);object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 4px 8px #080513b0);transition:filter .2s;pointer-events:none;-webkit-user-drag:none;user-select:none}
/* N’lora uses painted native-resolution frames; Neaura retains crisp pixel art. */
.page-greeter--nlora .greeter-character img{image-rendering:auto}
.greeter-character:hover img{filter:drop-shadow(0 0 12px #d4b3f990)}
.greeter-name{position:relative;z-index:2;margin-top:-3px;padding:4px 10px;border:1px solid #c4a6df66;border-radius:20px;background:#21192fe8;box-shadow:0 3px 14px #04030b77;font-size:12px;font-weight:600;line-height:1.4;white-space:nowrap}
.greeter-name span{color:#edcf9d;font-size:10px}
.greeter-aura{position:absolute;bottom:27px;left:5%;width:90%;height:calc(var(--greeter-image-height) * .72);z-index:0;background:radial-gradient(ellipse,var(--greeter-glow),transparent 67%);opacity:.28;filter:blur(12px);animation:greeter-breathe 4.6s ease-in-out infinite;pointer-events:none}
.greeter-orbit{position:absolute;z-index:2;color:#f4d39b;text-shadow:0 0 9px #e5b4f3;pointer-events:none;animation:greeter-sparkle 4s ease-in-out infinite}
.greeter-orbit--one{right:3px;top:25%;font-size:22px}.greeter-orbit--two{left:6px;bottom:27%;font-size:13px;animation-delay:-2s}
.greeter-position-controls{position:relative;z-index:3;display:flex;justify-content:center;align-items:center;gap:6px;height:44px}
.greeter-position-controls button,.greeter-restore{box-sizing:border-box;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;border:1px solid #c4a6df66;border-radius:15px;background:linear-gradient(145deg,#30223feb,#181625f2);box-shadow:0 4px 15px #04030b66,inset 0 1px #ffffff10;color:#efdefb;font:600 20px/1 var(--sans,sans-serif);cursor:pointer;transition:border-color .18s,background .18s,box-shadow .18s;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.greeter-position-controls button:hover,.greeter-restore:hover{border-color:#edd0a6bb;background:linear-gradient(145deg,#493052f5,#20182ef7);box-shadow:0 4px 18px #04030b66,0 0 18px #c0a0e32b}
.greeter-move{cursor:grab!important;touch-action:none!important;user-select:none;-webkit-user-select:none}
.greeter-minimize{font-size:25px!important}
.greeter-restore{gap:9px;padding:9px 14px;border-radius:24px;font-size:12px;white-space:nowrap;min-width:114px}
.greeter-restore>span:first-child{color:#f1d5a4;font-size:18px;text-shadow:0 0 10px #d4b3f980}.greeter-restore>span:last-child{font-size:15px;color:#cfb1f5}
.page-greeter button:focus-visible{outline:3px solid #f3d69d;outline-offset:4px}
.page-greeter[data-greeter-ready=true]{position:fixed;z-index:80;right:max(15px,env(safe-area-inset-right));bottom:calc(69px + env(safe-area-inset-bottom));display:block;width:max(94px,var(--greeter-width));height:var(--greeter-height);margin:0}
.page-greeter[data-greeter-ready=true] .greeter-bubble{position:absolute;z-index:5;right:calc(var(--greeter-width) + 14px);bottom:84px;display:flex;flex-direction:column;width:330px;max-width:calc(100vw - var(--greeter-width) - 45px);max-height:calc(100dvh - 175px);transform-origin:100% 100%;animation:greeter-arrive .38s ease-out both}
.page-greeter[data-greeter-ready=true] .greeter-bubble:after{content:'';position:absolute;right:-7px;bottom:24px;width:12px;height:12px;background:#1a182d;border-right:1px solid #cbb0ea80;border-top:1px solid #cbb0ea80;transform:rotate(45deg);pointer-events:none}
.page-greeter[data-greeter-ready=true] .greeter-scroll{min-height:0;flex:0 1 auto}
/* A failed sprite may reveal its static poster without adding a second layout row. */
.page-greeter[data-greeter-ready=true] .greeter-static{position:absolute;left:50%;top:3px;z-index:1;display:flex;justify-content:center;width:var(--greeter-width);height:var(--greeter-image-height);transform:translateX(-50%);pointer-events:none}
.page-greeter[data-greeter-ready=true] .greeter-static img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;pointer-events:none}
.page-greeter--nlora[data-greeter-ready=true] .greeter-static img{image-rendering:auto}
.page-greeter[data-greeter-ready=true] .greeter-heading,.page-greeter[data-greeter-ready=true] .greeter-controls,.page-greeter[data-greeter-ready=true] .greeter-note{flex-shrink:0}
/* Measure the bubble independently, keeping its controls inside the viewport. */
.page-greeter[data-greeter-ready=true].is-positioned{left:var(--greeter-left);top:var(--greeter-top);right:auto;bottom:auto}
.page-greeter[data-greeter-ready=true].is-bubble-positioned .greeter-bubble{position:fixed;left:var(--greeter-bubble-left,12px);top:var(--greeter-bubble-top,88px);right:auto;bottom:auto;width:330px;max-width:var(--greeter-bubble-max-width,calc(100vw - 24px));max-height:var(--greeter-bubble-max-height,calc(100dvh - 164px));transform-origin:center;animation:none}
.page-greeter[data-greeter-ready=true].is-bubble-positioned .greeter-scroll{max-height:min(250px,max(24px,calc(var(--greeter-bubble-max-height,450px) - 145px)))}
.page-greeter[data-greeter-minimized=true]{width:max-content;height:44px}
.page-greeter.is-dragging .greeter-character,.page-greeter.is-dragging .greeter-move{cursor:grabbing!important}
.page-greeter.is-dragging .greeter-character img{filter:drop-shadow(0 0 15px #d4b3f9c0);transition:none}
.page-greeter.is-dragging .greeter-name{border-color:#f3d69dc0;box-shadow:0 0 20px #bd91e34d}
.page-greeter.is-speaking .greeter-aura{opacity:.6}.page-greeter.is-speaking .greeter-name{border-color:#edcf9d;color:#ffe5b0}
.radio-popup-open .page-greeter[data-greeter-ready=true],body:has(.site-nav.is-open) .page-greeter[data-greeter-ready=true]{visibility:hidden;pointer-events:none}
.page-greeter [hidden]{display:none!important}
@keyframes greeter-arrive{from{opacity:0;transform:translateY(8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes greeter-breathe{50%{opacity:.42;transform:scale(1.1)}}
@keyframes greeter-sparkle{0%,100%{opacity:.4;transform:translateY(0) scale(.8)}50%{opacity:1;transform:translateY(-6px) scale(1.1)}}
@media(max-width:760px){
 .page-greeter{--greeter-target-image-height:229.3333px}
 .page-greeter--neaura{--greeter-target-image-height:143.3333px}
 .page-greeter[data-greeter-ready=true]{right:max(8px,env(safe-area-inset-right));bottom:calc(65px + env(safe-area-inset-bottom))}
 .greeter-name{font-size:11px;padding:4px 9px}.greeter-orbit--one{right:0;font-size:19px}.greeter-orbit--two{left:1px}.greeter-aura{filter:blur(10px)}
 .page-greeter[data-greeter-ready=true] .greeter-bubble{right:3px;bottom:calc(var(--greeter-height) + 12px);width:315px;max-width:calc(100vw - 25px);max-height:calc(100dvh - var(--greeter-height) - 164px);padding:14px 16px 10px;border-radius:17px 17px 5px 17px}
 .page-greeter[data-greeter-ready=true] .greeter-bubble:after{right:27px;bottom:-7px;transform:rotate(135deg)}
 .greeter-scroll{max-height:clamp(48px,calc(100dvh - var(--greeter-height) - 300px),235px)}.greeter-words{font-size:14px;line-height:1.6}.greeter-heading{font-size:10px}.greeter-controls{gap:3px 12px;margin-top:6px}.greeter-note{font-size:10px}
 .page-greeter[data-greeter-ready=true].is-bubble-positioned .greeter-bubble{width:330px;max-width:var(--greeter-bubble-max-width,calc(100vw - 24px));max-height:var(--greeter-bubble-max-height,calc(100dvh - 164px))}
}
@media(max-height:560px){
 .page-greeter[data-greeter-ready=true] .greeter-bubble{bottom:0;max-height:calc(100dvh - 164px)}
 .greeter-scroll{max-height:120px}
 .greeter-note{font-size:9px}
}
@media(max-height:560px) and (max-width:760px){
 .page-greeter[data-greeter-ready=true] .greeter-bubble{right:calc(var(--greeter-width) + 12px);max-width:calc(100vw - var(--greeter-width) - 36px);padding:12px}
 .page-greeter[data-greeter-ready=true] .greeter-bubble:after{right:-7px;bottom:30px;transform:rotate(45deg)}
 .greeter-controls{gap:4px;flex-wrap:wrap}.greeter-controls button{font-size:11px}.greeter-play{padding:8px;gap:5px}.greeter-heading{font-size:9px;letter-spacing:.025em;padding-right:24px;gap:4px}
 .page-greeter[data-greeter-ready=true].is-bubble-positioned .greeter-bubble{max-width:var(--greeter-bubble-max-width,calc(100vw - 24px))}
}
@media(max-height:400px){.greeter-note{display:none}.greeter-words{font-size:13px}.greeter-scroll{max-height:90px}}
/* Short viewports keep a readable line and full-size controls above the host's head. */
.page-greeter[data-greeter-ready=true][data-greeter-bubble-compact=true] .greeter-bubble{padding:10px 12px 8px}
.page-greeter[data-greeter-bubble-compact=true] .greeter-note{display:none}
.page-greeter[data-greeter-bubble-compact=true] .greeter-heading{gap:6px;font-size:10px;line-height:1.4}
.page-greeter[data-greeter-bubble-compact=true] .greeter-sigil{font-size:14px;line-height:1}
.page-greeter[data-greeter-ready=true][data-greeter-bubble-compact=true] .greeter-scroll{margin-top:6px;max-height:max(24px,calc(var(--greeter-bubble-max-height,160px) - 94px))}
.page-greeter[data-greeter-bubble-compact=true] .greeter-controls{margin-top:4px;gap:4px 8px}
/* Point to the actual head, even when the bubble is clamped against an edge. */
.page-greeter[data-greeter-bubble-side=above] .greeter-bubble:after{right:auto;left:clamp(18px,var(--greeter-bubble-tail-x,30px),calc(100% - 18px));top:auto;bottom:-7px;transform:translateX(-50%) rotate(135deg)}
.page-greeter[data-greeter-bubble-side=below] .greeter-bubble:after{right:auto;left:clamp(18px,var(--greeter-bubble-tail-x,30px),calc(100% - 18px));top:-7px;bottom:auto;transform:translateX(-50%) rotate(315deg)}
.page-greeter[data-greeter-bubble-side=left] .greeter-bubble:after{right:-7px;left:auto;top:clamp(18px,var(--greeter-bubble-tail-y,30px),calc(100% - 18px));bottom:auto;transform:translateY(-50%) rotate(45deg)}
.page-greeter[data-greeter-bubble-side=right] .greeter-bubble:after{right:auto;left:-7px;top:clamp(18px,var(--greeter-bubble-tail-y,30px),calc(100% - 18px));bottom:auto;transform:translateY(-50%) rotate(225deg)}
/* Neaura's thought trail makes the overhead quote visibly belong to her. */
.page-greeter--neaura[data-greeter-bubble-side=above] .greeter-bubble:after{width:18px;height:11px;bottom:-10px;border:0;background:linear-gradient(#cfb1f5,#f4d5a0);clip-path:polygon(0 0,100% 0,50% 100%);transform:translateX(-50%);filter:drop-shadow(0 1px 4px #d5b1f0a0);pointer-events:none}
.page-greeter--neaura[data-greeter-bubble-side=above] .greeter-bubble:before{content:'';position:absolute;left:clamp(18px,var(--greeter-bubble-tail-x,30px),calc(100% - 18px));top:calc(100% + 15px);width:5px;height:5px;border:1px solid #f4d5a0;border-radius:50%;background:#dfc9f7;box-shadow:0 0 8px #cda7ed99,0 7px 0 -1px #f4d5a0;transform:translateX(-50%);pointer-events:none;animation:greeter-thought-link 3.2s ease-in-out infinite}
@keyframes greeter-thought-link{0%,100%{opacity:.72}50%{opacity:1}}
body.motion-paused .page-greeter *,body.is-simple .page-greeter *,body.motion-paused .page-greeter--neaura .greeter-bubble:before,body.is-simple .page-greeter--neaura .greeter-bubble:before{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.page-greeter *,.page-greeter--neaura .greeter-bubble:before{animation:none!important;transition:none!important}}
@media print{.page-greeter{display:none!important}}
