/* concierge */
.cg-fab{position:fixed;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:45;width:64px;height:64px;border-radius:50%;padding:0;cursor:pointer;background:radial-gradient(circle at 50% 40%,#1b1916,#070707 70%);border:1px solid var(--gold);box-shadow:0 0 0 3px #0a0a0a,0 0 0 4px rgba(205,168,95,.55),0 14px 34px -10px rgba(0,0,0,.9),0 0 28px -6px rgba(205,168,95,.45);display:grid;place-items:center;transition:transform .35s,box-shadow .35s,opacity .3s;-webkit-tap-highlight-color:transparent}
.cg-fab img{width:50px;height:50px}
.cg-fab:hover{transform:translateY(-3px) scale(1.04);box-shadow:0 0 0 3px #0a0a0a,0 0 0 4px var(--gold),0 18px 40px -10px rgba(0,0,0,.9),0 0 36px -4px rgba(205,168,95,.6)}
.cg-fab::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid rgba(205,168,95,.5);animation:cgP 3.2s ease-out infinite;pointer-events:none}
@keyframes cgP{0%{transform:scale(.92);opacity:.9}70%,100%{transform:scale(1.35);opacity:0}}
.cg-tip{position:fixed;right:calc(max(18px,env(safe-area-inset-right)) + 76px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 14px);z-index:45;background:#0d0c0b;border:1px solid var(--line);color:var(--gold-l);font-family:var(--it);font-style:italic;font-size:17px;line-height:1.2;padding:9px 14px;white-space:nowrap;opacity:0;transform:translateX(8px);transition:opacity .5s,transform .5s;pointer-events:none}
.cg-tip.on{opacity:1;transform:none}
.cg-open .cg-fab,.cg-open .cg-tip{opacity:0;pointer-events:none}
.cg{position:fixed;z-index:70;right:24px;bottom:24px;width:390px;height:min(620px,calc(100vh - 48px));display:flex;flex-direction:column;background:linear-gradient(180deg,#0f0e0d,#0a0a0a 30%);border:1px solid var(--gold);outline:1px solid rgba(205,168,95,.35);outline-offset:4px;box-shadow:0 30px 80px -20px #000,0 0 0 5px #0a0a0a;font-family:var(--body);opacity:0;visibility:hidden;transform:translateY(16px) scale(.98);transform-origin:bottom right;transition:opacity .35s,transform .35s,visibility 0s .35s}
.cg.on{opacity:1;visibility:visible;transform:none;transition:opacity .35s,transform .35s}
.cg-hd{display:flex;align-items:center;gap:12px;padding:16px 16px 14px 18px}
.cg-hd img{width:42px;height:42px;flex:none}
.cg-hd b{display:block;font-family:var(--serif);font-weight:600;font-size:15px;letter-spacing:.2em;text-transform:uppercase;background:var(--g);-webkit-background-clip:text;background-clip:text;color:transparent}
.cg-hd small{display:block;font-family:var(--it);font-style:italic;font-size:15px;color:var(--mute);line-height:1.2}
.cg-x{margin-left:auto;width:40px;height:40px;flex:none;background:none;border:1px solid var(--line2);color:var(--gold-l);font-size:22px;line-height:1;cursor:pointer;display:grid;place-items:center}
.cg-x:hover{border-color:var(--gold)}
.cg-rule{height:5px;border-top:1px solid var(--gold);border-bottom:1px solid rgba(205,168,95,.45);margin:0 14px;flex:none}
.cg-log{flex:1;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 16px);mask-image:linear-gradient(180deg,transparent 0,#000 16px);overflow-y:auto;padding:18px 14px 8px;display:flex;flex-direction:column;gap:10px;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--gold-d) transparent}
.cg-m{max-width:86%;font-size:15px;line-height:1.55;padding:11px 14px;animation:cgIn .35s ease both;overflow-wrap:anywhere}
@keyframes cgIn{from{opacity:0;transform:translateY(6px)}}
.cg-m.b{align-self:flex-start;background:#151412;border:1px solid var(--line2);border-left:2px solid var(--gold);color:var(--ink)}
.cg-m.u{align-self:flex-end;background:var(--g);color:#14110b;font-weight:500}
.cg-m a{color:var(--gold-l);text-decoration:underline;text-decoration-color:rgba(205,168,95,.5);text-underline-offset:3px}
.cg-m ul{margin:6px 0 2px 2px;list-style:none}
.cg-m li{padding-left:16px;position:relative}
.cg-m li::before{content:"";position:absolute;left:2px;top:.62em;width:5px;height:5px;background:var(--gold);transform:rotate(45deg)}
.cg-m.t{display:flex;gap:5px;padding:15px 16px}
.cg-m.t i{width:6px;height:6px;border-radius:50%;background:var(--gold);animation:cgD 1.1s infinite}
.cg-m.t i:nth-child(2){animation-delay:.15s}.cg-m.t i:nth-child(3){animation-delay:.3s}
@keyframes cgD{0%,60%,100%{opacity:.25;transform:none}30%{opacity:1;transform:translateY(-3px)}}
.cg-ch{display:flex;flex-wrap:wrap;gap:7px;padding:2px 0 4px;animation:cgIn .35s ease both}
.cg-ch button{font-family:var(--body);font-size:13px;line-height:1.25;color:var(--gold-l);background:rgba(205,168,95,.06);border:1px solid var(--line);padding:8px 12px;cursor:pointer;text-align:left;transition:background .25s,border-color .25s,color .25s}
.cg-ch button:hover,.cg-ch button:focus-visible{background:rgba(205,168,95,.16);border-color:var(--gold);color:#fff}
.cg-f{display:flex;gap:8px;padding:10px 12px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line2);flex:none}
.cg-f input{flex:1;min-width:0;height:46px;background:#0d0c0b;border:1px solid var(--line);color:var(--ink);font:16px var(--body);padding:0 14px;border-radius:0;-webkit-appearance:none}
.cg-f input:focus{outline:none;border-color:var(--gold)}
.cg-f input::placeholder{color:var(--dim)}
.cg-f button{width:46px;height:46px;flex:none;border:0;background:var(--g);color:#14110b;cursor:pointer;display:grid;place-items:center}
.cg-f button svg{width:20px;height:20px}
.cg-note{font-size:11px;color:var(--dim);text-align:center;padding:0 12px 8px;letter-spacing:.04em}
@media (max-width:520px){
 .cg{inset:auto 8px 8px 8px;width:auto;height:calc(100% - 16px);max-height:calc(100dvh - 16px - env(safe-area-inset-top))}
 .cg-fab{width:60px;height:60px}.cg-fab img{width:46px;height:46px}
 .cg-tip{font-size:16px;right:calc(max(18px,env(safe-area-inset-right)) + 70px);bottom:calc(max(18px,env(safe-area-inset-bottom)) + 12px)}
}
@media (prefers-reduced-motion:reduce){.cg-fab::after{animation:none}.cg,.cg-m,.cg-ch{transition:none;animation:none}}
@media (max-width:520px){.cg-wait .cg-fab,.cg-wait .cg-tip{opacity:0;pointer-events:none;transform:translateY(12px)}}

.cg-m .cg-go{display:flex;min-height:44px;padding:0 18px;font-size:11.5px;letter-spacing:.16em;margin:12px 0 2px;color:#14110b}
.cg-m .cg-fine{display:block;margin-top:8px;font-size:11px;line-height:1.45;color:#8d846f}
