/* Short, event-driven transitions. Native controls remain usable without JavaScript. */
:root { --motion-ease: cubic-bezier(.2,.75,.25,1); }
.mobile-nav-reveal,.mobile-nav-body { display: contents; }
.nav-group-chevron { transition: transform .24s var(--motion-ease); }
.reading-choice > summary,.nav-link,.button,.icon-button,.vt-tablist > button,.friends-tab-list a { transition: color .18s ease,background-color .18s ease,border-color .18s ease; }
.button:active,.icon-button:active { transform: scale(.96); }
.post-cover img,.carousel-image img,.photo-open img,.vt-zoomable { transition: transform .35s var(--motion-ease),filter .25s ease; }
.photo-open { overflow: hidden; }
@media(hover:hover) and (pointer:fine) {
  .post-cover:hover img,.carousel-target:hover .carousel-image img,.photo-open:hover img { transform: scale(1.025); }
  .vt-zoomable:hover { filter: brightness(1.035); }
}
@keyframes vt-panel-enter { from { opacity: 0; translate: 0 6px; } to { opacity: 1; translate: 0 0; } }
.vt-tab-panel:not([hidden]),.friends-tab-panel:not([hidden]) { animation: vt-panel-enter .22s var(--motion-ease); }
/* Fallback opening animation for browsers without native details transitions. */
details[open] > :is(.reading-choice-panel,.nav-submenu,.vt-collapse-content) { animation: vt-panel-enter .22s var(--motion-ease); }
@supports selector(::details-content) and (transition-behavior: allow-discrete) {
  :is(.reading-choice,.nav-group,.vt-collapse,.vt-emoji-picker)::details-content { opacity: 0; transition: opacity .24s ease,content-visibility .24s allow-discrete; }
  :is(.reading-choice,.nav-group,.vt-collapse,.vt-emoji-picker)[open]::details-content { opacity: 1; }
  details[open] > :is(.reading-choice-panel,.nav-submenu,.vt-collapse-content) { animation: none; }
  /* Native details hides the closed panel; preserve its position during fade-out. */
  .js .nav-group > .nav-submenu { visibility: visible; }
}
@supports (interpolate-size: allow-keywords) {
  .vt-collapse { interpolate-size: allow-keywords; }
  .vt-collapse::details-content { block-size: 0; overflow: clip; transition: block-size .28s var(--motion-ease),opacity .24s ease,content-visibility .28s allow-discrete; }
  .vt-collapse[open]::details-content { block-size: auto; }
  .vt-collapse.is-outline-revealed::details-content { transition: none; }
}
@media(min-width:761px) {
  /* Do not transform the visible sidebar: its fixed child flyouts use viewport coordinates. */
  .site-sidebar { left: 0; transition: left .32s var(--motion-ease),visibility .32s; }
  .js[data-sidebar-collapsed="true"] .site-sidebar { left: -30%; }
  .site-main { transition: margin-left .32s var(--motion-ease),padding-top .32s var(--motion-ease); }
  .sidebar-restore { animation: vt-panel-enter .24s ease; }
}
@media(max-width:760px) {
  .mobile-nav-reveal { display: grid; grid-template-rows: 1fr; opacity: 1; transition: grid-template-rows .28s var(--motion-ease),opacity .22s ease,visibility .28s; }
  .mobile-nav-body { display: block; min-height: 0; overflow: hidden; }
  .js .site-sidebar:not(.is-menu-open) .mobile-nav-reveal { grid-template-rows: 0fr; opacity: 0; visibility: hidden; }
  .js .site-sidebar:not(.is-menu-open) .sidebar-navigation-scroll,.js .site-sidebar:not(.is-menu-open) .sidebar-bottom { display: block; }
}
.vt-image-viewer .photo-full { transition: transform .18s var(--motion-ease),opacity .2s ease; }
.vt-image-stage.is-dragging .photo-full { transition: opacity .2s ease; }
.vt-image-stage.is-loading .photo-full { opacity: 0; }
.vt-image-viewer,.search-dialog { opacity: 0; transform: translateY(8px) scale(.985); transition: opacity .22s ease,transform .22s var(--motion-ease),display .22s allow-discrete,overlay .22s allow-discrete; }
.vt-image-viewer[open],.search-dialog[open] { opacity: 1; transform: translateY(0) scale(1); }
.vt-image-viewer::backdrop,.search-dialog::backdrop { opacity: 0; transition: opacity .22s ease,display .22s allow-discrete,overlay .22s allow-discrete; }
.vt-image-viewer[open]::backdrop,.search-dialog[open]::backdrop { opacity: 1; }
@starting-style {
  .vt-image-viewer[open],.search-dialog[open] { opacity: 0; transform: translateY(8px) scale(.985); }
  .vt-image-viewer[open]::backdrop,.search-dialog[open]::backdrop { opacity: 0; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  :is(.reading-choice,.nav-group,.vt-collapse,.vt-emoji-picker)::details-content { transition: none !important; }
  .vt-image-viewer::backdrop,.search-dialog::backdrop { transition: none !important; }
}
@media print {
  .vt-collapse::details-content { block-size: auto; opacity: 1; content-visibility: visible; overflow: visible; }
}
