/* Every control shares the dock's language: glass pill, hairline edge, soft shadow, ink fill when primary or active. */
:root{--pill-glass:var(--glass);--pill-edge:1px solid #ffffff4d;--pill-shadow:0 8px 24px #1a17130f;--pill-ease:cubic-bezier(.2,.9,.25,1.12)}
.button,.header-actions>.button,.icon-button,.language-toggle,.text-button,.author-links a,.author-links button,.search-field,.filter-group,.segmented,.segmented button,.image-category,.image-arrow,.enlarge-hint,.floating-note,.contact-email-link,.contact-social-links a,.about-social a,.author-contact-social a,.footer-links a,.lightbox-close,.lightbox-prev,.lightbox-next,.intro-skip,.quote-actions .button{border-radius:999px}
.header-actions>.button,.icon-button,.language-toggle,.text-button,.author-links a,.author-links button,.search-field,.segmented,.image-category,.image-arrow,.enlarge-hint,.floating-note,.contact-email-link,.contact-social-links a,.about-social a,.author-contact-social a,.footer-links a,.lightbox-close,.lightbox-prev,.lightbox-next,.intro-skip,.button.secondary{background:var(--pill-glass);border:var(--pill-edge);box-shadow:var(--pill-shadow);color:var(--ink);transition:background .35s ease,color .35s ease,transform .45s var(--pill-ease),box-shadow .35s ease}
/* Primary and active = the dock indicator */
.button.primary,.author-links button,.segmented button.active{background:var(--ink);color:var(--bg);border:0;box-shadow:0 6px 18px #1a171326}
.header-actions>.button{background:var(--ink);color:var(--bg);border:0;min-height:40px;padding:9px 18px}
.button:hover,.header-actions>.button:hover,.author-links a:hover,.text-button:hover,.contact-social-links a:hover,.about-social a:hover,.author-contact-social a:hover,.footer-links a:hover{transform:translateY(-1px)}
.button:active,.icon-button:active,.language-toggle:active,.text-button:active,.author-links a:active,.author-links button:active,.segmented button:active,.mobile-dock>a:active,.mobile-dock>button:active{transform:scale(.95)}
/* Sizes */
.icon-button{width:40px;height:40px}
.language-toggle{min-width:44px;min-height:40px;padding:0 12px}
.text-button{padding:9px 16px;font-size:12px;font-weight:500;color:var(--ink)}
.author-links{gap:10px;flex-wrap:wrap}
.author-links a,.author-links button{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;font-size:12px;border-bottom:0}
.author-links a{border:var(--pill-edge)}
.segmented{padding:5px;border:var(--pill-edge)}
.segmented button{border-radius:999px;transition:background .35s ease,color .35s ease}
.search-field{padding:9px 18px}
.image-category{padding:6px 12px;font-size:9px}
.floating-note{padding:13px 22px;font-size:17px}
.contact-email-link{padding:15px 22px;margin:8px 0;border:var(--pill-edge);border-block:var(--pill-edge)}
.contact-social-links,.about-social,.author-contact-social,.footer-links{gap:10px;flex-wrap:wrap}
.contact-social-links a,.about-social a,.author-contact-social a,.footer-links a{padding:8px 15px}
.lightbox-close,.lightbox-prev,.lightbox-next{width:44px;height:44px;display:grid;place-items:center}
.intro-skip{padding:10px 18px}
.button.secondary{padding:11px 20px}
.icon-button svg,.text-button svg,.author-links svg{width:17px;height:17px}
@media(prefers-reduced-motion:reduce){.button,.icon-button,.language-toggle,.text-button,.author-links a,.author-links button,.segmented button{transition:none!important;transform:none!important}}

/* Performance: blur only where it is cheap (header controls, dialogs); card chips use a near-opaque fill */
.header-actions>.button,.icon-button,.language-toggle,.lightbox-close,.lightbox-prev,.lightbox-next{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.image-category,.image-arrow,.enlarge-hint,.floating-note{background:color-mix(in srgb,var(--bg) 88%,transparent);box-shadow:none}
