/* Progressive cross-document transitions preserve normal browser history and scripts. */
@view-transition { navigation:auto; }
html.hydro-refined.layout--basic .main { view-transition-name:dyoj-content; }
::view-transition-old(root),::view-transition-new(root) { animation:none; }
::view-transition-group(dyoj-content) { animation-duration:0s; }
::view-transition-old(dyoj-content) { animation:dyoj-page-out 100ms ease-out both; }
::view-transition-new(dyoj-content) { animation:dyoj-page-in 160ms ease-out both; }
@keyframes dyoj-page-out { to { opacity:0; } }
@keyframes dyoj-page-in { from { opacity:0; } to { opacity:1; } }
.dyoj-navigation-status { position:fixed; right:24px; bottom:24px; z-index:1000; display:flex; align-items:center; gap:10px; max-width:calc(100vw - 40px); box-sizing:border-box; padding:12px 16px; border:1px solid var(--ref-line); border-radius:10px; background:var(--ref-panel); color:var(--ref-ink); box-shadow:0 4px 20px #182b4318; font-size:13px; pointer-events:none; }
.dyoj-navigation-status::before { content:''; width:14px; height:14px; flex:none; border:2px solid var(--ref-line); border-top-color:var(--ref-muted); border-radius:50%; animation:dyoj-progress 900ms linear infinite; }
@keyframes dyoj-progress { to { rotate:360deg; } }
.dyoj-pending { cursor:progress!important; }
/* Filtering can change page length, but must not shift the viewport or its anchors. */
html.hydro-refined:has(#school-panel,#dyoj-discussion-panel,[data-course-reader]){scrollbar-gutter:stable}
#school-panel,#dyoj-discussion-panel,[data-course-reader]{overflow-anchor:none}
html.hydro-refined :is(.school-local-tabs button,.school-editor-tabs button,.dyoj-class-tab,.school-stage-link,.bank-tabs button,.learning-tabs a) { transition:background-color 140ms ease,color 140ms ease,border-color 140ms ease; }
html.hydro-refined .learning-profile-content[aria-busy=true] .learning-tabs { border-bottom-color:var(--ref-line); }
html.hydro-refined .school-network-status:not(.is-error) { display:none; }
.dyoj-record-error { color:var(--ref-ink); padding:12px 0; font-size:13px; }
/* Old per-card entrance effects otherwise replay after every full page load. */
html.hydro-refined.layout--basic .main .section { opacity:1!important; transform:none!important; animation:none!important; }
html.hydro-refined .school-chapter { scroll-margin-top:80px; }
@media(max-width:600px) { .dyoj-navigation-status { right:16px; bottom:16px; } }
@media(prefers-reduced-motion:reduce) {
 @view-transition { navigation:none; }
 ::view-transition-old(*),::view-transition-new(*) { animation:none!important; }
 .dyoj-navigation-status::before { animation:none; }
 html.hydro-refined :is(.school-local-tabs button,.school-editor-tabs button,.dyoj-class-tab,.school-stage-link,.bank-tabs button,.learning-tabs a) { transition:none; }
}
