.contact-dock{position:fixed;z-index:35;top:52%;right:0;transform:translateY(-50%)}.contact-dock__ribbon{display:block;border:0;padding:0;background:none;cursor:pointer;filter:drop-shadow(-4px 6px 10px rgb(120 40 30/22%));transition:transform .2s ease}.contact-dock[data-open] .contact-dock__ribbon,.contact-dock__ribbon:hover{transform:translateX(-4px)}.contact-dock__band{position:relative;display:flex;flex-direction:column;align-items:center;gap:.7rem;padding:1rem .7rem 1rem 1.25rem;background:var(--brand);color:var(--ink-on-brand);clip-path:polygon(0 0,100% 0,100% 100%,0 100%,.6rem 50%);border-radius:0}.contact-dock[data-enter] .contact-dock__band{animation:contact-dock-enter .72s cubic-bezier(.2,.9,.25,1.15) .9s both}@keyframes contact-dock-enter{0%{transform:translateX(110%)}}.contact-dock__band:after{content:"";position:absolute;inset:-20% -60%;background:linear-gradient(115deg,transparent 38%,color-mix(in srgb,var(--ink-on-brand) 45%,transparent) 50%,transparent 62%);transform:translateY(-100%);pointer-events:none}.contact-dock[data-nudge] .contact-dock__band:after{animation:contact-dock-sheen 8s ease-in-out 2.4s 4}.contact-dock[data-nudge]:not([data-open]) .contact-dock__ribbon:not(:hover){animation:contact-dock-tug 8s ease-in-out 2.4s 4}@keyframes contact-dock-sheen{0%{transform:translateY(-100%)}14%,to{transform:translateY(100%)}}@keyframes contact-dock-tug{0%,12%,to{transform:none}4%{transform:translateX(-9px)}8%{transform:translateX(-3px)}}.contact-dock[data-open] .contact-dock__band,.contact-dock__ribbon:hover .contact-dock__band{background:var(--brand-hover)}.contact-dock__label{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--face-display);font-size:.9rem;font-weight:800;letter-spacing:.01em}.contact-dock__glyphs{display:grid;gap:.45rem;justify-items:center;padding-top:.55rem;border-top:1px solid color-mix(in srgb,var(--ink-on-brand) 35%,transparent);--channel-ink:var(--brand)}.contact-dock__hint{right:calc(100% + .6rem);display:flex;align-items:center;gap:.15rem;width:max-content;max-width:min(15rem,calc(100vw - 6rem));padding:.3rem .3rem .3rem .9rem;border:1px solid var(--line);border-radius:var(--radius-md);color:var(--foreground);box-shadow:var(--shadow-float);transform:translateY(-50%);animation:contact-dock-hint .32s cubic-bezier(.2,.8,.2,1)}.contact-dock__hint,.contact-dock__hint:after{position:absolute;top:50%;background:var(--surface)}.contact-dock__hint:after{content:"";right:-6px;width:10px;height:10px;border-top:1px solid var(--line);border-right:1px solid var(--line);transform:translateY(-50%) rotate(45deg)}@keyframes contact-dock-hint{0%{opacity:0;transform:translateY(-50%) translateX(8px)}}.contact-dock__hint-text{border:0;padding:.35rem 0;background:none;color:inherit;font:inherit;font-size:.875rem;font-weight:700;line-height:1.3;text-align:left;cursor:pointer}.contact-dock__hint-text:hover{color:var(--brand-deep)}.contact-dock__hint-close{display:grid;place-items:center;width:2rem;height:2rem;flex:none;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.contact-dock__hint-close:hover{background:color-mix(in srgb,var(--foreground) 6%,transparent);color:var(--foreground)}.contact-dock__panel{position:absolute;top:50%;right:calc(100% + .5rem);width:min(20.5rem,calc(100vw - 6rem));transform:translateY(-50%);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);color:var(--foreground);box-shadow:var(--shadow-float);padding:1.1rem .6rem .6rem;transform-origin:right center;animation:contact-dock-in .18s cubic-bezier(.2,.8,.2,1)}@keyframes contact-dock-in{0%{opacity:0;transform:translateY(-50%) translateX(8px) scale(.97)}}.contact-dock__head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:0 .5rem .8rem}.contact-dock__title{margin:0;font-family:var(--face-display);font-size:1.1rem;font-weight:800;letter-spacing:-.02em}.contact-dock__status{display:flex;align-items:center;gap:.45rem;margin:.3rem 0 0;color:var(--muted);font-size:.8125rem}.contact-dock__status>span{width:.5rem;height:.5rem;border-radius:50%;background:var(--line)}.contact-dock__status[data-state=open]{color:var(--sage);font-weight:600}.contact-dock__status[data-state=open]>span{background:var(--sage);box-shadow:0 0 0 3px color-mix(in srgb,var(--sage) 20%,transparent)}.contact-dock__status[data-state=closed]>span{background:var(--muted)}.contact-dock__close{display:grid;place-items:center;width:2.25rem;height:2.25rem;flex:none;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}.contact-dock__close:hover{background:color-mix(in srgb,var(--foreground) 6%,transparent);color:var(--foreground)}.contact-dock__list{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}.contact-dock__channel{display:flex;align-items:center;gap:.8rem;min-height:3.25rem;padding:.45rem .5rem;border-radius:var(--radius-md);color:inherit;text-decoration:none}.contact-dock__channel:hover{background:color-mix(in srgb,var(--brand) 7%,transparent)}.contact-dock__text{display:grid;min-width:0;flex:1;line-height:1.25}.contact-dock__text strong{font-size:.9375rem}.contact-dock__text span{overflow:hidden;color:var(--muted);font-size:.8125rem;text-overflow:ellipsis;white-space:nowrap}.contact-dock__go{flex:none;color:var(--muted)}.contact-dock__channel:hover .contact-dock__go{color:var(--brand-deep)}@media (max-width:767px){.contact-dock{top:auto;bottom:calc(var(--dock-offset) + .25rem);transform:none}.contact-dock__band{flex-direction:row;gap:.5rem;padding:.6rem .9rem .6rem 1.35rem}.contact-dock__label{writing-mode:horizontal-tb;transform:none}.contact-dock__glyphs{display:none}.contact-dock[data-enter] .contact-dock__band{animation-delay:1.4s}.contact-dock__hint{top:auto;right:.5rem;bottom:calc(100% + .6rem);transform:none;animation-name:contact-dock-hint-up}.contact-dock__hint:after{top:auto;right:1.5rem;bottom:-6px;transform:rotate(135deg)}@keyframes contact-dock-hint-up{0%{opacity:0;transform:translateY(6px)}}.contact-dock__panel{position:fixed;top:auto;right:1rem;left:1rem;bottom:calc(var(--dock-offset) + 3.75rem);width:auto;transform:none;transform-origin:bottom right;animation-name:contact-dock-up}@keyframes contact-dock-up{0%{opacity:0;transform:translateY(8px)}}.site-shell:has(.contact-dock) .back-to-top{bottom:calc(var(--dock-offset) + 3.75rem)}}@media (prefers-reduced-motion:reduce){.contact-dock__ribbon{transition:none}.contact-dock[data-enter] .contact-dock__band,.contact-dock[data-nudge] .contact-dock__band:after,.contact-dock[data-nudge]:not([data-open]) .contact-dock__ribbon:not(:hover),.contact-dock__hint,.contact-dock__panel{animation:none}}