.contact-book {position:relative;flex-shrink:0;color:var(--contact-color);font-family:var(--contact-font);font-size:var(--contact-size)}
.contact-book__toggle {display:grid;place-items:center;width:48px;height:48px;padding:7px;border:1px solid #ffffff20;border-radius:15px;background:#ffffff08;color:inherit;cursor:pointer;perspective:180px;transition:background .2s}
.contact-book__toggle:hover {background:#ffffff18}
.contact-book__icon {overflow:visible}
.contact-book__cover {transform-origin:5px 22px;transition:transform .4s cubic-bezier(.2,.7,.2,1)}
.contact-book.is-open .contact-book__cover {transform:perspective(100px) rotateY(-58deg)}
.contact-book__panel {position:absolute;top:100%;right:0;margin-top:12px;width:340px;max-width:calc(100vw - 32px);padding:26px;box-sizing:border-box;border:1px solid #ffffff26;border-radius:20px;background:var(--contact-bg);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 20px 65px #0006;color:var(--contact-color);animation:contact-panel-in .25s ease-out;overflow-wrap:anywhere}
.contact-book__panel::before {content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.contact-book__panel[hidden] {display:none}
.contact-book__panel h2 {font:inherit;font-size:1.15em;font-weight:700;margin:0 0 22px}
.contact-book__link {display:block;color:inherit;text-decoration:none;margin:0 0 18px;line-height:1.5}
.contact-book__label {display:block;font-size:.75em;opacity:.65}
.contact-book__socials {display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}
.contact-book__socials a {color:inherit;text-decoration:none;padding:8px 12px;border:1px solid #ffffff26;border-radius:10px;background:#ffffff08;font-size:.85em}
.contact-book__button {display:block;padding:13px 18px;margin-top:22px;border-radius:12px;text-align:center;text-decoration:none;background:var(--contact-button-bg);color:var(--contact-button-color);font-family:var(--contact-button-font);font-size:var(--contact-button-size);font-weight:600}
.contact-book a:hover {filter:brightness(1.2);text-decoration:underline}
.contact-book :focus-visible {outline:2px solid currentColor;outline-offset:4px}
@keyframes contact-panel-in {from {opacity:0;transform:translateY(-10px)} to {opacity:1;transform:translateY(0)}}
@media(max-width:760px) {.site-header__inner{flex-wrap:wrap;gap:12px}.contact-book{margin-left:auto}.contact-book__panel{position:fixed;top:auto;right:16px;margin-top:12px}.site-header__actions{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce) {.contact-book__cover{transition:none}.contact-book__panel{animation:none}}
