/* A free-standing character and typography. Motion is an explicit, pausable state. */
.florian-companion{position:fixed;right:22px;bottom:max(18px,env(safe-area-inset-bottom));z-index:41;width:312px;max-width:calc(100vw - 24px);color:var(--paper);isolation:isolate}
.florian-companion[hidden],.florian-companion:has(.florian-launcher[aria-expanded="true"]){display:none}
.assistant-launcher.florian-launcher{position:relative;inset:auto;z-index:auto;display:flex;flex-direction:row;align-items:center;justify-content:flex-end;gap:0;width:100%;max-width:none;min-height:0!important;padding:0 0 17px;border:0;border-radius:0;background:transparent;color:var(--paper);-webkit-text-fill-color:currentColor;text-align:left;line-height:1.15;letter-spacing:0;box-shadow:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.assistant-launcher.florian-launcher::before,.assistant-launcher.florian-launcher::after{content:none}
.assistant-launcher.florian-launcher:hover{background:transparent;color:var(--paper)}
.florian-launcher .florian-figure{display:block;flex:0 0 192px;width:192px;height:192px;overflow:visible;perspective:620px;pointer-events:none}
.florian-launcher .florian-figure img{display:block;width:100%;height:100%;max-width:none;object-fit:contain;object-position:center bottom;transform-origin:50% 91%;transform:none;animation:none;backface-visibility:hidden}
.florian-launcher .florian-label{position:relative;z-index:1;display:flex;flex:0 0 120px;flex-direction:column;justify-content:center;gap:8px;width:120px;min-height:0;margin:16px 0 0;padding:0 0 15px;border:0;background:transparent;color:var(--paper);font:400 13px/1.25 var(--body)}
.florian-launcher .florian-label::after{content:'';position:absolute;left:0;bottom:0;width:72px;height:1px;background:var(--au-core);transform-origin:left center;transition:transform .2s ease}
.florian-launcher .florian-eyebrow{color:var(--paper);font:600 10px/1.2 var(--body);letter-spacing:.16em;white-space:nowrap}
.florian-launcher .florian-label strong{display:block;color:var(--paper);background:none;-webkit-text-fill-color:currentColor;font:700 48px/.88 var(--display);letter-spacing:-.01em;text-transform:uppercase}
.florian-launcher .florian-invitation{display:flex;align-items:center;gap:13px;color:var(--paper);font:500 12px/1.25 var(--body);white-space:nowrap}
.florian-invitation>span{color:var(--au-hit);font-size:19px;line-height:1}
.florian-launcher:hover .florian-label::after{transform:scaleX(1.4)}
.florian-companion .florian-motion{position:absolute;left:0;bottom:8px;display:inline-flex;align-items:center;justify-content:flex-start;gap:6px;min-height:32px!important;padding:5px 0;border:0;border-radius:0;background:transparent;color:var(--paper-dim);-webkit-text-fill-color:currentColor;box-shadow:none;font:400 10px/1.25 var(--body);letter-spacing:.02em;text-transform:none;text-align:left;cursor:pointer}
.florian-companion .florian-motion::before{content:'▶';width:9px;color:var(--au-hit);font:400 9px/1 var(--body)}
.florian-companion .florian-motion[aria-pressed="true"]::before{content:'Ⅱ'}
.florian-companion .florian-motion:hover{color:var(--paper);background:transparent}
.assistant-launcher.florian-launcher:focus-visible,.florian-companion .florian-motion:focus-visible{outline:2px solid var(--paper);outline-offset:4px}
/* A visitor's explicit choice may override the site's general reduced-motion rule. */
.florian-companion[data-motion="on"] .florian-figure img{animation:florian-living-turn 7.6s ease-in-out infinite!important}
.assistant-panel{bottom:max(18px,env(safe-area-inset-bottom));max-height:calc(100dvh - 36px);border:1px solid var(--line-gold);border-top:2px solid var(--au-core);background:var(--carbon);color:var(--paper);box-shadow:none}
.assistant-panel .florian-panel-head{display:grid;grid-template-columns:60px minmax(0,1fr) 44px;align-items:center;gap:13px}
.assistant-panel .florian-portrait{width:60px;height:72px;object-fit:contain;object-position:center;transform-origin:50% 91%;animation:none}
.assistant-panel[data-motion="on"] .florian-portrait{animation:florian-living-turn 7.6s ease-in-out infinite!important}
.assistant-panel .florian-panel-head h2{margin:0;background:none;color:var(--paper);-webkit-text-fill-color:currentColor;font:700 34px/1 var(--display);letter-spacing:.01em}
.assistant-panel .florian-panel-head .eyebrow{color:var(--paper);margin-bottom:7px;font-size:10px}
.assistant-panel .florian-panel-head button{align-self:start;width:44px;min-height:44px!important;border:1px solid var(--line-gold);color:var(--paper);font-size:27px}
.assistant-panel .florian-panel-head button:hover{border-color:var(--au-hit);color:var(--au-hit)}
.assistant-panel button:focus-visible,.assistant-panel a:focus-visible,.assistant-panel input:focus-visible{outline:2px solid var(--au-hit);outline-offset:3px}
.assistant-panel .assistant-note{font-size:12px}
.assistant-panel .assistant-message p{font-size:14px;line-height:1.65}
.assistant-panel .assistant-suggestions button{min-height:40px!important;font-size:12px}
/* Slow rotation from the feet, without an up-and-down bounce. */
@keyframes florian-living-turn{
0%,100%{transform:perspective(620px) rotateY(-10deg) rotateZ(-2deg) scale(.985)}
28%{transform:perspective(620px) rotateY(3deg) rotateZ(.5deg) scale(1.012)}
54%{transform:perspective(620px) rotateY(10deg) rotateZ(2.2deg) scale(1.025)}
78%{transform:perspective(620px) rotateY(-2deg) rotateZ(-.3deg) scale(1.008)}
}
.light-page .florian-launcher .florian-label,.light-page .florian-launcher .florian-eyebrow,.light-page .florian-launcher .florian-label strong,.light-page .florian-launcher .florian-invitation,.light-page .florian-companion .florian-motion{color:var(--carbon)}
.light-page .florian-invitation>span,.light-page .florian-companion .florian-motion::before{color:var(--au-on-light)}
.light-page .florian-launcher .florian-label::after{background:var(--au-on-light)}
.light-page .assistant-launcher.florian-launcher:focus-visible,.light-page .florian-companion .florian-motion:focus-visible{outline-color:var(--carbon)}
@media(max-width:700px){
.florian-companion{right:10px;bottom:max(8px,env(safe-area-inset-bottom));width:218px}
.assistant-launcher.florian-launcher{padding-bottom:19px}
.florian-launcher .florian-figure{flex-basis:128px;width:128px;height:128px}
.florian-launcher .florian-label{flex-basis:90px;width:90px;gap:7px;margin-top:11px;padding-bottom:11px}
.florian-launcher .florian-label strong{font-size:32px}
.florian-launcher .florian-eyebrow{font-size:9px;letter-spacing:.13em}
.florian-launcher .florian-invitation{font-size:11px;gap:10px}
.florian-launcher .florian-label::after{width:57px}
.florian-companion .florian-motion{bottom:3px;min-height:32px!important;font-size:10px}
.assistant-panel{right:12px;bottom:max(12px,env(safe-area-inset-bottom));width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:18px}
.assistant-panel .florian-panel-head{grid-template-columns:49px minmax(0,1fr) 44px;gap:10px}
.assistant-panel .florian-portrait{width:49px;height:60px}
.assistant-panel .florian-panel-head h2{font-size:31px}
}
@media(max-height:540px){
.florian-companion{width:234px}
.florian-launcher .florian-figure{flex-basis:118px;width:118px;height:118px}
.florian-launcher .florian-label{flex-basis:116px;width:116px}
.florian-launcher .florian-label strong{font-size:38px}
.assistant-panel .assistant-log{max-height:145px}
}
/* Fit below the consent banner so all consent choices remain unobstructed. */
body:has(.cookie-banner:not([hidden])) .florian-companion{right:14px;bottom:2px;width:206px;height:70px}
body:has(.cookie-banner:not([hidden])) .florian-launcher{height:70px;align-items:flex-start;padding:0}
body:has(.cookie-banner:not([hidden])) .florian-launcher .florian-figure{flex-basis:82px;width:82px;height:68px}
body:has(.cookie-banner:not([hidden])) .florian-launcher .florian-label{flex-basis:124px;width:124px;gap:4px;margin:4px 0 0;padding:0}
body:has(.cookie-banner:not([hidden])) .florian-launcher .florian-label strong{font-size:28px}
body:has(.cookie-banner:not([hidden])) .florian-launcher .florian-eyebrow{font-size:9px}
body:has(.cookie-banner:not([hidden])) .florian-launcher .florian-label::after,body:has(.cookie-banner:not([hidden])) .florian-launcher .florian-invitation{display:none}
body:has(.cookie-banner:not([hidden])) .florian-companion .florian-motion{bottom:0;min-height:26px!important;padding:3px 0;font-size:10px}
@media(prefers-reduced-motion:reduce){.florian-launcher .florian-label::after{transition:none}}
.light-page .florian-companion .florian-eyebrow[data-surface="dark"],.light-page .florian-companion .florian-label strong[data-surface="dark"],.light-page .florian-companion .florian-invitation[data-surface="dark"],.light-page .florian-companion .florian-motion[data-surface="dark"]{color:var(--paper)}
.light-page .florian-invitation[data-surface="dark"]>span,.light-page .florian-companion .florian-motion[data-surface="dark"]::before{color:var(--au-hit)}
.light-page .florian-label[data-surface="dark"]::after{background:var(--au-core)}
/* Leave the final footer action reachable above the floating character. */
body:has(.florian-companion) .seasonal-reopen{padding-bottom:235px}
@media(max-width:700px){body:has(.florian-companion) .seasonal-reopen{padding-bottom:175px}}
@media print{.florian-companion,.assistant-panel{display:none!important}}
